Play

Contributing Projects to Drupal using Tortoise CVS

Jocelyn
Post to Twitter

While I consider myself fairly technically savvy and have been developing & theming Drupal sites now for a few years, when I had my first module I was ready to contribute, I have to admit that I was feeling a little dumb-struck.

So, in order to help anyone else new to this process, I decided to document the steps you need to take to get your module running on drupal.org.

Step 1: Get your Account & Permissions

  1. Get a drupal.org account Once you have your account, you'll be able to create and reply to posts, join groups, etc... But you won't be able to submit your own code to the community (yet).
  2. Apply for contributions CVS access http://drupal.org/cvs-application/requirements. Do read this page before you submit as it will give you tips on submitting your application, and typical reasons applications are turned down.
  3. When you are ready to apply, you should have a module or theme already in mind to submit and include this with your CVS application. You'll get feedback from the maintainers when they review your submission. And really who can't benefit from another set of eyeballs?

You should hear back relatively quickly letting you know whether your application was accepted.

Step 2: Get CVS

Every drupal.org project (a contributed theme, module, installation profile or translation) needs to be maintained in CVS (Concurrent Versions System).

If you aren't familiar with CVS, check out the CVS Introduction on Drupal.org.

  1. If you don't already have a CVS program... Get a CVS program. While I did attempt to first use Cygwin, I find that Tortoise works the easiest and is the most GUI-person-friendly.

Step 3: Create a Project Page

Once you have your project & contributions access, login to your account and click on 'Create Content > Project'.

Most of the fields here should be self-explanatory. Something to keep in mind is that the Short project name needs to match the name of the folder that contains your contribution.

Step 4: Submit your Code to the Drupal CVS

There may be different approaches, but here's what I did...

The below assumes you're using Tortise CVS on Windows

  1. Created a new folder in C:/ called 'CVS'
  2. Copy your module/theme to this directory
  3. Right-click on your folder, scroll down to 'CVS -> Make New Module'
    Tortoise CVS · Make New Module
  4. :pserver:uname@cvs.drupal.org:/cvs/drupal-contrib
    contributions/modules/modulename
    Replace 'uname' with your drupal user name
    Replace 'project' with your drupal project name you created
    If you're not submitting a module, replace 'modules' with 'themes' or your contribution type

Step 5: Tag your CVS Contribution

Right-click on your newly added folder and choose 'CVS -> Tag'

DRUPAL-6--1-0
DRUPAL-6--1-1
DRUPAL-6--1-2

DRUPAL-5--1-0
DRUPAL-5--1-1
DRUPAL-5--1-2

Step 6: Create your Project Release

  1. Go back to your drupal.org project page
  2. Select 'Add New Release'
  3. Here you will see a list of tags you've previously assigned via CVS

Creating Future Releases

  1. Copy & Replace your updated module files to your CVS module folder (ex./ C:/ CVS/modulename)
  2. Right-click on your project folder and choose CVS Commit...
  3. Once your files are committed, repeat steps 5 & 6 above

Useful Links

Comments

#1 |
Anonymous
Excellent step-by-step guide!

I have been searching for more than a month about cvs and drupal, but could never understand anything from all the tutorials that I found. They assume too much!

Until... yours came along :) It's very easy to follow, and although I am still awaiting for my CVS account to be approved, by going through your tutorial I can already understand the basics.

Thanks!

Kevin C.

#2 |
Jocelyn
Re: Excellent step-by-step guide!

Thanks Kevin. Hope you get your CVS account soon :)

Add comment

  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags
  • Websites and email addresses turn into links automatically
  • Use one of the forms name.module, name.theme, name.translation, name.installprofile or name.project, in order to link to http://drupal.org/project/name. Note that a link will be generated even if a project does not exist
  • Lines and paragraphs break automatically
Your email will not be displayed publicly. If you have a Gravatar account, used to display your avatar.

jsfwd on Twitter 

  • BIXI debuts bike sharing program in Toronto http://bit.ly/cTruQl 1 day 21 hours ago
  • Vote #Toronto to host DrupalCon 2012 North America http://bit.ly/aXgBkJ 3 days 19 hours ago
  • Toronto #Drupal meetup tonight 6:30pm @CSI http://bit.ly/cGL63w 4 days 19 hours ago
  • Display a Twitter Profile using YQL & jQuery http://bit.ly/ajAfu6 5 days 21 hours ago
  • Google Images got a facelift.... size, type & colour filters... pagers gone... wow! 1 week 2 days ago
  • Wouldn't that just be Drupal? RT @becircle: I just heard the words I feared I might hear some day "They created a GUI for Drush" #drupal 1 week 3 days ago
  • #Raptors acquire Leandro Barbosa... w00t w00t!! 2 weeks 5 days ago
  • The NBA is a whole lot less interesting today. 3 weeks 22 hours ago
  • Site Aliases, Groups and Remote Capabilities! RT @lwalk: New features in Drush 3 http://bit.ly/aIzmxw #drush #drupal 4 weeks 2 days ago
  • Twitter delays the OAuthcalypse another 6 weeks http://countdowntooauth.com 4 weeks 3 days ago
@jsfwd on Twitter »
i heart jQuery