[drupal-devel] Re: Help?
drupal-lists at jimandlissa.com
Wed Apr 6 12:51:26 UTC 2005
On 5 Apr, 2005, at 23:27, Sheldon Rampton wrote:
> Jim Riggs wrote:
>> The latest release date is based on when the branch was created,
>> not when something was last committed.
> I understand that. That's the problem. I want the current version
> of the module to be what people get when they click on the link
> that says "download latest release." Right now they're getting an
> old version. How do I fix that?
I think you're misunderstanding the process. It is confusing, I must
admit, so let's do it as an example. You may understand everything
other than the packaging part, but others may find the whole example
useful. (People with more knowledge of the inner workings of the
system, feel free to correct me where I am wrong.)
* I create and commit a new module "foo" (contributions/modules/foo).
* This version is for Drupal 4.5, so I branch for 4.5:
cvs tag -b DRUPAL-4-5
* At this point, I have a DRUPAL-4-5 branch and HEAD which are the same.
* The Drupal packaging script (that automatically creates the .tar.gz
of every project) runs every 6 (or 12?) hours. It crawls the entire
contributions repository. For every project with files in HEAD, it
creates a tarball that is labeled as the "cvs" version (foo-
cvs.tar.gz). For every project that has a Drupal branch (i.e.
DRUPAL-4-x), it creates a tarball for each version
(foo-4.5.0.tar.gz). My understanding is that /all/ projects are
packaged every time, so the tarball always contains the latest
files; HOWEVER, the project page displays the date the version was
first encountered as the "latest release" date. So if I created a
branch on January 1 and committed new files yesterday, the date will
still show Jan 1, but the tarball will include my changes from
yesterday. I don't need to do any branching or tagging again. I
only need to branch once.
* Now I make some changes to HEAD to make it compatible with 4.6 and
cvs ci -m 'updated for Drupal 4.6'
* The DRUPAL-4-5 branch of the module is for Drupal 4.5, and HEAD is
now 4.6-compatible, so I can branch HEAD again for 4.6:
cvs tag -b DRUPAL-4-6
* When the packager runs again, it will now pick up the 4.6 version
and mark it as the latest release. There will now be three versions:
foo-4.6.0.tar.gz with the latest files from DRUPAL-4-6,
foo-4.5.0.tar.gz with the latest files from DRUPAL-4-5, and foo-
cvs.tar.gz with the latest files from HEAD.
In summary: The "latest release" date is not the date of the most
recent change/commit. It is the date the version was first
encountered by the project module. And, when a user downloads a
tarball from drupal.org, he is always getting the latest CVS files
for that particular version/branch (except, perhaps, for the 6 hour
delay between runs).
Now I am not saying this is the best system. There are lots of
things I would like to see change in the entire versioning/packaging
system, but this is how it is now. It /is/ confusing, so I
understand what you were trying to do, but I don't think there is a
way that you can get that latest release date to change. Hopefully
this helps you to understand how things are working even if you don't
understand why they are working that way. ;-)
More information about the drupal-devel