Notes, guides and patches

Developer

Everything that applies across the projects rather than to one of them: how they are built, how they are installed, what changed recently, and the house rules that keep seven repositories from drifting apart.

Every project builds from a clean checkout with the toolchain for its language and nothing else. If a build needs a step that is not here, that is a bug in the repository, not in your setup.

Step 1

Get the toolchain

Flutter projects need a matching Flutter 3.x. The Python and Node projects pin their versions in the repository rather than assuming what you have.

$ flutter --version      # Vixeo, Mint, Musillow, Viewr client
$ python3 --version      # Coin Vault, Viewr backend
$ node --version         # EthaMail, Musillow server

Step 2

Install dependencies

No project vendors its dependencies. Each has one command that fetches everything it needs.

$ flutter pub get
$ pip install -r requirements.txt
$ npm install

Step 3

Build

Release builds are the default target. Debug builds are for development and are not what gets published.

$ flutter build apk --release
$ flutter build linux --release
$ ./gradlew assembleRelease     # Docs

Step 4

Check before you ship

The same three commands work in every repository that has them. If one fails, the build is not finished.

$ make fmt
$ make test
$ make lint