[development] Choosing the N number for .install's hook_update_N

Morbus Iff morbus at disobey.com
Thu Aug 7 16:57:28 UTC 2008


> What other software has the very first digit go up and the feature  
> set go down?  I'm surprised to hear you have this expectation, and  
> I'm curious how wide-spread it is.

I agree with their statements - it's my
same rationale for agreeing with Earnie.

As a developer, the use of 5.x and 6.x wasn't *my choice* - it was 
placed on me (rightfully and logically) by the Drupal package management 
system. When I develop, the world revolves around my module, not Drupal. 
   When my module is "2.0", it's a "major" thing in my software 
development mentality. The fact that it happens to be compatible with 
Drupal 6 is an install pre-requisite, not embedded into its version number.

The display of versioning information on d.o makes it very very easy to 
make a conceptual leap that "5.x" and "6.x" are only /prefixes/ that 
tell me what version of Drupal core there is. I visually ignore that 
info when I'm scanning down for module versions - I want the latest 
version of the *module*, not the latest version of Drupal core and then 
the module.

This is the expectation of a lot of users - people talk about "Views 2" 
not "Views 6.x-1.0" (which doesn't exist, and which nicely demonstrates 
the huge API changes, and confusion, inherent in naming Views the way 
that Freso and yourself are promoting).

> One example out of thousands: PHP went from 4.4.* to 5.0.* and no one  
> thought "0 is smaller than 4, this must be an older feature set --  
> where can I find 5.4.*?"

To flip the question: how many other pieces of modular software (which 
require a parent application) use the same versioning system you're 
promoting: that 5.x-2.0 becomes 6.x-1.0?

The problem with your PHP example is that you're only comparing PHP to 
PHP - you're not comparing an extension of PHP (read: a module for 
Drupal). Looking at any random extension, say, eaccelerator:

   http://eaccelerator.net/

we see that it doesn't follow the proposed version string rationale. 
It's not PHP-4.x-9.5.2 and then PHP-5.x-1.0.0 - it retains its own 
version string that is independent of the parent application - 0.9.5.2 
is for PHP 4, and 0.9.5.3 is for PHP 5 (Note: work with me on this 
example: since eaccelerator doesn't have a version 1 *at all*, I had to 
fake the values a bit to fit the example).

-- 
Morbus Iff ( putting the sanity back in sanity )
Technical: http://www.oreillynet.com/pub/au/779
Enjoy: http://www.disobey.com/ and http://www.videounderbelly.com/
aim: akaMorbus / skype: morbusiff / icq: 2927491 / jabber.org: morbus


More information about the development mailing list