Require Source Version Control in PEAR ?

Before reading this, do note that nothing has been agreed in regards to those actions described below are only my thoughts on this matter :-) Have fun reading!

NOTE All comments were lost due to a move from s9y to dotClear back in 2005, just look at the pear-dev archives from 2005 :P

Until now the PEAR project hasn’t required developers to use a SVC for their code (CVS, SVN and etc.) which has led to couple of problems and short comings for us, for example, maintainers just disappear and we are left only with the code in a .tgz form, possibly a very outdated version … HDD crashes (at the developers computer) and the most recent code that hasn’t been released is just *poof* gone … We have a difficult time monitoring the development that could led to spotting problems sooner and also we have a harder time running automate QA tasks.

This issue was discussed a bit on pear-dev and everyone seemed to agree that requiring people to use SVC isn’t too much to ask.

Are we going to lock people in to using the CVS server provided by php.net ?

No, absolutely not, I’d say (as well as others said this) that we should allow people to use any of the other OSS SVC providers like SF, Novel Forge, Berlios, Savannah and that like … As long as it has anonymous checkout access and is publically available than we are pretty happy, having a browser viewable repos is a plus tho :)

So I quote Pierre a bit.

I would like to force people to use a public sources versions > control system for any package available through PEAR.

This SVC can be cvs or other as far as it is publically available.

We provide a SVC (using cvs softwares) under cvs.php.net/pear as a convenience and recommanded solution. Feel free to use it _or_ not.

But do note that we wouldn’t want to accept that people set up SVC servers on their personal computers/servers since that imposes\ problems to us as noted both above and below.

We tho would take into account projects like Horde and Pat which have their own repos to handle not only PEAR packages but also things related to their project and would there for not benefit in having to maintain their code in 2 different repos. Before anyone starts throwing stones and rotten tomato’s, then do take a note on that I said like Horde and Pat, so I’m talking about such big projects in general and taking them then as an example.

What do we gain by forcing people to use a SVC ?

Well that’s very simple, as we are open source community we want to have access to the code so we can follow development but as is we have to in many cases work with the most recent published version of the package which can be very dull, since we don’t know where the maintainer is heading with the package and if your changes willconflict with any changes that the maintainer has already done.

Also if the maintainer loses interest in maintaining the package or doesn’t have time to maintain it then someone else can pickup where the maintainer left and have the most recent version of the code. It will be easier for QA to find any violations to rules and/or something that breaks backwards compatibility and it will be much easier to run automate tests on the code every now and then plus providing people with nightly snapshots of the package will be a breeze.

Aren’t those harsh actions ?

Yes they are a bit harsh but this seems to be the best course of action to keep high quality in PEAR …

But why is that ? Don’t you trust your developers to give away their latest version of the package before they quit maintaining their code ? Isn’t there a better way to do automate QA tasks ?

To be frank, I have huge trust in our developers but it tends to happen that a persons fades away with out telling anyone and such is life, we can’t do anything about that, people come and go, but so it will have lesser impact on us, than we can at least require them maintain the code in a online SVC repo so someone can pick up later on maintaining the code.

Doesn’t this mean that developers have to devote even more of their precious time into PEAR just to commit things/update and etc ?

Well of course it will, tho it’s not like committing takes more then 1 or 2 mins, which is nothing compare to what it means to the community and fellow developers :-)

Why can’t I just set up a SVC server on my personal server ? I promise to make it accessible to anonymous users! I’ll even add a online viewing thing!

Because that is kinda the same as just storing it on your HDD and giving no one access, same danger that is, you can just suddenly fade away and your server with you or your server crash and *poof* it’s gone, so no.

What if I take backups ?

Nope, sorry, we can’t count on that.

Please ?

I said no!

Who stuck that stick up your ass ?! Horde and Pat and others don’t have to use any of those public servers like SF or Novell Forge and etc ?!

Horde and Pat have proven them self and they consist of more then PEAR packages so it’s logical for them to have a stable SVC server and it would be unfair for us to make them use anything else then they are using at the moment so just please register at any of those public hosting things for OSS or use the CVS server we provide, which is located at cvs.php.net, it’s fair, we are providing you with a free hosting and allowing you as a alternative to use any of the other providers available so we are not locking you in the way that many other open source project do, you do have a choice! :)

I think that just about covers it and I’m hoping I won’t have to propose this as a RFC via PEPr to get this in :/ Hate proposing such minor things through that thing =D

Anyway, I wanna hear from more people about this, the mailing list discussion didn’t satisfy me :-) So flames, rant and etc. are welcomed!

Tags: , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: