First Commit
This commit is contained in:
66
3rdparty/kddockwidgets/docs/developer/branching.md
vendored
Normal file
66
3rdparty/kddockwidgets/docs/developer/branching.md
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
# Branching
|
||||
|
||||
Stable branches are branched from the "main" branch and called X.Y,
|
||||
where 'X' the major version number and 'Y' is the minor version number.
|
||||
|
||||
We may refer to the "main" branch as the unstable branch.
|
||||
The currently actively X.Y branch is known as the stable branch.
|
||||
|
||||
Bugfixes can stay in the current stable branch and do not require a new branch, which
|
||||
means that the following instructions can be skipped for patch-point releases.
|
||||
|
||||
## New minor version
|
||||
|
||||
For small feature modifications we need to create a new stable branch.
|
||||
If the current stable branch is X.Y then the new branch will be called X.Y+1.
|
||||
|
||||
For example, if the current stable branch is 2.1 then the new stable branch will be 2.2, like so:
|
||||
|
||||
```shell
|
||||
git checkout main
|
||||
git branch 2.2
|
||||
git checkout 2.2
|
||||
```
|
||||
|
||||
## New major version
|
||||
|
||||
However, for large feature modifications or API changes we need a major stable release.
|
||||
If the current stable branch is X.Y then the new branch will be called X+1.0.
|
||||
|
||||
For example, if the current stable branch is 2.1 then the new stable branch will be 3.0, like so:
|
||||
|
||||
```shell
|
||||
git checkout main
|
||||
git branch 3.0
|
||||
git checkout 3.0
|
||||
```
|
||||
|
||||
## After branching
|
||||
|
||||
Once the new branch is created we need to modify a few things.
|
||||
|
||||
### Source code changes
|
||||
|
||||
For a new major version:
|
||||
|
||||
* In the top-level `CMakeLists.txt` set `KDDockWidgets_VERSION_MINOR` to 95
|
||||
* In the top-level `CMakeLists.txt` set `KDDockWidgets_VERSION_PATCH` to 95
|
||||
* In the top-level `CMakeLists.txt set` `KDDockWidgets_SOVERSION` to the new X.0
|
||||
* In the `Changelog` add a empty section a the top for the new "vX.0 (unreleased)"
|
||||
|
||||
For a new minor version:
|
||||
|
||||
* In the top-level `CMakeLists.txt` set `KDDockWidgets_VERSION_PATCH` to 95
|
||||
* In the top-level `CMakeLists.txt` set `KDDockWidgets_SOVERSION` to the new X.Y
|
||||
* In the `Changelog` add a empty section a the top for the new "vX.Y (unreleased)"
|
||||
|
||||
For any new branch, make sure to add entries for new branch name into the
|
||||
`.github/workflows/build.yml` file, inside the 'push' and 'pull_request" branch lists.
|
||||
|
||||
Make all the above changes and then git commit and push the new branch.
|
||||
|
||||
### And finally
|
||||
|
||||
* Update the KDABCI to the new stable branch (contact the KDAB CI team <buiildmaster@kdab.com>)
|
||||
* Update the Github Default Branch (see Default Branch setting at <https://github.com/KDAB/KDDockWidgets/settings>)
|
||||
* Initiate CI builds (both github and KDAB) of the new branch and make sure all is green before continuing.
|
||||
49
3rdparty/kddockwidgets/docs/developer/prerelease-source.md
vendored
Normal file
49
3rdparty/kddockwidgets/docs/developer/prerelease-source.md
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
# Pre-release source code review
|
||||
|
||||
See the bash script `deploy/release-kddockwidgets.sh` in this project
|
||||
which automatically performs all these checks. Additionally,
|
||||
`deploy/release-kddockwidgets.sh` does a build of the documentation
|
||||
plus creates and signs tar/zip balls. If all goes well, the user
|
||||
will be prompted to create the tag.
|
||||
|
||||
To use it run:
|
||||
|
||||
```shell
|
||||
./deploy/release-kddockwidgets.sh X.Y.Z` # where X.Y.Z is the release version.
|
||||
```
|
||||
|
||||
Pre-release checklist:
|
||||
|
||||
* sync KDAB cmake files to upstream
|
||||
|
||||
compare the cmake/KDE files to their upstream versions in ssh://codereview.kdab.com:29418/kdab/extra-cmake-modules
|
||||
|
||||
* sync KDE cmake files to upstream
|
||||
|
||||
compare the cmake/ECM files to their upstream versions in <https://invent.kde.org/frameworks/extra-cmake-modules>
|
||||
|
||||
* ensures the Doxygen.cmake file is up-to-date for the doxygen version we use on KDABCI
|
||||
|
||||
```shell
|
||||
doxygen -u docs/api/Doxyfile.cmake
|
||||
```
|
||||
|
||||
* run a pre-commit check
|
||||
|
||||
```shell
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
* verify ${PROJECT_NAME}_VERSION and ${PROJECT_NAME}_SOVERSION values in the top-level CMakeLists.txt
|
||||
|
||||
* Add the real release date to the Changelog section header "vX.Y.Z (unreleased)"
|
||||
|
||||
* `git commit` any changes made above and make sure the CIs are green before continuing.
|
||||
|
||||
Then create the new tag using the command:
|
||||
|
||||
```shell
|
||||
git tag -m KDDockWidgets vX.Y.Z X.Y.Z"
|
||||
```
|
||||
|
||||
**DO NOT PUSH THE TAG YET!**
|
||||
80
3rdparty/kddockwidgets/docs/developer/release-todo.md
vendored
Normal file
80
3rdparty/kddockwidgets/docs/developer/release-todo.md
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
# Release Checklist
|
||||
|
||||
## Prerelease Source Checking
|
||||
|
||||
* make sure the [github actions CI](https://github.com/KDAB/KDDockWidgets/actions) is green
|
||||
* make sure the [KDAB CI](https://kdab.ci.kdab.com/#/projects/19) is green
|
||||
* look for any static checking issues (clazy, clang-tidy, cppcheck, etc) that may need fixing.
|
||||
check [KDAB CI](https://kdab-artifacts.ci.kdab.com/analysis/kddockwidgets-stable)
|
||||
and [Github Nightly CI](https://github.com/KDAB/KDDockWidgets/actions/workflows/nightly.yml)
|
||||
* look for any changes in the README.md that may need updating or improving.
|
||||
* follow the [prerelease source code review](prerelease-source.md) instructions.
|
||||
* merge any changes made during the review
|
||||
* create the tag (**do not push the tag yet**)
|
||||
|
||||
## Prerelease Build Checking
|
||||
|
||||
Any last changes before pushing the tag? Any CI failures?
|
||||
|
||||
If so:
|
||||
|
||||
```shell
|
||||
git -d vX.Y.Z # delete the tag; good thing we didn't push it yet
|
||||
commit and push fixes
|
||||
update Changelog as necessary
|
||||
./deploy/release-kddockwidget.sh X.Y.Z
|
||||
git tag -m KDDockWidgets vX.Y.Z X.Y.Z
|
||||
```
|
||||
|
||||
## Release
|
||||
|
||||
### Push the tag
|
||||
|
||||
```shell
|
||||
git push --tags
|
||||
```
|
||||
|
||||
### Github
|
||||
|
||||
#### Make a release on Github
|
||||
|
||||
Go to <https://github.com/KDAB/KDDockWidgets/releases> and make an official release.
|
||||
|
||||
* push the "Draft a new release" button.
|
||||
* use the Changelog to help write the release description.
|
||||
* hang the kddockwidgets-X.Y.Z.tar.gz, kddockwidgets-X.Y.Z.zip and kddockwidgets-X.Y.0-doc.zip
|
||||
(for major and minor releases) on the github release page.
|
||||
* also hang the associated .asc files on the github release page.
|
||||
|
||||
#### Change the default branch
|
||||
|
||||
For major (X.Y.0) releases, change the default branch at
|
||||
<https://github.com/KDAB/KDDockWidgets/settings> to X.Y
|
||||
|
||||
## Commercial release
|
||||
|
||||
For our paying licensed clients we provide a source code download from our customers.kdab.com portal.
|
||||
|
||||
Create a KDADM Jira asking our admins to hang the tar and zips in the customers download area.
|
||||
The admins should copy kddockwidgets-X.Y.Z.tar.gz, kddockwidgets-X.Y.Z.zip and kddockwidgets-X.Y.0-doc.zip
|
||||
from <https://github.com/KDAB/KDDockWidgets/releases/vX.Y.Z>.
|
||||
|
||||
## Postrelease
|
||||
|
||||
### Announcing
|
||||
|
||||
* update the
|
||||
[Products Release Schedule wiki](https://wiki.kdab.com/display/Products/Product+Release+Schedule)
|
||||
and [KDDockWidgets wiki](https://wiki.kdab.com/display/Products/KDDockWidgets)
|
||||
with new version numbers
|
||||
|
||||
* email the marketing team <marketing@kdab.com> and ask to have the news of
|
||||
the KDDockWidgets release posted to KDAB social media.
|
||||
|
||||
### Prepare for Next Release
|
||||
|
||||
In the branch:
|
||||
|
||||
* increment the KDDockWidgets_VERSION_PATCH value in the top-level CMakeLists.txt
|
||||
* add a new stanza to the top of Changelog for "X.Y.Z+1 (unreleased)"
|
||||
* merge to the "main" branch
|
||||
Reference in New Issue
Block a user