diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4abaed4..0f88273 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,40 +1,44 @@ # Contributing This is a guideline for contributing to Kaidan. There is also a guide for a [basic setup](https://invent.kde.org/kde/kaidan/-/wikis/setup) targeted at contributors which are unfamiliar with KDE Identity, GitLab or Git and want to start contributing quickly. ## Branches Use the following prefixes for branch names: * `feature/` for new features (changes with new behavior) * `refactor/` for changes of the code structure without changing the general behavior * `fix/` for fixes (changes for intended / correct behavior) * `design/` for design changes * `doc/` for documentation ## Merge Requests (MR) Please stick to the following steps for opening and reviewing MRs. ### For Authors 1. Create a new branch to work on it from the *master* branch. 1. Write short commit messages starting with an a upper case letter and using the present tense and imperative. 1. Split your commits logically. 1. Do not mix unrelated changes in the same MR. 1. Create a MR with the *master* branch as its target. 1. Add *WIP: * in front of the MR's title as long as you are working on the MR and remove it as soon as it is ready to be reviewed. 1. If everything is ready to be reviewed, mention at least one person not involved as an author or co-author to review the current state. 1. If necessary, modify, reorder or squash your commits and force-push (`git push -f`) the result to the MR's branch. 1. If there are no open threads on your MR, a reviewer with write access will merge your commits. ### For Reviewers 1. Try to provide a review to the author. 1. Try to give the author concrete proposals for improving the code via the *insert suggestion* feature while commenting. 1. If the proposals are too complicated, create and push a commit with your proposal to your own fork of Kaidan and open a MR with the author's MR branch as its target. ## Graphics The preferred format for graphics in Kaidan is *SVG*. -A new SVG must be [optimized](https://invent.kde.org/kde/kaidan/-/wikis/svg-optimization) before adding it to a commit. +If SVG is not applicable like for screenshots, the graphic should have the format *PNG*. + +### Optimization + +In any case, the new or modified graphic must be [optimized](https://invent.kde.org/kde/kaidan/-/wikis/optimizing-graphics) before adding it to a commit. diff --git a/doc/maintenance/release.md b/doc/maintenance/release.md index 4d905b9..5a88010 100644 --- a/doc/maintenance/release.md +++ b/doc/maintenance/release.md @@ -1,118 +1,117 @@ # Releasing a New Kaidan Version ## Summary ### Main Repository * [ ] Update translations * [ ] Update changelog content * [ ] Update license information * [ ] Update version in *CMakeLists.txt* * [ ] Update changelog release date * [ ] Archive release on *stable* branch * [ ] Add tag on *stable* branch * [ ] Publish release builds * [ ] Merge *stable* branch into *master* branch * [ ] Update version in *CMakeLists.txt* to new development version ### Website Repository * [ ] Update screenshot * [ ] Update version and date in *index.html* * [ ] Publish blog post * [ ] Update supported features in *supported-xeps.md* ### Mastodon * [ ] Create a toot ## Details **X.Y.Z and N+1 must be adjusted to correspond to the actual version unless otherwise noted.** ### In Repository **https://invent.kde.org/kde/kaidan.git** 1. `git checkout master` 1. `git pull origin master` 1. `git checkout -b release/vX.Y.Z` or if that branch already exists: `git checkout release/vX.Y.Z` 1. [Update translations](translation.md) 1. Update changelog (*changelog.md*): 1. Set version *vX.Y.Z* 1. Set release date to *UNRELEASED* 1. Mention important changes and their authors 1. `git add changelog.md` 1. `git commit -m "Prepare changelog for vX.Y.Z"` 1. Check correct functionality of all release builds 1. [Update license information](license.md) 1. In *CMakeLists.txt*: 1. Set `DEVELOPMENT_BUILD` to `FALSE` 1. Increase `VERSION_CODE` by one 1. `git add CMakeLists.txt` 1. Update changelog (*changelog.md*): 1. Set release date 1. `git add changelog.md` 1. `git commit -m "Release Kaidan vX.Y.Z"` 1. `git push --set-upstream origin release/vX.Y.Z` 1. Archive release on *stable* branch: 1. `git checkout stable` or if that branch does not already exist: `git checkout -b stable origin/stable` 1. `git pull origin stable` 1. `git merge release/vX.Y.Z` 1. `git push origin stable` 1. `git push -d release/vX.Y.Z` 1. Add tag on *stable* branch: 1. `git tag -a vX.Y.Z` or for signed tags: `git tag -s v0.4.1` 1. Add changelog part for vX.Y.Z as tag message 1. `git push origin vX.Y.Z` 1. Add changelog part for vX.Y.Z as release note on https://invent.kde.org/kde/kaidan/tags 1. Publish release builds on https://download.kde.org: 1. Download builds from https://invent.kde.org/kde/kaidan/pipelines?scope=tags&page=1 for tag *vX.Y.Z* 1. Rename downloaded builds to *kaidan_X.Y.Z_.* (Replace . with the corresponding architecture and file type.) 1. `../releaseme/tarme.rb --version X.Y.Z --origin stable kaidan` (*releasme* is the directory of the repository **https://anongit.kde.org/releaseme.git**.) 1. `kdecp5 kaidan-X.Y.Z.* ftp://upload.kde.org/incoming`: 1. Create admin ticket as described in output with additional lines for all uploaded files and hash values by SHA-256 and SHA-1 1. Merge *stable* branch into *master* branch: 1. `git checkout master` 1. `git merge stable` 1. Start new development version: * **X.Y.Z must be adjusted to correspond to the actual version.** 1. In *CMakeLists.txt*: 1. Increase `VERSION_MINOR` by one and reset `VERSION_PATCH` to 0 1. Set `DEVELOPMENT_BUILD` to `TRUE` again 1. Increase `VERSION_CODE` by one 1. `git add CMakeLists.txt` 1. `git commit -m "Continue with Kaidan vX.Y.Z-dev"` 1. `git push origin master` ### In Repository **https://invent.kde.org/websites/kaidan-im.git** 1. `git checkout master` 1. `git pull origin master` 1. Update screenshot (which will update the screenshot on the website and in the README): 1. Create one screenshot for desktop and one for mobile version 1. Put those two screenshots into one image like *images/screenshot.png* and overwrite that by the new one - 1. `optipng -o7 images/screenshot.png` - 1. `advpng -z4 images/screenshot.png` + 1. [Optimize](https://invent.kde.org/kde/kaidan/-/wikis/optimizing-graphics) *images/screenshot.png* 1. `git add images/screenshot.png` 1. `git commit -m "Update screenshot"` 1. `git push origin master` 1. Update version and date in the following lines of *index.html*: 1. `

Current version: X.Y.Z

` 1. `

(released MONTH DAY, YEAR)

` 1. Publish blog post: 1. Create *_posts/YYYY-MM-DD-kaidan-X.Y.Z.md* 1. Add header as in other posts of that directory 1. Copy *images/screenshot.png* to *images/screenshots/screenshot-X.Y* 1. Include *images/screenshots/screenshot-X.Y* into blog post 1. Add changelog part for vX.Y.Z 1. `git add _posts/YYYY-MM-DD-kaidan-X.Y.Z.md` 1. `git commit -m "Add post about Kaidan X.Y.Z"` 1. `git push origin master` 1. Update supported features 1. Modify *supported-xeps.md* 1. `git add supported-xeps.md` 1. `git commit -m "Update supported features"` 1. `git push origin master` ### On Mastodon via **https://fosstodon.org/@kaidan** 1. Create a toot like https://fosstodon.org/@kaidan/101929341888805925