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

Declare explicit roles in procedures #378

Merged
merged 1 commit into from Jun 23, 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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 12 additions & 0 deletions lib/tool_belt/commands/procedure.rb
Expand Up @@ -10,6 +10,8 @@ class ProcedureCommand < Clamp::Command
value
end
parameter "target-date", "Target date that the procedure should be completed on"
parameter "owner", "The release owner's username on Discourse"
parameter "engineer", "The release engineer's username on Discourse"

def execute
parsed_date = Date.parse(target_date)
Expand All @@ -20,6 +22,8 @@ def execute
target_date: parsed_date,
two_weeks_before: parsed_date - 14,
one_week_before: parsed_date - 7,
owner: discourse_username(owner),
engineer: discourse_username(engineer),
}

render(project, 'branch', context)
Expand All @@ -33,6 +37,8 @@ def execute
value
end
parameter "target-date", "Target date that the procedure should be completed on"
parameter "owner", "The release owner's username on Discourse"
parameter "engineer", "The release engineer's username on Discourse"

def execute
version, extra = full_version.split('-', 2)
Expand All @@ -51,6 +57,8 @@ def execute
target_date: parsed_date,
two_weeks_before: parsed_date - 14,
one_week_before: parsed_date - 7,
owner: discourse_username(owner),
engineer: discourse_username(engineer),
}

render(project, 'release', context)
Expand Down Expand Up @@ -94,6 +102,10 @@ def previous_release(version)
parts = version.split('.')
(parts[0..-2] + [(parts.last.to_i - 1).to_s]).join('.')
end

def discourse_username(name)
name.start_with?('@') ? name : "@#{name}"
end
end
end
end
6 changes: 6 additions & 0 deletions procedures/foreman/branch.md.erb
@@ -1,5 +1,11 @@
[ ] Make this post a wiki

## Roles

* Release Owner: <%= owner %>
* Release Engineer: <%= engineer %>
* Installer Maintainer: @
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intentionally left empty?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it was sort of a one-off and I wasn't entirely sure if we should add it to the branch command.


# Prep Week: <%= two_weeks_before %> to <%= two_weeks_before + 4 %>

## Installer Maintainer
Expand Down
22 changes: 22 additions & 0 deletions procedures/foreman/release.md.erb
@@ -1,7 +1,15 @@
[ ] Make this post a wiki

## Roles

* Release Owner: <%= owner %>
* Release Engineer: <%= engineer %>
* Installer Maintainer: @

# Manual updates: <%= target_date %>

## Release Engineer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these headers repeat the username?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting idea.


- [ ] Update manual if applicable for any additional installation steps
- Update [release notes section](gh-pages/_includes/manuals/<%= short_version %>/1.2_release_notes.md) in the manual:
- [ ] Release notes: bullet point list by category of all changes, include link to bug numbers. You can auto-generate changes using the [release notes script](https://github.com/theforeman/theforeman.org/blob/gh-pages/scripts/release_notes.rb).
Expand All @@ -17,8 +25,13 @@

# Preparing code: <%= target_date %>

## Installer Maintainer

- [ ] Make patch releases of installer modules that have important changes
- [ ] Branch to MAJ.MIN-stable if recent changes to the module aren't suitable for patch (x.y.z) release

## Release Owner

<% unless (is_rc || full_version.end_with?('0')) %>- [ ] Add a new [Redmine version](https://projects.theforeman.org/projects/foreman/settings/versions) for the next minor, unless the series is EOL. Be sure the version is set to sharing with subprojects.
<% end %>- [ ] Remove/change target version field for any open Redmine tickets assigned to the release still (next minor, unset it or reject)
- [ ] Ensure that code in git matches issues fixed in <%= full_version %> in redmine. [issues.rb](https://gist.github.com/tbrisker/3320097f1d8c9abfb2dbcf8d8e216bba) can be used to generate a comparison between the two.
Expand All @@ -27,6 +40,8 @@

# Tagging a release: <%= target_date %>

## Release Owner

- In foreman <%= short_version %>-stable:
- [ ] Make sure [test_<%= short_version.tr('.', '_') %>_stable](https://ci.theforeman.org/job/test_<%= short_version.tr('.', '_') %>_stable/) is green
<% if (is_rc || full_version.end_with?('0')) %> - [ ] run `make -C locale tx-update`
Expand All @@ -39,6 +54,9 @@
- In foreman-installer <%= short_version %>-stable:
- [ ] Tag the release using [tag.sh](https://gist.github.com/tbrisker/d51cedea51ccbcca00e72c1fc61550fe) `tag.sh <%= full_version %> && git push upstream <%= short_version %>-stable --follow-tags`
- [ ] Run the Jenkins [Tarballs Release](https://ci.theforeman.org/job/tarballs-release/) to create tarballs

## Release Engineer

- [ ] Update release version similar to [here](https://github.com/theforeman/theforeman-rel-eng/commit/2029a9688da00d9c385c3438dd71b594ba5f728e)
- [ ] Sign Tarballs
- [ ] [Download](https://github.com/theforeman/theforeman-rel-eng/blob/master/download_tarballs)
Expand All @@ -49,6 +67,8 @@ Note: If for some reason there was an issue with the tarballs that required uplo

# Packaging a release: <%= target_date %>

## Release Engineer

[Background documentation](https://projects.theforeman.org/projects/foreman/wiki/Release_Process#Packaging-a-release)

- [ ] Update [foreman-packaging](https://github.com/theforeman/foreman-packaging)
Expand Down Expand Up @@ -77,6 +97,8 @@ Note: If for some reason there was an issue with the tarballs that required uplo

# After the packages have been released

# Release Owner

<% unless is_rc %>- [ ] Update the versions on the website in [version](https://github.com/theforeman/theforeman.org/blob/gh-pages/_includes/version.html) and [latest news](https://github.com/theforeman/theforeman.org/blob/gh-pages/_includes/latest_news.html)
<% end -%>
<% if full_version.end_with?('0') %>- [ ] Update the `foreman_version` to <%= short_version %> and add the <%= short_version %> in `foreman_versions` list in website's [`_config.yml`](https://github.com/theforeman/theforeman.org/blob/gh-pages/_config.yml) file
Expand Down
11 changes: 9 additions & 2 deletions procedures/katello/branch.md.erb
@@ -1,3 +1,10 @@
[ ] Make this post a wiki

## Roles

* Release Owner: <%= owner %>
* Release Engineer: <%= engineer %>

# One Month Prior to Branch Date

## Release Owner
Expand Down Expand Up @@ -31,7 +38,7 @@
- [ ] [foreman_proxy_content](https://github.com/theforeman/puppet-foreman_proxy_content)
- [ ] [katello](https://github.com/theforeman/puppet-katello)

## Release Packager
## Release Engineer

- [ ] Ensure tool_belt config is merged and output from `./tools.rb koji configs/katello/<%= release %>.yaml` matches expectations

Expand Down Expand Up @@ -65,7 +72,7 @@
find $GITDIR/theforeman.org/plugins/katello/$VERSION/api -name "*.json" -type f -delete
sed -i "/layout: /d" $GITDIR/theforeman.org/plugins/katello/$VERSION/api/index.md

## Release Packager
## Release Engineer

- [ ] Run `./tools koji configs/katello/<%= release %>.yaml` from [tool_belt](https://github.com/theforeman/tool_belt) to create Koji tags
- [ ] Run `./tools mash-scripts configs/katello/<%= release %>.yaml` from [tool_belt](https://github.com/theforeman/tool_belt) to create Koji mash configs and open PR to tool_belt to commit
Expand Down
9 changes: 8 additions & 1 deletion procedures/katello/release.md.erb
@@ -1,3 +1,10 @@
[ ] Make this post a wiki

## Roles

* Release Owner: <%= owner %>
* Release Engineer: <%= engineer %>

# When Ready to Release

## Release Owner
Expand All @@ -22,7 +29,7 @@

# Once Source is Available

## Release Packager
## Release Engineer

- [ ] Update `katello`, `katello-repos` and `rubygem-katello` in [foreman-packaging](https://github.com/theforeman/foreman-packaging) [rpm/<%= short_version %>](https://github.com/theforeman/theforeman-rel-eng/blob/master/bump_rpm_packaging) branch (replace <%= short_version %> with the matching Foreman version):
- [ ] `obal update katello katello-repos rubygem-katello --version <%= version %><% if is_rc %> --prerelease <%= extra %> --release keep<% end %>`
Expand Down