Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:release_process [2021/12/07 20:57]
tedfelix [File Format Version]
dev:release_process [2023/12/06 12:58] (current)
tedfelix [Deliver]
Line 12: Line 12:
 You can examine the commit history since the previous release in git using the command line: You can examine the commit history since the previous release in git using the command line:
  
-  $ git log --stat --reverse 21.06..master+  $ git checkout master 
 +  $ git log --stat --reverse 22.12..
  
 ...or by using gitk.  With gitk, you can enter the last release number in the "SHA1 ID:" field and it will jump to that tag.  Then work your way backwards (up). ...or by using gitk.  With gitk, you can enter the last release number in the "SHA1 ID:" field and it will jump to that tag.  Then work your way backwards (up).
Line 26: Line 27:
 On the day of the feature freeze... On the day of the feature freeze...
  
-  * Put together a testing notes page for the new version on the wiki.  See [[dev:21.06_testing_notes|21.06 Testing Notes]].+  * Copy the latest version of the CHANGELOG to a new page [[:start#release_notes|on the wiki]]. 
 +  * [optional] Put together a testing notes page for the new version on the wiki.  See [[dev:21.06_testing_notes|21.06 Testing Notes]].
   * Send a "Testing Appreciated" email to the user list.   * Send a "Testing Appreciated" email to the user list.
   * Make a "Testing Appreciated" post on f-book.   * Make a "Testing Appreciated" post on f-book.
Line 59: Line 61:
   * ''RosegardenDocument::saveDocument()''   * ''RosegardenDocument::saveDocument()''
   * ''RoseXmlHandler::startElement()'' (and others in ''RoseXmlHandler'')   * ''RoseXmlHandler::startElement()'' (and others in ''RoseXmlHandler'')
 +  * ''Composition::toXmlString()'' (and other toXmlString() routines throughout the system)
  
 Git should ferret out the changes: Git should ferret out the changes:
  
-  git log -p -w src/document/RoseXmlHandler.cpp src/document/RosegardenDocument.cpp+  git log -p -w src/document/RoseXmlHandler.cpp src/document/RosegardenDocument.cpp src/base/Composition.cpp
  
 If changes have been made to the file format, decide the extent of those changes and what level of file format version update is required.  Update the file format version as appropriate.  See comments on ''FILE_FORMAT_VERSION_POINT'' in RosegardenDocument.cpp. If changes have been made to the file format, decide the extent of those changes and what level of file format version update is required.  Update the file format version as appropriate.  See comments on ''FILE_FORMAT_VERSION_POINT'' in RosegardenDocument.cpp.
  
 Changing the point version has no effect on anything as it is ignored.  Use this for things that might be annoying, but won't result in data loss.  Changing the minor version will cause an "incompatibilities" warning on load, but the file will be loaded.  Use this when data might be lost when opening a file with an older version of rg (e.g. new fields have been added).  Changing the major version will cause older versions of rg to refuse to load the file.  Obviously, we should avoid this at all costs.  The chances are good that we will never have to do this. Changing the point version has no effect on anything as it is ignored.  Use this for things that might be annoying, but won't result in data loss.  Changing the minor version will cause an "incompatibilities" warning on load, but the file will be loaded.  Use this when data might be lost when opening a file with an older version of rg (e.g. new fields have been added).  Changing the major version will cause older versions of rg to refuse to load the file.  Obviously, we should avoid this at all costs.  The chances are good that we will never have to do this.
 +
 +===== Update Copyright =====
 +
 +Before the June release...  Check for any single copyright years that need to be expanded to a range.  E.g. "Copyright 2020 ...".
 +
 +  cd src
 +  grep -rh --include="*" "Copyright .* Rosegarden development team" . | sort | uniq
 +
 +Fix those manually to include the current year.
 +
 +From within the src directory, run the update-copyright script.
 +
 +  ../scripts/update-copyright
 +
 +Finally, commit the changes as Copyright Bot:
 +
 +  git commit -a --author="Copyright Bot <copyright@rosegardenmusic.com>" -m "Update copyright"
  
 ===== Testing ===== ===== Testing =====
Line 73: Line 93:
  
   * From a debug build, do ''make test'' to run unit tests.   * From a debug build, do ''make test'' to run unit tests.
 +  * The tests may fail due to ASAN.  grep for Totals to see the actual results:
 +
 +<file>
 +$ grep Totals Testing/Temporary/LastTest.log
 +</file>
 +
   * Do a Release build and a regression test.   * Do a Release build and a regression test.
  
Line 78: Line 104:
  
   * Add any new changes to the CHANGELOG.   * Add any new changes to the CHANGELOG.
-  * Copy the latest version of the CHANGELOG to a new page [[:start#release_notes|on the wiki]].+  * Copy the latest version of the CHANGELOG to the wiki.
  
 +===== Turn Off Logging =====
 +
 +Search for any logging that is turned on and turn it off.
 +
 +  grep -rnl --include="*.cpp" "^//#define RG_NO" src
 ===== Update appdata ===== ===== Update appdata =====
  
Line 85: Line 116:
  
   data/appdata/rosegarden.appdata.xml   data/appdata/rosegarden.appdata.xml
 +
 +Also update the copyright year at the top.
  
 Validate with appstreamcli: Validate with appstreamcli:
Line 101: Line 134:
  
 ===== Update data.qrc ===== ===== Update data.qrc =====
 +
 +Get the latest yoshimi.rgd file from https://github.com/lorenzosu/rosegarden_yoshimi_banks/
 +
 +Copy it to data/library and make sure it is all lower-case "yoshimi.rgd" to match the previous version.
  
 Run "scripts/rebuild-qrc-nosvn" to make sure the data.qrc file is up-to-date. Run "scripts/rebuild-qrc-nosvn" to make sure the data.qrc file is up-to-date.
Line 119: Line 156:
 ===== Create tarball ===== ===== Create tarball =====
  
-Download a snapshot from the git repo page on SourceForge.+Download a snapshot from the [[https://sourceforge.net/p/rosegarden/git/ci/master/tree/|git repo page on SourceForge]].
  
 cd to where the snapshot was saved and run the make-release-tarball script with the name of the snapshot: cd to where the snapshot was saved and run the make-release-tarball script with the name of the snapshot:
Line 141: Line 178:
   - Upload the tarball to sf   - Upload the tarball to sf
   - Upload the current version section of the CHANGELOG to sf as README.   - Upload the current version section of the CHANGELOG to sf as README.
-  - Update sourceforge to point to the new version.  Use the "i" icon to the right of the file.  Set "Default Download For:" to Tux.  Set "Download Button:" text to "Rosegarden xx.xx".+  - Update sourceforge to point to the new version.  Use the "i" icon to the right of the file.  Set "Default Download For:" to Tux.
  
 ===== Update Website ===== ===== Update Website =====
Line 183: Line 220:
   * etc...?   * etc...?
  
 +===== Clean Up Sourceforge =====
 +
 +  * Bugs: Go through all "feedback" and close.
 +  * Feature Requests: Go through all "feedback" and close.
 +  * Close any merge requests that were accepted.
  
 ===== Point Release Process ===== ===== Point Release Process =====
  
-//Discussion uses 21.06.1 as an example.//+//Discussion uses 22.12.1 as an example.//
  
-Check out "point" branch based on the tag you want to start at.+Create new stable branch based on the tag you want to start at.
  
-  git checkout -b point 21.06+  git checkout -b 22.12-stable 22.12
  
-Cherry-pick any commits you need. +Cherry-pick any commits you need from master.
- +
-  git cherry-pick 9713720e+
  
 Go back through the release process carefully.  Some things to watch out for: Go back through the release process carefully.  Some things to watch out for:
Line 201: Line 241:
   - Update the CHANGELOG notes with a complete new point release.   - Update the CHANGELOG notes with a complete new point release.
   - Version will need to be adjusted in CMakeLists.txt.   - Version will need to be adjusted in CMakeLists.txt.
-  - You will need to push the point branch in order to generate a tarball.  You can always delete it later.+  - You will need to push the stable branch in order to generate a tarball.
   - No need for a new version directory on sf.   - No need for a new version directory on sf.
   - No need to bump the version number after the tarball.   - No need to bump the version number after the tarball.
- 
-Delete the point branch local and remote once the tags are pushed. 
  
 ===== See also ===== ===== See also =====
 
 
dev/release_process.1638910640.txt.gz · Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki