Release process - richardlehane/siegfried GitHub Wiki
Release process for siegfried updates
Update signatures
- http://tika.apache.org/download.html
- https://freedesktop.org/wiki/Software/shared-mime-info/ (Releases - data - freedesktop.org.xml.in rename to .xml)
- http://www.loc.gov/preservation/digital/formats/fdd/fdd_xml_info.shtml
- http://www.nationalarchives.gov.uk/aboutapps/pronom/droid-signature-files.htm
Prep
- Update README
- Update CHANGELOG
- Update config - sf version
go generate
(in github.com/richardlehane/siegfried/cmd/roy folder, to update sigs)go generate
(in github.com/richardlehane/siegfried/pkg/static, to update signature.go)go get -u
// update dependenciesgo mod tidy
// clean cruft- Commit changes to develop branch
Git
// make sure configured with git config --global push.followTags true
// or if using vscode, use command palette... Git: Push (follow tags)
// vscode command is "checkout to" for checkout
git checkout main
git merge develop
git tag -a v1.6.0 -m "see CHANGELOG.md"
git push origin main
(if in VS Code use command pallette + "Git Push (Follow Tags)")
git checkout develop
Release candidates
On develop:
git tag -a v1.6.0-rc (or v1.6.0-rc1) -m "release candidate"
git push origin develop
Announce
Send snippet from Changelog to the Google Group
Release process for PRONOM updates
When PRONOM is updated, the process for updating siegfried is:
- Copy latest:
- release-notes.xml
- droid.xml
- container.xml
- Harvest PRONOM and build skeleton suite with: https://github.com/richardlehane/builder
- then in siegfried source wget pronom.zip from builder and unpack it selectively in roy/data and sf/testdata folders with
unzip pronom.zip "pronom/*"
andunzip pronom.zip "skeleton-suite/*"
- doing
sudo chmod -R -x .
andsudo chmod -R +X .
(adds exec bit for dirs) will fix git diff explosion for file mode changes
-
Run
go generate
in thecmd/roy
directory to rebuild siegfried's signature files (default.sig and archivematica.sig) and sets; then run thesf
tests to check against the new test suite -
Some files in the skeleton suite fail (not because of sf issue!). These files should be deleted to allow the tests to pass:
- fmt-62-signature-id-78.xlw (this skeleton file is identical to the fmt-61)
- fmt-1062-signature-id-1435.3fr (reported here)
- fmt-1157-signature-id-1539.nfo (missing v200 sequence reported here)
- fmt-1739-signature-id-2077.toast (reported here)
- fmt-1757-signature-id-2094.iso (reported here)
- fmt-1757-signature-id-2095.iso (reported here)
- fmt-1190-container-signature-id-28200.swc (reported here)
- Copy the fresh signature file and sets into the itforarchivists.com source directory and do a Google Appengine push to update "Try Siegfried" as well as the
-update
service.
Updating website
- remove public directory
- make a new post for the release
- download new deb from github release then update repository with
reprepro -b static/repositories includedeb buster siegfried_1.X.X-1_amd64.deb
(use WSL environment) - update the go.mod file to have latest siegfried release
- run scripts/update.sh to copy sets and signatures files into static directory (use WSL environment) (check latest target folder)
- check main.go to make sure sf is loading from correct /latest folder
- copy signatures for 1.10, 1.11 ... into static/latest folders (the update script helps)
- do
go generate
to update the siegfried.js file, sets files (need to have latest sets in siegfried home) and update.json files hugo
to rebuild the sitegcloud app deploy
(obsolete appengine now has 1.20) google appengine max version is go 1.16, if any dependencies require later code, manually downgrade by using replace directives e.g. go mod edit -replace golang.org/x/[email protected]=golang.org/x/[email protected]
Check deb files and binaries
dpkg -I siegfried.deb
ar -t siegfried.deb
(check has .xz extensions)go version -m sf.exe
(check e.g. if cgo enabled)
Dealing with expired signing keys
gpg --list-options show-unusable-subkeys --list-keys
gpg --edit-key 0x20F802FE798E6857
gpg> key 2
gpg> expire
gpg --keyserver keyserver.ubuntu.com --send-keys 0x20F802FE798E6857