-
Notifications
You must be signed in to change notification settings - Fork 0
Building from source
git clone https://github.com/ahmmedrejowan/tessera.git
cd tessera
npm installNode 24 or newer. Nothing else is needed: Kopia, rclone and Syncthing are only fetched by the app if you turn on backups or sync.
npm run dev # the app, with the window reloading as you saveTESSERA_USER_DATA=/tmp/somewhere npm run dev runs it against a throwaway data folder, which is
the easy way to try first-run behaviour without touching your own library.
npm run typecheck # both TypeScript projects
npm test # the unit tests
npm run build # bundle main, preload and renderer
npm run test:e2e # drive the built app: needs npm run build firstThe end to end suite starts the real app with a throwaway data folder, one test at a time. Run one
file with node test/e2e/run.mjs agents.
npm run package # an unpacked app in release/, for a quick look
npm run dist # installers for this computernpm run dist builds for the system it runs on, and only that one: none of these can be made from
another. What each needs and leaves in release/:
| On | Also needs | You get |
|---|---|---|
| macOS | Xcode command line tools (xcode-select --install) |
.dmg and .zip, for Apple Silicon and Intel |
| Windows | nothing further: there is no native code to compile | an installer and a portable .zip, x64 and Arm |
| Linux |
rpm as well, if you want the .rpm on a Debian-like system |
.AppImage, .deb and .rpm
|
A build from a clean clone is the same build the release workflow publishes. That is what the
SHA256SUMS files and gh attestation verify are for: you can check it rather than take it on
trust.
macOS builds are signed ad hoc (scripts/adhoc-sign.cjs) unless certificates are present. The
release workflow signs and notarises when the repository has the secrets for it, and otherwise
produces the same unsigned builds anyone can make.
-
src/the app. See Architecture. -
test/unit tests, andtest/e2e/the ones that drive the app. -
build/icons, entitlements, the electron-builder config. -
scripts/icon generation, ad-hoc signing, screenshots, release notes. -
.github/workflows/CI on three systems, and the release builds.
Tessera · free software under the GPL-3.0-or-later · Releases · Discussions