Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release templates #458

Merged
merged 5 commits into from
May 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/_default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Generic issue
about: Issue / feature for infrastructure, release and CI
---

<!--

Generic infrastructure issue.

-->
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bump_libraries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bump libraries
about: Checklist when bumping major versions in a collection
title: "Bump in [COLLECTION]: [LIBRARIES]"
---

<!--

Use this template to keep track of everything that needs to be done to
bump the major version of a library within a collection.

For example, Ignition-X is currently under development, and it's using
ign-math42. This checklist includes all that's needed to use ign-math43
instead.

This script can be used to do most of the work:

https://github.com/ignition-tooling/release-tools/blob/master/release-repo-scripts/bump_dependency.bash

When opening PRs, add a link back to this issue for easier tracking.

-->

Libraries being bumped:

<!-- Be sure to include all downstream libraries that will need to be bumped too -->

* <LIBRARY NAME AND VERSION>: <!-- Explain why bump is needed -->
- [ ] Source code of all downstream libraries ([example](https://github.com/ignitionrobotics/ign-transport/pull/149))
- [ ] Release repositories of all downstream libraries ([example](https://github.com/ignition-release/ign-fuel-tools7-release/pull/1))
- [ ] Use `main` branch on `gazebodistro` ([example](https://github.com/ignition-tooling/gazebodistro/pull/42))
- [ ] Build nightlies from the `main` branch ([example](https://github.com/ignition-tooling/release-tools/pull/437))
- [ ] Update gzdev to use nightlies on CI ([example](https://github.com/ignition-tooling/gzdev/pull/31))
- [ ] homebrew-simulation: create formula and update dependencies ([example](https://github.com/osrf/homebrew-simulation/pull/14230))
- [ ] docs (the collection’s page) ([example](https://github.com/ignitionrobotics/docs/pull/175))
* <!-- Add more libraries here and copy the checklist for each of them -->
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/eol_collection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: EOL collection
about: Checklist when a collection reaches end-of-life
title: "EOL collection: <COLLECTION>"
---

<!--

Use this template to keep track of everything that needs to be done when
EOL'ing a new collection.

When opening PRs, add a link back to this issue for easier tracking.

-->

- [ ] Check library versions that can be EOL’d on the [versions table](https://github.com/ignitionrobotics/docs/blob/master/tools/versions.md)
* <!-- LIST LIBRARIES HERE -->
- [ ] Make releases with outstanding changes in each library about to be EOl'ed
- [ ] Archive release repos for all libraries after the last release has been made
- [ ] Update docs ([example](https://github.com/ignitionrobotics/docs/pull/124))
- [ ] Update release-tools ([example](https://github.com/ignition-tooling/release-tools/pull/369))
- [ ] Deprecate homebrew bottles ([example](https://github.com/osrf/homebrew-simulation/pull/1242))
- [ ] Remove from buildfarmer ([dashboard](https://github.com/osrf/buildfarmer/pull/140) / [report](https://github.com/osrf/buildfarmer/pull/146))
- [ ] Remove from `pr-collection-labeler` ([example](https://github.com/ignition-tooling/pr-collection-labeler/pull/13))

25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/new_collection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: New collection
about: Checklist when creating a new collection
title: "New collection: <COLLECTION>"
---

<!--

Use this template to keep track of everything that needs to be done when
starting a new collection.

When opening PRs, add a link back to this issue for easier tracking.

-->

- [ ] Create `gazebodistro` file for new collection ([example](https://github.com/ignition-tooling/gazebodistro/pull/11))
- [ ] Create `ign-<collection>` and `ign-<collection>-release` repositories ([example source](https://github.com/ignitionrobotics/ign-edifice), [example release](https://github.com/ignition-release/ign-edifice-release))
- [ ] Create homebrew-simulation formula for new collection ([example](https://github.com/osrf/homebrew-simulation/pull/1173))
- [ ] Create collection view on release-tools and build nightlies ([example](https://github.com/ignition-tooling/release-tools/pull/422/files))
- [ ] Add collection to buildfarmer dashboard ([example](https://github.com/osrf/buildfarmer/pull/183)) / scripts ([example](https://github.com/osrf/buildfarmer/pull/184))
- [ ] Add docs for new collection ([example](https://github.com/ignitionrobotics/docs/pull/95))
- [ ] Add new collection label:
- [ ] Add to pr-collection-labeler ([example](https://github.com/ignition-tooling/pr-collection-labeler/pull/11))
- [ ] Add to all libraries ([handy script](https://github.com/chapulina/github-label-maker/tree/chapulina/ign#ignition))
- [ ] Add new collection tag to Gazebo Answers [here](https://answers.gazebosim.org/settings/FORUM_DATA_RULES/)
102 changes: 102 additions & 0 deletions .github/ISSUE_TEMPLATE/release_collection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
name: Release collection
about: Checklist when releating a new collection
title: "Release [COLLECTION]"
---

<!--

Use this template to keep track of everything that needs to be done to
release a new collection.

When opening PRs, add a link back to this issue for easier tracking.

-->

## During development

- [ ] Bump major version of libraries early in the development cycle (use [bump_libraries](bump_libraries.md) template).
- [ ] Work with artist on logo.

## Feature freeze

- [ ] Choose name for next release.
- [ ] Merge each library forward from previous versions
- [ ] Label pull requests being considered to enter release with [beta](https://github.com/search?q=org%3Aignitionrobotics+label%3Abeta&state=open)
Pull requests opened against the new collection after then:
- Bug fixes: will be considered for the initial release and labeled `beta`
- New features: will not be considered for the initial release.
- [ ] Pre-release libraries as all `beta` labels are merged.
- [ ] Make collection pre-release after all libraries are pre-released.
- [ ] Update public documentation to install from pre-releases instead of nightlies.

## Code freeze

- [ ] Start T-Shirt campaign
- [ ] Hold tutorial party ([example](https://community.gazebosim.org/t/ignition-edifice-tutorial-party-support-open-source-and-get-t-shirts/866))
- [ ] PRs fixing documentation and critical bugs can be merged and pre-released
- As libraries have all their documentation reviewed:
- [ ] Create stable branches off of main
- [ ] Make stable releases

## Release day

- [ ] Make collection stable release after all libraries are released.
- [ ] Update `gazebodistro` ([example](https://github.com/ignition-tooling/gazebodistro/pull/31))
- [ ] Make GitHub releases for all the X.0.0 versions ([example](https://github.com/ignitionrobotics/ign-transport/releases/tag/ignition-transport9_9.0.0))
- [ ] Update docs to say release is stable ([example](https://github.com/ignitionrobotics/docs/pull/171))
- [ ] Make announcement

## Post-release

- [ ] Enable Jenkins CI for new stable branches ([example](https://github.com/ignition-tooling/release-tools/pull/299))
- [ ] Remove nightlies for release branches on `gzdev` ([example](https://github.com/ignition-tooling/gzdev/pull/19))
- [ ] Bump all `main` branches to the next major versioni (`X.0.0~pre1`)
- [ ] Source code ([example](https://github.com/ignitionrobotics/ign-common/pull/193))
- [ ] Add files to `gazebodistro` ([example](https://github.com/ignition-tooling/gazebodistro/pull/12))
- [ ] Add aliases to `homebrew-simulation` ([example](https://github.com/osrf/homebrew-simulation/commit/1f8602af6f52e06e0542eebfbdbe97f5f6cf950c))
- [ ] Create new `-release` repositories (use [this script](https://github.com/ignition-tooling/release-tools/blob/master/release-repo-scripts/new_ignition_release_repos.bash))


If the collection will be officially paired with a ROS 2 distro:

- [ ] Update REP-2000 when ROS 2 distro is added ([example](https://github.com/ros-infrastructure/rep/pull/291))
- [ ] Import stable releases into https://packages.ros.org ([example](https://github.com/ros-infrastructure/reprepro-updater/pull/109))
- [ ] Add new rosdep keys ([example](https://github.com/ros/rosdistro/pull/29176))
- [ ] Bloom-release `ros_ign` with the new version into Rolling before fork ([example](https://github.com/ros/rosdistro/pull/29192))

# Status tracker

Track stable release of metapackage `ignition-<collection>`.

* :hourglass: TODO
* :yellow_circle: waiting in the buildfarm
* :green_circle: in the repo
* :red_circle: requires action
* :black_circle: no release

### Linux

* **Ubuntu:**
- [ ] :hourglass: Focal/amd64
- [ ] :hourglass: Bionic/amd64
- [ ] :hourglass: Bionic/i386
- [ ] :hourglass: Focal/arm64
- [ ] :hourglass: Bionic/arm64

* **Debian:**
- [ ] :hourglass: Buster/i386
- [ ] :hourglass: Buster/amd64
- [ ] :hourglass: Sid/\*:
- [ ] :hourglass: Buster/arm64
- [ ] :hourglass: Buster/armhf (raspbian)

### MacOSX

* **Brew**
- [ ] :hourglass: Bottles

### Windows

* **Conda-forge** (community effort)
- [ ] :hourglass: