From f5a635004a9a7488848c21a255f12a64b23b5556 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Tue, 13 Aug 2024 21:30:46 -0400 Subject: [PATCH] Prepare for release v0.2.1 --- README.md | 8 -------- core/1globals.go | 4 ++-- docs/release-notes-archive/2024.md | 23 +++++++++++++++++++++++ packaging/binaryGen.sh | 13 +++++++++++++ wiki/bugs.md | 4 ---- 5 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 docs/release-notes-archive/2024.md create mode 100755 packaging/binaryGen.sh diff --git a/README.md b/README.md index 91fab9b..043c063 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,6 @@ libmutton is a library for building simple, SSH-synchronized password managers i See the [developer guide](https://github.com/rwinkhart/libmutton/blob/main/wiki/developers.md). # Roadmap -#### Release v0.2.1 -- [x] Only run getSSHClient once to prevent being asked for keyfile password multiple times - - [x] After this, handle all errors in sync/client.go -- [x] Ensure all config files and entry files are created with 0600 permissions -- [x] Add error-specific exit codes -- [x] Split into separate repos - 1. libmutton: backend package (rename to core), sync package, libmuttonserver - 2. MUTN: cli package #### Release v0.3.0 - [ ] Swap to native (cascade) encryption (custom) - [ ] Implement "netpin" (quick-unlock) with new encryption diff --git a/core/1globals.go b/core/1globals.go index 1a9e847..d651243 100644 --- a/core/1globals.go +++ b/core/1globals.go @@ -9,6 +9,8 @@ var ( ) const ( + LibmuttonVersion = "0.2.1" // untagged releases feature a letter suffix corresponding to the eventual release version, e.g "0.2.A" -> "0.2.0", "0.2.B" -> "0.2.1" + FSSpace = "\u259d" // ▝ space/list separator FSPath = "\u259e" // ▞ path separator FSMisc = "\u259f" // ▟ misc. field separator (if \u259d is already used) @@ -27,6 +29,4 @@ const ( ErrorEncryption = 109 ErrorClipboard = 110 ErrorOther = 111 - - LibmuttonVersion = "0.2.B" // untagged releases feature a letter suffix corresponding to the eventual release version, e.g "0.2.A" -> "0.2.0", "0.2.B" -> "0.2.1" ) diff --git a/docs/release-notes-archive/2024.md b/docs/release-notes-archive/2024.md new file mode 100644 index 0000000..56b909a --- /dev/null +++ b/docs/release-notes-archive/2024.md @@ -0,0 +1,23 @@ +**libmutton v0.2.1** +August 13, 2024 + +## Breaking Changes +- libmutton has been separated into its own repository and the "backend" package has been renamed to "core" +- Clients now must pass the return value of core.DirInit (oldDeviceID) to sync.DeviceIDGen + - This is for the new device ID replacement feature +- (a1c9827c04bcf7da2baf59081885d0bf7d1c0ebc) The sync separator constants (FSSpace, FSPath, FSMisc) have been moved to the core package + +## Features +- (7d51d12b5518f29e5e6ae7615e546f0df6dee941) (be46b0d6b29a16f1a5dd9ae08a63069ac7626a12) Clients can now request the server to replace their old device ID when changing to a new one +- (ed9c4e91ff67a27b9851a43bf9bed5fa404249b0) (4c54349b3929d7cc89e9fa051b89eaa6f4aeb6f0) Exit codes are now specific to the type of error encountered + - (bb1ecc5bae8a004d1ae25705492be7d588aa5f7b) (cbf91397137c79a7e9483924a39ddecfab4817cc) More potential errors have been handled + +## Fixes +- (9f433374373297709f7aa3b28e0204b46f67cd82) (e861b2b6f3e110ce7703b5c50d23b23787f22450) The SSH client is now only created once during RunJob (prevents multiple password prompts with protected keyfiles) +- (88b7a6be6d915aeee1b3e4ba52248a428e41bc3c) Config/entry files are now created with 0600 permissions +- (d67114b9ba6bd7a5888b843f25673bf80550bd54) The TOTP copy message is no longer unnecessarily verbose +- (06b9527a3373d8a677f93bccea447d45ea794c6a) Function documentation is now properly formatted for display on pkg.go.dev + +## Dependencies +- Bumps (direct and indirect) + - golang.org/x/sys: v0.23.0 => v0.24.0 diff --git a/packaging/binaryGen.sh b/packaging/binaryGen.sh new file mode 100755 index 0000000..251ee74 --- /dev/null +++ b/packaging/binaryGen.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# This script generates portable libmuttonserver release binaries for the following platforms: +# - Linux (x86_64_v1) +# - Linux (aarch64) +# - Windows (x86_64_v1) +# - Windows (aarch64) + +mkdir -p ./1output +cd .. +GOOS=linux CGO_ENABLED=0 GOAMD64=v1 go build -o ./packaging/1output/libmuttonserver-linux-x86_64_v1 -ldflags="-s -w" -trimpath ./libmuttonserver.go +GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o ./packaging/1output/libmuttonserver-linux-aarch64 -ldflags="-s -w" -trimpath ./libmuttonserver.go +GOOS=windows CGO_ENABLED=0 GOAMD64=v1 go build -o ./packaging/1output/libmuttonserver-windows-x86_64_v1.exe -ldflags="-s -w" -trimpath ./libmuttonserver.go +GOOS=windows GOARCH=arm64 CGO_ENABLED=0 go build -o ./packaging/1output/libmuttonserver-windows-aarch64.exe -ldflags="-s -w" -trimpath ./libmuttonserver.go diff --git a/wiki/bugs.md b/wiki/bugs.md index 0037d51..0013643 100644 --- a/wiki/bugs.md +++ b/wiki/bugs.md @@ -1,8 +1,4 @@ ## Known Bugs - libmutton - On Windows, GPG is sometimes (seems unpredictable) incredibly slow to start (often after a reboot), leading to many operations seemingly hanging - **This will be addressed** in the migration off of GPG that will take place before v1.0.0 -- ~~If a client is reconfigured to use a new device ID, the old one will remain present on the server. This will not cause any immediate issues, however it will lead to the server creating unnecessary deletions files for the old device ID. Currently, it is recommended to manually delete the old device ID from the server's "devices" directory.~~ - - **Addressed** for v0.2.1 -- ~~Using a password-protected SSH identity file will prompt for the key's password multiple times when syncing~~ - - **Addressed** for v0.2.1 - Password-protected SSH identity files currently only prompt for password entry in the CLI, and thus they are not yet supported in GUI/TUI implementations