I started the python-musicbrainz2 project in January 2006 as the first client library to the newly designed MusicBrainz XML web service. It has been my first Python project and I learned quite a lot in the process. Now MusicBrainz is undertaking a major data model change that also changes and extends the web service. As a result, adjustments are needed.
Looking back I think that most of the design choices I made four years ago still make sense (I rarely find myself in this situation). However, the changes to MusicBrainz’ data model are significant (see the wiki page), so it looks like a complete rewrite is in order. This is the perfect opportunity to set directions and get feedback.
My own goals for a rewrite are the following:
- Use Python 3 (it won’t go away, so someone has to start, right?)
- Make it more pythonic where possible (naming conventions?)
- Remove rarely used cruft (MbXmlWriter, I’m looking at you!)
- Keep the amount and quality of documentation
- Write more test cases (64 test cases isn’t much)
- Use a DVCS (maybe git, but preferably Mercurial)
If you are a user of python-musicbrainz2, or a possible future user, now is the time to give feedback and help shape the new library! If you’d like to help, even better. There’s enough work for everyone :)