Warning
|
This repository is for INTERNAL USE ONLY. |
(in dependency order)
- relaton-bipm
- relaton-ieee
- relaton-iho
- relaton-bib
- relaton-omg
- relaton-un
- relaton-w3c
- relaton-itu
- relaton-gb
- relaton-iec
- relaton-ietf
- relaton-iso
- relaton-iso-bib
- relaton-nist
- relaton-ogc
- relaton-iev
- relaton-calconnect
- relaton-plateau
- relaton-ccsds
- relaton-logger
- relaton-oasis
- relaton-ecma
- relaton-cie
- relaton-jis
- relaton-3gpp
- relaton-etsi
- relaton-cen
- relaton-iana
- relaton-doi
- relaton-isbn
- relaton-index
- relaton-cli
- relaton
This repo metanorma-release
is used as the main building environment.
It submodules all metanorma gems for the release process, and also maintains a gem dependency tree within metanorma (should be easy to automate, or worse to worse manual…).
This is really a “composite-git-flow” kind of process. Maybe it’s called git gush
or git cascade
.
The typical scenario is:
-
A flavor gem needs enhancing (e.g. ISO)
-
metanorma-iso
forces change on a basic gem, likeisodoc
-
An
isodoc
update means the testing on all downstream gems needs to be updated
This is how the Metanorma release flow will look like.
-
Go to this
metanorma-release
repository -
Run a script to create feature branches in all gems.
-
Do the necessary work in the submodule’d (in this repo)
isodoc
andmetanorma-iso
-
Run a script that performs tests on all the gems at once using the newly created feature branches
-
(alt) if you want Travis to test for you, push the
metanorma-release
repository, and Travis will build for you
-
-
When all the gems pass, run a script to make PRs to every repository. If the feature branch for a gem is empty, the script will ignore it.
-
Merge PRs by hand or by script (into main or a release branch)
-
When a release branch is ready (for all gems), run a script to:
-
Bump version of those gems (
VERSION
variable in code) -
Update the
Gemfile
s (remove feature branches) -
Update
gemspec
s to lock versions
-
-
Issue PRs for those gems to merge their release branches into
main
. -
Merge the release PRs by hand or by script.
Ideally, we want to update the base gems first, then the immediately dependent gems, and so forth to ensure that the builds always pass.