Skip to content

Commit

Permalink
Followup to the 0.5.0 release (#76)
Browse files Browse the repository at this point in the history
* Document RELEASING.md process
* Bump version numbers
* Do not automatically produce GH releases, and do not build binaries to attach to them
* Only build docker images on tags
* Use the `latest` Docker image tag in the Docker-compose config
  • Loading branch information
djmitche authored Dec 16, 2024
1 parent a364791 commit 65a3d80
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 71 deletions.
58 changes: 0 additions & 58 deletions .github/workflows/build.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Build Docker

on:
push:
branches:
- '*'
tags:
- '*'

Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ use a reverse proxy such as Nginx, haproxy, or Apache httpd.

### Using Docker-Compose

Every release of the server generates a Docker image in
`ghcr.io/gothenburgbitfactory/taskchampion-sync-server`. The tags include
`latest` for the latest release, and both minor and patch versions, e.g., `0.5`
and `0.5.1`.

The [`docker-compose.yml`](./docker-compose.yml) file in this repository is
sufficient to run taskchampion-sync-server, including setting up TLS
certificates using Lets Encrypt, thanks to [Caddy](https://caddyserver.com/).
Expand All @@ -44,9 +49,9 @@ TASKCHAMPION_SYNC_SERVER_HOSTNAME=taskwarrior.example.com docker compose up
```

It can take a few minutes to obtain the certificate; the caddy container will
log a msg "certificate obtained successfully" when this is complete, or error
messages if the process fails. Once this process is complete, configure your
`.taskrc`'s to point to the server:
log a message "certificate obtained successfully" when this is complete, or
error messages if the process fails. Once this process is complete, configure
your `.taskrc`'s to point to the server:

```
sync.server.url=https://taskwarrior.example.com
Expand Down Expand Up @@ -108,6 +113,7 @@ cargo build --release

After build the binary is located in
`target/release/taskchampion-sync-server`.

### Building the Container

To build the container execute the following commands.
Expand Down
19 changes: 19 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Release process

1. Run `git pull upstream main`
1. Run `cargo test`
1. Run `cargo clean && cargo clippy`
1. Remove the `-pre` from `version` in all `*/Cargo.toml`, and from the `version = ..` in any references between packages.
1. Run `cargo semver-checks` (https://crates.io/crates/cargo-semver-checks)
1. Run `cargo build --release`
1. Commit the changes (Cargo.lock will change too) with comment `vX.Y.Z`.
1. Run `git tag vX.Y.Z`
1. Run `git push upstream`
1. Run `git push upstream --tag vX.Y.Z`
1. Run `cargo publish -p taskchampion-sync-server-core`
1. Run `cargo publish -p taskchampion-sync-server-storage-sqlite` (and add any other new published packages here)
1. Bump the patch version in `*/Cargo.toml` and add the `-pre` suffix. This allows `cargo-semver-checks` to check for changes not accounted for in the version delta.
1. Run `cargo build --release` again to update `Cargo.lock`
1. Commit that change with comment "Bump to -pre version".
1. Run `git push upstream`
1. Navigate to the tag in the GitHub releases UI and create a release with general comments about the changes in the release
2 changes: 1 addition & 1 deletion core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskchampion-sync-server-core"
version = "0.5.0-pre"
version = "0.5.1-pre"
authors = ["Dustin J. Mitchell <[email protected]>"]
edition = "2021"
description = "Core of sync protocol for TaskChampion"
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ services:
condition: service_completed_successfully

tss:
image: ghcr.io/gothenburgbitfactory/taskchampion-sync-server:main
image: ghcr.io/gothenburgbitfactory/taskchampion-sync-server:latest
restart: unless-stopped
volumes:
- type: volume
Expand Down
2 changes: 1 addition & 1 deletion server/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskchampion-sync-server"
version = "0.4.1"
version = "0.5.1-pre"
authors = ["Dustin J. Mitchell <[email protected]>"]
edition = "2021"
publish = false
Expand Down
4 changes: 2 additions & 2 deletions sqlite/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[package]
name = "taskchampion-sync-server-storage-sqlite"
version = "0.5.0-pre"
version = "0.5.1-pre"
authors = ["Dustin J. Mitchell <[email protected]>"]
edition = "2021"
description = "SQLite backend for TaskChampion-sync-server"
license = "MIT"

[dependencies]
taskchampion-sync-server-core = { path = "../core", version = "0.5.0-pre" }
taskchampion-sync-server-core = { path = "../core", version = "0.5.1-pre" }
uuid.workspace = true
anyhow.workspace = true
thiserror.workspace = true
Expand Down

0 comments on commit 65a3d80

Please sign in to comment.