Django Music Publisher 19.7 Metanoia
First a little bit about where the project is now. 19.7 is in alpha. All features that will be present in the final release are present. Unit and integration tests are not yet at 100%, neither is the technical documentation.
18.7 to 18.11
When I started working on Django Music Publisher in July 2018, I made it only as a proof-of-concept for CWR-related API I had finished just a few weeks before. I released the next version just one month later, then another in the next month, then another two months after the third one … it pretty much seemed like a Fibonacci sequence…
With version 19.1, Django Music Publisher has become pretty complete and had all the main features I originally envisioned and it was no longer dependent on my API. It became truly free software. And it was also the first version I properly planned.
In January, I started DMP.guru, a service that provides installation, simplified configuration, hosting, regular upgrades and technical maintenance for Django Music Publisher instances for a small monthly fee.
Music Pub Cartoons
I started making promotional/educational cartoonish videos. Pretty geeky, I am told. Anyway, for the first five weeks, Django Music Publisher was the main topic. Once again, people will think that it is my main product. Well, I guess other 30 videos in the “opening season” will change that.
There are several reasons why it is July. I usually have a bit more time in July. Django, the web framework Django Music Publisher is built upon. And, well, to release it a year after the initial version also somehow feels right. But, what is new?
Django 2.2 LTS and Other Dependencies
This is important. Django releases an LTS (long term support) version every two years. It has all the features this project needs for the next two years, so this simplifies things. It will be the only supported version until 2021.
Cleaning up under the hood
Most of the time, developers just add more code. I am no exception here. After a while, however, things get messy. So, I reviewed pretty much everything and decided to completely rewrite JSON exports, CWR generation, and most of the tests.
Common Works Registration 3.0
CWR 3.0 submissions and ISWC requests are included, now with basic syntax highlighting included in the open-source code. And they are downloaded zipped, in accordance with CWR 3.0 delivery specs.
Multiple Recordings per Work, Multiple Releases (Albums)
Multiple recordings per work can now be added. Each recording can now be included in multiple releases and there is a clear distinction between library and commercial releases. This will become extremely important in the future.
New JSON Export Formats
The data can now be exported in two JSON formats (normalized and denormalized), and they are quite verbose. And the data can be turned into CWR, DDEX, and many other formats. Actually, this is what Django Music Publisher does under the hood.
The interface has also received many small improvements. Filters now automatically turn into pulldown menus when the number of options is four or more. Navigation between related objects is now faster and far more intuitive. Etc.
The documentation is shorter but more precise. It also has examples of some not-so-obvious features. Below is a screenshot from the documentation explaining how to enter co-published works.
Gone with the Wind
Several things are gone, most notably the support for multiple entities in US PROs. It was a hack, powerful but hard to explain. US publishers with multiple entities can use separate instances for each of the entities, and if it is too much work, well, then they need a bigger tool. As a result, installation and configuration are much simpler for everyone else, despite all the enhancements.
There will be minor releases with bugfixes and probably changes due to CWR implementations in different societies, but no new features will be added for at least a year.