74 lines
3.0 KiB
ReStructuredText
74 lines
3.0 KiB
ReStructuredText
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:
|
|
|
|
* `openstack-tripleo-ui-deps`_
|
|
* `openstack-tripleo-ui`_
|
|
|
|
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:
|
|
|
|
.. image:: https://www.rdoproject.org/images/documentation/rdo-full-workflow-high-level-no-buildlogs.png
|
|
:alt: RDO diagram
|
|
|
|
What to do when dependencies change
|
|
-----------------------------------
|
|
|
|
This applies both to adding *new* dependencies, and upgrading *existing* ones.
|
|
|
|
1. Make the required changes in ``package.json``
|
|
2. ``$ rm -rf node_modules``
|
|
3. ``$ npm cache clean``
|
|
4. ``$ npm install``
|
|
5. ``$ npm shrinkwrap``
|
|
6. 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.
|
|
7. 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.
|
|
8. 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`_.
|
|
|
|
.. _here: http://tarballs.openstack.org/tripleo-ui/
|
|
.. _openstack-tripleo-ui-deps: https://github.com/rdo-common/openstack-tripleo-ui-deps
|
|
.. _openstack-tripleo-ui: https://github.com/rdo-packages/tripleo-ui-distgit/tree/rpm-master
|
|
.. _RDO project: https://www.rdoproject.org
|
|
.. _gerrit: https://review.rdoproject.org
|