ArchStudio Code Organization Standards
Any changes must be proposed on the archstudio-dev mailing list.
ArchStudio is composed of a number of subprojects, including:
- ArchStudio itself
- Broken into several interdependent sub-subprojects
- BNA
- The Myx Framework
- The xarchlibs
- (Apigen)
In general, this breakdown will remain for ArchStudio 4, but will be revisited for ArchStudio 5 as we learn more about how to compose Myx applications from multiple Eclipse plug-ins.
The Common Sandbox Approach
The community has accepted the "common sandbox" approach for repository organization. In this approach, there are two key branches for each project: the "trunk" and the "stable" branch. The "stable" branch is always stable, and it is the branch from which releases are made. The "trunk" is meta-stable. By default, most users commit most changes to the trunk, including features in an intermediate state of development. Major "excursions" are done in separate branches and merged to the trunk. At the time of a release, a dedicated "release manager" examines all code in the trunk and migrates release-quality code into the stable branch manually. Then, the stable branch is used to create a release.
Release Cycle
The community has agreed on four major releases per year, on the following dates:
- Feb 1
- May 1
- Aug 1
- Nov 1
If bugs are found in between major releases, necessitating a patch release, then new point releases will be cut from the stable branch as necessary. This may mean that new features are released in the middle of quarters if they have been moved to the stable branch. The API stability policy imposes some restrictions on when API-changing features can be moved to the trunk.
The current release manager is Kari Nies?.
Versioning Scheme
The community has agreed upon a general versioning policy that is consistent with other open-source projects and Eclipse. Each release of ArchStudio will be tagged with a four-part version number:
Major.Minor.Patch
- The major part of the version number will correspond with the major release of ArchStudio: 4 for ArchStudio 4, 5 for ArchStudio 5, and so on.
- The minor part of the version number will correspond with the major quarterly release of ArchStudio.
- The patch part of the version number will correspond with incremental (between quarters) release of ArchStudio bug-fixes and the like.
- The qualifier part of the version number increments with each release and is managed by the Buckminster tool.
