First Commit

This commit is contained in:
2025-11-18 14:18:26 -07:00
parent 33eb6e3707
commit 27277ec342
6106 changed files with 3571167 additions and 0 deletions

View 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.

View 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!**

View 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