python-musicbrainz3: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 21: Line 21:
* Discussion can take place on the development mailing list
* Discussion can take place on the development mailing list
* Soon: git repository
* Soon: git repository
* TODO: Review board?
* 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


== Project Plan ==
== Project Plan ==
Line 30: Line 31:
## Git repository (Rob/Oliver, '''in progress''')
## Git repository (Rob/Oliver, '''in progress''')
## Jira project?
## Jira project?
## Reviewboard?
## Reviewboard ('''done''' - python-musicbrainz group created)
# Evaluate tools
# Evaluate tools
## XML mapping tool (Matt, '''in progress''')
## XML mapping tool (Matt, '''in progress''')
## Unit test runner (nose?)
## 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
# Create UML diagrams for
## the core entities
## the core entities
Line 41: Line 44:
## Update MMD Relax NG schema if necessary
## Update MMD Relax NG schema if necessary
## Prepare comprehensive set of example documents for the test suite
## 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
# Start hacking!


== Links ==
== Links ==

Revision as of 09:07, 15 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
  • Soon: git repository
  • Review board?
  • 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

Project Plan

  1. Set up project infrastructure
    1. Wiki page (done)
    2. Git repository (Rob/Oliver, in progress)
    3. Jira project?
    4. Reviewboard (done - python-musicbrainz group created)
  2. Evaluate tools
    1. XML mapping tool (Matt, in progress)
    2. Unit test runner (nose?)
      1. 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
    3. Look at ETree or similar for XML (also consider json libraries?) (Alastair, in progress)
  3. Create UML diagrams for
    1. the core entities
    2. pymb3's classes
  4. Set up project structure in the repository
  5. Gather data for the parser
    1. Update MMD Relax NG schema if necessary
    2. Prepare comprehensive set of example documents for the test suite
      1. 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
  6. Start hacking!

Links

Links with documentation and other relevant information.

Ideas and Open Questions

  • Use an XML mapping package (xml.etree?)
  • Import version history into git?