python-musicbrainz3: Difference between revisions
From MusicBrainz Wiki
Jump to navigationJump to search
Line 20: | Line 20: | ||
* This wiki page is the central source of information |
* This wiki page is the central source of information |
||
* Discussion can take place on the [http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-devel development mailing list] |
* Discussion can take place on the [http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-devel development mailing list] |
||
* Source code is hosted in |
* Source code is hosted in the [http://git.musicbrainz.org/gitweb/?p=python-musicbrainz3.git;a=summary python-musicbrainz3 git repository] |
||
* Submit patches to Review Board in [http://codereview.musicbrainz.org/groups/python-musicbrainz/ group python-musicbrainz] |
|||
* Review board? |
|||
* TODO: Jira? |
* TODO: Jira? |
||
** Do we want to use Jira just for bug reports, or as a dumping ground for upcoming tasks too (e.g. 'Do author search') --alastair |
** Do we want to use Jira just for bug reports, or as a dumping ground for upcoming tasks too (e.g. 'Do author search') --alastair |
Revision as of 21:16, 19 March 2010
The python-musicbrainz3 package is the successor of python-musicbrainz2.
NGS is coming, so a rewrite is in order to keep up with MB development. This wiki page collects information, plans, and ideas for this project.
Feel free to edit!
Goals
- Fully support the NGS data model and web service
- Require Python 2.6 and aim to be as close to Python 3 as possible
- Despite NGS's complexity: Simple things should be simple
- Turn today's modules into packages (source files are much too large)
- Make it more pythonic where possible (naming conventions?)
- Remove rarely used cruft (what would that be?)
- Keep the amount and quality of documentation
- Write more test cases
Project Infrastructure
- This wiki page is the central source of information
- Discussion can take place on the development mailing list
- Source code is hosted in the python-musicbrainz3 git repository
- Submit patches to Review Board in group python-musicbrainz
- TODO: Jira?
- Do we want to use Jira just for bug reports, or as a dumping ground for upcoming tasks too (e.g. 'Do author search') --alastair
- I don't know. Using it for tasks sounds like a good idea, too. --matt
Project Plan
- Set up project infrastructure
- Wiki page (done)
- Git repository (done)
- Jira project?
- Create group in Reviewboard (done)
- Evaluate tools
- XML mapping tool (Matt, in progress)
- Unit test runner (nose?)
- What's the advantage of something like nose over just using the unittest package? I don't have much experience in unit testing python stuff. --alastair
- Look at ETree or similar for XML (also consider json libraries?) (Alastair, in progress)
- Create UML diagrams for
- the core entities (done)
- pymb3's classes
- Set up project structure in the repository (Matt, in progress)
- Gather data for the parser
- Update MMD Relax NG schema if necessary
- Prepare comprehensive set of example documents for the test suite
- I wouldn't worry too much about getting this comprehensive list upfront. Especially since there are parts of the webservice still not completed we should be able to create this as we go --alastair
- I agree. We should start in see what's missing. --matt
- Start hacking!
Model
This is a simplified model showing only the core entities.
The m:n associations displayed with bold lines (Artist to anything, Release to Label) are attributed and will be modeled using association classes (ArtistCredit and ReleaseEvent respectively). We implement 1:n associations using lists.
TODO: Are Work to Recording, ReleaseGroup to Release ordered?
TODO: The URL class is only used for ARs?
Links
Links with documentation and other relevant information.
- Matt's original blog announcement and mailing list archive
- Next Generation Schema Overview
- Web Service Interface
- Web Service XML Format
Ideas and Open Questions
- Use an XML mapping package (xml.etree?)
- Import version history into git?