Project:Portage/Repoman-TODO

Here we will keep track of changes to be done in the portage/repoman refactor:

TODO
Stage 1: * Split up the code into a reasonable file structure, creating individual tests or groups of tests using a common class style. * Correct the Copyright headers. * Fix the PEP8, pyflakes and pylint warnings and/or errors. * Create namedtuple QA classes for tracking problems * Refactor _xml.XmlLint for saving error messages to add to a new QA tracking class Stage 2

VCS Code Classes
Please use This commit as an example of an intermediate vcs handling system. commit ca10e65ff2b26f8aa716210b3155c9e5dc12b643

Note it's use of getattr in the scan which automatically calls the correct vcs scan_*.

Similarly any test code can be broken out to it's own class, then the vcs specific code can be broken up within that class. During stage 2 of the rewrite, the vcs specific code can be moved to a proper vcs plugin system.

Slicing and Dicing the code...
There are several class instances created before the main xpkg test loop. They are for tracking the errors found, etc..

dev_keywords = dev_keywords(profiles)

qatracker = QATracker

Initialize the new test classes before the main loop with any static data. This is currently around lines 332+ Excerpt from repoman/main.py

The tests should get any dynamic data passed in the the test classes test function at run time. filescheck.check(		checkdir, checkdirlist, checkdir_relative, changed.changed, changed.new) status_check.check(check_ebuild_notadded, checkdir, checkdir_relative, xpkg) eadded.extend(status_check.eadded)

fetchcheck.check(		xpkg, checkdir, checkdir_relative, changed.changed, changed.new)