Difference between revisions of "Contribution"

From Makers Local 256
Jump to: navigation, search
(added a short overview for my Contribution project)
 
(added some motivations and a short feature list for Contribution)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
  
A version-controlled repository where every commit is just a branch. Multiple branches can be merged into a single new revision (still a new branch, no overwrites), and working copy updates would require explicitly choosing the next revision to work with. Some contributors may be authenticated in order to tag a branch as "official" in order to differentiate from anonymously committed versions. The idea here is that anybody can contribute, and anybody can work with any previously-contributed revisions they wish, even ones which haven't been (or even never will be) integrated with the "official" version of the project.
+
Open source projects are great because they allow anybody to modify the code to suit their needs. However, this has a few major drawbacks:
 +
 
 +
* It's difficult to keep your version in sync with the official version.
 +
** You could try to get your changes patched into the official version.
 +
*** The project maintainers may not want your changes.
 +
*** You may disagree with the overall direction of the project either now or in the future.
 +
* It's difficult for others to benefit from your changes.
 +
** Again, you could try getting into the official project.
 +
*** Same problems as above.
 +
** You could start a new project around your code.
 +
*** This causes a lot of duplicated effort.
 +
*** Project maintainance is sometimes complex.
 +
* It's difficult for others to contribute to your version.
 +
** Once more, getting your changes into the official project may be possible.
 +
*** Still suffers from the same problems.
 +
** Again, you can make a new project.
 +
*** Suffers from the same problems as above.
 +
*** Doesn't even completely solve the problem since contributors and/or their patches have to be validated/verified and added to the project manually anyway.
 +
 
 +
Contribution is an attempt to make collaboration simpler by keeping track of every modification to a project, even the "unofficial" ones.
 +
 
 +
== Features ==
 +
 
 +
* Every commit is a branch.
 +
* Anybody can commit patches, even anonymously.
 +
* No real distinction between "official" and "unofficial" branches.
 +
* Multiple branches may be merged into a new revision.
 +
* Each revision may be signed by the author.
 +
* Repository browsing clearly shows the multiple paths of development without clutter through creative use of filters.

Revision as of 13:30, 26 March 2007

Overview

Open source projects are great because they allow anybody to modify the code to suit their needs. However, this has a few major drawbacks:

  • It's difficult to keep your version in sync with the official version.
    • You could try to get your changes patched into the official version.
      • The project maintainers may not want your changes.
      • You may disagree with the overall direction of the project either now or in the future.
  • It's difficult for others to benefit from your changes.
    • Again, you could try getting into the official project.
      • Same problems as above.
    • You could start a new project around your code.
      • This causes a lot of duplicated effort.
      • Project maintainance is sometimes complex.
  • It's difficult for others to contribute to your version.
    • Once more, getting your changes into the official project may be possible.
      • Still suffers from the same problems.
    • Again, you can make a new project.
      • Suffers from the same problems as above.
      • Doesn't even completely solve the problem since contributors and/or their patches have to be validated/verified and added to the project manually anyway.

Contribution is an attempt to make collaboration simpler by keeping track of every modification to a project, even the "unofficial" ones.

Features

  • Every commit is a branch.
  • Anybody can commit patches, even anonymously.
  • No real distinction between "official" and "unofficial" branches.
  • Multiple branches may be merged into a new revision.
  • Each revision may be signed by the author.
  • Repository browsing clearly shows the multiple paths of development without clutter through creative use of filters.