This is a list of books currently on my To Read shelf... literally. I do not suggest or anti-suggest any of them at this time as I haven't read them yet.
Current Efforts:
Blue Parabola, LLC
web2Project
PHP'ers:
Ben Ramsey
Brandon Savage
Cal Evans
Eli White
Elizabeth Naramore
Joe LeBlanc
Matthew Turland
Matthew Weier O'Phinney
Planet PHP
Tony Bibbs
Business/mISV:
Bob Walsh
Eric Sink
Gavin Bowman
Guy Kawasaki
Joel Spolsky
Micah Baldwin
Paul Graham
Planet mISV
Past Projects:
CodeSnipers
HOBY
Judicial Watch
mobile FoxNews.com
NRTW
Great Tools I use:
Drupal
GitHub
phpUnit
Subversion
Zend Framework
This is not the home of dotProject or web2project. It is the home of CaseySoftware, LLC. Any dotProject support questions should be referred to their support forums.
In the last few months or so, it appears the PHP Community has finally found the Joel Test. Lorna Jane spoke about it last month at PHPNW 09 and this week Brandon Savage adapted it for web development. While I'd love to point out the fact that I've been writing about the Joel Test for years and even have the "Joel On Software" book on the required reading list for Blue Parabola staff... but I digress...
While all the rules are important in some way, there's one we've taken to heart recently within web2project:
Can you make a shippable version of your software in one step?
Previously, to make a release, we had to:
If we forgot a step, it wasn't necessarily terrible, but it increased the risk that any number of issues could creep into the release. So this summer after we had a few Unit Tests - thanks to Trevor Morse - I started on following this rule in our own operations. You can view the progression of our Phing build.xml script on Sourceforge. While there are literally a 100 things we could do through Phing - and more if we throw in some shell or php scripts - there are a handful of things we're focused on.
First, we needed a simple way to run our Unit Tests. Running Unit Tests by hand is a pain, it introduces opportunities for dumb little mistakes that shouldn't happen. Even more importantly, we needed to make them simple for people who don't want or care to learn the intricacies of the system. And yes, we have documentation on running web2project's Unit Tests.
Next, since we can't install a phplint check as a pre-commit hook, we added it to this script. This ensures that we're not distributing anything that is syntactically wrong. This runs primarily when we package the code for a release, but can be run at any time.
Next, our Changelog was always mediocre at best. Thanks to some tips from fellow team member Bruce Bodger, we added a simple "svn log" statement to generate a complete Changelog. Yes, this is a little tweak which is probably irrelevant in the bigger picture, but it's one less thing we have to do manually.
Next, we implemented a simple CodeSniffer check. I've been a fan of CodeSniffer for years and to get it in place for web2project is handy for all of our purposes. We're not 100% within spec, but we're getting progressively closer with each update and refactoring.
Finally, I stuck a simple command line user interface on the whole thing. After we tag the release, we can simple feed the tag name into the packager and the Phing script does the rest. As a result of this script, now this is our process:
Overall the process is easier, faster, and has significantly less room for error. If you're interested in exploring and utilizing our build.xml script, please feel free... just remember to attribute it appropriately. :)
And for the record, on the Joel Test, web2project is a solid 6 and a "sort of" on 3 others. Pretty good for an Open Source project...
Changelog
Hi Keith,
How do you automate your change log with svn log? I've always wondered whether I should do a svn log > changelog, and then do a commit, or is that part of a post-commit ?
Changelog as a Commit?
This is written from the perspective of using "svn -log" as your changelog... not a detailed accounting of bugs...
Personally, I say "no, it shouldn't be a commit." While there's no technical reason why it couldn't be, I don't think it adds value to the repository and - in some cases - takes value away.
At a cosmetic level, realize that when you commit your changelog, a number of commits will then be... the changelog being commited. Depending on how often you commit regular code and update the changelog, this could be a non-trivial number. And what new information do you have? The changelog does not affect the overall execution of any code or the UI or anything else.
At a project-tracking level, most change logs will be hundreds if not thousands of lines of code. Adding that into your analysis will through off your metrics for LOC, your lines of comments, and file count, etc. While those aren't a huge problem and none should be taken alone to be the "health" of your project, trends within those can point at problems.
If you want to know how we're doing it, look at our build.xml file. ;)
Post new comment