Skip to content
This repository has been archived by the owner on Jun 20, 2022. It is now read-only.

standardnotes/desktop

Repository files navigation

Standard Notes

latest release version License Slack Twitter Follow

This application makes use of the core JS/CSS/HTML code found in the web repo. For issues related to the actual app experience, please post issues in the web repo.

Running Locally

Make sure Yarn is installed on your system.

yarn setup
yarn build:web # Or `yarn dev:web`
yarn dev

# In another terminal
yarn start

We use commitlint to validate commit messages. Before making a pull request, make sure to check the output of the following commands:

yarn lint
yarn test # Make sure to start `yarn dev` before running the tests, and quit any running Standard Notes applications so they don't conflict.

Pull requests should target the develop branch.

Installing dependencies

To determine where to install a dependency:

  • If it is only required for building, install it in package.json's devDependencies
  • If it is required at runtime but can be packaged by webpack, install it in package.json's dependencies.
  • If it must be distributed as a node module (not packaged by webpack), install it in app/package.json's dependencies
    • Also make sure to declare it as an external commonjs dependency in webpack.common.js.

Building

Build for all platforms:

  • yarn release

Building natively on arm64

Building arm64 releases on amd64 systems is only possible with AppImage, Debian and universal "dir" targets.

Building arm64 releases natively on arm64 systems requires some additional preparation:

  • export npm_config_target_arch=arm64
  • export npm_config_arch=arm64

A native fpm installation is needed for Debian builds. fpm needs to be available in $PATH, which can be achieved by running

  • gem install fpm --no-document

and making sure $GEM_HOME/bin is added to $PATH.

Snap releases also require a working snapcraft / snapd installation.

Building can then be done by running:

  • yarn setup

Followed by

  • node scripts/build.mjs deb-arm64

Installation

On Linux, download the latest AppImage from the Releases page, and give it executable permission:

chmod u+x standard-notes*.AppImage