Difference between revisions of "Oslo/CreatingANewLibrary"
(→openstack-infra/config) |
|||
Line 33: | Line 33: | ||
These instructions are based on the [http://ci.openstack.org/stackforge.html steps for creating a new Stackforge project] with some variations, and apply to changes made in the openstack-infra/config git repository. | These instructions are based on the [http://ci.openstack.org/stackforge.html steps for creating a new Stackforge project] with some variations, and apply to changes made in the openstack-infra/config git repository. | ||
− | Add the project to the master project list | + | ==== Add the project to the master project list ==== |
+ | |||
+ | Edit modules/openstack_project/files/review.projects.yaml to add a new section like: | ||
- project: openstack/project-name | - project: openstack/project-name | ||
Line 39: | Line 41: | ||
upstream: git://github.com/awesumsauce/project-name.gi | upstream: git://github.com/awesumsauce/project-name.gi | ||
− | + | ==== Add Gerrit permissions ==== | |
Each project should have 2 groups. The first, "project-name-core", is the normal core group, with permission to +2 changes. The other, "project-name-milestone", is a (usually smaller) group able to push tags to trigger releases. | Each project should have 2 groups. The first, "project-name-core", is the normal core group, with permission to +2 changes. The other, "project-name-milestone", is a (usually smaller) group able to push tags to trigger releases. | ||
Line 58: | Line 60: | ||
mergeContent = true | mergeContent = true | ||
− | Ask the Infra team to add you to both groups in gerrit, and then you can add other members. The "oslo-core" group should be added to every sub-project core list (as a group, not individually). The project PTL and Oslo PTL, at least, should be added to "project-name-milestone", and other developers who understand the release process can volunteer to be added as well. | + | ==== Update the Gerrit Group Members ==== |
+ | |||
+ | Ask the Infra team to add you to both groups in gerrit, and then you can add other members. | ||
+ | |||
+ | The "oslo-core" group should be added to every sub-project core list (as a group, not individually). | ||
+ | |||
+ | The project PTL and Oslo PTL, at least, should be added to "project-name-milestone", and other developers who understand the release process can volunteer to be added as well. | ||
- infra/config | - infra/config |
Revision as of 22:11, 10 February 2014
Contents
Creating an Initial Repository for Import
There are three sources for new Oslo libraries:
- Incubated code that is graduating.
- A brand new library.
- An existing library that we are adopting.
These subsections cover incubated code and new libraries. Existing libraries can skip ahead to "Importing the Repository into the CI System" below.
Choosing a Name
Oslo libraries are either named "oslo.something" or just "something". The oslo prefix is reserved for libraries which are expected to only be of use to OpenStack developers. Libraries that may be useful outside of OpenStack should have more generic names.
Graduating a Library from the Incubator
Graduating a library is a multi-step process. It isn't complicated, but there are a lot of details that are easy to miss. Please tread carefully.
Updating the Incubator
- Update oslo-incubator/MAINTAINERS:
- Set the status of the module(s) to "Graduating".
- Verify all of the correct names and contact details are present.
Extracting a Clean Copy of the History
The oslo-incubator repository includes a script in tools/graduate.sh that can be used to
Importing the Repository into the CI System
openstack-infra/config
These instructions are based on the steps for creating a new Stackforge project with some variations, and apply to changes made in the openstack-infra/config git repository.
Add the project to the master project list
Edit modules/openstack_project/files/review.projects.yaml to add a new section like:
- project: openstack/project-name description: Latest and greatest cloud stuff. upstream: git://github.com/awesumsauce/project-name.gi
Add Gerrit permissions
Each project should have 2 groups. The first, "project-name-core", is the normal core group, with permission to +2 changes. The other, "project-name-milestone", is a (usually smaller) group able to push tags to trigger releases.
Create modules/openstack_project/files/gerrit/acls/stackforge/project-name.config:
[access "refs/heads/*"] label-Code-Review = -2..+2 group project-name-core label-Approved = +0..+1 group project-name-core workInProgress = group project-name-core [access "refs/tags/*"] create = group project-name-milestone pushTag = group project-name-milestone [receive] requireChangeId = true requireContributorAgreement = true [submit] mergeContent = true
Update the Gerrit Group Members
Ask the Infra team to add you to both groups in gerrit, and then you can add other members.
The "oslo-core" group should be added to every sub-project core list (as a group, not individually).
The project PTL and Oslo PTL, at least, should be added to "project-name-milestone", and other developers who understand the release process can volunteer to be added as well.
- infra/config - requirements - governance
First Testable Release
Marking Incubator Obsolete
After the first release of the new library, the status of the module(s) should be updated to "Obsolete." During this phase, only critical bug fixes will be allowed in the incubator version of the code. New features and minor bugs should be fixed in the released library, and effort should be spent focusing on having downstream projects consume the library.
After all integrated projects that use the code are using the library instead of the incubator, the module(s)_ can be deleted from the incubator.