OPS4J
  Source Control System
Added by Niclas Hedhman, last edited by Thomas Joseph on Jul 16, 2008  (view change)

Labels

 
(None)

We use Subversion as the source control tool. The ROOT of the public repository is at;

https://scm.ops4j.org/repos/ops4j, browseable* here

Under the public root, we are suggesting the following layout, to promote the Code Ladder approach to development.

$ROOT/
     laboratory/                 - contains experiments.
         users/                  - area divided by users.
             <user>/             - one directory for each user conducting experiments.
     projects/                   - contains projects that are on the way to make it into products.
         <project>/              - one directory for each project.
     products/                   - products have developer community support and are stable
         <product>/              - one directory for each product
             dev/                - development tree for ongoing development of each product.
             qa/                 - stabilization work prior to releases.
                 <tag>           - one directory for each QA release, named same as release tag.
             milestones/         - read-only repository of milestone releases.
                 <tag>           - one directory for each milestone release, named same as release tag.
             releases/           - read-only repository of official releases.
                 <tag>           - one directory for each milestone release, named same as release tag.
     retirement/                 - read-only repository of end-of-life projects and products.
         <product>/
         <project>/

The users/ directory contains a folder for each user and the user is free to organize it in any way. All new efforts must start in here, and only after an additional developer is working on the codebase, can it be promoted to a project.

If you have signed up here, you can create your folder under the users/ directory by the usual SVN command:

svn mkdir -m "Add your comment here." --username <username> --password <password> https://scm.ops4j.org/repos/ops4j/laboratory/users/<name-or-id>

Under projects/ there will be one directory for each project that gets started. Projects that don't have developer activity in 6 months is moved to retirement/ . The developers of the project collectively decide how to organize, but should consider to organize according to the requirements of the product/ step. Projects seeking promotion to product needs; 5 active developers, the project organized as a product, operate a separate mailing list (ask at infra@lists.ops4j.org), and have a minimum of 200 mails a month over at least two months. This ensures strong participation and long-term sustainability.

Under products/ you can find projects that have shown sustainability, long-term commitment from a flock of developers and stability. Daily development happens in the dev/ directory. qa/*contains work that is needed to get a milestone through the door. If there are no issues with the milestone, it is promoted to a release. The release must be binary identical (except versioning numbers) with the milestone it is based upon. Products reaches end-of-life after 12 months of no user support requests, and then placed into the *retirement.

And finally, projects and products that are no longer actively supported, are put into the retirement/. Projects are put in there more quickly (6 months) than products, not only because products has stronger developer community, but also as an assurance to the user community.