Well, it took a couple of days but the core files now have complete test coverage, sans some eval/Devel::Cover reporting issues. I probably found and fixed about 5 bugs or so along the way. As soon as I clean up Makefile.PL and the list of required modules and update the Changes files, I’ll release a version to CPAN tomorrow night.
Everything in trunk now has pod and all tests pass. Tomorrow I’ll start poking around with coverage and making sure the tests hot most of the feature points of the core modules. The pod will need another few reviews as I’m still finding mis wordings, even in the somewhat matured Handel pod. I should probably whip up a Mango::Manual pod describing the layers and interactions of Core, Providers, Catalyst and all the intended glue.
If all goes well with coverage, I’ll shoot a release of the core up to CPAN and give the pod another once over. It’s always easier to read it in a web browser than it is in a text editor.
I’ve added pod to the remainder of the schema classes and to the bulk of the object classes. I still have to do pod for the Cart/Object/Item object classes and make sure I pass the usual pod spelling/syntax/coverage tests.
After that, I’m on to test coverage and filling in any little API gaps. User profiles need more fields like email and stuff. I’ve only did first name/last name just to get it all rolling. I also need to either figure out the schema to support sales, or just drop the feature until 1.0.
At this rate, I think I’m still on target for a release to CPAN next week with just the Core (Schema/Provider/Object) classes.
Another day. Another commit. I got a late start this evening due to a trip to the computer store and Chipotle. I feel like I’ve eaten a brick.
The pod for the providers is done. I’ve added the user key to Cart/Wishlist providers search/delete methods. Most of of the schema classes have pod now as well. Just the Cart/Wishlist/Order/Item classes to go and that will be done. After that, one to the object classes. I should be done with pod in no time. [Famous last words.]
First on the list of this fresh start is solidifying the core modules. I’ve re-imported the schema, provider and object classes back into trunk. The goal is that by the end of this weekend, every module should have documentation, tests and enough coverage to hit all of the methods and documented options.
As of this posting, the User, Profile, Role, Product and DBIC providers and mostly documented and tested. I still have to figure out how to best get ‘related tags’ for a list of tags and the Cart, Wishlist and Order providers need pod. Once those are done I’ll move on to documenting and testing the result objects.
Then end goal is to release Mango 0.01_01 sometime next week. It will be a development release with core modules only. There will be no Catalyst or web interface bits at all. Release early. Release often. The more I release, the more inclined I’ll be to keep making releases and showing progress.
If you don’t see something by next week, send me nasty emails. This is only a first phase of cleaning up the core. I still need to devise a schema for dealing with sales (or drop that feature for 1.0) and Checkout needs some serious planning.
I’m starting over. Not completely over mind you. Just a fresh start in terms of source control and focus. At some point, the amount of tinkering on the various parts of Mango has left me unable to properly focus on things like tests, documentation and glue-bits. In an effort to re-jump start the process, I’m cleaning out trunk and (re)working my way back up from the bottom layer by layer. Hopefully with smaller things to focus on, I can maintain more consistent progress.
These layers consist of:
- Database Schema
- Catalyst Base Classes
- Catalyst Application (Base+generated app)
- Web 2.0
The start things off, I have made a branch of the current work and cleaned out trunk. Tomorrow I’ll move the database schema and providers code back in from the branch and start working on tests/pod for them.
First goal: Complete tests and documentation for the current providers.