| Quibble changelog |
| ================= |
| |
| master (unreleased) |
| ------------------- |
| |
| Feature |
| ~~~~~~~ |
| * Remove Python implementation of PhpUnit test suites splitting |
| `T365978 <https://phabricator.wikimedia.org/T365978>`_ |
| Arthur Taylor |
| |
| 1.11.0 (2024-10-29) |
| ------------------- |
| |
| Fixes |
| ~~~~~ |
| * Remove update.php --skip-external-dependencies option |
| `T370380 <https://phabricator.wikimedia.org/T370380>`_ |
| Timo Tijhof |
| |
| Feature |
| ~~~~~~~ |
| * Add support for specifying patchsets when using the `--change` |
| command-line argument |
| `T376602 <https://phabricator.wikimedia.org/T376602>`_ |
| Arthur Taylor |
| |
| 1.10.0 (2024-09-17) |
| ------------------- |
| |
| Feature |
| ~~~~~~~ |
| * Switch to using the composer-native implementation of PHPUnit |
| parallel testing. Retain the Python implementation for now in |
| case we need to switch back. |
| `T365976 <https://phabricator.wikimedia.org/T365976>`_ |
| Arthur Taylor |
| |
| 1.9.4 (2024-07-19) |
| ------------------ |
| |
| Fixes |
| ~~~~~ |
| |
| * Fix ``--change``, introduced in 1.5.6 in September 2023, which never worked. |
| Antoine Musso |
| |
| * Fix ``MW_SKIP_EXTERNAL_DEPENDENCIES`` which was set whenever |
| ``mediawiki/vendor`` was used when it was only to be set for patch targetting |
| ``mediawiki/vendor`` itself. |
| `T370380 <https://phabricator.wikimedia.org/T370380>`_ |
| Timo Tijhof |
| |
| 1.9.3 (2024-07-10) |
| ------------------ |
| |
| Fix |
| ~~~ |
| |
| * Fix "Multiple targets are not supported" when running QUnit tests with |
| Chrome. |
| `T366799 <https://phabricator.wikimedia.org/T366799>`_ |
| Antoine Musso |
| |
| 1.9.2 (2024-07-03) |
| ------------------ |
| |
| Fixes and cleanups |
| ~~~~~~~~~~~~~~~~~~ |
| |
| For the PHPUnit parallel run: |
| |
| * Only add the Scribunto Sandbox test to the split groups if |
| Scribunto is present. |
| `T368783 <https://phabricator.wikimedia.org/T368783>`_ |
| Arthur Taylor |
| * Add a log notice to the end of parallel runs to support developers |
| who run into issues with the new config. |
| `T361190 <https://phabricator.wikimedia.org/T361190>`_ |
| Arthur Taylor |
| |
| 1.9.1 (2024-06-18) |
| ------------------ |
| |
| Fixes and cleanups |
| ~~~~~~~~~~~~~~~~~~ |
| |
| For the PHPUnit parallel run: |
| |
| * Copy the cache result files and generated configuration |
| (``phpunit-parallel.xml``) under ``$LOG_DIR`` to allow their archival by CI. |
| Kosta Harlan |
| * Specify ``.json`` suffix for result cache files. |
| Kosta Harlan |
| |
| 1.9.0 (2024-06-14) |
| ------------------ |
| |
| Feature |
| ~~~~~~~ |
| * Add support for running some PHPUnit test suites in Parallel. Can be |
| enabled for a specific run by setting QUIBBLE_PHPUNIT_PARALLEL, or |
| explicitly specifying `phpunit-parallel` in the `--run` list. |
| `T361190 <https://phabricator.wikimedia.org/T361190>`_ |
| Arthur Taylor |
| |
| 1.8.0 (2024-05-30) |
| ------------------ |
| |
| Feature |
| ~~~~~~~ |
| * local_settings: Load DevelopmentSettings.php after setting MW_QUIBBLE_CI |
| `T359043 <https://phabricator.wikimedia.org/T359043>`_ |
| Kosta Harlan |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| * Add instructions for debugging Quibble runs. |
| Arthur Taylor |
| |
| 1.7.0 (2024-03-25) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Add support for ``FORCE_COLOR`` environment variable to enable color output |
| even when standard input is not a tty. |
| `T236222 <https://phabricator.wikimedia.org/T236222>`_ |
| Antoine Musso |
| * Remove `LocalSettings.php` before installing, if it is detected to have been |
| generated by Quibble (detected by if a line is ``# Quibble MediaWiki |
| configuration``). |
| `T218647 <https://phabricator.wikimedia.org/T218647>`_ |
| Antoine Musso |
| * Do not capture commands output in interactive mode. This lets bash to start |
| an interactive session when using ``quibble -c bash``. |
| `T360443 <https://phabricator.wikimedia.org/T360443>`_ |
| Antoine Musso |
| |
| Fixes and cleanups |
| ~~~~~~~~~~~~~~~~~~ |
| * Remove support to detect changes made to no more used PHP files extensions |
| (``.php5``, ``.inc``, ``.sample``). |
| Lucas Werkmeister |
| * When completing ``mediawiki/vendor`` with development requirements, instruct |
| ``composer require`` to run non interactively which lets it move some |
| requirements to development requirements. |
| `T354141 <https://phabricator.wikimedia.org/T354141>`_ |
| Mark Hershberger and Antoine Musso |
| * Force git to fetch tags being updated. |
| `T356247 <https://phabricator.wikimedia.org/T356247>`_ |
| Antoine Musso |
| * Remove use of `router.php` from PhpWebserver. |
| `T357070 <https://phabricator.wikimedia.org/T357070>`_ |
| Umherirrender |
| |
| Internal |
| ~~~~~~~~ |
| * Remove ``MW_COMPOSER_MERGE_MW_IN_VENDOR`` which has been used since ~ 2018. |
| `T354178 <https://phabricator.wikimedia.org/T354178>`_ |
| Antoine Musso |
| * Move LocalSettings template lookup to a method |
| Antoine Musso |
| * Remove obsolete comment about ``--color`` |
| Antoine Musso |
| |
| 1.6.0 (2023-12-13) |
| ------------------ |
| |
| Breaking changes |
| ~~~~~~~~~~~~~~~~ |
| |
| * Migrate from ``setup.py`` to ``pyproject.toml`` (PEP 517). This requires your |
| local copies of ``pip`` and ``setuptools`` to be upgraded to a sufficiently |
| recent version. |
| `T345093 <https://phabricator.wikimedia.org/T345093>`_ |
| |
| * Require tox version 4, which only affects Quibble developers. One can create |
| a local environment using ``tox devenv``. The optimization to share |
| environment directories betwen tox test envs have been removed since that is |
| no more supported by tox v4. |
| `T345695 <https://phabricator.wikimedia.org/T345695>`_ |
| `T348434 <https://phabricator.wikimedia.org/T348434>`_ |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Move MediaWiki install arguments to a standalone function and add unit |
| testing. |
| Antoine Musso |
| * Move ``LocalSettings.template`` logic to a method. |
| Antoine Musso |
| * Skip PostgreSQL test when it is not available. |
| Antoine Musso |
| * Remove unused ``util.php_version()``. |
| Antoine Musso |
| * In the CI full run tests, use a virtualenv to setup Quibble in order to |
| upgrade dependencies required to support ``pyproject.toml`` |
| Antoine Musso |
| * Add support for ``importlib.resources`` under python 3.9+. The deprecated |
| ``pkg_resources`` is still used under python 3.7/3.8. |
| Antoine Musso |
| |
| 1.5.6 (2023-09-19) |
| ------------------ |
| |
| Breaking change |
| ~~~~~~~~~~~~~~~ |
| * Remove ``MW_QUIBBLE_CI`` environment variable, introduced in 1.5.3. |
| |
| In PHP, check the ``MW_QUIBBLE_CI`` constant instead. This is set |
| both during all PHP and non-PHP stages (e.g. QUnit or api-testing), |
| except for pure unit tests (where LocalSettings doesn't load). |
| Those should not vary by environment. |
| |
| To detect Apache from within a Node.js process, |
| check the ``QUIBBLE_APACHE=1`` environment variable instead. |
| |
| Features |
| ~~~~~~~~ |
| * MariaDB now starts with ``--innodb-print-all-deadlocks`` which emit a |
| detailled report about database dead locks. Emitted to the error log, the |
| output can be found in ``$LOG_DIR/mysql-error.log``. |
| `T342088 <https://phabricator.wikimedia.org/T342088>`_ |
| Antoine Musso |
| * Replace deprecated setuptools ``license_file`` by ``license_files``. |
| Antoine Musso |
| * Raise ``setuptools-git-versioning`` requirements to at least 1.8.0 and move |
| its configuration from ``setup.py``to ``pyproject.toml``. |
| `See changelog <https://setuptools-git-versioning.readthedocs.io/en/stable/changelog.html#change-1.8.0>`_ |
| Antoine Musso |
| * Remove support for ``--run==all`` to run all stages which is the default. |
| Running all stages is now represented internally by an empty list. |
| Antoine Musso |
| * Add experimental ``--change`` to retrieve a change from Wikimedia Gerrit |
| instance. The retrieved metadata are used to set ``ZUUL_URL``, |
| ``ZUUL_PROJECT``, ``ZUUL_BRANCH`` and ``ZUUL_REF`` which overrides the |
| existing environmnent. |
| Antoine Musso |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| * Document how to test Quibble changes (see "Quick Start" in the readme). |
| Timo Tijhof |
| |
| |
| Internal |
| ~~~~~~~~ |
| * Remove parsoid from ``utils/ci-fullrun-extensions.sh``. |
| Antoine Musso |
| * Remove files remaining after removal of Docker support in 1.4.2. |
| Timo Tijhof |
| * Remove Sphinx setuptools integration (``build_sphinx``) and replace it by |
| ``sphinx-build``. |
| Antoine Musso |
| * Refresh Sphinx configuration file removing explicit defaults and comments. |
| Antoine Musso |
| |
| 1.5.5 (2023-07-14) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| |
| * Fix Parsoid CI after changes to use phpunit directly |
| `T90875 <https://phabricator.wikimedia.org/T90875>`_ |
| Subramanya Sastry |
| * Run PHPUnit unit tests after installing MediaWiki |
| `T227900 <https://phabricator.wikimedia.org/T227900>`_ |
| Daimona Eaytoy |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| |
| * commands: Shorten the descriptons of some commands |
| James D. Forrester |
| |
| Internal |
| ~~~~~~~~ |
| |
| * utils: fullrun-extensions: Clone SecurePoll |
| `T341840 <https://phabricator.wikimedia.org/T341840>`_ |
| Taavi Väänänen |
| |
| 1.5.4 (2023-04-03) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| |
| * Switch generated LocalSettings.php to use ``AutoLoader::registerNamespaces`` |
| instead of internal ``AutoLoader->psr4Namespaces``. |
| `T332930 <https://phabricator.wikimedia.org/T332930>`_ |
| Arlo Breault |
| * Set ``--pagepath`` option in the ``maintenance/addSite.php`` call. |
| `T331280 <https://phabricator.wikimedia.org/T331280>`_ |
| Jakob Warkotsch |
| * Set ``MW_SKIP_EXTERNAL_DEPENDENCIES`` environment variable during |
| mediawiki/vendor jobs. |
| `T333412 <https://phabricator.wikimedia.org/T333412>`_ |
| Timo Tijhof |
| |
| 1.5.3 (2023-03-09) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| |
| * Introduce ``MW_QUIBBLE_CI`` environment variable (value ``1``). |
| `T331621 <https://phabricator.wikimedia.org/T331621>`_ |
| Kosta Harlan |
| |
| Internal |
| ~~~~~~~~ |
| |
| * Drop support for Python 3.5 and 3.6 |
| * Switch to ``subprocess.Popen()`` for most command invocations, |
| instead of ``subprocess.check_call()`` |
| `T331061 <https://phabricator.wikimedia.org/T331061>`_ |
| Kosta Harlan & Antoine Musso |
| |
| 1.5.2 (2023-03-06) |
| ------------------- |
| |
| Internal |
| ~~~~~~~~ |
| * reporting: Include ``pipeline`` in payload |
| `T331236 <https://phabricator.wikimedia.org/T331236>`_ |
| Martin Urbanec |
| * reporting: Include ``output`` in payload |
| `T331061 <https://phabricator.wikimedia.org/T331061>`_ |
| Kosta Harlan |
| * reporting: Command name can be a string |
| `T323750 <https://phabricator.wikimedia.org/T323750>`_ |
| Kosta Harlan |
| |
| 1.5.1 (2023-03-01) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * reporting: Include ``CalledProcessError.cmd`` in payload |
| `T330750 <https://phabricator.wikimedia.org/T330750>`_ |
| Kosta Harlan |
| |
| 1.5.0 (2023-02-21) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Allow sending build failure data to external endpoint |
| `T323750 <https://phabricator.wikimedia.org/T323750>`_ |
| Kosta Harlan |
| * maintenance: Use run.php if it exists (MW 1.40+) |
| `T326333 <https://phabricator.wikimedia.org/T326333>`_ |
| Antoine Musso, James Forrester |
| * Warn if files are left over after git clean -xqdf |
| `T321795 <https://phabricator.wikimedia.org/T321795>`_ |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Add Python 3.9 testing |
| * black: Pin major version for black |
| * black: Apply formatting fixes |
| |
| 1.4.7 (2022-10-25) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Set ``QUIBBLE_APACHE=1`` environment variable in the `api-testing` stage as |
| well as when running user scripts (`--command`). |
| `T320935 <https://phabricator.wikimedia.org/T320935>`_ |
| Kosta Harlan |
| * Enhance `--help` usage output by splitting options in different argument |
| groups. |
| Antoine Musso |
| |
| Bug fix |
| ~~~~~~~ |
| * Handle invalid Unicode received from tests. |
| `T318029 <https://phabricator.wikimedia.org/T318029>`_ |
| Antoine Musso |
| |
| 1.4.6 (2022-08-31) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Allow overriding the npm command by setting the `NPM_COMMAND`. Currently |
| supports https://pnpm.io/. |
| `T305525 <https://phabricator.wikimedia.org/T305525>`_ |
| Kosta Harlan |
| * Run `maintenance/addSite.php` to enable Wikibase wikis to link to themselves. |
| Michael Große |
| `T314586 <https://phabricator.wikimedia.org/T314586>`_ |
| |
| Internal |
| ~~~~~~~~ |
| * Change Sphinx documentation default language from `None` to `en` |
| Antoine Musso |
| * Update image names in README |
| Lucas Werkmeister |
| |
| 1.4.5 (2022-03-28) |
| ------------------ |
| * In ``phpbench`` use ``git-checkout`` instead of ``git-switch`` which has been |
| introduced in Git 2.27 and is not available by default in Debian Buster. |
| `T291549 <https://phabricator.wikimedia.org/T291549>`_ |
| Kosta Harlan |
| |
| 1.4.4 (2022-03-17) |
| ------------------ |
| * Properly setup memcached. The CLI installer automatically set |
| ``$wgMemCachedServers = []`` which disabled Memcached configuration. It is |
| now set to ``[ '127.0.0.1:11211' ]``. |
| `T300340 <https://phabricator.wikimedia.org/T300340>`_ |
| Kosta Harlan |
| * Set ``$wgMemCachedPersistent = true``. |
| |
| 1.4.3 (2022-03-03) |
| ------------------ |
| * Fix typo in PHP Constant: ``MW_QIBBLE_CI`` -> ``MW_QUIBBLE_CI``. |
| Kosta Harlan |
| |
| 1.4.2 (2022-03-03) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Usage of PHP global variable ``$wgWikimediaJenkinsCI`` is now deprecated. |
| Code should instead check for existence of PHP constant ``MW_QUIBBLE_CI``. |
| Daniel Kinzler |
| |
| Bug fix |
| ~~~~~~~ |
| * Fix backend teardown when no server exists (such as SQLite). |
| `T302226 <https://phabricator.wikimedia.org/T302226>`_ |
| Kosta Harlan |
| |
| Internal |
| ~~~~~~~~ |
| * Remove ``Dockerfile``. It was not used for Wikimedia CI, for local |
| development one can extend the official images in `integration/config |
| <https://gerrit.wikimedia.org/g/integration/config/>`_. |
| Kosta Harlan |
| * In ``utils/ci-full*`` scripts, stop using ``$ZUUL_REF``. It is set by CI and |
| we should not override it. That caused build to use obsolete code from our |
| Zuul system. |
| `T302707 <https://phabricator.wikimedia.org/T302707>`_ |
| Antoine Musso |
| |
| 1.4.1 (2022-02-16) |
| ------------------ |
| * Stop definining ``MW_INSTALL_PATH`` constant will be defined by MediaWiki |
| directly. |
| `T300301 <https://phabricator.wikimedia.org/T300301>`_ |
| Daniel Kinzler |
| |
| 1.4.0 (2022-02-02) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Set Memcached as main cache type if extension is loaded |
| `T300340 <https://phabricator.wikimedia.org/T300340>`_ |
| Kosta Harlan |
| * phpbench: Support aggregate reports |
| `T291549 <https://phabricator.wikimedia.org/T291549>`_ |
| Kosta Harlan |
| |
| Internal |
| ~~~~~~~~ |
| * Run post-dependency install, pre-test steps in parallel |
| `T225730 <https://phabricator.wikimedia.org/T225730>`_ |
| Kosta Harlan |
| * Split extension and skin npm and composer tests |
| Adam Wight |
| * Split core npm and composer tests |
| Adam Wight |
| * BrowserTests: Rework npm parallel install using ParallelCommand |
| Kosta Harlan |
| * Parallelism as a command object |
| Adam Wight |
| * ci-fullrun: Add extension variant |
| Kosta Harlan |
| |
| 1.3.0 (2022-01-17) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Set ``QUIBBLE_APACHE`` environment variable (value ``1``) when using an |
| external web server (``--web-backend=external``). This can be used to skip |
| tests that might have issues when web backend requests are run concurrently. |
| `T297480 <https://phabricator.wikimedia.org/T297480>`_ |
| Kosta Harlan |
| * Option to run ``npm install`` in parallel when running Browsertests: |
| ``--parallel-npm-install``. This should cut the overall build time |
| significantly. |
| `T226869 <https://phabricator.wikimedia.org/T226869>`_ |
| Kosta Harlan |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| * Hide the table of content to reduce clutterness. |
| https://doc.wikimedia.org/quibble/ |
| Antoine Musso |
| * Move LICENSE out of the main page to its own page. |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Update NodeJS to version 14 in the example Dockerfile. |
| `T294931 <https://phabricator.wikimedia.org/T294931>`_ |
| Kosta Harlan |
| |
| Work related to parallelization of the Quibble stages: |
| |
| * Introduce utilities to redirect stdout and stderr to a logger |
| ``quibble.util.redirect_all_streams`` |
| Adam Wight |
| * Wrapper to pretty-print parallel job progress |
| ``quibble.util.ProgressReporter`` |
| Adam Wight |
| |
| 1.2.0 (2021-10-25) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Support multiple workers in PHP 7.4+ web server. It already could be set via |
| `PHP_CLI_SERVER_WORKERS` environment variable. One can now set it via the |
| `--web-php-workers` option. |
| `T259456 <https://phabricator.wikimedia.org/T259456>`_ |
| Antoine Musso |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Replace `setuptools_scm` with `setuptools-git-versioning`. Fixes installation |
| issue under Python 3.5 or with setuptools 45+. |
| `T292772 <https://phabricator.wikimedia.org/T292772>`_ |
| Antoine Musso |
| * Fix MySQL user creation on Debian Bullseye. |
| Antoine Musso |
| |
| Misc |
| ~~~~ |
| * Disable PHPUnit Junit report by default. Can be manually enabled with the |
| `--phpunit-junit` option if still needed. |
| `T256402 <https://phabricator.wikimedia.org/T256402>`_ |
| Antoine Musso |
| |
| 1.1.1 (2021-10-08) |
| ------------------ |
| |
| Internal |
| ~~~~~~~~ |
| * phpbench: Run composer install first |
| `T291549 <https://phabricator.wikimedia.org/T291549>`_ |
| Kosta Harlan |
| |
| 1.1.0 (2021-10-06) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Add support for executing phpbench tests when repository has `composer phpbench` script defined. |
| `T291549 <https://phabricator.wikimedia.org/T291549>`_ |
| Kosta Harlan |
| |
| Internal |
| ~~~~~~~~~ |
| * test: fix flappy test for core being cloned first |
| * setup.cfg: replace dashes with underscores |
| |
| 1.0.1 (2021-07-23) |
| ------------------- |
| * Revert *Load Parsoid from `vendor` as fallback and set configuration*. |
| The feature caused a regression on Wikimedia CI. |
| `T287001 <https://phabricator.wikimedia.org/T287001>`_ |
| C. Scott Ananian |
| |
| 1.0.0 (2021-07-16) |
| ------------------ |
| |
| Features |
| ~~~~~~~~ |
| * Add skins for composer merge plugin |
| `T280506 <https://phabricator.wikimedia.org/T280506>`_ |
| Spotted by Lens0021 |
| Antoine Musso |
| * Use glob pattern when generating `composer.local.json`. |
| |
| We previously forged the `composer.json` by explicitly referencing |
| `composer.json` files to load based on the list of repositories to clone and |
| the deprecated `EXT_DEPENDENCIES`/`SKIN_DEPENDENCIES` environment variable. |
| |
| With globbing, it makes it easier to reuse an existing workspace without |
| having to relist all the dependencies. |
| Kosta Harlan. |
| * Introduce composer `phpunit:entrypoint` script to run the MediaWiki core |
| PHPUnit tests. If not present (for example in old release branches) we still |
| fallback to `maintenance/phpunit.php`). |
| `T90875 <https://phabricator.wikimedia.org/T90875>`_ |
| Kosta Harlan |
| * Add support for connecting to already running MySQL. |
| Use `--db-is-external` would cause Quibble to not spawn a one off MySQL, it |
| will instead attempt to connect to localhost with the default credentials: |
| `root` user with no password. |
| |
| The option is MySQL specific, it is silently ignored for SQLite or PostgreSQL. |
| |
| NOTE: the `wikidb` database is now dropped if it exists. |
| Kosta Harlan |
| * Load Parsoid from `vendor` as fallback and set configuration. |
| `T218534 <https://phabricator.wikimedia.org/T218534>`_ |
| `T227352 <https://phabricator.wikimedia.org/T227352>`_ |
| Kosta Harlan |
| |
| Internal |
| ~~~~~~~~ |
| * Add a few more directories to git/docker/tox ignore lists |
| Kosta Harlan |
| |
| 0.0.47 (2021-05-05) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Test Parsoid as if it were an extension |
| `T271863 <https://phabricator.wikimedia.org/T271863>`_ |
| C. Scott Ananian |
| * Run `composer test-some` with paths. A new CI entry point which expect a list |
| of files to be passed as argument. Quibble passes the list of files that have |
| changed in HEAD. |
| `T199403 <https://phabricator.wikimedia.org/T199403>`_ |
| James D. Forrester |
| * When running a user script (`quibble -c <command>`), inject MediaWiki |
| environment variables (`MW_SERVER`, `MW_SCRIPT_PATH`, `MEDIAWIKI_USER` and |
| `MEDIAWIKI_PASSWORD`). |
| Antoine Musso |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Under Python 3.5, do not use setuptools_scm 6 which fix installation under |
| Debian Stretch. |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Make `black` to show the actual errors (`--diff`). |
| Antoine Musso |
| * Use class name for MySQL str |
| Antoine Musso |
| |
| 0.0.46 (2020-01-07) |
| ------------------- |
| |
| Highlights |
| ~~~~~~~~~~ |
| |
| Python 3.5+ and 3.8 |
| ^^^^^^^^^^^^^^^^^^^ |
| |
| Explicitly require Python 3.5 or later which has been included in Debian since |
| 2017 (Stretch) and Ubuntu 2016 (Xenial). |
| |
| Python 3.8 is supported. |
| |
| Apache support |
| ^^^^^^^^^^^^^^ |
| |
| Since its conception Quibble has been using a PHP built-in server which until |
| PHP 7.4 serves requests serially and lacks extended configuration that could be |
| find in other web servers. This release bring in support to point Quibble to |
| an external managed web server exposing MediaWiki. |
| |
| This is done by using `--web-backend=external` and setting `--web-url` to the |
| base of the MediaWiki installation (without `index.php`). See `./docker` for an |
| example of how to spawn Apache and php-fpm using supervisord which is used by |
| the example `/DockerFile`. |
| |
| `T225218 <https://phabricator.wikimedia.org/T225218>`_ |
| Adam Wight && Kosta Harlan |
| |
| Features |
| ~~~~~~~~ |
| * Recognizes `podman <https://podman.io/>`_ as a container environment. |
| Marius Hoch |
| * Run phpunit-unit stage before MediaWiki installation. |
| `T266441 <https://phabricator.wikimedia.org/T266441>`_ |
| Kosta Harlan |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Fix regression which made us run linters for repositories besides MediaWiki |
| extensions or skins (eg: mediawiki/services/parsoid). |
| `T263500 <https://phabricator.wikimedia.org/T263500>`_ |
| Antoine Musso |
| * Fix Xvfb options which were improperly concatenated and thus ignored: |
| * Drop `-ac` (disable host-based access control mechanisms) since it was |
| never taken in account. |
| * Framebuffer is now explicitly set to Xvfb default: display `:0` and |
| `1280x1024x24`. |
| Adam Wight && Antoine Musso |
| * Mute zuul.CloneMapper logging when running browser tests. |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Use `black <https://black.readthedocs.io/>`_ for code formatting. |
| Kosta Harlan && Adam Wight && Antoine Musso |
| * Enhance code to more closely match PEP8. |
| Adam Wight |
| * Enhance the example `Dockerfile`: |
| * Drop an unused FROM |
| * Collapse build steps to minimize intermediate layers |
| * Fix a typo that prevented deletion of `/var/lib/apt/lists` |
| * Spawn Apache2 with supervisor and change the entrypoint to use it as the |
| web backend. |
| Adam Wight |
| * Fix rst links in the changelog. |
| Antoine Musso |
| * Enhance how options are passed to `pg_virtualenv` |
| Antoine Musso |
| * Add CI test environment for Python 3.8. |
| Antoine Musso |
| * Run `flake8 <https://flake8.pycqa.org/>`_ against all supported Python |
| versions. |
| Antoine Musso |
| |
| 0.0.45 (2020-09-18) |
| ------------------- |
| * Fix database dumping `--dump-db-postrun`. |
| `T239396 <https://phabricator.wikimedia.org/T239396>`_ |
| Antoine Musso |
| * Load mediawiki/services/parsoid as an extension. |
| `T227352 <https://phabricator.wikimedia.org/T227352>`_ |
| C. Scott Ananian |
| * Remove hardcoded MediaWiki settings which were kept to support MediaWiki |
| before 1.30 and cleanup settings that are now the default. |
| Timo Tijhof |
| * Add support to point to an existing webserver instead of relying on the |
| internally PHP built-in web server. Can be enabled with |
| `--web-server=external`. The web host and port are configurable by passing |
| the URL to `--web-url`. |
| `T225218 <https://phabricator.wikimedia.org/T225218>`_ |
| Adam Wight |
| * Report python version. |
| Adam Wight |
| |
| Packaging |
| ~~~~~~~~~ |
| * Define python modules dependencies in setup.cfg instead of requirements.txt. |
| `T235118 <https://phabricator.wikimedia.org/T235118>`_ |
| Antoine Musso |
| * Updated releasing documentation (`RELEASING.rst`). |
| Antoine Musso |
| |
| Internal |
| ~~~~~~~~ |
| * Delay database initialization until it is actually started. |
| Adam Wight |
| * General cleanups in `QuibbleCmd.build_execution_plan` grouping all variables |
| at the top of the method, using variables to avoid repeating methods calls. |
| Adam Wight |
| * Manage database and web backends outside of commands. They are now in an |
| ExitStack() context manager which is entered just before executing the plan. |
| `T225218 <https://phabricator.wikimedia.org/T225218>`_ |
| Adam Wight |
| |
| Testing |
| ~~~~~~~ |
| * Migrate the internal testsuite from Nose to pytest |
| Antoine Musso |
| `T254610 <https://phabricator.wikimedia.org/T254610>`_ |
| * Add high level tests for building the execution plan which would have helped |
| caught two reverts we did in 0.0.44. See `tests/plans/` which can then be run |
| using: `tox -e unit -- tests/tests_plans.py`. |
| Antoine Musso |
| `T211702 <https://phabricator.wikimedia.org/T211702>`_ |
| * Add an entry point for CI to run Quibble: `utils/ci-fullrun.sh`. |
| `T235118 <https://phabricator.wikimedia.org/T235118>`_ |
| Antoine Musso |
| * Run tests in CI with python 3.5, 3.6, 3.7 and describe all tox virtualenv. |
| The `unit` virtualenv has been renamed `py3-unit`. |
| Antoine Musso |
| |
| 0.0.44 (2020-06-04) |
| ------------------- |
| |
| Misc |
| ~~~~ |
| * Output mysql/mariadb and postgresql version |
| Reedy |
| * Do not create log directory when building the plan |
| Antoine Musso |
| * Revert "Remove deprecated dump-autoload" |
| Adam Wight |
| * Revert "Wipe repo with non-git commands" |
| Antoine Musso |
| * Revert "Clone only the target project at first" |
| Antoine Musso |
| * Revert "Drop --dry-run parameter" |
| Antoine Musso |
| |
| 0.0.43 (2020-05-05) |
| ------------------- |
| |
| Misc |
| ~~~~ |
| * Remove deprecated dump-autoload |
| Adam Wight |
| `T181940 <https://phabricator.wikimedia.org/T181940>`_ |
| * Wipe repo with non-git commands |
| Adam Wight |
| `T211702 <https://phabricator.wikimedia.org/T211702>`_ |
| |
| 0.0.42 (2020-04-16) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Exclude phpunit group Standalone from the Database run |
| James D. Forrester |
| * Clone only the target project at first |
| Adam Wight |
| `T211702 <https://phabricator.wikimedia.org/T211702>`_ |
| * Docker: Migrate local docker to buster/php73/node10 |
| James D. Forrester |
| |
| Misc |
| ~~~~ |
| * Remove redundant logging |
| Adam Wight |
| * Extract git_clean into a function |
| Adam Wight |
| * Drop redundant "Command" suffix |
| Adam Wight |
| * Map mediawiki/services/parsoid to /workspace/src/services/parsoid |
| C. Scott Ananian |
| * Extract execution decorator |
| Adam Wight |
| * Provide GitClean as a command |
| Adam Wight |
| * Logspam: Set Flow's default content format to wikitext |
| Kosta Harlan |
| |
| 0.0.41 (2020-04-08) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Prefer 'npm ci' instead of 'npm prune' + 'npm install' |
| Timo Tijhof |
| `T234738 <https://phabricator.wikimedia.org/T234738>`_ |
| * Add phpunit-standalone, for phpunit --group Standalone |
| James D. Forrester |
| `T225068 <https://phabricator.wikimedia.org/T225068>`_ |
| |
| Misc |
| ~~~~ |
| * RELEASING: Drop reference to now-shut qa mailing list |
| James D. Forrester |
| * Split default_stages out into known_stages |
| James D. Forrester |
| |
| 0.0.40 (2020-01-08) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Disable color codes around log level words in CI |
| Timo Tijhof |
| `T236222 <https://phabricator.wikimedia.org/T236222>`_ |
| * Update Quibble to use api-testing npm package |
| Clara Andrew-Wani |
| `T236680 <https://phabricator.wikimedia.org/T236680>`_ |
| * phpunit: Drop --debug-tests command, killed off in PHPUnit 8 |
| James D. Forrester |
| `T192167 <https://phabricator.wikimedia.org/T192167>`_ |
| |
| Misc |
| ~~~~ |
| * Chronometer emits folding markers |
| Adam Wight |
| `T220586 <https://phabricator.wikimedia.org/T220586>`_ |
| * Drop HHVM support |
| Adam Wight |
| `T236019 <https://phabricator.wikimedia.org/T236019>`_ |
| * Drop --dry-run parameter |
| Adam Wight |
| |
| 0.0.39 (2019-10-18) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Enable MediaWiki REST API for testing (/rest.php). |
| Clara Andrew-Wani |
| `T235564 <https://phabricator.wikimedia.org/T235564>`_ |
| |
| Misc |
| ~~~~ |
| * Ensure consistency between ``$wgServer`` and ``MW_SERVER`` environment |
| variable. |
| Antoine Musso |
| `T235023 <https://phabricator.wikimedia.org/T235023>`_ |
| |
| 0.0.38 (2019-10-09) |
| ------------------- |
| |
| Bug fix |
| ~~~~~~~ |
| * Set ``$wgServer`` to ``127.0.0.1`` instead of ``localhost`` to be consistent |
| with the server name testsuite receive via ``MW_SERVER``. Else session is |
| lost when a user get redirected after logging to ``localhost`` when the |
| session has been created via ``127.0.0.1``. |
| Antoine Musso |
| `T235023 <https://phabricator.wikimedia.org/T235023>`_ |
| |
| 0.0.37 (2019-10-09) |
| ------------------- |
| |
| Bug fix |
| ~~~~~~~ |
| * Fix missing quibble/mediawiki/local_settings.php |
| |
| 0.0.36 (2019-10-08) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Set ``$wgServer`` when installing. |
| Antoine Musso |
| `T233140 <https://phabricator.wikimedia.org/T233140>`_ |
| * Display the time it took for a stage to complete. |
| Adam Wight |
| * Log version of external commands we rely on (composer, npm, php..) |
| Adam Wight |
| `T181942 <https://phabricator.wikimedia.org/T181942>`_ |
| * Allow appending values to MediaWiki generated ``LocalSettings.php``, now |
| renamed to ``LocalSettings-installer.php`` and included. That allows us to |
| easily insert settings either before or after the original settings file. |
| Daniel Kinzler and Adam Wight |
| * Set ``$wgSecretKey`` to an arbitrary value, overriding the one set by |
| the MediaWiki installer. Lets one run jobs via ``Special::RunJobs``. |
| Daniel Kinzler |
| `T230340 <https://phabricator.wikimedia.org/T230340>`_ |
| * Set ``$wgEnableUploads = true``, overriding the value set by the MediaWiki |
| installer. |
| Adam Wight |
| `T190829 <https://phabricator.wikimedia.org/T190829>`_ |
| and `T199939 <https://phabricator.wikimedia.org/T199939>`_ |
| |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Exit on git clone failure. |
| Antoine Musso |
| `T233143 <https://phabricator.wikimedia.org/T233143>`_ |
| |
| Misc |
| ~~~~ |
| * Migrate the Python module to use ``setup.cfg``. Add pypi metadata. Use |
| ``setuptools_scm`` to determine the version. |
| Antoine Musso |
| * Determine application version using |
| `setuptools_scm <https://pypi.org/project/setuptools-scm/>`_. |
| Antoine Musso |
| * Use lazy formattiing for logging calls. |
| Antoine Musso |
| * Release check list documented in ``RELEASING.rst``. |
| Antoine Musso |
| |
| 0.0.35 (2019-09-17) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Set cache directory (``$wgCacheDirectory``). Notably switches |
| LocalisationCache from database to cdb files making tests faster. |
| Amir Sarabadani |
| `T225730 <https://phabricator.wikimedia.org/T225730>`_ |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Fix default logdir that had double `workspace` prefixes. |
| Adam Wight |
| * Deduplicate projects which caused Selenium tests for a repository having them to be run twice. |
| Adam Wight |
| `T231862 <https://phabricator.wikimedia.org/T231862>`_ |
| * Disable php output buffering in DevWebServer which aligns it with production |
| usage and makes Fresnel performance reports more real. |
| Amir Sarabadani |
| `T219694 <https://phabricator.wikimedia.org/T219694>`_ |
| |
| Misc |
| ~~~~ |
| * Reduce side-effects and make code easier to understand. |
| Adam Wight |
| `T231862 <https://phabricator.wikimedia.org/T231862>`_ |
| |
| 0.0.34 (2019-07-25) |
| ------------------- |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * ``--packages-source=vendor`` caused selenium-test to fail since vendor.git |
| lacks a package.json. |
| Antoine Musso |
| `T229020 <https://phabricator.wikimedia.org/T229020>`_ |
| |
| 0.0.33 (2019-07-25) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Options to clone requirements from extension registration informations. When |
| passing ``--resolve-requires``, Quibble will parse extension registration |
| files (``extension.json`` and ``skin.json``) to find dependencies that needs |
| to be cloned. |
| |
| With the addition of ``--fail-on-extra-requires``, Quibble would fail when |
| the list of repositories cloned with ``--resolve-requires`` does not match |
| the repositories passed to the command line. Can be used to ensure an |
| integration job has the propeer set of dependencies hardcoded in. |
| |
| Antoine Musso |
| `T193824 <https://phabricator.wikimedia.org/T193824>`_ |
| |
| * ``npm install`` now uses ``--prefer--offline`` to skip staleness checks for |
| packages already present in the local cache (`npm documentation |
| <https://docs.npmjs.com/misc/config#prefer-offline>`_). |
| |
| * Support running PHPUnit unit tests. The ``phpunit-unit`` stage runs MediaWiki |
| PHPUnit tests which do not require a MediaWiki installation. |
| Kosta Harlan |
| `T87781 <https://phabricator.wikimedia.org/T87781>`_ |
| |
| * Run node based Selenium tests in each repo. |
| Adam Wight |
| `T199116 <https://phabricator.wikimedia.org/T199116>`_ |
| |
| 0.0.32 (2019-06-24) |
| ------------------- |
| |
| Features |
| ~~~~~~~~ |
| * Default to use 4 git workers when cloning repositories. Can be changed via |
| ``--git-parallel``. |
| Antoine Musso |
| `T211701 <https://phabricator.wikimedia.org/T211701>`_ |
| |
| * Separate planning and execution phases. The commands to run have been |
| extracted to standalone classes, the commands to run are now appended to a |
| list to build an execution plan which is later executed. The execution plan |
| can be inspected withouth execution by using ``--dry-run``. |
| Adam Wight |
| `T223752 <https://phabricator.wikimedia.org/T223752>`_ |
| |
| * ``--skip-install`` skips MediaWiki installation entirely. Can be used for |
| example to run a statistical analysis. |
| Kosta Harlan |
| |
| Bug fixes |
| ~~~~~~~~~ |
| * Better argument handling, several options accepted multiple values |
| (``nargs='*'``) which could result in unexpected behaviors such as a project |
| to clone to be considered as a stage to build. The proper way was to use a |
| double dash (``--``) to delimitate between options and arguments, but that is |
| often forgotten. Instead: |
| |
| * ``--run`` and ``--skip`` are now comma separated values. |
| |
| * ``--commands`` is deprecated in favor of passing multiple ``--command`` |
| (short aliased with ``-c``). |
| |
| Antoine Musso |
| `T218357 <https://phabricator.wikimedia.org/T218357>`_ |
| |
| Misc |
| ~~~~ |
| * ``EXT_DEPENDENCIES`` and ``SKIN_DEPENDENCIES`` are deprecated and Quibble |
| emits a warnings when one of those environement variables is set. The |
| repositories should be passed as command line arguments. |
| Antoine Musso |
| `T220199 <https://phabricator.wikimedia.org/T220199>`_ |
| |
| 0.0.31 and earlier |
| ------------------ |
| |
| See git changelog. |