On Nov 17, 2008, at 12:06 PM, Joe Eckard wrote:


On Nov 15, 2008, at 4:37 PM, David E Jones wrote:

(disclaimer: one guy's opinion, grain of salt, etc.)

Speaking primarily as an end user, the "never release" approach that the project is currently taking encourages me to isolate my code as much as possible, and discourages frequent upgrades. It also encourages me to cherry-pick bug fixes, which can make it tedious to construct patches to send back when I find new bugs.

Sometimes I like to imagine a world where OFBiz has major, minor and point releases (with release notes) similar to what is described at http://commons.apache.org/releases/versioning.html (with the compatibility types redefined in OFBiz terms). For example, any change that modifies a service's signature, or the data model might require a new point release to include any outstanding bug fixes, then a new minor release with a simple upgrade instruction for that change added to the release notes. (in other words, incompatibility would be the determining factor for minor & major revision number upgrades)

With something like that in place, I could feel confident upgrading from a theoretical version 4.0.19 to 4.0.23, knowing that nothing should break, and I don't need to install new seed data or worry about data model changes. If I wanted some new features in 4.1.x, I would need to check the release notes to see what incompatible change prompted the version increase and make adjustments and an upgrade plan.

Maybe this approach just isn't feasible for any number of reasons, but I have always wondered why there doesn't seem to be any discussion of something similar whenever the topic of releases are brought up.

Again just testing the idea, and not saying we should adopt it...

How would you behave if you knew there was NEVER going to be a release, just ongoing community responsibility?

What would your involvement with the project look like? How would you run your efforts that are separate from the project?

-David

For me personally, nothing would really change... i.e. when a custom application is considered feature-complete and relatively stable and bug-free, then all OFBiz updates stop, and my involvement with the current trunk comes to an end (for that project). There are exceptions - when I encounter a bug I'll check the trunk first to see if it has been fixed, or when I am catching up on messages to the commits list I may notice an important bug fix that needs to be back-ported right away.

This is unfortunate, because it can put me in the same position as Markus - improvements and fixes may need to be completely rewritten and re-tested before I can create patches for the current trunk. (This is the case for me right now - my main codebase is pre-4.0 and I have a few changes that I haven't had the time to rewrite and re- test.)

Even if there were more testing in place, the main drawback to staying current is that with each update I may be taking on new features or applications that my business will never use, but I am now responsible for learning about and possibly debugging, just to maintain the (previously stable) features I have always used.

I may be biased on this, but isn't this the main argument for contributing as much as possible back to the open source project and staying in-sync with the community?

Really... I don't think I could have expressed this more directly myself... you wrote very well the reasoning I use with clients to convince them that working with the community is better than going it alone.

-David



Reply via email to