From 51495551da9ded90d2e56b3a6d05369379ff5453 Mon Sep 17 00:00:00 2001 From: Jonathan Hope Date: Mon, 8 Jan 2024 18:37:27 -0800 Subject: [PATCH] docs: document the release process (#32) --- .gitignore | 4 +++- README.md | 8 ++++---- release.org | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 release.org diff --git a/.gitignore b/.gitignore index 81ca948..3394421 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ armaria armaria-host armaria-seeder dist -.vscode \ No newline at end of file +.vscode +.vale.ini +styles \ No newline at end of file diff --git a/README.md b/README.md index e2ec8c8..aefb8a9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Armaria is a new way to manage your bookmarks. As it stands bookmarks are stored either in the cloud, in browser specific formats, or both. It doesn't have to be this way. Armaria stores bookmarks in a SQLite database. This means your bookmarks are local and stored in a single file. They can then be accessed with a myriad of clients including browsers. -You can sync this file across your devices however you would sync any other file. This allows you to share your bookmarks across many different devices and browsers without having to rely on a web service for something as simple as your bookmarks. +You can sync this file across your devices how you would sync any other file. This allows you to share your bookmarks across many different devices and browsers without having to rely on a web service for something as simple as your bookmarks. > [!CAUTION] > This software is still in progress and should be considered pre-alpha @@ -35,8 +35,8 @@ The features for Armaria are similar to other bookmark implementations: This repository contains the core Armaria library as well as the following clients: -- **CLI:** A CLI that can be used to manage your bookmarks database from the command line. -- **TUI:** A TUI that can be used to manage your bookmarks (hosted in the CLI at `armaria tui`). +- **CLI:** A CLI that is used to manage your bookmarks database from the command line. +- **TUI:** A TUI that is used to manage your bookmarks (hosted in the CLI at `armaria tui`). - **Native Messaging Host:** A native messaging host to enable browsers to interact with your bookmarks database. # Getting Started @@ -73,7 +73,7 @@ Armaria has a browser extension. You can read about it [here](https://github.com # Roadmap -This software is still in it's early days. This roadmap lays out where it currently is, and where it is going. If there is something that you think should be on it that is not please open an issue. +This software is still in its early days. This roadmap lays out where it currently is, and where it's going. If there is something that you think should be on it that is not please open an issue. **Platform Support:** diff --git a/release.org b/release.org new file mode 100644 index 0000000..40a7872 --- /dev/null +++ b/release.org @@ -0,0 +1,39 @@ +* Release Documentation + +Armaria is native software so releasing it is relatively involved. + +** Triggering the Release + +The release is triggered by pushing a tag on main up to GitHub. This will trigger a workflow that begins the release process. This process is extremely costly in terms of GiHub minutes so do it judiciously. + +** Linux + +The workflow will automatically build and push a Snap to Snapcraft. The store page for it is here: https://snapcraft.io/armaria. The developer page for it is here: https://snapcraft.io/snaps. + +** MacOS + +The workflow will automatically add a commit to a Homebrew repo here: https://github.com/JonathanHope/homebrew-armaria. + +** Windows + +The workflow will automatically add a commit to a fork of the WinGet repo here: https://github.com/JonathanHope/winget-pkgs. From there you need to manually open a pull request against the real WinGet packages repo. This cannot be automated on the free GoReleaser. + +It ends up here in the real WinGet packages repo: https://github.com/microsoft/winget-pkgs/tree/master/manifests/a/Armaria/Armaria. + +** Snapcraft Docker Image + +Armaria is built on MacOS so it can legally be linked against some SDKs there. However Snapcraft is needed to build the Snap. To get around this a Snapcraft Docker image is used. The official Snapcraft Docker image is ancient so we have to roll our own. They are published here: https://hub.docker.com/repository/docker/jhope/snapcraft/general. + +There is a Dockerfile in this repo (Dockerfile.snapcraft) that can be used to build this image: + +#+begin_src shell +docker build -f Dockerfile.snapcraft -t jhope/snapcraft:latest +#+end_src + +Then it can be pushed up to Dockerhub with the following command: + +#+begin_src shell +docker push jhope/snapcraft:latest +#+end_src + +The results can be verified here: https://hub.docker.com/repository/docker/jhope/snapcraft/general.