20 Twenty
Django-Music-Publisher (DMP) 20 "Twenty"
It turned out that many music publishers have shown interest in DMP, but the installation process was not simple enough for them. Although installing DMP as a Django app via pip
still works, the focus completely shifted to installing it as a complete project. Deploying to Heroku is now the default installation method.
All settings are now "flat", no dictionaries, lists, etc. Migration from the previous version might not be straightforward, but it had to be done. Database migrations are now squashed into two files. One with everything in the previous major version, and one with the differences since.
Django 3.0 makes the deployment much simpler, as it can now create a superuser from environment variables, so the version was bumped up. Sentry can now be used just by adding DSN to the settings.
Settings have been added that represent a global publisher agreement template. 50%/100%/100% is still the default, but anything less than that goes as well. As a consequence, writers can now also have mechanical and synchronization affiliations.
CWR 2.1 Revision 8 came out in late 2019, dealing with senders with 10-digit IPI name numbers. DMP was updated to comply. List of societies now includes all societies from CISAC.
Imported CWR acknowledgement files are now saved and can be previewed with basic syntax highlighting, that additionally, highlights rejected transactions and registrations.
One of the two JSON export formats was dropped, it was just confusing with no added value.
General documentation has been altered as well. It is now presumed that the reader knows something about music publishing and nothing about software development. Relevant videos from Music Pub Cartoons were added to the documentation.
Since CWR 3.0 specification came out with terminology more modern than in 2.x, DMP has been shifting as well. This process will continue until CWR 3.1 is fully supported.