Skip to content

Notes for project maintainers

Paul Jolly edited this page Jul 15, 2021 · 31 revisions

Below is a random collection of notes for project maintainers.

Releases

  • A release is created by creating a semver tag in the GerritHub repository. This is most simply done via the Gerrit tag UI. This tag will then replicate to GitHub, at which point the release workflow will be triggered. This workflow is responsible for creating the release assets, Docker images etc. Release notes should then be manually added to the corresponding GitHub release.

GitHub

  • The contribution guide describes the workflow for both Gerrit-based and GitHub PR-based contributions. The GerritHub repository is the source of truth for the CUE project, and as such GitHub PRs should not be merged. Rather, they must be imported via the GerritHub UI. Unfortunately, there is no means (correct at the time of writing, 2021/07/15) by which we can prevent PRs from being merged, so we just have to "be careful". If a PR does get merged accidentally, all that is required is a force-push of master from GerritHub to GitHub:
cd $(mktemp -d)
git clone "https://[email protected]/a/cue-lang/cue"
cd cue/
git checkout origin/master
git remote add github https://github.com/cue-lang/cue
git fetch github
git push -f github HEAD:master

Pull Request workflow

Given that GerritHub is the source of truth, Pull Requests need to be imported into GerritHub to be submitted as part of the usual change workflow. It's generally easier for the contributor to perform a full code in the Pull Request (familiar review-change process), and then have a CUE approver import and submit the Pull Request at the point the Pull Request would otherwise have been merged but DO NOT MERGE THE PULL REQUEST.

To import a Pull Request:

Clone this wiki locally