Merge pull request #208 from MightyCreak/simplify-new-release
Add `new_release.sh` script to prepare files for new releases
This commit is contained in:
commit
b158b55d0a
|
@ -5,46 +5,40 @@ few manual steps.
|
|||
|
||||
## Prepare the PR for the new release
|
||||
|
||||
1. Find the next version, using semantic versioning, depending on the changes
|
||||
in the changelog
|
||||
2. Find and replace the old version with the new version in some files:
|
||||
- meson.build
|
||||
- data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
- data/usr/share/omf/diffuse/diffuse-*.omf
|
||||
- utils/book2manual.xsl
|
||||
- windows-installer/build.py
|
||||
- windows-installer/diffuse.iss
|
||||
- windows-installer/diffuse.new.iss
|
||||
3. Update the date for the new release date in these files:
|
||||
- data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
- data/usr/share/omf/diffuse/diffuse-*.omf
|
||||
- utils/book2manual.xsl
|
||||
4. Update CHANGELOG.md
|
||||
- Add new line under `## Unreleased` following this syntax: `## x.y.z - YYYY-MM-DD`
|
||||
- Copy the content of the changes for this release
|
||||
5. Update AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in:
|
||||
- Create a new `<release>` tag under `<releases>`, fill the `version` and
|
||||
`date` attributes
|
||||
- Create a new `<description>` tag under the new `<release>` tag
|
||||
- Add a paragraph (`<p>`) to sum the release in one sentence (e.g.
|
||||
highlights, ...)
|
||||
- Paste the changes from the changelog and adapt it to HTML
|
||||
6. Create new branch and PR
|
||||
### Edit files
|
||||
|
||||
1. Find the next version, using semantic versioning (e.g. `1.2.3`), depending on
|
||||
the changes in the changelog
|
||||
2. Execute `./new_release NEW_VERSION` (replace `NEW_VERSION` with the new version)
|
||||
3. Update the AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in:
|
||||
- Look for the empty `<p>` tag under the new `<release>` tag
|
||||
- Add a paragraph to sum the release in one sentence (e.g. highlights, ...)
|
||||
- Paste the changes from CHANGELOG.md and adapt it to HTML (see other
|
||||
releases in the file)
|
||||
|
||||
### Create branch, PR and merge
|
||||
|
||||
1. Create a new branch (e.g. `release-1.2.3`)
|
||||
2. Create a new PR
|
||||
3. When everything's green: merge the PR
|
||||
|
||||
## Create new release on GitHub
|
||||
|
||||
1. When everything's green: merge the PR
|
||||
2. Create a new release on GitHub's [new release page](https://github.com/MightyCreak/diffuse/releases/new):
|
||||
1. Create a new release on GitHub's [new release page](https://github.com/MightyCreak/diffuse/releases/new):
|
||||
- Choose a tag: `v` followed with the new version (e.g. `v1.2.3`)
|
||||
- Release title: the tag (e.g. `v1.2.3`)
|
||||
- Description:
|
||||
- For the first paragraph, paste the first paragraph from the release notes
|
||||
- For the second paragraph, got to [CHANGELOG.md](https://github.com/MightyCreak/diffuse/blob/main/CHANGELOG.md)
|
||||
and copy the URL anchor to the new release, then add this sentence
|
||||
(adapt the changelog link):
|
||||
> For a more detailed list of changes, see the
|
||||
> [changelog](https://github.com/MightyCreak/diffuse/blob/main/CHANGELOG.md#xyz---yyyy-mm-dd).
|
||||
3. Publish release
|
||||
(adapt the changelog link):
|
||||
|
||||
```text
|
||||
For a more detailed list of changes, see the
|
||||
[changelog](https://github.com/MightyCreak/diffuse/blob/main/CHANGELOG.md#xyz---yyyy-mm-dd).
|
||||
```
|
||||
|
||||
2. Publish release
|
||||
|
||||
## Create new release on Flatpak
|
||||
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
#!/bin/bash
|
||||
## Prepare files for a new release.
|
||||
|
||||
## This script automate this process:
|
||||
## 1. Update these files with new version and new date:
|
||||
## - meson.build
|
||||
## - data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
## - data/usr/share/omf/diffuse/diffuse-*.omf
|
||||
## - utils/book2manual.xsl
|
||||
## - windows-installer/build.py
|
||||
## - windows-installer/diffuse.iss
|
||||
## - windows-installer/diffuse.new.iss
|
||||
## 2. Update CHANGELOG.md
|
||||
## - Add new line under `## Unreleased` following this syntax: `## x.y.z - YYYY-MM-DD`
|
||||
## 3. Update AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in:
|
||||
## - Create a new `<release>` tag under `<releases>`, fill the `version` and `date` attributes
|
||||
## - Create a new `<description>` tag under the new `<release>` tag
|
||||
## - Create a new `<p>` tag under the new `<description>` tag
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$#" -ne "1" ]; then
|
||||
echo "Usage: $0 NEW_VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NEW_VERSION=$1
|
||||
DATE_FULL=$(date +%F)
|
||||
DATE_YEAR=$(date +%Y)
|
||||
|
||||
echo "Changing files for new version $NEW_VERSION..."
|
||||
|
||||
# meson.build
|
||||
sed -i -E "s/version: '.+?',/version: '$NEW_VERSION',/" \
|
||||
meson.build
|
||||
|
||||
# GNOME help (.xml and .omf)
|
||||
sed -i -E "s#<!ENTITY app-version \".+?\">#<!ENTITY app-version \"$NEW_VERSION\">#" \
|
||||
data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
sed -i -E "s#<!ENTITY app-year \"2006-\d+\">#<!ENTITY app-year \"2006-$DATE_YEAR\">#" \
|
||||
data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
sed -i -E "s#<!ENTITY manual-year \"2009-\d+\">#<!ENTITY manual-year \"2009-$DATE_YEAR\">#" \
|
||||
data/usr/share/gnome/help/diffuse/*/diffuse.xml
|
||||
|
||||
sed -i -E "s#<version identifier=\".+?\" date=\".+?\"/>#<version identifier=\"$NEW_VERSION\" date=\"$DATE_FULL\"/>#" \
|
||||
data/usr/share/omf/diffuse/diffuse-*.omf
|
||||
sed -i -E "s#<date>.+?</date>#<date>$DATE_FULL</date>#" \
|
||||
data/usr/share/omf/diffuse/diffuse-*.omf
|
||||
|
||||
# book2manual.xsl
|
||||
sed -i -E "s#<!ENTITY app-version \".+?\">#<!ENTITY app-version \"$NEW_VERSION\">#" \
|
||||
utils/book2manual.xsl
|
||||
sed -i -E "s#<!ENTITY date \".+?\">#<!ENTITY date \"$DATE_FULL\">#" \
|
||||
utils/book2manual.xsl
|
||||
|
||||
# Windows installer (unmaintaned)
|
||||
sed -i -E "s/VERSION = '.+?'/VERSION = '$NEW_VERSION'/" \
|
||||
windows-installer/build.py
|
||||
sed -i -E "s/AppVerName=Diffuse .+?/AppVerName=Diffuse $NEW_VERSION/" \
|
||||
windows-installer/diffuse.iss
|
||||
sed -i -E "s/#define MyAppVersion \".+?\"/#define MyAppVersion \"$NEW_VERSION\"/" \
|
||||
windows-installer/diffuse.iss
|
||||
|
||||
# AppData
|
||||
new_release=" <release version=\"$NEW_VERSION\" date=\"$DATE_FULL\">
|
||||
<description>
|
||||
<p></p>
|
||||
</description>
|
||||
</release>"
|
||||
echo "$new_release" | sed -i "/<releases>/r /dev/stdin" \
|
||||
data/io.github.mightycreak.Diffuse.appdata.xml.in
|
||||
|
||||
# CHANGELOG.md
|
||||
new_changelog="
|
||||
## $NEW_VERSION - $DATE_FULL"
|
||||
echo "$new_changelog" | sed -i "/^## Unreleased$/r /dev/stdin" \
|
||||
CHANGELOG.md
|
||||
|
||||
echo "Changes done."
|
Loading…
Reference in New Issue