From b6d54aed8a9f197175c308885b3ed5f5285219f3 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Mon, 4 Dec 2023 19:53:27 +1300 Subject: [PATCH 1/6] Test out BuildJet for arm64 Linux build Signed-off-by: Marcus Crane --- .github/workflows/release-linux-arm.yaml | 88 ++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .github/workflows/release-linux-arm.yaml diff --git a/.github/workflows/release-linux-arm.yaml b/.github/workflows/release-linux-arm.yaml new file mode 100644 index 0000000..3f7e32b --- /dev/null +++ b/.github/workflows/release-linux-arm.yaml @@ -0,0 +1,88 @@ +name: Release October (Linux arm64) + +on: + release: + types: [published] + +jobs: + release: + name: Release October (Linux) + runs-on: buildjet-4vcpu-ubuntu-2204-arm + strategy: + matrix: + platform: + - linux/arm64 + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Normalise platform tag + id: normalise_platform + shell: bash + run: | + tag=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g') + echo "::set-output name=tag::$tag" + + - name: Normalise version tag + id: normalise_version + shell: bash + run: | + version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g') + echo "::set-output name=version::$version" + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: 1.19 + + - name: Install wails + shell: bash + run: go install github.com/wailsapp/wails/v2/cmd/wails@latest + + - name: Install Ubuntu prerequisites + shell: bash + run: sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev + + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: '20.8.0' + + - name: Build frontend assets + shell: bash + run: | + npm install -g npm + node version.js ${{ github.event.release.tag_name }} + cd frontend && npm install + + - name: Build wails app for Linux + shell: bash + run: wails build -platform ${{ matrix.platform }} -ldflags "-X main.version=${{ github.event.release.tag_name }}" + + - name: Package up deb file + shell: bash + run: | + mv build/bin/october build/linux/october_0.0.0_arm64/usr/local/bin/ + cd build/linux + mv october_0.0.0_arm64 "october_${{ steps.normalise_version.outputs.version }}_arm64" + sed -i 's/0.0.0/${{ steps.normalise_version.outputs.version }}/g' "october_${{ steps.normalise_version.outputs.version }}_arm64/DEBIAN/control" + dpkg-deb --build "october_${{ steps.normalise_version.outputs.version }}_arm64" + + - name: Get latest release from API + id: get_upload_url + shell: bash + run: | + curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/marcus-crane/october/releases" > /tmp/releases.json + url=$(jq -r '.[0].upload_url' /tmp/releases.json) + echo "::set-output name=url::$url" + + - name: Upload artifact + uses: actions/upload-release-asset@v1.0.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ARTIFACT_NAME: october_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }} + with: + upload_url: ${{ steps.get_upload_url.outputs.url }} + asset_path: ./build/linux/october_${{ steps.normalise_version.outputs.version }}_arm64.deb + asset_name: ${{ env.ARTIFACT_NAME }}.deb + asset_content_type: application/octet-stream From c2e7db271598817a322cb135f1e76487b96a9255 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Mon, 4 Dec 2023 20:05:25 +1300 Subject: [PATCH 2/6] Try apt-update before pinning Signed-off-by: Marcus Crane --- .github/workflows/release-linux-arm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-linux-arm.yaml b/.github/workflows/release-linux-arm.yaml index 3f7e32b..b81478b 100644 --- a/.github/workflows/release-linux-arm.yaml +++ b/.github/workflows/release-linux-arm.yaml @@ -41,7 +41,7 @@ jobs: - name: Install Ubuntu prerequisites shell: bash - run: sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev + run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev= - name: Set up Node uses: actions/setup-node@v4 From 6ed1f3dd5ab9c77f8df796cf105fc277e0b2d1da Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Mon, 4 Dec 2023 20:09:25 +1300 Subject: [PATCH 3/6] Remove erroneous typo Signed-off-by: Marcus Crane --- .github/workflows/release-linux-arm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-linux-arm.yaml b/.github/workflows/release-linux-arm.yaml index b81478b..4800c38 100644 --- a/.github/workflows/release-linux-arm.yaml +++ b/.github/workflows/release-linux-arm.yaml @@ -41,7 +41,7 @@ jobs: - name: Install Ubuntu prerequisites shell: bash - run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev= + run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev - name: Set up Node uses: actions/setup-node@v4 From aa76f18f89e1a8a6b31d53ccdb10fbc77a2cfb87 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Mon, 4 Dec 2023 20:49:58 +1300 Subject: [PATCH 4/6] Stub out Linux arm for now --- .github/workflows/release-linux-arm.yaml | 150 +++++++++++------------ 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/.github/workflows/release-linux-arm.yaml b/.github/workflows/release-linux-arm.yaml index 4800c38..c288631 100644 --- a/.github/workflows/release-linux-arm.yaml +++ b/.github/workflows/release-linux-arm.yaml @@ -1,88 +1,88 @@ -name: Release October (Linux arm64) +# name: Release October (Linux arm64) -on: - release: - types: [published] +# on: +# release: +# types: [published] -jobs: - release: - name: Release October (Linux) - runs-on: buildjet-4vcpu-ubuntu-2204-arm - strategy: - matrix: - platform: - - linux/arm64 - steps: - - name: Checkout source code - uses: actions/checkout@v4 +# jobs: +# release: +# name: Release October (Linux) +# runs-on: buildjet-4vcpu-ubuntu-2204-arm +# strategy: +# matrix: +# platform: +# - linux/arm64 +# steps: +# - name: Checkout source code +# uses: actions/checkout@v4 - - name: Normalise platform tag - id: normalise_platform - shell: bash - run: | - tag=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g') - echo "::set-output name=tag::$tag" +# - name: Normalise platform tag +# id: normalise_platform +# shell: bash +# run: | +# tag=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g') +# echo "::set-output name=tag::$tag" - - name: Normalise version tag - id: normalise_version - shell: bash - run: | - version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g') - echo "::set-output name=version::$version" +# - name: Normalise version tag +# id: normalise_version +# shell: bash +# run: | +# version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g') +# echo "::set-output name=version::$version" - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: 1.19 +# - name: Set up Go +# uses: actions/setup-go@v4 +# with: +# go-version: 1.19 - - name: Install wails - shell: bash - run: go install github.com/wailsapp/wails/v2/cmd/wails@latest +# - name: Install wails +# shell: bash +# run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - - name: Install Ubuntu prerequisites - shell: bash - run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev +# - name: Install Ubuntu prerequisites +# shell: bash +# run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev - - name: Set up Node - uses: actions/setup-node@v4 - with: - node-version: '20.8.0' +# - name: Set up Node +# uses: actions/setup-node@v4 +# with: +# node-version: '20.8.0' - - name: Build frontend assets - shell: bash - run: | - npm install -g npm - node version.js ${{ github.event.release.tag_name }} - cd frontend && npm install +# - name: Build frontend assets +# shell: bash +# run: | +# npm install -g npm +# node version.js ${{ github.event.release.tag_name }} +# cd frontend && npm install - - name: Build wails app for Linux - shell: bash - run: wails build -platform ${{ matrix.platform }} -ldflags "-X main.version=${{ github.event.release.tag_name }}" +# - name: Build wails app for Linux +# shell: bash +# run: wails build -platform ${{ matrix.platform }} -ldflags "-X main.version=${{ github.event.release.tag_name }}" - - name: Package up deb file - shell: bash - run: | - mv build/bin/october build/linux/october_0.0.0_arm64/usr/local/bin/ - cd build/linux - mv october_0.0.0_arm64 "october_${{ steps.normalise_version.outputs.version }}_arm64" - sed -i 's/0.0.0/${{ steps.normalise_version.outputs.version }}/g' "october_${{ steps.normalise_version.outputs.version }}_arm64/DEBIAN/control" - dpkg-deb --build "october_${{ steps.normalise_version.outputs.version }}_arm64" +# - name: Package up deb file +# shell: bash +# run: | +# mv build/bin/october build/linux/october_0.0.0_arm64/usr/local/bin/ +# cd build/linux +# mv october_0.0.0_arm64 "october_${{ steps.normalise_version.outputs.version }}_arm64" +# sed -i 's/0.0.0/${{ steps.normalise_version.outputs.version }}/g' "october_${{ steps.normalise_version.outputs.version }}_arm64/DEBIAN/control" +# dpkg-deb --build "october_${{ steps.normalise_version.outputs.version }}_arm64" - - name: Get latest release from API - id: get_upload_url - shell: bash - run: | - curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/marcus-crane/october/releases" > /tmp/releases.json - url=$(jq -r '.[0].upload_url' /tmp/releases.json) - echo "::set-output name=url::$url" +# - name: Get latest release from API +# id: get_upload_url +# shell: bash +# run: | +# curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/marcus-crane/october/releases" > /tmp/releases.json +# url=$(jq -r '.[0].upload_url' /tmp/releases.json) +# echo "::set-output name=url::$url" - - name: Upload artifact - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ARTIFACT_NAME: october_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }} - with: - upload_url: ${{ steps.get_upload_url.outputs.url }} - asset_path: ./build/linux/october_${{ steps.normalise_version.outputs.version }}_arm64.deb - asset_name: ${{ env.ARTIFACT_NAME }}.deb - asset_content_type: application/octet-stream +# - name: Upload artifact +# uses: actions/upload-release-asset@v1.0.2 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# ARTIFACT_NAME: october_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }} +# with: +# upload_url: ${{ steps.get_upload_url.outputs.url }} +# asset_path: ./build/linux/october_${{ steps.normalise_version.outputs.version }}_arm64.deb +# asset_name: ${{ env.ARTIFACT_NAME }}.deb +# asset_content_type: application/octet-stream From 4a14acf3ce17d6850636e85cb3f2843566747538 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Mon, 4 Dec 2023 20:50:23 +1300 Subject: [PATCH 5/6] Delete .github/workflows/release-linux-arm.yaml --- .github/workflows/release-linux-arm.yaml | 88 ------------------------ 1 file changed, 88 deletions(-) delete mode 100644 .github/workflows/release-linux-arm.yaml diff --git a/.github/workflows/release-linux-arm.yaml b/.github/workflows/release-linux-arm.yaml deleted file mode 100644 index c288631..0000000 --- a/.github/workflows/release-linux-arm.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# name: Release October (Linux arm64) - -# on: -# release: -# types: [published] - -# jobs: -# release: -# name: Release October (Linux) -# runs-on: buildjet-4vcpu-ubuntu-2204-arm -# strategy: -# matrix: -# platform: -# - linux/arm64 -# steps: -# - name: Checkout source code -# uses: actions/checkout@v4 - -# - name: Normalise platform tag -# id: normalise_platform -# shell: bash -# run: | -# tag=$(echo ${{ matrix.platform }} | sed -e 's/\//_/g') -# echo "::set-output name=tag::$tag" - -# - name: Normalise version tag -# id: normalise_version -# shell: bash -# run: | -# version=$(echo ${{ github.event.release.tag_name }} | sed -e 's/v//g') -# echo "::set-output name=version::$version" - -# - name: Set up Go -# uses: actions/setup-go@v4 -# with: -# go-version: 1.19 - -# - name: Install wails -# shell: bash -# run: go install github.com/wailsapp/wails/v2/cmd/wails@latest - -# - name: Install Ubuntu prerequisites -# shell: bash -# run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev - -# - name: Set up Node -# uses: actions/setup-node@v4 -# with: -# node-version: '20.8.0' - -# - name: Build frontend assets -# shell: bash -# run: | -# npm install -g npm -# node version.js ${{ github.event.release.tag_name }} -# cd frontend && npm install - -# - name: Build wails app for Linux -# shell: bash -# run: wails build -platform ${{ matrix.platform }} -ldflags "-X main.version=${{ github.event.release.tag_name }}" - -# - name: Package up deb file -# shell: bash -# run: | -# mv build/bin/october build/linux/october_0.0.0_arm64/usr/local/bin/ -# cd build/linux -# mv october_0.0.0_arm64 "october_${{ steps.normalise_version.outputs.version }}_arm64" -# sed -i 's/0.0.0/${{ steps.normalise_version.outputs.version }}/g' "october_${{ steps.normalise_version.outputs.version }}_arm64/DEBIAN/control" -# dpkg-deb --build "october_${{ steps.normalise_version.outputs.version }}_arm64" - -# - name: Get latest release from API -# id: get_upload_url -# shell: bash -# run: | -# curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/marcus-crane/october/releases" > /tmp/releases.json -# url=$(jq -r '.[0].upload_url' /tmp/releases.json) -# echo "::set-output name=url::$url" - -# - name: Upload artifact -# uses: actions/upload-release-asset@v1.0.2 -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# ARTIFACT_NAME: october_${{ steps.normalise_version.outputs.version }}_${{ steps.normalise_platform.outputs.tag }} -# with: -# upload_url: ${{ steps.get_upload_url.outputs.url }} -# asset_path: ./build/linux/october_${{ steps.normalise_version.outputs.version }}_arm64.deb -# asset_name: ${{ env.ARTIFACT_NAME }}.deb -# asset_content_type: application/octet-stream From 3104f0a48cefe984a60d2f76c56f798b8a4dcd01 Mon Sep 17 00:00:00 2001 From: Marcus Crane Date: Tue, 5 Dec 2023 10:43:21 +1300 Subject: [PATCH 6/6] Update site changelog Signed-off-by: Marcus Crane --- docs/changelog/index.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/changelog/index.md b/docs/changelog/index.md index 5617180..0e848b6 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -3,6 +3,37 @@ # Changelog +## v1.7.0 + +This release mostly contains maintenance fixes that have cropped up since the last release as well as a new distribution method. + +I'm looking to get back to some feature work during the quieter Christmas period but first I had to fix some breakages introduced by Apple changing how code signing works. + +- Removed dependency on `CGO` for database access which will make future maintenance much easier +- Patched a race condition that can lead to an extra closing `}` being added to settings files +- Added a small bit of logic that tries to repair settings files that may have been corrupted by the previously mentioned bug +- Fixed up release pipelines which were affected by Apple code signing changes + +Additionally, October is now available via Homebrew going forward for macOS users. + +It can be installed by running `brew update` to get the latest Cask definition followed by `brew install --cask october`. + +![CleanShot 2023-12-05 at 10 17 50@2x](https://github.com/marcus-crane/october/assets/14816406/50ca1407-42b8-4ec0-85b0-5555f39f06a3) + +## v1.6.0 + +This version introduces a portable version of October for Windows users who may want to sync highlights from their Kobo on a managed machine where they can't otherwise install software. + +You might also like to install it on a USB so you can use October across multiple computers without having to set it up each time. + +Come to think of it, I suppose you could technically copy this version to your Kobo itself (which is basically a glorified USB) and carry it around that way. That said, I haven't tested this out so your mileage may vary! I think it would work fine though. + +--- + +Upon startup, it will create a folder next to the exe containing settings files so just make sure to keep the exe and folder together. + +While I haven't tested it extensively, one existing user seemed to have no problems using it. + ## v1.5.0 This release brings support for Linux systems which means that October is available for all major platforms.