open source projects...management
Just wandering. With these big open source projects, how is it all managed. If you have people all over the world contributing to the core source, how do they synchronise all the modifications and improvements.
Is there some sort of technique when lots of people are working on one particular project / file / section....???
demonhale posted this at 02:31 — 22nd March 2007.
He has: 3,278 posts
Joined: May 2005
There is a process to follow, that's why there's a change log. Every contributor keeps a record of the modifications and updates they performed and it's results. The updates are then gathered and mixed and internally tested between them. Then they decide if it's enough to release an update version. The more changes and fixes there are, the higher the jump in version number. Example a version 1 alpha will become version 1.1 alpha with small changes, but may jump to beta with the increments or there is a major update...
Megan posted this at 13:02 — 22nd March 2007.
She has: 11,421 posts
Joined: Jun 1999
You may also have a version control system set up, and a bug tracker. Liam (Jeevesbond) just took over my old computer so we can run a little server for this purpose.
He'll have more to say about it when he finds this topic, I'm sure!
Megan
Connect with us on Facebook!
benf posted this at 17:52 — 22nd March 2007.
They have: 426 posts
Joined: Feb 2005
So is there ultimately someone who manages the whole project for releases and modifications before it is finalized.
Does this mean that different people have lots of different copies of the main project and are therefor tested separately. How is all this integrated and tested for the final versions?
Im not sure i understand how a big project is managed if you have say more than 10-20 people all working on the same thing?
Good Value Professional VPS Hosting
Megan posted this at 18:37 — 22nd March 2007.
She has: 11,421 posts
Joined: Jun 1999
I think that usually there is someone who sort of manages the project. I don't think you'd normally have a huge number of people working on the same project at once. Version control means that you can track who has made changes to what file and when. I think you could also ensure that two people aren't working on the same problem or the same files at the same time. So someone might have to "check out" a file to start working on it.
Hopefully Liam will see this and correct anything I say that's wrong!
Megan
Connect with us on Facebook!
JeevesBond posted this at 01:17 — 23rd March 2007.
He has: 3,956 posts
Joined: Jun 2002
Wow, now there's an interesting can of worms! This is 'Open Source' we're talking about, so there are more techniques and ways of doing things than you've had hot dinners.
Although, am trying to think about it from a high level and most projects have a few things in common:
An interesting insight into FLOSS projects, and the Linux kernel in particular, is the article 'Who Wrote 2.6.20?'. It shows a detailed breakdown of who contributed to creating the last Linux kernel release.
If none of this makes any sense, don't worry. I had much the same questions as you did, but instead of worrying about how it all works I decided to just get on with using GNU/Linux and let the rest happen naturally. I'd advise you to do the same: concentrate on learning what you need to know, the rest will all slot into place as you go along.
Unless there's a particular reason (project etc.) you need to know all this stuff up-front?
a Padded Cell our articles site!
JeevesBond posted this at 02:08 — 23rd March 2007.
He has: 3,956 posts
Joined: Jun 2002
Sorry to double-post, but I wanted to answer your other questions too:
Maybe, depends upon the project. There could be be more than one person with access rights to merge code into the main source tree. There's usually one maintainer/admin person who has final say though, but again, it depends upon the project.
Again, depends upon the project and the version control software being used. At this moment there is a large discussion over whether distributed (e.g. the system you described) are better than version merging systems.
Mostly it happens the way you describe it though. In theory if everyone has written good code it should all work together, also a hacker should always ensure they have an up-to-date version of the code when they start working every day. The first thing anyone does when they work on a project (and I mean every time they sit down to do any coding) is do an update. This will automatically merge other peoples changes into their own copy and show any conflicts it can't resolve. Then when the bug is fixed, or new feature added the developer will create a patch file and submit it for inclusion in the main code tree. Because they've kept their working copy of the repository updated there should be no conflict with anyone elses changes.
That's roughly how it works, although I may have mixed up some of the finer points between centralised vs distributed version control.
See above, pretty-much. It's all down to the system being used and who the maintainer allows to check in changes to the main source tree.
I gleaned this from an argument about Firefox and Epiphany, from one of the people who started Firefox:
That's a lot of people and it's all down to using version control and managing the rights of those who can check-in. The key point of allowing a lot of people access is that if a patch is rubbish, the code can just be rolled-back to how it was before. No harm done.
Hope this helps. Hopefully Abhi will be along shortly to fill in the gaps I have--no doubt--missed.
a Padded Cell our articles site!
Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.