You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL][COMPAT] Add version & release process (#14457)
This PR defines a version for SYCLcompat via `SYCLCOMPAT_VERSION` and
related macros. It also defines a release process for SYCLcompat with
respect to oneAPI's product releases.
---------
Signed-off-by: Joe Todd <[email protected]>
(`major.minor.patch`) in a manner which aligns with oneAPI releases. Each oneAPI
73
+
product release has an associated SYCLcompat release. Between oneAPI releases,
74
+
there will be at most one `major` or `minor` bump. In other words, if a given
75
+
oneAPI release has SYCLcompat version `1.0.0`, the next release will have either
76
+
`1.1.0` or, if breaking changes have been made, `2.0.0`. This guarantee has
77
+
implications for code merged to the `sycl` branch, described below.
78
+
79
+
Between release cycles, ongoing updates to SYCLcompat (including possibly
80
+
breaking changes) are merged into DPC++ via PRs to the
81
+
[`sycl`](https://github.com/intel/llvm/tree/sycl) branch. If a PR introduces the
82
+
*first* breaking changes since the last release, that PR must bump to the next
83
+
`major` version. Otherwise, if the PR introduces *new functionality* and neither
84
+
the `major` nor `minor` have been bumped since the last release, it must bump to
85
+
the next `minor` release. If a PR introduces important bugfixes to existing
86
+
functionality, `patch` should be bumped, and there are no limits to how many
87
+
`patch` bumps can occur between release cycles.
88
+
89
+
### Release Process
90
+
91
+
Once all changes planned for a release have been merged, the release process is
92
+
defined as:
93
+
94
+
1. Check the `major.minor` version associated with the *previous* release.
95
+
2. Confirm the version bump process outlined above has been followed.
96
+
3. If no version bump has occurred since previous release, bump to next `minor`.
97
+
4. oneAPI release is delivered.
98
+
5. Tag the SYCLcompat release on DPC++ repo: `SYCLcompat-major.minor.0`.
99
+
100
+
### Deprecation Process/Breaking Changes
101
+
102
+
As outlined above, SYCLcompat may sometimes make API breaking changes, indicated
103
+
with a `major` version bump. Advanced notice (at least one major oneAPI release)
104
+
will be provided via a deprecation warning on the relevant APIs, indicating to
105
+
the user which alternative API should be used instead.
106
+
107
+
Note that SYCLcompat is currently in pre-release, and until version `1.0.0` we
108
+
do not consider our API to be stable, and may change it with shorter notice.
109
+
110
+
### Changelog
111
+
112
+
Since SYCLcompat releases are aligned with oneAPI product releases, the changelog for SYCLcompat is incorporated into [SYCL's Release Notes](https://github.com/intel/llvm/blob/sycl/sycl/ReleaseNotes.md).
113
+
114
+
### Experimental Namespace
115
+
116
+
SYCLcompat provides some new experimental features in the `syclcompat::experimental` namespace. This serves as a testing ground for new features which are expected to migrate to `syclcompat::` in time, but the developers do not guarantee either API stability or continued existence of these features; they may be modified or removed without notice. When features are migrated from `syclcompat::experimental` to `syclcompat::`, this will be treated as a `minor` version bump.
0 commit comments