Closed (won't fix)
Project:
Drupal.org infrastructure
Component:
Other
Priority:
Critical
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
18 Jun 2007 at 23:37 UTC
Updated:
21 Aug 2014 at 21:00 UTC
Jump to comment: Most recent
in working on puring the .info files in the contrib repo of the version attribute (
http://drupal.org/node/152819), i noticed that our contrib repo has some silly branches that should never have been allowed in the first place. check out the list at:
a few of those are clearly errors of some kind. i have no idea how these made it past the xcvs-* scripts, which are supposed to defend against these sorts of errors. perhaps they were created long ago -- i've certainly fixed a few errors in the settings/regexps that lock down the repo.
anyway, someday it'd be nice to clean all this up.
| Comment | File | Size | Author |
|---|
Comments
Comment #1
dvessel commentedDRUPAL-5--1 looks like a valid branch but it doesn't work. This by design? I was helping a friend and he wasted some time trying to branch to that.
Either that should be cleared up in the docs or that branch shouldn't give errors.
Comment #2
merlinofchaos commentedIt's DRUPAL-5 in D5 and below
It's DRUPAL-6--1 in D6 and beyond.
DRUPAL-5 is kept for legacy reasons.
Comment #3
dwwUgh, this is a growing problem: see http://drupal.org/node/197445
Here's the full list of faulty projects at DRUPAL-5--1:
API can be explained by drumm having super-user CVS powers. So, I'm assuming he just got confused by the change in conventions and created the wrong branch. That's unfortunate, but at least understandable. All I can think of for the others is that once that tag existed, they were able to do "cvs co -r DRUPAL-5--1 contributions/modules", they got something since the tag was already there (in api module), and then CVS let them add new directories or files with the same tag. :(
CVS archeology on smtp module supports this theory:
Same with themesettings:
Sadly, it's pretty hard to rename a branch in CVS. :( The only way I know how is to directly edit the ,v files in the repository itself, which is a little scary, but it certainly works.
It's going to create havoc in the d.o-specific CVS + Project* integration if we try to support both conventions. It's already confusing enough that we had to switch at all, and having both in D5 is making a bad situation worse. :( Therefore, I propose the following action items:
A) We should disable the CVS super user functionality in our repository. Even the core committers should go through the usual access control stuff, to help catch errors like this. Seems like this is safer for preventing accidents, too. All of them have 'administer nodes' perms on d.o, so if they need to commit anywhere, they can grant themselves CVS access.
B) I'll make backups of the CVS repository directories for these 9 modules, and then have a little script go through to edit the ,v files to rename "DRUPAL-5--1" branches to "DRUPAL-5". This will unfortunately confuse existing CVS workspaces checked out with these directories, but that seems like a necessary evil to cleaning this up. Anyone with a copy of one of these modules checked out will see something like this when they run cvs update:
and cvs status would tell them something like:
The solution is simply to run "cvs update -r DRUPAL-5" and all will be solved...
C) I'll run a simple query to fix the records in {cvs_tags} for these projects.
D) I'll send another note to the devel list about this point, that the change in convention is for DRUPAL-6 and beyond, that "DRUPAL-5--1" is an invalid branch that should never have been created in the first place.
E) Someone should update the CVS docs to encourage people to create new branches with cvs tag, not via checking out a copy of the repo from their preferred tag and trying to add their files to that. :(
I just think we're going to get more and more pain and confusion if we let this continue...
Any thoughts, complaints, alternate suggestions, etc?
-Derek
Comment #4
gerhard killesreiter commentedI am ok with the proposed way of dealing with things. Sadly, I don't have a much better idea on how to get people to play well with cvs.
Comment #5
dwwOk, I just wrote up some magic PHP and query code that generated emails to all project maintainers and people with CVS access to the effected projects, informing them about the problem and pointing them to this issue. The email said I do the move later this week if there are no objections, so we'll see what develops in here. ;) Stay tuned.
For reference, here's a copy of the email:
Comment #6
johnalbinAs far as I remember, back in March when I created the project, the DRUPAL-5 branch was supposed to be a shortcut for DRUPAL-5--1, since (at the time) DRUPAL-5--2 branches were presumed to rarely occur.
I hadn't heard that a DRUPAL-5--1 branch was verboten. Most likely I simply did a "cvs up -r DRUPAL-5--1" from a local copy of HEAD and then "cvs add"ed the files to that branch. http://drupal.org/cvs?commit=72946
Screwing up the release/cvs system was completely unintentional. My apologies!
I'd like to help out if I can. I could manually remove all the files from my DRUPAL-5--1 branch and put them into a DRUPAL-5 branch. Would that help? Or should I let your script do the work?
Comment #7
dwwNah, it'll be better in the long run and simpler for the CVS history if my script just renames, instead of having you manually do it. Thanks for the offer, though.
In case it wasn't clear (and I could see how some of my language above could be misread), I certainly didn't mean to imply any of you did something wrong maliciously or to intentionally cause me grief. ;) It's just a confusing situation, and somehow the safety checks I added weren't bullet proof, and accidents happened. Apologies if it seemed like I was accusing anyone of active wrong-doing.
Cheers,
-Derek
Comment #8
oadaeh commentedI would like to add that I'm pretty much in the same mind set as JohnAlbin.
I know that I initially created directories using a script with the following:
and then 'cvs add'ed the module into the branch I was working in. It was not at all necessary to run
cvs tag -b DRUPAL-5--1for that to work that way. Initially this just meant as a way for me to review the code in CVS and do compares and contrasts between versions. Later on I started using it to also submit modules. I'll now add a "current" directory and do the adding, branching and tagging from there, the way I'm supposed to do it.Since three of the modules are mine (or ones I'm working on), I'm more than willing to do what ever is necessary to correct the situation: (I just noticed you make a comment to JohnAlbin while I was preparing this one.)
I just created the branch for the SMTP module, and have done nothing yet with it (because of http://drupal.org/node/197445), so it'll be no big deal to remove it and start off on the correct foot (or something similar). The Courier MTA module is fairly new and only has one tag, so that should be easy enough to correct. Mass Contact, however, has several versions: 1.0 to 1.5 and 2.0 to 2.4-beta and will probably take a bit of effort to correct.
So I don't go breaking things again, and following http://drupal.org/handbook/cvs/quickstart#branch-tag, what do we do for 1.1, 1.2, 2.1, 2.2, etc. tags, or are the minor releases not supposed to exist for Drupal 5?
Comment #9
oadaeh commentedIn reading through http://drupal.org/node/93999, I noticed there is sample usage in the "Official release tags" section. that includes DRUPAL-5--0-1 and DRUPAL-5--1-0.
Comment #10
dww@oadaeh:
A) Thanks for the offer to help cleanup your own modules. Before I say "no thanks, that won't be necessary", lemme look closer. Meanwhile, please don't take any action on this until you hear back from me. Thanks.
B) Wow, what a complicated system for having a *LOT* of directories on your hard-drive. ;) It seems this is semi-common, and why once a single DRUPAL-5--1 branch was created, it was propagated in the wild. Out of curiosity, didn't it bother you that your DRUPAL-5--1 checkout only had 10 modules in it? ;) Didn't you ever wonder where all those 5.x-1.x-dev releases were coming from? Your script should be checking out just "DRUPAL-5" as the primary branch for 5.x contrib work. In reality, only a relatively small minority of projects use any of the higher branches. You can see http://drupal.org/node/97084 for a complete list. In fact, that page is what first alerted me to the problems in our repository, and why this issue exists in the first place.
C) official releases (from tags) are definitely supported. E.g. the DRUPAL-5--1-1 tag is perfect for the 5.x-1.1 release. All I'm talking about is the DRUPAL-5--1 branch.
D) However, that doesn't mean it's particularly helpful to check out all of these official release tags like the inner loop of your script is doing. You can never commit changes to a tag. Only a branch.
@JohnAlbin: Hrm, upon closer inspection I see that you had a DRUPAL-5 branch already, then added a DRUPAL-5--1 branch later. :( That complicates what my script hoped to accomplish. :( I'll have to ponder this a little more and get back to you. Maybe I'll just delete the existing DRUPAL-5 branch on that project and rename the DRUPAL-5--1 to DRUPAL-5, since it seems like you didn't really make many revisions on DRUPAL-5 itself. Anyway, stay tuned.
Comment #11
johnalbinDerek, actually all of my tags (DRUPAL-5--1-0, etc) and most of my revisions were made against the DRUPAL-5 branch. I've made no tags on the DRUPAL-5--1 branch. Manually deleting all the files in my DRUPAL-5--1 branch would be easy for me to do and then you could delete my DRUPAL-5--1 branch, but I'll wait for your decision as per #10a above.
Comment #12
drummGo ahead and do whatever changes necessary for API and email me immediately afterwards. I was a bit confused by this rule since it seems that DRUPAL-6--1 is the proper thing to do, but not DRUPAL-5--1.
Comment #13
dww@drumm: Yes, I'm sympathetic to the confusion, but it was widely agreed that the best solution going forward was to always require the --N part. I tried every way I knew how to make this clear:
the very first sentence of the post where I proposed this change: http://drupal.org/node/147493
the current handbook page about our contrib branches: http://drupal.org/handbook/cvs/branches-and-tags/contributions#stable
my email to the devel list about it: http://lists.drupal.org/archives/development/2007-07/msg00556.html Subject: "Changes to CVS tagging/branching conventions for contrib (MUST READ)"
Not sure what else I could have possibly done to inform everyone about it. Suggestions welcome for next time (though, I sure hope there are no more changes!)... ;)
Thanks,
-Derek
Comment #14
rconstantine commentedDo what you want with cck_address_extensions. I think one of the other maintainers may not have done things right. You'll notice my other 11 projects don't have this issue. Anyway, I can't even see any branches or tags when browsing the repository, so there seems to be perhaps something else wrong with 'my' project. Is there? All I see is HEAD.
FYI, I use TortoiseCVS.
Comment #15
dwwBrief update: drumm and I were both on IRC at the same time, and the rename for API module was easy, so that's now done. I'll be working on the others soon, at least figuring out what's the best solution for each one.
Comment #16
dwwAnother update:
A) I inspected the other directories with DRUPAL-5--1 branches. Here are the results:
api: trivial, now fixed.smtp: trivial, now fixed.fastpath_fscache: will be simple, not yet fixed.
mass_contact: major branch confusion :( will be difficult to resolve.
themesettings: looks like we can probably should just remove the DRUPAL-5--1 branch... there's only 1 minor commit to it.
phpids: massive confusion, will be difficult to resolve.
widont: trival, now fixed.cck_address_extensions: much confusion in cck_address_mexico and cck_address_belgium, will be hard to resolve.
couriermta: will be simple, not yet fixed.
B) I just figured out a way to prevent this problem in the future: http://drupal.org/node/198278 yay! ;)
Comment #18
dwwwhoops, sorry, wrong issue.
Comment #19
dwwhttp://drupal.org/node/198278 is now fixed, committed, and deployed on cvs.d.o. Yay!
in other news, i fixed fastpath_fscache and couriermta.
@JohnAlbin: Upon further inspection -- yes please. ;) You should re-add the files from the end of your DRUPAL-5--1 branch back onto the DRUPAL-5 branch, and remove them from the DRUPAL-5--1 branch. Then, I'll just remove the DRUPAL-5--1 branch entirely, instead of trying any rename funny business. That should take care of themesettings.
That leaves us with the 3 where the maintainers were really confused and made a big mess of their branches:
cck_address_extensions
mass_contact
phpids
I'd like to clean these up, too, but it'll take more time. :(
I think my next priority is to nip the "DRUPAL-6" branch projects in the bud:
http://drupal.org/project/google_analytics (budda, hass)
http://drupal.org/project/kasahorow (Suuch)
http://drupal.org/project/remove_upload_enclosures (mfer)
And then, get to all the "branches" that should be tags:
DRUPAL-5--1-4
DRUPAL-5--1-0-BETA1
DRUPAL-5--1-0
DRUPAL-5--0-1
DRUPAL-4-7--2-0
And finally, to the ones that are just totally bogus:
DRUPAL-5-1
DRUPAL-5-0
DRUPAL-4-7-2
Comment #20
hass commentedI've already moved all code to DRUPAL-6--1 and deleted "Google Analytics" in DRUPAL-6 branch myself weeks ago... same with "robotstxt". I hope your rename will not drop the moved code in DRUPAL-6--1!?
Comment #21
dww@hass: That email was auto-generated. I haven't had a chance to individually inspect each of the faulty projects yet. See above in this same issue!! (since you like to use exclamation points so much). ;) If you already cleaned up your own mess, then, no, I won't rename the DRUPAL-6 branch, I'll just remove it. It just depends on exactly what kind of a mess each maintainer made to figure out how to best resolve it...
Comment #22
johnalbinDerek,
I've moved all the themesettings files to DRUPAL-5. Unfortunately, and fortunately, your pre-commit checks work great because I can't delete anything from DRUPAL-5--1.
So, Derek, if you can get past your script ;-), please delete all the themesettings files from DRUPAL-5--1. Thanks!
Comment #23
dww@JohnAlbin: Thanks. Yes, I can subvert my own script. ;) http://drupal.org/cvs?commit=90508 -- those files are all removed from the DRUPAL-5--1 branch. I then deleted the extra 5.x-1.x-dev release node you had created which was pointing to DRUPAL-5--1. Finally, I removed the DRUPAL-5--1 branch entirely from the themesettings directory. So, it seems that themesettings is totally happy now. In fact, the packaging script just ran and fixed up the error which used to appear on the 5.x-1.x-dev release node pointing to DRUPAL-5 (http://drupal.org/node/136089):
Now, it's looking fine:
Thanks for your help in here,
-Derek
p.s. I guess I should assign this task to myself... ;)
Comment #24
dww@hass: Yup, upon further inspection, your DRUPAL-6 branch in google_analytics was no longer in use at all, and could be safely removed entirely. Now gone.
Still have to inspect the other 2 DRUPAL-6 projects and/or hear back from their owners.
Comment #25
dwwYay, DRUPAL-6 is now totally cleansed from the contrib repo (and therefore gone from http://drupal.org/node/97084)!!
google_analytics: DRUPAL-6 branch removed
remove_upload_enclosures: DRUPAL-6 branch renamed to DRUPAL-6--1 (I found mfer in IRC)
http://drupal.org/project/kasahorow: DRUPAL-6 branch renamed to DRUPAL-6--1 (was a trivial rename, so I just went ahead with it)
In other news:
image_exact: DRUPAL-5--0-1 branch converted to a tag (I found josh_k in IRC)
so, we're down to the following branches that should be tags:
DRUPAL-5--1-4: addtofavorites (thierry_gd)
DRUPAL-5--1-0-BETA1: dataview (surge_martin)
DRUPAL-5--1-0: filmforge (tatien, anarcat)
DRUPAL-4-7--2-0: MyDrupal (taherk)
and the following totally bogus identifiers:
DRUPAL-5-1: MyDrupal_Impact (taherk), node_browser (kristy)
DRUPAL-5-0: teamspeak (Cainan)
DRUPAL-4-7-2: MyDrupal_Impact (taherk)
therefore, we just need to make sure the above branches-which-should-be-tags can just be safely converted to tags, and then, we need to figure out what to do about these other identifiers (are they supposed to be branches or tags? are they in use at all? should they be renamed or removed? etc).
AjK just offered to help, so hopefully he can claim some of these...
Comment #26
rconstantine commentedI noticed today that cck_address_extensions now has a DRUPAL-5--1 branch showing up in the 'add new release' select box, but one already exists on the project page. So I don't want to do anything with it until you know what the problems are. But it wasn't there the other day. Browsing CVS still only shows HEAD and MAIN. Same when I try to check it out. If there is anything you want me to do, let me know. Once this is cleared up, I'll post instructions to the project for the other contributors so they don't screw it up again. Sorry about the mess.
Comment #27
dwwsurge_martin replied via direct email about dataview. in that one, we need to rename the DRUPAL-5--1-0-BETA1 branch to DRUPAL-5, add a true DRUPAL-5--1-0-BETA1 tag on an earlier revision of the files, and fix up the release nodes accordingly. should be fairly straight-forward.
@AjK: any news on your investigations on any of the others?
Comment #28
dww@rconstantine: yeah, cck_address_extensions is a big mess in CVS. please don't add any new release nodes or tags/branches until we get it sorted out. are you ever on IRC? i notice your profile doesn't include the "IRC nick" field. it might be faster/easier to just sort this out in real time, instead of the issue queue. when I'm on IRC, i'm still "dww"...
Comment #29
swentel commentedHey dww,
I finally have some time to try and fix this problem. As you allready noticed yourself, I f*cked up a *little* bit with tagging and branching. What would be the best steps to solve this problem once and for all ? Would it be a good idea to delete all files from the repository and start over ? Or do you have other suggestions ? I've used cvs on command line first (that's where all the mess came from I guess :/), but I installed a gui now (cervisia) to see if I could get some structure the branch-chaos. Feel free to update things yourself of course. I'll be on irc next week (nick swentel) also if you need more information ..
Comment #30
rconstantine commentedWell, I guess the holidays are over. Everyone has returned to where it is they came from, so I may be able to get to helping out with this as you'd like. Unfortunately, I'm never on IRC, so I'm not sure what you'd like to do to communicate. I do have one of the chat modules installed on a site we could probably use, though I don't recall whether anonymous users can chat. Hmm. I could setup a dummy account.
Anyway, will I need to get something that can do CVS via command line? I think the guy that screwed it up was using the command line. I've only ever used TortoiseCVS since I use TortoiseSVN on my repository and it was very similar. Please advise. And Happy New Year!
Comment #31
dwwOk, spoke to oadaeh and bdragon in IRC at some length about the mess in mass_contact. To fix this project's particular mess, we'd have to lose history one way or another, since he and the previous maintainer were both committing to DRUPAL-5 and DRUPAL-5--1. plus, some of the release tags are on HEAD, others on branches, etc. it's simply impossible to just rename the tags or branches to fix this. :(
We decided that the least evil option was to just clean out everything that's there and start over from scratch. first, I made complete mysqldumps of {cvs_files} and {cvs_messages}, just to be safe. then, i moved all the records in {cvs_files} and {cvs_messages} related to this module into new {cvs_files_attic} and {cvs_messages_attic} tables, and removed all the records from the live tables. Then, I removed all the contents of the contributions/modules/mass_contact directory in the contrib repo.
oadaeh is now going to take the release tarballs for this project, start with the original 5.x-1.0 release, commit that as the initial revisions of his files, tag it, make a DRUPAL-5 branch, commit 5.x-1.1 to the branch, tag that, etc.
it's a drag to lose the original commits, but many of them were bogus, on the wrong branch, etc. this seems like the least evil option, and oadaeh is up for doing the work to get back a sane module with the right branches and tags going forward...
Comment #32
dwwYay, under my watchful eye, oadaeh just finished cleaning up mass_contact. ;) So, we're down to just these two for DRUPAL-5--1:
cck_address_extensions
phpids
(and of course, the 7 other random CVS ids listed in http://drupal.org/node/152832#comment-651079 (#25)).
Comment #33
rconstantine commented@dww - I don't have a problem with starting cck_address_extensions over if that is easiest. It is a young project and not much has happened. I'll just have to make sure I have a copy of the latest files to re-upload. And I'd say we don't even need to keep old files or messages even.
Comment #34
webernet commentedMyDrupal (http://drupal.org/project/MyDrupal) -- DRUPAL-4-7--2-0 should be renamed to DRUPAL-4-7--2
filmforge (http://drupal.org/project/filmforge) -- DRUPAL-5--1-0 should be deleted
dataview (http://drupal.org/project/dataview) -- DRUPAL-5--1-0-BETA1 should be a release tag on HEAD
addtofavorites (http://drupal.org/project/addtofavorites) -- DRUPAL-5--1-4 not sure what to do...
node_browser (http://drupal.org/project/node_browser) -- DRUPAL-5-1 should be renamed DRUPAL-5 (which currently exists, but is empty)
MyDrupal_Impact (http://drupal.org/project/MyDrupal_Impact) -- DRUPAL-5-1 should be renamed DRUPAL-5 (which currently exists, but is empty)
MyDrupal_Impact (http://drupal.org/project/MyDrupal_Impact) -- DRUPAL-4-7-2 not sure what to do...
teamspeak (http://drupal.org/project/teamspeak) -- DRUPAL-5-0 should be deleted
Comment #35
webernet commentedRelease nodes that need to be dealt with:
http://drupal.org/node/167599
http://drupal.org/node/130273
http://drupal.org/node/171325
Comment #36
swentel commented@dww or any cvs administrator.
After a lot of cvs handbook reading, I finally get the hang of it (cf blockclone project), but my other project (PHPIDS) is still a mess. So how will we clean this up ? If the best and fastest solution is to just start over again, that is fine with me .. let me know. I'm also at Boston, maybe we should clean this up during a little session over there ?
Comment #37
scor commentedFYI, slideshow_creator has a DRUPAL-6 branch: http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/slideshow_c...
The maintainer (brmassa) seems to have moved to DRUPAL-6--1
Comment #38
hass commentedIs this an active task? As I remember nearly or all maintainers have fixed their faults... not sure if here is something to do anymore!? So we could close this case and get rid of another case in the issue queue :-).
Comment #39
dww@hass: If you want to be helpful, read the issue. If you did, you'd see why it's still active. Thanks.
Comment #40
hass commentedIt may be a stupid question as I'm little bit confused about branches and tags and what is allowed or not... as I see more projects not following the rules. I have a real need to TAG releases as version 0.x like 6.x-0.2 (like http://drupal.org/project/wysiwyg). I'd like to make clear that this is not feature complete release (0.x) and that the drupal piwik module version 0.2 is compatible with the piwik release 0.2 (http://piwik.org/). So - am I in troubles if I would tag a release in 6.x-1.x branch with 6.x-0.2, 0.3 and so on? I'm not so deep in the rules of CVS...
Comment #41
pasquallemy short answer would be: don't do that.
reasons:
is it compatible with piwik 0.2.0 or piwik 0.2.28?
when you fix some bugs in the module, you should make a new release and you will have to mark it as 0.3 while piwik is still 0.2..
simply make a 1.0-alpha1 release and write the compatibility explanation or any other information into the project node..
Comment #42
avpadernoI agree with Pasqualle; it's not possible to have that similarity between the version numbers of projects that use different systems to number the releases.
The problem is that then they are two different projects.
Suppose you would use 6.x-0.2.28 (it's not the correct way to name a version, but it's a supposition); what would you do when you need to fix an issue in your module? Your module would have a new version (6.x-0.2.29), but the third party software would still have the same version number as before.
It could also happen that they change version of their software, and you are still using your old version number.
Comment #43
dwwCan y'all please leave this issue alone with this unrelated topic? This is about cleaning up junk that was put in the repository before I had locked down all possible ways to break the conventions. This is not the place for a support debate about how to name your tags. Thanks.
Comment #44
avpadernoIt seems the task has been done, as there have not been any comment in more than one year. Feel free to reopen it if it has not been completed.
Comment #45
webernet commentedThis isn't fixed. See: http://drupal.org/node/97084
There are still a few bad branches:
DRUPAL-4-7--2-0
DRUPAL-4-7-2
DRUPAL-5--1
DRUPAL-5--1-0
DRUPAL-5--1-0-BETA1
DRUPAL-5--1-4
DRUPAL-5-0
DRUPAL-5-1
DRUPAL-6--1-0
Comment #46
avpadernoI apologize.
Is there a list of projects with wrong branches? http://drupal.org/node/97084 only reports the number of projects.
Is this a task that can be done from who has a CVS account, and commit access to the project to alter, or is this a task that only who has shell access can do?
Comment #47
webernet commentedBumping in light of the upcoming git migration.
Comment #48
mikey_p commentedNow that we allow all branch names with Git, and only restrict the branches that releases can be made from, I think it's safe to mark this fixed.
Comment #49
webernet commentedI believe this should be left open until the releases pointing to the faulty tags/branches are fixed.
Comment #50
gerhard killesreiter commentedI don't think any such releases will be fixed since most seem to belong to abandoned Drupal versions.
Comment #51
dwwYeah, I'm not really interested in trying to fix this anymore. If someone really wants to try, let me know, but at this point, I don't care.