3.0 KiB
TripleO UI packaging
TL;DR
- We need people from the RDO team to approve all changes
- New packages are built on every upstream merge commit
- Use npm shrinkwrap when updating dependencies in
package.json
Upstream
For upstream releases, we only provide a source tarball. This is
released via the project-config
machinery just like other
TripleO projects. The tarball is produced by running
npm pack
in the root of the project, and excludes the
node_modules
directory. The tarballs are available here.
RDO
The upstream TripleO CI relies on packages provided by the RDO project. Therefore, it's important to keep the RDO packages up-to-date, and to prevent the builds from failing.
The product of RDO packaging is a set of two RPMs:
And of course, the second one depends on the first one. The -deps package contains the contents of the node_modules directory.
An RPM is created from a .spec file. These files can be access via the above GitHub links. Any changes to the files are subject to review by the RDO team. This can be a lengthy process because software licenses need to be reviewed.
RDO builds packages in two different streams: trunk and stable. Study the following graphic to understand how code flows through the pipeline:
What to do when dependencies change
This applies both to adding new dependencies, and upgrading existing ones.
- Make the required changes in
package.json
$ rm -rf node_modules
$ npm cache clean
$ npm install
$ npm shrinkwrap
- Commit those changes along with your dependency changes in
tripleo-ui
. Your patch should only include the necessary changes to update the dependency. Submit another patch for your feature/bugfix. In the commit message, add a link to the dependency (GitHub or similar), and indicate the project's license. We use the "workflow" field on this patch to indicate whether a packager has reviewed the changes: "-1" means this has not happened, or there are issues with the new dependency; "+1" means it's been reviewed, and the change is approved. - Update the openstack-tripleo-ui-deps package. Currently, this is done by submitting a pull request on GitHub. There are plans in place to move the workflow for this repository to the gerrit system.
- Update the openstack-tripleo-ui spec so that it points to the new version of openstack-tripleo-ui-deps. This is done by submitting a patch via gerrit.