Skip to content

Commit

Permalink
docs: document the release process (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanHope authored Jan 9, 2024
1 parent 100caed commit 5149555
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 5 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ armaria
armaria-host
armaria-seeder
dist
.vscode
.vscode
.vale.ini
styles
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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:**

Expand Down
39 changes: 39 additions & 0 deletions release.org
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 5149555

Please sign in to comment.