php-censor/CHANGELOG.md
2018-05-02 17:13:40 +07:00

33 KiB

Change Log

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.22.0 (2018-05-02)

Full Changelog

Added

  • Global application options php-censor.ssh.strength and php-censor.ssh.comment for SSH key generation. Issue #154.
  • Pull request remote branch to GUI.
  • PHPDocBlockChecker plugin detailed error log. Thanks to @Dave13h. Pull request #159.
  • More unit/integration tests for DB logic (Connections, Stores, Models).
  • PHPUnit code coverage log output and chart in information tab for PHPUnit coverage. Issue #148.
  • Global application option php-censor.build.allow_public_artifacts for allow/deny to generate public artifacts (PHPUnit code coverage html report, Pdepend html reports). Issue #107.
  • Web notifications (Initial frontend part). Web notifications are disabled by default (Global application option php-censor.notifications.enabled). Issue #156. Thanks to @prezire. Pull request #167.
  • Github Enterprise support (Improved Github build type). Issue #163.
  • Ability to merge in-database project config over in-repository config (.php-censor.yml) instead of overwrite only (Checkbox in the project add/edit page). Issues: #14, #70, #106, #121.
  • Phan plugin. Thanks to @caouecs. Pull requests #171, #175.
  • New command php-censor:check-localizations for search missing translated strings for non-english languages. Thanks to @caouecs. Pull requests #173, #174.

Changed

  • Improved coverage report by Codecov (edited .codecov.yml config file in application).
  • Massive refactored: pull requests, models, stores, database, config, controllers, application, forms, views etc. Changed project structure.
  • Code style fixes: replaced func_get_args() by ...$params (PHP 5.6+), Lang::out to Lang::get etc.
  • RemoteGitBuild (remote) renamed to GitBuild (git), MercurialBuild (hg) renamed to HgBuild (hg), SubversionBuild (svn) renamed to SvnBuild (svn), BitbucketHgBuild (bitbuckethg) renamed to BitbucketHgBuild (bitbucket-hg). DB data will refresh by migration automatically.
  • Merged PostgreSQL and MySQL tests inti one PHPUnit XML config.
  • Documentation improvements.
  • Improved translations for Russian and French. Thanks to @caouecs. Pull requests #167, #169, #172.
  • Improvements for PHPUnit plugin. Thanks to @SimonHeimberg. Pull request #160.

Removed

  • Useless field last_commit from table project.

Fixed

  • PhpCodeSniffer plugin path option. Thanks to @AlexisFinn. Issue #153. Pull requests #155.
  • TechnicalDebt plugin allowed_errors option. Thanks to @glennmcewan. Pull requests #158.
  • Build creation by webhook. Issue #162.
  • Rebuild project. Thanks to @Caffe1neAdd1ct. Issue #164. Pull request #166.
  • Project directory path for SSH key generation. Issue #165.
  • SVN build type additional options (Like: username, password etc.). Issue #70.
  • PHPDockblockChecker plugin error on count function for PHP 7.2. Issue #170.

0.21.0 (2018-02-21)

Full Changelog

Added

  • Gogs pull request webhook for manage environments branches. Thanks to @ss-gxp. Pull request #142.
  • Access to Pdepend plugin artifacts. Issue #107.
  • Code coverage report for PHPUnit plugin. Issue #86.
  • PHP Censor logo and version to console and web interfaces.

Changed

  • Small improvements in README.md. Thanks to @lex111. Pull request #144.
  • Renamed 'Webhook' to 'Webhook (Push)' in according to 'Webhook (Pull request)'.
  • Improved small-box block icon appearance.
  • Improved Pdepend plugin documentation. Issue #143.
  • Code style fixes.
  • Updated dependencies.

Removed

  • Application Cache class and replaced by Symfony/Cache component.
  • Useless Template class and refactored View.
  • User model from $_SESSION.

Fixed

  • Versions of dependencies.
  • PHPUnit assert calls from public to static.
  • Error page (Only admin access to error page now).
  • Build log for non-unicode characters. Issue #145. Thanks to @SimonHeimberg. Pull request #146, #149.
  • PhpUnitJson fail on empty trace and unfinished tests. Thanks to @SimonHeimberg. Pull request #147.
  • PhpParallelLint Short tags Option. Thanks to @Dave13h. Pull request #151.
  • Exception handler for PHP7+.

0.20.0 (2018-01-10)

Full Changelog

Added

  • "New" label for build errors in "Errors" tab, filtration by "New" label and new errors count indicators on dashboard and builds list. The feature partial based on @dancryer's code in PHPCI.
  • PHP 7.2 to TravisCI config.
  • Committer email updating after cloning for Git builds (Like commit massage and commit hash before).
  • New build source "Webhook (Pull request)" for builds.
  • Application config options github.status.commit and bitbucket.status.commit for allow/deny to post build status to Github/Bitbucket.

Changed

  • Allowed public build status for archived projects.
  • Refactored and improved TechnicalDebt plugin. Issue #82. Thanks to @vinpel. Pull request #141.
  • Improved CHANGELOG.md file (See: Keep a Changelog).
  • Updated dependencies.

Removed

  • Useless Image class.

Fixed

  • PHP 7.2 unpack user from session. Issue #136. Thanks to @oln0ry. Pull request #137.

0.19.0 (2017-11-18)

Full Changelog

Added

  • Paginator helper. Issue #123.
  • Paginator for build errors. Issue #85.
  • Filtration for errors by severity and plugin. Issue #85.
  • Links to errors from summary block (Information tab). Issue #85.
  • New dashboard widget with only failed projects (See documentation). Thanks to @ss-gxp. Pull request #131.
  • Ability to call Git webhook by project name instead id. Thanks to @ss-gxp. Pull request #132.

Changed

  • Dashboard on the index page, now dashboard more flexible and include separated widgets (See documentation). Thanks to @ss-gxp. Pull request #131.

Fixed

  • Error with build log. Issue #130.
  • Excessive build meta inserts in the DB.
  • Bootstrap grid responsive classes for dashboard.

0.18.0 (2017-10-22)

Full Changelog

Added

  • Mage v3 plugin for deployment. See documentation. Thanks to @ss-gxp. PullRequest #118.
  • The option to pass the short tags (-s) argument to PHP Parallel Lint so that files using PHP Short Tags can be linted. Used @Dave13h code.
  • Checkbox to build only the default branch specified in the project. Used @suwalski code.
  • Command to schedule tasks if not ran for a specified X days. Thanks to @Vincentv92. PullRequest #126.
  • Column for Build source instead of 'Manual' word in commit_id and commit_message.
  • Column user_id to build table (created by) + Renamed columns created -> create_date, started -> start_date and finished -> finish_date.
  • Columns user_id (created by) and create_date to project_group table.
  • Columns user_id (created by) and create_date to project table.

Changed

  • Improved documentation for SystemD worker, Nginx virtual host.
  • Improved GUI for Codeception plugin, PHPSpec plugin and charts.
  • Updated dependencies.

Removed

  • File console.bat for Windows installation.
  • Useless '/' from build status cache path.
  • Useless project_id column from build_meta table, removed useless code from models.

Fixed

  • Environments - omit checkout exact commit. Thanks to @ss-gxp. PullRequest #119.
  • Non-unicode binary log output. Issue #116.
  • Queue's parameter lifetime in installation.
  • Installation command. Thanks to @lscortesc. PullRequest #128.

0.17.0 (2017-09-03)

Full Changelog

Added

  • Ability to create comments on Bitbucket for commits and pull requests (Like on Github). Thanks to @StudioMaX. PullRequest #112.
  • "Remember me" functionality on login page. Issue #81.
  • Daily rotate logger for console commands. Issue #108.
  • Param priority_path (For all plugins) for control paths priority when we search plugin binary. Issue #104.
  • Regex pattern for branch specific config. Issue #97.
  • JUnit result parser for PHPUnit plugin (for PHPUnit >= 6.0). Thanks to @SimonHeimberg. PullRequest #102, #105.
  • New PHP Censor logo.

Changed

  • Improved public status page UI (Added environment and duration, fixed table cell height).
  • Improved Shell plugin documentation. Thanks to @SimonHeimberg. PullRequest #103.
  • Improved documentation. Thanks to @SimonHeimberg. PullRequest #110, #111.
  • Improved Worker (Daemon) documentation about nohug and systemd. Thanks to @ketchoop. PullRequest #98, #100.
  • Improved documentation about PHP Censor update.
  • Updated dependencies.

Fixed

  • Build stages workflow. If setup, test or deploy stage failed then next stages (setup, test or deploy) skip.
  • Failures for notification plugins (Now notification failures doesn't fail all build). Thanks to @SimonHeimberg. PullRequest #113.
  • Error with allowed_errors / allowed_warnings in PhpCodeSniffer plugin. Thanks to @SimonHeimberg. PullRequest #101.

0.16.0 (2017-07-16)

Full Changelog

Added

  • Config option php-censor.build.writer_buffer_size for configuring BuildErrorWriter->buffer_size property (Count of inserts in the one SQL query). Default value: 500. Thanks to @LEXASOFT for the idea.
  • Params 'email' and 'message' for php-censor:create-build console command. Thanks to @SimonHeimberg. PullRequest #92.

Changed

  • Improved build log build directory appearence ('/' -> './'). Thanks to @SimonHeimberg. PullRequest #93.
  • Improved documentation. Thanks to @SimonHeimberg. PullRequest #83, #84, #96. Issue #2.
  • Improved email address format for notifications (Field 'from').
  • Updated dependencies. Issue #79.

Removed

  • HttpClient class and changed it to Guzzle library.

Fixed

  • Project create/edit form fields order.
  • Debug mode for 'Build now' button.
  • FileLink for builds (Link to branch -> link to commit). Thanks to @SimonHeimberg. PullRequest #90.
  • Error in sendStatusPostback in the build.
  • Column build_meta.meta_value type (TEXT -> LONGTEXT) for MySQL. Issue #94.

0.15.0 (2017-06-10)

Full Changelog

Changed

  • Improved logging configuration (Now logging autostart without special config loggerconfig.php). Issue #59.
  • Improved build-status/view page (Added build links, icons, date etc.). Issue #23.
  • Improved default branch for SVN (Added ability to set branch full name like branches/branch-1 or /branch/branch-2). Issue #67.

Removed

  • PollCommand console command.
  • Application config optionusing_custom_file (app/config.yml).

Fixed

  • Worker fail with eternal log writing. Issue #68.
  • Bulk error writing error (SQLSTATE[HY000]: General error: 7 number of parameters must be between 0 and 65535). Issue #66.
  • PDO PostgreSQL connection without installed pdo_mysql extension. Issue #73.
  • Directory /app in Git repository. Issue #73.
  • Branches for SVN build. Issue #65.
  • PhpCsFixer plugin directory option. Issue #75.
  • Webhook for GitHub pull requests from private repositories. Thanks to @StudioMaX. PullRequest #76, #78.

0.14.0 (2017-05-15)

Full Changelog

Added

  • Text wrap for build log.

Changed

  • Improved webhook for GitHub: builds only one head commit per push.
  • Improved webhook for GitHub: added tag build and UI information about tag.
  • Improved error page.
  • Improved UI and code style.

Fixed

  • Build branch in dashboard timeline. Thanks to @JoolsMcFly. PullRequest #62.
  • Project clone to working directory in Alpine Linux 3.5. Issue #61.
  • Environment field in build table.
  • Database::lastInsertId call for PostgreSQL.
  • SensioLabs Security Checker warning: squizlabs/php_codesniffer (2.7.1) - Arbitrary shell execution (Updated squizlabs/php_codesniffer).
  • Pagination for environments in project/view page and ajax builds update.
  • Builds for branches with special chars (like '#, /' etc.).
  • Plugin PhpCsFixer. Issue #63.

0.13.0 (2017-04-10)

Full Changelog

Added

  • Environments. Thanks to @ss-gxp. PullRequest #41, #47, #52. For details see documentation.

  • Write cache for build log (It's increase build speed). Thanks to @ss-gxp. PullRequest #45, #48.

  • Write cache for build errors (It's increase build speed). Thanks to @ss-gxp. Issue #49. PullRequest #50.

  • SensioLabs Security Checker Plugin (This plugin is "zero-config" and used in builds without config). Issue #27. Config example:

    test:
      security_checker:
        allowed_warnings: -1
    
  • Allowed fail status for plugins (See build summary in the build page).

  • suggest section to composer.json. Issue #53.

Changed

  • Improved plugins code.
  • Improved UI.

Fixed

  • Build execution with many workers. Thanks to @ss-gxp. PullRequest #51.
  • Build view (Added html encoding for build errors output). Thanks to @ss-gxp. PullRequest #54.
  • Exception when plugin runs without options (Like "php_parallel_lint: "). Issue #44.
  • TechnicalDebt Plugin configuration parameters. Thanks to @bochkovprivate. PullRequest #55.
  • PHPCpd plugin documentation. Thanks to @bochkovprivate. PullRequest #56.

0.12.0 (2017-03-25)

Full Changelog

Added

  • Stage 'deploy' for build. Thanks to @ss-gxp. PullRequest #34. Build config example:

    test:
      ...
    deploy:
      deployer:
        webhook_url: "http://deployer.local/deploy/xxxxx"
        reason:      "PHP Censor Build #%BUILD% - %COMMIT_MESSAGE%"
        update_only: true
    
  • Magallanes (Mage) deployment plugin. Thanks to @ss-gxp. PullRequest #36, #40. Build config example:

    deploy:
        mage:
            env: production
            bin: /usr/local/bin/mage
    
  • Build duration on Dashboard Timeline. Thanks to @JoolsMcFly. PullRequest #33

  • Support for Mercurial (Hg) based repos in Bitbucket (BitbucketHgBuild). Used @bochkovprivate code.

Changed

  • Code style fixes, fixes for tests, improvements for documentation
  • Improved PhpCodeSniffer plugin. Thanks to @ValerioOnGithub. PullRequest #31, #35, #42
  • Improved French localization. Thanks to @JoolsMcFly. PullRequest #39

Removed

  • Useless daterangepicker and datepicker. Issue #37

Fixed

  • Parameter 'CommitterEmail' in bitbucket webhook. Used @bochkovprivate code.
  • Parameter 'branch' in Mercurial (Hg) build. Used @bochkovprivate code.
  • Language select on user/edit page.
  • Localization for 'project_group' string. Thanks to @JoolsMcFly. PullRequest #39.
  • PHPUnit plugin behavior for case without tests.

0.11.0 (2017-03-12)

Full Changelog

Added

  • Duration column to the project page.

Changed

  • Code style fixes.
  • Improved README, Docs and CHANGELOG.

Fixed

  • build.log column size for MySQL (removed "NOT NULL").
  • PhpCpd ignore option. Used @ZinitSolutionsGmbH code.
  • Shell plugin execution. Issue #30.
  • Pagination position in the project view (UI).
  • Branch link in the timeline (UI).

0.10.0 (2017-02-24)

Full Changelog

Added

  • 'Build with debug' button to the project page (For admin user). Issue #22.

Changed

  • Improved Gogs support. Thanks to @vinpel. PullRequest #25.
  • Improved TravisCI build settings (Added DB tests for PostgreSQL and MySQL).
  • Improved README.

Fixed

  • Quoting for database entities.
  • Project config reload for worker between builds. Issue #17.
  • Problem with runtime/status_cache directory. Issue #19.
  • Add/edit project page. Issue #21.
  • Form name pattern. Thanks to @ket4yii. PullRequest #24.
  • build.log column size for MySQL (text -> longtext). Issue #26.
  • build_error.message column size (varchar(255) -> text).
  • Profile language saving. Issue #11.
  • Builds for branches which start with a hash character. Used @soulflyman code.

0.9.0 (2017-02-11)

Full Changelog

Added

  • Yaml highlight for build config in project page.

Changed

  • Improved Gogs support. Thanks to @vinpel. PullRequest #18.
  • Improved dashboard UI.

Fixed

  • Multiple install command execution (Now admin and project group don't duplicate).

0.8.0 (2017-02-09)

Full Changelog

Added

  • Parameter config-from-file for installing application with prepared config:

    cd ./php-censor.local
    
    # Non-interactive installation with prepared config.yml file
    ./bin/console php-censor:install --config-from-file=yes --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local'
    
  • Parameters for non-interactive admin creating:

    cd ./php-censor.local
    
    # Non-interactive admin creating
    ./bin/console php-censor:create-admin --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local'
    
  • Caching for public build status badge. Issue #15.

  • Build from Gogs (build type and webhook). The feature is based on @denji's code. Issue #13.

Changed

  • Refactored console/commands. Removed localization from logs.
  • Improved README and Documentation.
  • Improved Codeception plugin. Thanks to @vinpel. PullRequest #16.
  • Updated French translation. Thanks to @vinpel. PullRequest #16.

Removed

  • Hacks for Windows (IS_WIN constant). Because it doesn't work on Windows normally anyway.

Fixed

  • Init language. Issue #9.

0.7.0 (2017-01-29)

Full Changelog

Added

  • PostgreSQL support as application DB. Changed DB configuration. The old way to configure DB:

    b8:
      database:
        servers:
          read: 'localhost:3306'
          write: 'localhost:3306'
        name:     php-censor-db
        username: php-censor-user
        password: php-censor-password
    

    And a new way:

    b8:
      database:
        servers:
          read:
            - host: localhost
              port: 3306
          write:
            - host: localhost
              port: 3306
        type:     mysql
        name:     php-censor-db
        username: php-censor-user
        password: php-censor-password
    

    Type of DB (type) should be mysql or pgsql.

Changed

  • Application closed for search robots.

  • Renamed application configuration (app/config.yml) section for work with queue. The old way to configure queue:

    php-censor:
      worker:
        host:        localhost
        queue:       php-censor-queue
        job_timeout: 600
    

    And a new way:

    php-censor:
      queue:
        host:     localhost
        name:     php-censor-queue
        lifetime: 600
    
  • Improved README.md and added CHANGELOG.md file.

0.6.0 (2017-01-22)

Full Changelog

Added

  • Added pluggable authentication and LDAP authentication provider:

    php-censor:
      security:
        auth_providers:
          internal:
            type: internal
          ldap-php-censor:
            type: ldap
            data:
              host:           'ldap.php-censor.local'
              port:           389
              base_dn:        'dc=php-censor,dc=local'
              mail_attribute: mail
    

    If you enter by new LDAP-user, the record in the DB will be created automatically. The basement of the feature is @Adirelle and @dzolotov code.

Changed

  • Unified application configuration (app/config.yml) authentication options.

    The old way to disable authentication:

    php-censor:
      autentication_settings:
        state:   true
        user_id: 1
    

    And a new way:

    php-censor:
      security:
        disable_auth:    true
        default_user_id: 1
    

0.5.0 (2017-01-21)

Full Changelog

Added

  • Option to the application configuration (app/config.yml) to allow/deny removing the build directory after build (php-censor.build.remove_builds):

    php-censor:
      build:
        remove_builds: true
    
  • Options to the application configuration (app/config.yml) to allow/deny sending errors in the commits/pull requests as comments on Github (php-censor.github.comments.commit and php-censor.github.comments.pull_request):

    php-censor:
      github:
        token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
        comments:
          commit:       false
          pull_request: false
    

Changed

  • Improved plugin Codeception

Removed

  • Agent/worker Daemon mode (You should use Worker mode instead).

  • pluginconfig configuration file (You should use plugin full name including the namespace):

    test:
      \PluginNamespace\Plugin:
        allow_failures: true
    

Fixed

  • Fixed projects archive (Archived projects can not be built and projects moved to the archive section).

0.4.0 (2017-01-15)

Full Changelog

Added

  • Ajax update for the main page (Dashboard).
  • Public status information to the project page.

Fixed

  • UI and localizations.
  • Delete confirmation for all items.

0.3.0 (2017-01-11)

Full Changelog

Changed

  • Improved UI.
  • Updated dependencies.
  • Updated PHPUnit from 4.8 to 5.7.
  • Improved build without config.

0.2.0 (2017-01-07)

Full Changelog

Added

  • Login by name (name or email).

Changed

  • Improved PHPUnit plugin.
  • Improved UI.

Fixed

  • Fixed public build status page.

0.1.0 (2017-01-04)

Initial release. Changes from PHPCI v1.7.1:

Added

  • More debug info into the build log.
  • Item per page parameter for build list.

Changed

  • Moved CSS/JS dependencies from sources to Composer dependencies (asset-packagist.org).
  • Redesigned project structure.
  • Upped PHP minimal version from 5.3 to 5.6.

Fixed

  • Tests and other small fixes.

0.0.0 (2016-06-23)

Project started.