Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

docs: Add Release process docs #56

Merged
merged 1 commit into from
Apr 24, 2018

Conversation

jodh-intel
Copy link
Contributor

Add a document providing an overview of releases along with the
all-important release checklist.

Fixes #32.

Signed-off-by: James O. D. Hunt james.o.hunt@intel.com

@jodh-intel
Copy link
Contributor Author

caveat emptor: this still has some issues:

Also:

  • Now that the default hypervisor is vanilla qemu, should we still have a step to create a qemu-lite OBS package?

@jcvenegas
Copy link
Member

@jodh-intel @erick0z packaging work now provides qemu vanilla and qemu-lite.
+1 for automation

  • At the moment the packaging tool will be generating the image and push it in the OBS serivice.
    • We can change this in the future if needed.

@jodh-intel jodh-intel force-pushed the add-release-process branch from 304e6d9 to 925a454 Compare April 18, 2018 15:01
@jodh-intel
Copy link
Contributor Author

Hi @jcvenegas - thanks - I've added qemu-lite. Any other changes required at this stage? I'll update the checklist once kata-containers/packaging#1 appears ;)

Hi @klynnrif, @bergwolf, @kata-containers/architecture-committee - ptal.

@jcvenegas
Copy link
Member

jcvenegas commented Apr 18, 2018

@jodh-intel others missing components are

  • Kernel: Today we still use the Clear Containers Kernel as part of the CI we need to have a configuration for Kata.

@jodh-intel
Copy link
Contributor Author

wdyt @egernst, @grahamwhaley, @erick0z?

@grahamwhaley grahamwhaley requested a review from jcvenegas April 20, 2018 10:28
Copy link
Contributor

@grahamwhaley grahamwhaley left a comment

Choose a reason for hiding this comment

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

This is really good to have!
Yes, we know it needs some more work, and it will be a bit of a 'living document' for a while, but still:
lgtm

@@ -0,0 +1,79 @@
Change release process, instead create a release candidate we can test the HEAD what will be the last commit using new automated obs package generation we can generate and test commits based on HEAD.
Copy link
Contributor

Choose a reason for hiding this comment

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

This sentance doesn't read well - can we clean that up a bit?
Also, can we have a #TITLE here at the top as well (right now it just dives right on in..)

Copy link
Member

Choose a reason for hiding this comment

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

Some point to make clear are:

  • By sending a PR to update the VERSION file, we exercise the CI that tell us the project health.
  • OBS packages are created after we do tag the project repositories based in the tag we create.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh - that shouldn't even be there - zapped ;)


- [ ] Get confirmation from metrics CI that performance is within acceptable limits.

- [ ] Create an **annotated tag** for the new release version for the following repositories:
Copy link
Contributor

Choose a reason for hiding this comment

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

A hint/clue/link on how to make/ensure we make an annotated tag here would be nice.

Copy link
Contributor

Choose a reason for hiding this comment

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

And, do we need to define the tag/version format and rules?

Copy link
Member

Choose a reason for hiding this comment

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

We can add a link/ or describe that to ensure the process to tag is always the same use
kata-containers/packaging#16

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done (in the main doc to avoid bloating out the checklist).

- [ ] Ubuntu.

- [ ] Check if any of the following need to be updated:
- [ ] Architecture document.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think you need double spaces here? - they did not indent on my github md doc view window.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed.

Copy link
Member

@jcvenegas jcvenegas left a comment

Choose a reason for hiding this comment

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

Added more comments about the process.

@@ -0,0 +1,79 @@
Change release process, instead create a release candidate we can test the HEAD what will be the last commit using new automated obs package generation we can generate and test commits based on HEAD.
Copy link
Member

Choose a reason for hiding this comment

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

Some point to make clear are:

  • By sending a PR to update the VERSION file, we exercise the CI that tell us the project health.
  • OBS packages are created after we do tag the project repositories based in the tag we create.


Note that the "phase" element of the project encoded in the version strings needs to match for all components. For example, when a `beta` is released, the version string for *all* components should show `beta`.

- [ ] Ensure all CI tests pass **for all architectures**.
Copy link
Member

Choose a reason for hiding this comment

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

This ideally would be tested in the CI when we update versions file on a PR. We can add a section with the sub task that the CI should be able to done ( and add it if has not support today).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry - not quite clear on what you're saying here. I agree that this should all be automated and it should just be a simple check on Jenkins/Travis to ensure all the CI builds pass (for all architectures).

Maybe that's all it should be for now and I could just raise an issue on @bergwolf say (hi! ;) to investigate the ARM/$other_arch CI support?

Copy link
Member

Choose a reason for hiding this comment

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

I think we should be specific on which architectures this will be done. Currently this isn't really a list AFAIU...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well, since the CI currently only supports x86_64, do we want to just list that? @bergwolf - any thoughts?


- [ ] Get confirmation from metrics CI that performance is within acceptable limits.

- [ ] Create an **annotated tag** for the new release version for the following repositories:
Copy link
Member

Choose a reason for hiding this comment

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

We can add a link/ or describe that to ensure the process to tag is always the same use
kata-containers/packaging#16

- [ ] Add links to Installation instructions.
- [ ] Document any common vulnerabilities and exposures (CVEs) fixed with links to the CVE database.

- [ ] Upload any assets to github:
Copy link
Member

Choose a reason for hiding this comment

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

Do we want to upload the kernel and images for the release or only be provided as part of the packages?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I wasn't sure about this item. I'll remove it for now...

/cc @grahamwhaley, @erick0z, @egernst.

@jcvenegas
Copy link
Member

We may want to have in all repos tags for issues:

  • Feature
  • Limitation
  • Bug

To at some point the release notes generator can know what are the new features for a release or what bugs were fixed. Also get an updated list of limitations.

@jodh-intel jodh-intel force-pushed the add-release-process branch from 925a454 to 8b53798 Compare April 20, 2018 13:12
@jodh-intel
Copy link
Contributor Author

@bergwolf, @grahamwhaley, @klynnrif - branch updated.

@jodh-intel
Copy link
Contributor Author

Yeah, I like the idea of automating more of the release notes. I think this could be handled without additional tagging though - we just need to make the script:

  • Extract the "Fixes #XXX" comments.
  • Query each issue.
  • Ensure the issue is "closed".
  • Ensure the issue is assigned to the same user as the commit author (maybe?)
  • See if the issue has any interesting tags, such as:
    • limitation
    • bug
    • feature
    • security

@egernst
Copy link
Member

egernst commented Apr 20, 2018

@jodh-intel this looks good. I wonder if we should update the section about which architectures are tested in our CI to be specific.

Copy link

@klynnrif klynnrif left a comment

Choose a reason for hiding this comment

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

Scrubbed for grammar, structure, and flow. Thanks!

It should be pasted directly into a github issue and each item checked off as it is completed.

- [ ] Raise PRs to update the `VERSION` file in the following repositories:
- [ ] [agent][agent].

Choose a reason for hiding this comment

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

Lines 8-12 suggest removing the period after each line because the bulleted list items are not complete sentences.

- [ ] Get confirmation from metrics CI that performance is within acceptable limits.

- [ ] Create a **signed and annotated tag** for the new release version for the following repositories:
- [ ] [agent][agent].

Choose a reason for hiding this comment

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

Lines 21-25 - same comment regarding removing the period after each bullet item.

This is required by `git describe`.

- [ ] Generate OBS packages based on `HEAD`:
- [ ] [agent][agent].

Choose a reason for hiding this comment

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

Lines 30 - 38 - same note regarding removing the period after each bullet list item.

- [ ] [shim][shim].
- [ ] [throttler][throttler].

- [ ] Installation tests (must be done for major releases)

Choose a reason for hiding this comment

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

Line 40 - add a colon at the end: Installation tests (must be done for major releases):

- [ ] [throttler][throttler].

- [ ] Installation tests (must be done for major releases)
- [ ] Centos.

Choose a reason for hiding this comment

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

Lines 41 - 43 - same note regarding removing the period after each bullet item.


- [ ] Update public IRC channel with a link to the latest release.

- [ ] Arrange for release to be communicated via other social media channels.

Choose a reason for hiding this comment

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

Suggested rewrite to stay active: Arrange communication of the release through other social media channels.

Releases.md Outdated

For examples: `1.0.0`, `1.0.0-rc.5`, and `99.123.77+foo.bar.baz.5`.

Semantic versioning is used since the version number is able to convey clear information about how a new version relates to the previous version. It can also provide assurances to allow users to know for example when they must upgrade compared with when they may wish to upgrade:

Choose a reason for hiding this comment

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

Suggested rewrite of second sentence: ... For example, semantic versioning can also provide assurances to allow users to know when they must upgrade compared with when they might want to upgrade:

Releases.md Outdated
- When `PATCH` increases, the new release contains important **security fixes**
and an upgrade is recommended.

The patch field can contain extra details after the number. Dashes denote pre-release versions. `1.0.0-rc.5` in the example denotes the fifth release candidate for release `1.0.0`. Plus signs denote other details. In our example, `+foo.bar.baz.5` is additional information regarding release `99.123.77` in the example above.

Choose a reason for hiding this comment

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

Replace "above" with "previous" at the end of line 27: In our example, +foo.bar.baz.5 is additional information regarding release 99.123.77 in the previous example.

Releases.md Outdated
$ git tag -as $tag
```

The tag name (`$tag` in the example above) must conform to the [versioning](#versioning) an example being `1.0.0-rc2`.

Choose a reason for hiding this comment

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

The tag name ($tag in the previous example) must conform to the versioning (e.g. 1.0.0-rc2).

Releases.md Outdated

## Release process

The Release Owner must follow the following process, which is designed to ensure clarity, quality, stability and auditability of each release:

Choose a reason for hiding this comment

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

Add the series comma after stability: The Release Owner must follow the following process, which is designed to ensure clarity, quality, stability, and auditability of each release:

Add a document providing an overview of releases along with the
all-important release checklist.

Fixes kata-containers#32.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
@jodh-intel jodh-intel force-pushed the add-release-process branch from 8b53798 to a070f18 Compare April 23, 2018 08:04
@jodh-intel
Copy link
Contributor Author

Thanks @klynnrif - branch updated!

Copy link

@klynnrif klynnrif left a comment

Choose a reason for hiding this comment

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

lgtm - thanks!

@egernst egernst merged commit 2b47961 into kata-containers:master Apr 24, 2018
@egernst egernst removed the review label Apr 24, 2018
devimc pushed a commit to devimc/kata-documentation that referenced this pull request Sep 2, 2019
skip euleros build due to timeout reason
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants