Problem Branching from Tag using new release system

therave - November 18, 2006 - 12:26

First of all I should say that the new release system looks like it will be a really useful addition to the community.

However, I have encountered an issue trying to set up a branch to allow adding a contributed patch. I suspect this is to do with how I originally set up the tags, but I cannot see how to resolve it.

Background

Before the new release system I had Tags (not Branches) for DRUPAL-4-6 and DRUPAL-4-7.

Issue

I now would like to patch 4-6. Normally with CVS, I check out the old CVS tag (DRUPAL-4-6 in this case) and branch from that. Trying to create a branch for DRUPAL-4-6--1 (I cannot use DRUPAL-4-6, and DRUPAL-4-6--2 is potentially confusing) using TortoiseCVS gives the following error:

** ERROR: invalid branch for this directory:
** contributions/modules/smsgateway
cvs rtag: Pre-tag check failed
cvs [rtag aborted]: correct the above errors first!

Trying to branch off the tag using the command-line CVS and the RTAG command gives the same error.

Attempted Resolution

Assuming that the issue is that the system expects DRUPAL-4-6 to be a branch, not a tag, I tried to create the branch DRUPAL-4-6 using the option to move the branch. This gave the following error:

** ERROR: You are not allowed to delete or move tags that have
** release nodes pointing to them. "DRUPAL-4-6" is being used by
** http://drupal.org/node/95806
cvs
tag: Pre-tag check failed

The obvious solution to this is to temporariy delete the 4-6 release node and then recreate it, but there is no obvious way to do this.

Potential Solutions / Questions

Am I right in my assumption that I have caused this issue by having DRUPAL-4-6 as a Tag, not a branch?

Presumably DRUPAL-4-6--1 is disallowed because the system expects DRUPAL-4-6 instead?

Would dropping the release nodes, converting DRUPAL-4-6 & DRUPAL-4-7 to branches be the right thing to do? If so, how can that be achieved?

What other options do I have?

Regards
 David

I don't have your full

cog.rusty - November 18, 2006 - 14:20

I don't have your full answer and I was lucky enough to have a branch in the first place.
First. before someone else slaps you with a handbook, I might as well do it:

http://drupal.org/node/94155

Now, here's what I understand:

- DRUPAL-4-6 is the first branch for 4.6. (by convention, it is not called DRUPAL-4-6--1). Normally, here is where everything happens.
- DRUPAL-4-6--2, DRUPAL-4-6--3, etc are the next branches and are not expected to be used by most modules. They are just there as options, and whether they are stable feature-enhanced or experimental ones is up to the maintainer.

From that point on, you work in the DRUPAL-4-6 branch creating tags, not branches, for any commits which you consider worthy to make a release. I think your DRUPAL-4-6--1.0 release has been already packaged and your next one should have a DRUPAL-4-6--1.1 tag.

Try forgetting what you have done in the past and use the handbook suggestion

cd contributions/modules/your_module
cvs update -r DRUPAL-4-7 # updates to the end of the DRUPAL-4-7 branch
cvs tag DRUPAL-4-7--1-0 # creates the release tag for the "4.7.x-1.0" release.

and see what happens. Report back if you want because my guess is many people are uncertain and would want to hear success stories.

That was pretty much what I was trying to do

therave - November 18, 2006 - 17:00

Thanks for your prompt response. I don't have a problem with anyone hitting me with the manual - any easy solution that is already documented would be just great.
However, in this case, I think that was pretty much what I was trying to do - except I'm not able to.

As I wrote up the problem above, it all became much clearer to me, so here's a redux that hopefully distills the problem down:

  1. I want to branch and patch using the new release system - using the approaches described in the documentation
  2. On the old release system I applied DRUPAL-4-6 (and 4-7) as Tags rather than Branches. It was OK on the old system because I could move the Tags (yuk - I know!) to deal with the very occasional updates I made.
  3. In order to use the new release system properly, I need to convert the DRUPAL-4-6/4.7 tags to branches. However, with the new release system the DRUPAL-4-6/4-7 tags are locked to the automatic releases, so they cannot be converted to branches (i.e. I can't fix the problem), nor can they be moved to the lastest version (so I can't workaround the problem). Nor can I remove them.
  4. If I could temporarily drop the module automatic releases for my module, I could fix it, but I imagine that is only within the power of the drupal site admins (if possible at all).
  5. The only other thing I can do is to move all code for 4.6 and 4.7 onto --2 streams, and presumably then tell everyone to ignore the 1 releases. But that strikes me as rather messy.

Just to be clear, I haven't tried the handbook suggestion listed above because it will not work for me. The cvs update -r DRUPAL-4-7 command will not update to the end of the 4.7 branch - it will only get the tagged version!!

Thanks
 David

David Hamilton
http://www.jiffle.net/

Take a look at

cog.rusty - November 18, 2006 - 19:03

Take a look at this

Resolving a "sticky tag is not a branch" error
http://drupal.org/node/57516

Or Is it something you have tried?

Yeah, that would resolve it...

therave - November 18, 2006 - 19:58

The steps listed in that page would solve my problem... if I can get them to work!

However the Tag delete (Step 3) fails with that 'cannot delete or move tags with release nodes pointing to them' error that I listed in my first post.

Clearly the Drupal CVS admin have set up a rule on the CVS server to prevent the tags or branches that power any of the builds configured on the project release from being deleted. I can understand why they have done that (although it has the effect that you can never unrelease a major version of code, as AFAIK an autobuilt release cannot be removed).

Unfortunately the rule is also applied to tags, and this is preventing me from removing the 4.6 tag.

Cheers
 David

David Hamilton
http://www.jiffle.net/

So, the next move is

cog.rusty - November 18, 2006 - 20:29

So, the next move is obviously filing an issue with drupal.org maintenance.

site admins can help you get out of this mess... ;)

dww - November 19, 2006 - 00:26

yeah, this was a "use case" i hadn't anticipated when designing the new release system and the whole conversion. ;)
you are indeed out of luck on your own, but us site admins can hack around the barriers i put up to defend people from doing the wrong thing.

sadly, it's a little bit complicated, and either:

a) i just have to clean up the whole mess myself

or

b) we should do this interactively, instead of trying to coordinate via forum replies.

it's up to you. if you want to go the route of b, look for me (dww) in #drupal in IRC. otherwise, reply here and i'll just create those 2 branches (and remove the DRUPAL-4-6--2 branch, which i presume you don't really want to keep).

 
 

Drupal is a registered trademark of Dries Buytaert.