Skip to content

Latest commit

 

History

History
186 lines (128 loc) · 6.03 KB

File metadata and controls

186 lines (128 loc) · 6.03 KB

Change Log

All notable changes to this project will be documented in this file. Please refer to the release notes for more detailed information, e.g. how to upgrade.

This project adheres to Semantic Versioning.

This release added support for a REST API, cover letter parsing, and the latest versions of both Django and Python.

Added

  • REST API support (Django >= 1.8 only)
  • Cover letter support
  • Django debug toolbar support for developers
  • Django 1.9 and 1.10 support
  • Python 3.5 support
  • Docker support for developers
  • Sample deployment documentation

Changed

  • The parsemail.py and parsearchive.py scripts have been replaced by the parsemail and parsearchive management commands
  • Significant rework of tests
  • A user's name will now be updated on each email received from them

Fixed

  • Numerous typos and other issues in both documentation and code
  • Various UI and performance improvements
  • Checks are now displayed with their associated owner, thus preventing spoofing
  • user at domain-style email address, commonly found in Mailman archives, are now handled correctly
  • Unicode characters transmitted over the XML-RPC API are now handled correctly under Python 3

Removed

  • parser.py can no longer be exected as a script

Deprecated

  • Django 1.7 support will be removed in a future release

[1.1.1] - 2016-03-29

This release fixed a number of issues with the 1.1.0 release.

Fixed

  • Numerous issues in the parsemail.py, parsearchive.py and parsemail.sh scripts
  • Permissions of database tables as set by grant-all SQL scripts
  • Misc. UI and performance improvements

1.1.0 - 2016-03-03

This release overhauled the web UI and added support for automatic delegation of patches, test result capture, and Python 3.4.

Added

  • Python 3.4 support
  • Check feature, which can be used to report the status of tests
  • Automatic delegation of patches based on file path
  • Automated documentation for the XML-RPC API. This can be found at the '/xmlrpc' in most Patchwork deployments
  • Vagrant support for developers
  • Selenium-based UI tests for developers

Changed

  • Overhauled the web UI to reflect modern web standards
  • Patches can now be delegated to any Patchwork user
  • Significant updates to the documentation
  • Assorted cleanup tasks and bug fixes

1.0.0 - 2015-10-26

Added

  • Patch tag infrastructure feature, which provides a quick summary of patch "tags" (e.g. Acked-by, Reviewed-by, ...) found in a patch and its replies
  • Django 1.7 and Django 1.8 support
  • Django staticfiles support, which should be used to gather static files for for serving via a web server
  • tox support for developers

Changed

  • Migrations are now executed using the Django migrations framework
  • Moved Patchwork source from the apps directory to the top level directory
  • The cron Django management command has replaced the bin/patchwork-cron script
  • Rewrote documentation to reflect changes in development and deployment best practices over the past few years
  • Reworked requirements.txt and settings.py files

Removed

  • Django 1.5 support
  • Defunct Python 2.5 code
  • Numerous dead files/code

Deprecated

  • Django 1.6 support will be removed in a future release
  • Raw SQL migration scripts, previously found at lib/sql/migration, will no longer be provided. Use the Django Migration framework found in Django 1.7 and above

Additional notes

This version changes a few admin-visible components of Patchwork, so upgrading involves a few steps.

Update settings

By default, settings are read from patchwork/settings/production.py. To migrate, use the provided template:

$ cp patchwork/settings/production{.example,}.py

Merge your previous settings, usually located in apps/local_settings.py, to this file.

Fix external references

Any scripts or tools that call Patchwork applications, such as parsemail.sh, must be updated to reference the new location of these scripts. To do this, simply remove apps/ from the path, i.e. apps/patchwork/ becomes patchwork.

In addition, any scripts that set the DJANGO_SETTINGS_MODULE environment variable will need to be updated to reflect the new location, typically:

DJANGO_SETTINGS_MODULE=patchwork.settings.production

Finally, as the patchwork-cron.py script has been replaced by the cron management command, any references to the former should be updated to the latter. The cron management command can be called like so:

$ ./manage.py cron

Migrate to Django Migrations

Future database migrations will be implemented using Django Migrations, rather than raw SQL scripts. Before switching to Django migrations, first apply any unapplied migrations in the lib/sql/migration folder. For example, on postgres:

$ psql -f lib/sql/migration/015-add-patch-tags.sql patchwork
$ psql -f lib/sql/grant-all.postgres.sql patchwork

Once applied, configure the required Django Migration tables using the migrate managment command:

$ ./manage.py migrate --fake-initial

Migrate to Django Staticfiles

Static content should now be located in the folder indicated by STATIC_ROOT. This should point to somewhere sensible, such as the absolute path of htdocs/static in the Patchwork tree. Configure the STATIC_ROOT setting in your settings file, then run the collectstatic management command:

$ ./manage.py collectstatic

Finally, update your webserver's configuration to serve the static content from this new location. Refer to the sample web configuration files provided in lib for more information.

0.9.0 - 2015-03-22

NOTE: 1.0.0 was the first release of Patchwork adopting semantic versioning. For information on "0.9.0" and before, please refer to Git logs.