Forum OpenACS Development: Release issues and the openacs-5-1-compat tag.

The following files have changes which have not been released with the 5.1.1 release since the openacs-5-1-compat tag was not updated for these packages (meaning there are bug fixes not available to people using the pacakge repository or checking out on the openacs-5-1-compat tag):
acs-datetime
acs-developer-support
acs-mail-lite
acs-workflow
attachments
auth-ldap
auth-pam
bcms
bookshelf
bug-tracker
bulk-mail
calendar
curriculum
edit-this-page
faq
file-storage
forums
general-comments
irc-logger
lars-blogger
logger
monitoring
news
news-aggregator
news-aggregator-portlet
notifications
oacs-dav
organizations
personal-community
photo-album
project-manager
research-papers
resource-list
rss-support
schema-browser
simulation
static-pages
survey
trackback
weblogger-portlet
workflow
The steps to release a pacakge so that it shows up in the package repository are:
  1. Make changes, test and commit.
  2. test the package works with the latest 5.1 release
  3. bump version in the .info file and commit
  4. cvs tag -F openacs-5-1-compat
What's happening currently is that no one is taking responsibility for this process for individual non-core packages which means there are lots of bug fixes not available via the package repository or a checkout of -r openacs-5-1-compat. The only way to get them is via -r oacs-5-1, which may or may not pull in untested or broken code on the 5.1 branch.

I guess the question is, how should we try and improve this process. One idea I had was to have a notification process to tell package maintainers when their package had changes which had not been released. The other would be to test and retag when we do a patchlevel release (like we did with 5.1.1). I am not sure that's a great solution since the whole point is to move away from monolithic releases...

Collapse
Posted by Joel Aufrecht on
"The other would be to test and retag when we do a patchlevel release (like we did with 5.1.1). I am not sure that's a great solution since the whole point is to move away from monolithic releases..."

To elaborate: The purpose of the compat tag is to indicate when a package is released. The only way a file can get into a release tarball or into the OpenACS.org repository (for automatic install/upgrade) is if it's been tagged openacs-x-y-compat. That's the signal to the process that the package is tested and working for a given acs-kernel. The package should also be at a release version (ie, 1.0.0, not 0.1d), but the compat tag is the magic signal.

The only person who should be making that determination is the package maintainer. As release manager I serve that role for OpenACS core, and Tracy Adams handles it for .LRN. For core, that means that I check bugs, audit changed files, test the install, test an upgrade, and run the automated tests, for sixteen packages, for each dot release. For minor releases, there's quite a bit more work and we basically need a few bug bashes with 10 or more people to get a minor release out. .LRN covers many more packages and so, while Tracy can start with a released Core, she till has quite a bit more work to do to get a .LRN release out. Neither of us is likely to take over the job for the hundred other packages.

So what we need is for everybody who works on packages to take responsibility for deciding when a package is releaseable and doing the release work for it. It's only a few steps, and we're here to help, so I'm assuming that the problems are 1) this process hasn't been clearly communicated and possibly 2) people are nervous to take responsibility for a release, when it's safer to leave stuff at alpha or beta. So a big thanks to Jade (project-manager) and Dirk (calendar) for proving it can be done!