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-edit
git 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.