How to release RawTherapee: Difference between revisions

From RawPedia
Jump to navigation Jump to search
(Added splash screen reminder)
 
No edit summary
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div class="pagetitle">How to Release RawTherapee</div>
# Tea
# Tea
# Pull and update
# Pull and update
# Run: <pre>./tools/generateTranslationDiffs</pre> Perform final language file updates, remember to replace ampersands and other special HTML chars with HTML character entities where needed (not everywhere! always refer to "''default''"), make locale versions of translations (currently "''English (UK)''" and "''Polish (Latin Characters)''" files are generated automatically by ''generateTranslationDiffs''). If you made any changes, re-run the script.
# Run: <pre>./tools/generateTranslationDiffs</pre> Perform final language file updates.
# Run: <pre>dos2unix rtdata/languages/* and rtdata/profiles/*</pre>
# Run: <pre>dos2unix rtdata/languages/* rtdata/profiles/*</pre>
# Commit language files, profiles, and a new splash screen if needed.
# Update splash screen, <code>RELEASE_NOTES.txt</code>, AppData, language files, profiles, etc. Once ready, commit to new branch:
# Update the changelog (replace "''4.1''" with whatever the latest tag currently is in "''reverse(4.1::tip)''"): <pre style="white-space:pre-wrap;">printf "%-12s\t" "  DATE" "| CHANGESET" "| COMMITTER"; printf "%s\n" "" "  --------------|---------------|-------------------------------------"; hg log --template '> {date|shortdate}\t| {node|short}\t| {author|person}\n  {desc|fill68}\n\n' -b default -r "reverse(4.0.12::tip)" | sed -e 's/^[^> ]/ &/' -e 's/[ ]\{0,1\}<natureh.510>//g; s/natureh.510/Hombre/g; s/natureh/Hombre/g; s/michael/Michael Ezra/g; s/dualon/Dualon/g; s/entertheyoni/DrSlony/g; s/ejmartin/Emil Martinec/g; s/wyatt/TheBigOne/g; s/google/thebluelabel/g; s/ghorvath/Gabor Horvath/g; s/ffsup2/Joker/g; s/jdc$/Jacques Desmis/g; s/jdesmis/Jacques Desmis/g; s/torger/Torger/g'</pre>
#:<pre>
# Update RELEASE_NOTES.txt, merge the changelog into it. To find new features from the changelog more easily, use:<pre>hg log --template '- {desc}\n' -b default -r "reverse(4.0.11::4.0.12)"</pre>
#::git checkout -b release-5.10
# Tag the new release: <pre>hg tag 4.1</pre>
#::git commit -a -m "Preparing for release 5.10-rc1"
# Push the tag: <pre>hg push</pre>
#::git push --set-upstream origin release-5.10</pre>
# Make a source tarball and upload it to the website. Running ''generateSourceTarball'' is the preferred method because it results in a tarball with metadata: <pre>./tools/generateSourceTarball 4.1</pre>If you need to make a tarball manually, use this, but beware some metadata (AboutThisBuild) will be missing: <pre style="white-space:pre-wrap;">tag="4.1"; time { hg archive --time -r ${tag} rawtherapee-${tag}.tar -X ".hg*" && xz -z -9e -T 8 rawtherapee-${tag}.tar; } && ll rawtherapee-*</pre>
# Once others have revised the changes, merge this <code>release-5.10</code> branch into <code>releases</code>:
#:<pre>
#::git checkout releases
#::git pull
#::git merge release-5.10</pre>
# Tag and push:
#:<pre>
#::git tag -a "5.10-rc1" -m "Tagged RawTherapee 5.10-rc1"
#::git push origin "5.10-rc1"
#::git push</pre>
# Make a source tarball:<pre>./tools/generateSourceTarball</pre><pre>sha1sum rawtherapee-5.10-rc1.tar.xz > rawtherapee-5.10-rc1.tar.xz.sha1</pre>
# Over at GitHub, create a release for the new tag. Copy the description from the previous tag, updating the version as necessary. Attach the source tarball and hash file to the release: https://github.com/Beep6581/RawTherapee/tags
# Upload the source tarball and hash file to the website, to <code>shared/source</code>.
# Upload Linux/Windows/macOS installers/packages to the website, to <code>shared/builds</code>.
# Update the website, see https://gitlab.com/patdavid/rawtherapee-web/-/blob/master/README.md
## <code>cd</code> into your cloned website repo and run <code>hugo</code> (no arguments) to generate the static website in the <code>/public</code> folder.
## Log in via ssh, <code>cd rawtherapee.com/web/</code> and run <code>./danger_cleanup_hugo.sh</code> to delete the contents of the <code>public</code> folder without deleting files placed there manually and used by third-party services (screenshots for appdata, etc).
## Then upload everything from inside your local <code>public</code> folder.
 
When ready for a final release (5.10, not 5.10-rc1), do as above, merge <code>release-5.10</code> into <code>releases</code>, tag <code>5.10</code>, finally deleted branch <code>release-5.10</code>. Never delete branch <code>releases</code>.
 
Once done with the release, you may need to merge <code>releases</code> back into <code>dev</code> if new commits were made exclusively to the <code>release-5.10</code> branch. To do that,
# <code>git checkout releases</code>,
# Edit <code>RELEASE_NOTES.txt</code> and revert the contents to describe the development build (<code>git show dev:RELEASE_NOTES.txt</code>).
# Edit the splash screen in Inkscape to revert it to the dev one.
# <code>git commit -a -m "Preparing to merge back to dev"</code>
# <code>git checkout dev</code>
# <code>git merge releases</code>
# <code>git push</code>

Latest revision as of 18:37, 29 November 2022

How to Release RawTherapee
  1. Tea
  2. Pull and update
  3. Run:
    ./tools/generateTranslationDiffs
    Perform final language file updates.
  4. Run:
    dos2unix rtdata/languages/* rtdata/profiles/*
  5. Update splash screen, RELEASE_NOTES.txt, AppData, language files, profiles, etc. Once ready, commit to new branch:
    git checkout -b release-5.10
    git commit -a -m "Preparing for release 5.10-rc1"
    git push --set-upstream origin release-5.10
  6. Once others have revised the changes, merge this release-5.10 branch into releases:
    git checkout releases
    git pull
    git merge release-5.10
  7. Tag and push:
    git tag -a "5.10-rc1" -m "Tagged RawTherapee 5.10-rc1"
    git push origin "5.10-rc1"
    git push
  8. Make a source tarball:
    ./tools/generateSourceTarball
    sha1sum rawtherapee-5.10-rc1.tar.xz > rawtherapee-5.10-rc1.tar.xz.sha1
  9. Over at GitHub, create a release for the new tag. Copy the description from the previous tag, updating the version as necessary. Attach the source tarball and hash file to the release: https://github.com/Beep6581/RawTherapee/tags
  10. Upload the source tarball and hash file to the website, to shared/source.
  11. Upload Linux/Windows/macOS installers/packages to the website, to shared/builds.
  12. Update the website, see https://gitlab.com/patdavid/rawtherapee-web/-/blob/master/README.md
    1. cd into your cloned website repo and run hugo (no arguments) to generate the static website in the /public folder.
    2. Log in via ssh, cd rawtherapee.com/web/ and run ./danger_cleanup_hugo.sh to delete the contents of the public folder without deleting files placed there manually and used by third-party services (screenshots for appdata, etc).
    3. Then upload everything from inside your local public folder.

When ready for a final release (5.10, not 5.10-rc1), do as above, merge release-5.10 into releases, tag 5.10, finally deleted branch release-5.10. Never delete branch releases.

Once done with the release, you may need to merge releases back into dev if new commits were made exclusively to the release-5.10 branch. To do that,

  1. git checkout releases,
  2. Edit RELEASE_NOTES.txt and revert the contents to describe the development build (git show dev:RELEASE_NOTES.txt).
  3. Edit the splash screen in Inkscape to revert it to the dev one.
  4. git commit -a -m "Preparing to merge back to dev"
  5. git checkout dev
  6. git merge releases
  7. git push