Below are helpful notes for developers hacking on or releasing new versions of IPFS Desktop.
Before cutting a new release of IPFS Desktop, please go through the following process:
Manually test a few things that don’t transfer well to automated testing:
ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi in a stock web browser (Edge, Safari, Google Chrome) without IPFS Companionnpm version [major|minor|patch] (it will create a new tag vA.B.C, note it down)README.md to point to the new version (A.B.C).
ts-node scripts/release/updateReadme.ts <oldVersion> <newVersion> to update the readme. e.g. ts-node scripts/release/updateReadme.ts 0.26.0 0.26.1
git add README.md && git commit --amend --no-editgit push && git push origin vA.B.C.latest.yml, latest-mac.yml, latest-linux.yml files on the release are used by the app to determine when an app update is available.CHANGELOG.md with details from release/release draft..dmg with AppleThese steps are only needed as a fallback if CI is not correctly notarizing the .dmg file. For context, see #1365.
.dmg from https://github.com/ipfs-shipyard/ipfs-desktop/releases/vA.B.C.APPLEID and APPLEIDPASS are set either as environment variables or entries in .env file. These need to belong to the same org as the certificate used for signing.node pkgs/macos/notarize-cli.js ./IPFS-Desktop-A.B.C.dmg.xcrun altool --notarize-app -f /path/to/IPFS-Desktop-0.X.0.dmg --primary-bundle-id io.ipfs.desktop -u XXX-from-vault-XXX -p XXX-app-specific-password-from-vault-XXX; also, see the long list of hoops Apple may ask you to jump through.