Pasteur is a macOS menu bar app for instant molecular structure visualization from clipboard content (PDB/mmCIF/XYZ/MOL/SDF/MOL2).
# Build web assets and copy into macOS bundle
./scripts/build-web.sh
# Build the app (SwiftPM)
swift buildThe release script builds web assets, builds the SwiftPM executable, wraps it into a Pasteur.app, and packages Pasteur.app.zip.
./scripts/release.shEnvironment variables:
RELEASE_DIR(default:build/release)CONFIGURATION(default:Release)APP_VERSION(default: derived from the currentv*git tag, else0.0.0)BUNDLE_ID(default:bar.pasteur.Pasteur)SIGN_IDENTITY(Developer ID Application identity; required for distribution)NOTARY_PROFILE(keychain profile name fornotarytool; required for Gatekeeper-friendly releases)
Create a notarytool profile (one-time on your machine):
xcrun notarytool store-credentials "pasteur-notary" \
--apple-id "you@example.com" \
--team-id "TEAMID" \
--password "APP_SPECIFIC_PASSWORD"Example build with signing + notarization:
SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
NOTARY_PROFILE="pasteur-notary" \
./scripts/release.shThe tag-based workflow (.github/workflows/release.yml) expects these repository secrets:
MACOS_CERTIFICATE_P12_BASE64MACOS_CERTIFICATE_PASSWORDMACOS_SIGN_IDENTITYAPPLE_IDAPPLE_TEAM_IDAPPLE_APP_SPECIFIC_PASSWORD