We have had discussions about setting up SVN on the dd.com server so we can version control the website's code and work as a team without screwing each other up. It would be awesome to also use project module on dd.com for tracking of website code tickets. We can then help out with 1) making project module better and 2) getting it to integrate with SVN.

I'd also like to see if it feasible to capture some of how we actually set this up and make a Dojo lesson from it (SVN, project or both.) So it would be nice to get at least a bullet list of the rough steps we will need to follow to do this and then, well, do it and document it. ;-) So this thread is for a) good idea? b) make a list and get recommendations and c) volunteers who want to work on this?

Comments

dmitrig01’s picture

IMO we should user Mercurial, because it's simple, and allows for a test site, in a simple way.

Here's how the workflow works for checking out from the repo, checking back into the testing site, and pushing it live:

  1. Clone the test repository on to the local machine, from the server
  2. Make your changes
  3. Push to the test site - just run "hg push" on your local machine
  4. Test live on test.dd.com
  5. SSH onto test.dd.com
  6. Run "hg push", and it goes live

Additionally, I will write some stuff up about it for the new dd.com handbooks if we use it.

add1sun’s picture

My big -1 to Mercurial is that simply not as many people are familiar with it. This is a deal breaker because we should make everything we do be as sustainable as possible. With more people familiar with SVN, we are more likely to find folks to volunteer to help.

mpare’s picture

Are we looking at managing the svn via the local drupaldojo.com server? Or would we want the svn repository to be off site to preserve the available resources and to offer means of continued development regardless of drupaldojo.com's server status? I can see benefits to both methods and would like to get some comments going for reasons for and against. If a third party svn repository is viewed as a positive we have been using the free service of Assembla for sometime now and have enjoyed the experience very much. They have lots of tools and do not require that projects utalizing their service be members of particular license types. There is a community infrastructure used for recruiting, hiring, and other purposes. Other tools include wiki, trac, mile stones, etc...

add1sun’s picture

Yeah, I have to say that I am torn regarding SVN. Other than the on-site vs. off-site question, I think we also need to weigh out the sustainable factor. What I mean by that is that on the one hand it would be way cool for us to use SVN and work on project module integration and also eat some Drupal dogfood but then on the other hand that requires much more work to maintain the SVN repo and hammer on project and that is not the main focus of the Dojo website. We will need to depend on server admins who have time to set up and maintain that (or find someone/some shop willing to donate their SVN admin skillz) and sustain that support over time if we do it ourselves whereas if we use a 3rd party SVN that is one fewer task we need to worry about.

Technically I am donating 3rd party SVN right now through my personal Unfuddle account that Dojo is using but I'd rather not maintain that as the status quo because the level my account is pretty limited. We have been trying to set up our own Dojo SVN now for well over a month and so far pretty much nada, due to lack of volunteer time/knowledge. So I'm up for exploring free or donated 3rd party SVN that the Dojo is not responsible for maintaining.

add1sun’s picture

Title: Setup SVN and project module for dd.com code » Dojo SVN and code tracking

Changing the title to broaden this discussion.

BTW, Assembla looks really nice.

dmitrig01’s picture

Mercurial is very very very similar to SVN, but it's better

gusaus’s picture

Without really knowing what I'm talking about (even moreso than other times)... I'd say if there's a group of people that are trying to make better drupal dogfood, possibly we can bring some attention/add value to those efforts?

add1sun’s picture

Well gusaus that's true and that is the main draw to eating Drupal's dogfood but my concern is actual resources to sustain that effort. At the end of the day we need to have a solid, functioning infrastructure that we can maintain without depending on one or two people for key things. If we can find people who will take that on, I am totally down with it.

We can also set up a 3rd party system to start so we have something to actually get work done on and then build the other things we need and move over.

I would really LOVE to set up our own SVN and project but the Dojo has not been strong on infrastructure volunteers pretty much all year and particularly in the last months. I have to be honest with myself as well since it was originally my idea and I wanted to do it but I simply don't have the knowledge to do the work timely and no one else has been able to do it either. It just doesn't bode well longterm.

mpare’s picture

@add1sun Comment #4
Assembla has plenty of rights in comparison to Unfuddle from what I've heard from other users. I don't consider myself a svn pro admin but I haven't encountered any issues with permissions or actions that I cannot perform on Assembla. Can you define a scenario that is of potential conflict with other third party svn's so that I may test on Assembla? I probably should have said that Assembla is free but they do offer pro accounts for $$$. I haven't encountered any limitations atm with my free account and have not been informed of a member limit, etc...

add1sun’s picture

Yeah, I looked at what Assembla offers and the key thing I love about them is that the free account does allow unlimited people. That is a major drawback of Unfuddle. My $9/month account only allows 10 people. That is the "limit" I was referring to. In terms of actual SVN usage I've not had issues.

dmitrig01’s picture

I still don't understand why we should use Unfuddle or Assembla over project module?

P.S. I'm typing this on a new keyboard layout, so I'm being very slow

add1sun’s picture

I'm not saying use them for ticket tracking per se, just for the SVN repo. Although it is nice to have code and tickets integrated. The main reason to use a 3rd party for this *right now* is so we can get started quickly without any administrative overhead and not needing to worry about who will maintain it (SVN). Also, keep in mind that SVN/project integration is not complete so *if* we tried that we would be alpha or beta testers for it and frankly we need a solid dev env right now. I'd like that to not be of concern or distract resources from our bigger issues. We can always consider moving it in house later once we get the major architectural pieces and front facing needs met.

gusaus’s picture

These threads seem pretty relevant to a potential 'drupal' solution -
http://groups.drupal.org/node/7850
http://groups.drupal.org/node/7440
http://groups.drupal.org/node/3686

Possibly we can engage in some dojo collaborative workshopping with the folks that are driving these projects. With a current count of 1068 dojo subscribers, you'd think we could make a serious contribution.

mlncn’s picture

Subscribing. Agaric Design Collective currently hosts all our stuff (modules in development, custom modules and themes, copies of Drupal core and contrib) using Subversion, and we're starting to use Project module, so we may be able to help here. We could even do the svn hosting but it's not that difficult to set up a repository wherever drupaldojo is hosted (I wouldn't think).

That said we're also very interested in better revision control and would be happy to become part of a critical mass that learns Mecurial (or bzr or git) and helps others learn, to make it sustainable for drupaldojo.

In all cases we'd like to help Project module become (part of) the ultimate solution for project management.

benjamin, Agaric Design Collective

p.s. Dmitri, are you switching to typing in Dvorak? You will have many happy years of messing with the minds of people who use shared computers after you. ;-)

dmitrig01’s picture

@Benjamin - yes, I'm trying. It's very hard to learn a new layout

@all - it looks like some time within the next couple of years, Drupal will switch to Mercurial. However, I have changed my mind and would like to use SVN, because Mercurial is not ideal for single websites. It's more for projects like Linux and Drupal.

add1sun’s picture

Category: feature » task

I'm switching this to a task.

senpai’s picture

Priority: Normal » Critical

Having now used Unfuddle in a professional environment, I'm all for the concept of keeping our ticketing system closely tied to our code repo versioning system. Being able to look at a ticket and figure out which three people touched the code relating to this ticket, and what they changed is crucial to forward progress.

I've been in our own dojo Unfuddle account several times now, and while it works just fine for our needs it's not free. In a way, Addi has been effectively paying for our ticketing system out of her own pocket. That's got to change.

I'm casting my vote for Assembla. I'll take the time to learn it, but let's stick with SVN what ever we do. I can't go and learn yet another version control system this year. My brain is already too full, and I just got finished getting comfortable with CVS and SVN. Please, let's not switch to something else right now?

+1 for Assembla with SVN.

mlncn’s picture

I've signed up with Assembla to see what it's like. I have a strong preference toward using Project module and Project's Subversion integration and would help maintain this. This would leave moving to a new system, like Mercurial, more up to us, and we would become part of the community with a direct need for the project module ;-)

But I understand that works both ways, in that this would be a lot more work.

benjamin, Agaric Design Collective

add1sun’s picture

Component: Website » Infrastructure

New component for Infrastructure.

@ Benjamin, I agree with your preference, but yes it is a lot more work. I'd like to get the dev environment/workflow set up by the end of January. So, if you think this is something that could be figured out and running smoothly by then, by all means check it out and report back. Otherwise we need to turn our attention to premade, dependable solutions so we can get up and running. Also, remember that we can always migrate to a Drupal solution later on.

add1sun’s picture

ugh, Ok I spent some time to really look at all of this more closely and here is what I'm seeing:

a) I'm not a fan of Assembla's use of an external Trac for ticketing (they have the internal Tickets thing but afaict that does not integrate with SVN. :( ) I prefer Unfuddle's smooth integration of all your tools if we are using a "turnkey" system, but then again they cost money at the level we need so that's a bummer.

b) There is no Drupal-based SVN/ticketing integration that works right now. There is work going on but nothing that is stable and ready for us to use. Also none of it is ready for Drupal 6 yet.

So I'm thinking we have 2 likely options:
1. Use Assembla and just deal with Trac. If we use them, I would like to only use it for Trac and SVN, no other Assembla "tools." In the future when we decide to move to Project module we can do some kind of module magic to get the Trac export imported into Project (and SVN export/import to get the repo.)

2. Set up an SVN repo on the dd.com server as well as either a) install project module on a dd.com subdomain or b) use the d.o issue tracker for now. This will not have issues and SVN integrated nor one nice unified user control for both but when that is eventually possible, the transition will be smoother. This is also more work to setup and maintain for us. I am specifically concerned about creating SVN accounts (should we use svnserve's built in auth (with CRAM-MD5) or use ssh, which means shell accounts...) over time.

3. Use Assembla to have a SVN repo and use project module for tickets. This gives us no integration for the time being but also means that when we do transition we won't need to try to cram all of our Trac tickets into Project module.

So, while I would love to do (2) our own SVN repo and project, it just doesn't seem feasible *right now*. I certainly don't have the time to dedicate to setting all that up. So, now that I've looked into it more I'm gonna have to say that in the short term we should go with either 1 or 3. I'm fine with either because honestly the ticket/SVN integration is neat and all but if we establish and enforce an svn messages practice of including the URL to the issue, then it accomplishes the same thing, just not quite as easily or slick. I mean even in integrated systems you have to put the ticket you are referencing in the message so it isn't that far of a stretch.

For plug it in and lets move on factor though I'd say option 1 is where we stand right now. So unless someone gets everything installed and working this week, I plan to make a Dojo Assembla account/space next week.

add1sun’s picture

Woohoo! OK, so basically aclight found me on IRC and said he has some work on SVN and project and is willing to spend some time working on this this weekend to see if we can get what we need. Josh was in channel too so all three of us agreed to hammer it out at Noon PST/3 p.m. EST/8 p.m. GMT on Saturday, January 19. We will meet in #drupal-dojo and then make a temp IRC channel while we work on it. Anyone who would like to help/learn is welcome to join us.

We'll see if this is gonna work for us and if so, go with it, if not, we still have a fallback.

aclight’s picture

subscribing

add1sun’s picture

Status: Active » Closed (fixed)

An update:

Yesterday we installed SVN, viewvc and a new D5 site running Project on the dd.com server that is using some temporary connector code (by aclight) until we get the versioncontrol API set up for SVN. I still need to move the code over from the Unfuddle account and we need to figure out some things like how accessible we want them to be (that is, we are restricting public access.) We will need to document what we did but I'm marking this issue closed since this is a successful path for us.

add1sun’s picture

Status: Closed (fixed) » Fixed

Ugh, meant to set that to fixed. ;-)

mlncn’s picture

Awesome, sorry I couldn't make it yesterday.

benjamin, Agaric Design Collective

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.

gusaus’s picture

Assigned: Unassigned » gusaus
Status: Closed (fixed) » Postponed (maintainer needs more info)

This again will have to be reassessed to reflect any developments and changes since January.

gusaus’s picture

Title: Dojo SVN and code tracking » Set up SVN and code tracking
Status: Postponed (maintainer needs more info) » Active
gusaus’s picture

Issue summary: View changes
Status: Active » Closed (outdated)