Closed (fixed)
Project:
CVS deploy
Version:
6.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
4 Mar 2007 at 17:09 UTC
Updated:
31 Jan 2008 at 05:53 UTC
not sure how yet. maybe cvs client provides enough of a hook that Version field could be written into the .info files? Or maybe a command line php script that writes this line base don info in CVS directory? I'm not necessarily saying that this module shoud accomodate the CVS crowd, just that it would be generous to offer ideas/code for that audience so they may use this module too.
Comments
Comment #1
merlinofchaos commentedMy personal opinion is to point those people at the releasemonitor module, and see if we can convince releasemonitor to exist peacefully with update status.
Comment #2
dwwa compromise solution:
cvs update -r DRUPAL-5, they docvs update -r DRUPAL-5--1-3to get the 5.x-1.3 version of the module in question).version = "$Name$"in their module's .info files (already suggested in the docs, and appears to be mostly common practice).version = "$Name: DRUPAL-5--1-3 $"version strings from the .info file and convert that into the a) human-readable and b) XML-RPC request-friendly version format ("5.x-1.3").this would require no extra work for module maintainers (except following the existing suggestions for writing their .info files in the first place), no changes to the packaging scripts, and little extra code in here. it would require more work for the deploy-from-CVS crowd, but arguably, to use a better system (i.e. still run official releases, but upgrade/deploy with cvs instead of tarballs). this would allow them to submit bug requests with real version info, too. ;)
Comment #3
moshe weitzman commenteddww's proposal is music to my ears. perfectly reasonable.
Comment #4
dwwin IRC, i had a little debate with killes and merlin about http://drupal.org/node/116131 ("Automatically create a LATEST tag"), where i was explaining why i didn't like that approach. merlin mentioned my comment #2 above, and said in jest, "With a little nudging, that could probably even provide the cvs commands and you can just cut & paste"...
over lunch, i thought more about this (and the LATEST tag stuff), and actually think this "provide the cvs commands" idea is brilliant, and answers the "someone needs to build tools to help the deploy from CVS crowd" concern. check it out:
version = "$Name: DRUPAL-5 $") it assumes you're out of date (even if that's not true), and flags it as such.DRUPAL-5--1-3, it knows how to compare this version with the answer from XML-RPC.the page could even know, care of
drupal_get_filename()what directory to use, so it could be smart enough to tell you stuff like:obviously, the page would tell you to cd into your site root first, and make sure you've got your CVSROOT env set, blah, blah...
the *ONLY* potential snag is that if you checkout straight from CVS, your .info files don't have the "project" attribute (those get added automatically by the packaging script for the tarballs). however, 99% of the time, the directory name of the module will match this, since on the project node, it's required that the "Project short name" (which is used to generate the path aliases) matches the directory in CVS. ;) so, if there's no "project" in the .info, we just look at
drupal_get_filename()and try using that. the only people this would break things for are the ones who intentionally rename their directories once they checkout from CVS, and i'm definitely not interested in spending too much time making *their* lives easier. if they're going to rename the dirs, they're smart enough to add a "project = original_name" to their .info files if they want all this to keep working nicely.Comment #5
dwwupon further consideration and discussion in IRC...
whereas, the only people deploying from CVS *will* have shell access, and,
whereas, if you already have to login to run the cvs update commands...
therefore be it resolved that this "update_status_cvs.module" actually become a "update_your_site_from_cvs.php" CLI script. instead of printing out cvs commands you should run in a browser window, the script just runs them for you given the right arguments.
so, the UI stuff and changes to update_status.module still knows about parsing
version = "$Name: ... $"junk, making things human readable and nice, etc. but, all the talk of "here are the cvs commands to run to get up to date" are handled via this CLI script. best of both worlds. ;)Comment #6
moshe weitzman commentedthis is sounding real real nice. thanks all.
Comment #7
Christoph C. Cemper commentedGreat suggestions...
>to update their sites not to the end of the branch they care about, but to the latest official release tag (e.g., instead of cvs >update -r DRUPAL-5, they do cvs update -r DRUPAL-5--1-3 to get the 5.x-1.3 version of the module in question).
oh yes please... I need that... module updating became a huge hassle single the introduction of the bigger official release tags... one script going thru the CVS to pinpoint the exact tag to be the latest offical would really help stabilitze my drupal sites
10-4 on the CLI-thoughts... frankly, auto updating via web would be nice, but the security implications of having the apache "nobody" user performing CVS commands are still to be solved...
Comment #8
kbahey commentedTracking this since it relates to http://drupal.org/node/116131
Comment #9
jyamada1 commentedsubscribe
Comment #10
dwwfor sanitizing the CVS $Name$ tag and branch based version strings into the human-readable equivalents, see http://drupal.org/node/146352.
Comment #11
moshe weitzman commentedthis brilliance is all specified but no code anywhere. anyone?
Comment #12
dwwwe can't accomplish this plan until http://drupal.org/node/150316 is done. if you care about this issue, please look there.
Comment #13
drewish commentedsubscribing.
Comment #14
dwwComment #15
dwwperhaps this can be done via http://drupal.org/project/drush and the new drush_pm.module
Comment #16
owen barton commentedYes - we should also look at the upcoming DAST SoC project, which is working on automating the deployment of a site. (Perhaps make DAST the 'backend' of the drush command line installer?)
Comment #17
moshe weitzman commentedit has been done, and quite nicely in drush_pm as derek suggested in #15
Comment #18
Anonymous (not verified) commentedAutomatically closed -- issue fixed for two weeks with no activity.