Skip to content

Commit f4be5a5

Browse files
committed
Document releasing the runtime
1 parent 174e616 commit f4be5a5

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

RELEASE.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Releasing the runtime
2+
3+
This document describes the steps you as a runtime maintainer may follow
4+
to prepare a release. Since unit and integration testing is performed on a
5+
continuous basis, release preparation consists in finalising [CHANGELOG.md]
6+
and backporting minor, non-code commits to the release branch. The release
7+
of the runtime should align closely with the release of the [Intel® oneAPI
8+
Base Toolkit], e.g., prepare at the beginning and publish the release at
9+
the end of the week preceding the oneAPI release.
10+
11+
## Preparing feature complete
12+
13+
Changes to the source code and build system, specifically all changes which
14+
modify files installed with CMake as part of the various [components]
15+
tracked in [manifests], must be merged to the `main` branch and integrated
16+
into the [Intel® FPGA Add-on for oneAPI Base Toolkit] by feature complete.
17+
18+
## Creating a release branch
19+
20+
Once the [Intel® FPGA Add-on for oneAPI Base Toolkit] has been branched:
21+
22+
- [ ] Create the release branch, e.g., `release/2022.2`.
23+
24+
Push the last commit integrated downstream to create a release branch:
25+
26+
```
27+
git push -n intel 103cf693f3cb3060a4bba8df7062e660dd581c00:refs/heads/release/2022.2
28+
```
29+
30+
You may do a dry run with `-n` first and double-check the commit to be
31+
pushed. Once a release branch has been created, further changes must be
32+
backported using pull requests to the release branch as described below.
33+
34+
- [ ] Update [acl_auto.h] in the `main` branch for the **next** release.
35+
36+
See, e.g., [Update acl_auto.h for 2022.3 release].
37+
38+
This file is updated manually, rather than parsed automatically from
39+
the release tag, since downstream integrates the commit of the runtime
40+
at feature complete, not the tagged release commit.
41+
42+
## Preparing a release
43+
44+
Submit a pull request to the `main` branch with these commits, e.g., [#97]:
45+
46+
- [ ] Finalise [CHANGELOG.md] for the release.
47+
48+
See, e.g., [Prepare changelog for 2022.2 release].
49+
50+
Review the [commits] on GitHub to assemble a list of pull requests
51+
relevant to users, e.g., features and documentation, but also
52+
user-visible changes to the build system and major refactoring of the
53+
source code which might affect users maintaining downstream forks.
54+
55+
Ideally, [CHANGELOG.md] is updated as part of each pull request. In
56+
that case, you may focus on revising and combining changelog entries,
57+
to convey the impact of changes on users clearly and concisely.
58+
59+
- [ ] Update the release version in [README.md].
60+
61+
See, e.g., [Update README.md for 2022.2 release].
62+
63+
- [ ] Add a new Unreleased section to [CHANGELOG.md] for the next release.
64+
65+
See, e.g., [Add new Unreleased section to changelog].
66+
67+
Submit a pull request to the release branch, e.g., [#98]:
68+
69+
- [ ] Backport minor, non-code commits merged after feature complete,
70+
e.g., documentation and infrastructure fixes.
71+
72+
`git cherry-pick -x` annotates a backport with the original commit.
73+
74+
This should be done **before** merging the above pull request to
75+
`main`, since backported changes must be mentioned in the changelog
76+
section of the release in preparation, rather than the next release.
77+
78+
- [ ] Backport finalising [CHANGELOG.md] for the release.
79+
80+
This must be done **after** merging the above pull request to `main`,
81+
to obtain the commit for `git cherry-pick -x`.
82+
83+
- [ ] Backport updating the release version in [README.md].
84+
85+
This must be done **after** merging the above pull request to `main`,
86+
to obtain the commit for `git cherry-pick -x`.
87+
88+
## Publishing a release
89+
90+
On the release date, [create a new release on GitHub]:
91+
92+
- [ ] Create a new tag, e.g., [v2022.2] for the **release** branch.
93+
94+
- [ ] Copy the release notes from the [plain-text CHANGELOG.md].
95+
96+
The verbatim copy of the changes may be appreciated by users who
97+
subscribed to release notifications.
98+
99+
[Intel® oneAPI Base Toolkit]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html
100+
[Intel® FPGA Add-on for oneAPI Base Toolkit]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/fpga.html
101+
[CHANGELOG.md]: https://github.com/intel/fpga-runtime-for-opencl/blob/main/CHANGELOG.md
102+
[plain-text CHANGELOG.md]: https://github.com/intel/fpga-runtime-for-opencl/blob/main/CHANGELOG.md?plain=1
103+
[README.md]: https://github.com/intel/fpga-runtime-for-opencl/blob/main/README.md
104+
[acl_auto.h]: https://github.com/intel/fpga-runtime-for-opencl/blob/main/include/acl_auto.h
105+
[commits]: https://github.com/intel/fpga-runtime-for-opencl/commits
106+
[components]: https://cmake.org/cmake/help/v3.10/command/install.html
107+
[manifests]: https://github.com/intel/fpga-runtime-for-opencl/tree/main/cmake/manifests
108+
[#97]: https://github.com/intel/fpga-runtime-for-opencl/pull/97
109+
[#98]: https://github.com/intel/fpga-runtime-for-opencl/pull/98
110+
[Update acl_auto.h for 2022.3 release]: https://github.com/intel/fpga-runtime-for-opencl/commit/174e61608f8a4886c6c19a2ceb4751a2b6b553a4
111+
[Prepare changelog for 2022.2 release]: https://github.com/intel/fpga-runtime-for-opencl/pull/97/commits/e6d2321cea50098433061d3b0c442a45db68c358
112+
[Update README.md for 2022.2 release]: https://github.com/intel/fpga-runtime-for-opencl/pull/97/commits/1d358b69e791461bb8f5879e052606b9d64ec1c8
113+
[Add new Unreleased section to changelog]: https://github.com/intel/fpga-runtime-for-opencl/pull/97/commits/7fe5b117f60f67c5642762957f2edca53122b160
114+
[create a new release on GitHub]: https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release
115+
[v2022.2]: https://github.com/intel/fpga-runtime-for-opencl/releases/tag/v2022.2

0 commit comments

Comments
 (0)