chore(release): record the shipped 1.0.34 version state
1.0.34 is live in production, but the version bumps for it were never committed: they sat as uncommitted working-tree changes on the (since-merged) release branch. So master still declared 1.0.31, and the seeder packaging still declared 1.0.33. That is not merely untidy. Every in-repo signal disagreed with reality, and they disagreed with each other: master's app.json said 1.0.31, metadata/ios/version/ topped out at 1.0.31, and only the v1.0.34 git tag (cut for the Android/GitHub flow) hinted otherwise. Anyone reading the repo to answer "what is shipped?" gets the wrong answer, which is exactly what happened during this session. Brings the declared version in line with what users are running: - app.json: 1.0.31 -> 1.0.34, versionCode 1000031 -> 1000034, buildNumber 34 -> 37 - ios project: MARKETING_VERSION 1.0.31 -> 1.0.34, CURRENT_PROJECT_VERSION 34 -> 37 - electron: 1.0.31 -> 1.0.34 - seeder-launcher (Start9 + Umbrel): 1.0.33 -> 1.0.34, with the matching pinned image digest Also records the release itself: the real 1.0.34 App Store notes, and the metadata/ios/version/1.0.34/ archive that matches the existing 1.0.17 to 1.0.31 pattern. CLAUDE.md gains the Pixel adb guidance that had also been sitting uncommitted: it is wifi-only and its address changes on every reconnect, so resolve it with adb-find.sh rather than hardcoding, plus an em-dash sweep for house style. Deliberately NOT included: assets/app-ui.bundle and assets/bare-ios.bundle. Both predate the four fixes merged today (PRs #231 to #234), so committing them would bake a pre-fix artifact into the repo. They must be regenerated at build time. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EPBW7sZJPAjkVRiqnB722W
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
05535db3f0
commit
73d6da29d9
@@ -11,17 +11,20 @@ PearCal is a peer-to-peer calendar app for Android and iOS built with Expo (Reac
|
||||
### Android
|
||||
|
||||
Two test devices are connected via ADB:
|
||||
- Device 1: `53071FDAP00038` — Pixel/GrapheneOS (owner)
|
||||
- Device 2: `4H65K7MFZXSCSWPR` — TCL (joiner)
|
||||
- Device 1: `53071FDAP00038` - Pixel/GrapheneOS (owner). Wifi only, and its IP and
|
||||
port change on every reconnect. Resolve it with
|
||||
`/home/tim/peerloomllc/adb-find.sh pixel`, which discovers the current address
|
||||
over mDNS and prints it. Never hardcode the address.
|
||||
- Device 2: `4H65K7MFZXSCSWPR` - TCL (joiner). USB, so the serial is stable.
|
||||
|
||||
Always use `adb install -r` — **never uninstall** (preserves user data).
|
||||
Always use `adb install -r` - **never uninstall** (preserves user data).
|
||||
|
||||
**UI-only changes** (`src/ui/App.jsx`, `src/ui/main.jsx`):
|
||||
```bash
|
||||
npx esbuild src/ui/main.jsx --bundle --format=iife --jsx=automatic \
|
||||
--define:process.env.NODE_ENV=\"production\" --outfile=assets/app-ui.bundle
|
||||
cd android && ./gradlew assembleDebug && cd ..
|
||||
adb -s 53071FDAP00038 install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
adb -s "$(/home/tim/peerloomllc/adb-find.sh pixel)" install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
adb -s 4H65K7MFZXSCSWPR install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
@@ -31,7 +34,7 @@ node_modules/.bin/bare-pack --linked --defer fs --defer path src/bare.js -o asse
|
||||
npx esbuild src/ui/main.jsx --bundle --format=iife --jsx=automatic \
|
||||
--define:process.env.NODE_ENV=\"production\" --outfile=assets/app-ui.bundle
|
||||
cd android && ./gradlew assembleDebug && cd ..
|
||||
adb -s 53071FDAP00038 install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
adb -s "$(/home/tim/peerloomllc/adb-find.sh pixel)" install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
adb -s 4H65K7MFZXSCSWPR install -r android/app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
@@ -41,7 +44,7 @@ cd android && ./gradlew assembleRelease && cd ..
|
||||
/home/tim/Android/Sdk/build-tools/36.1.0/apksigner verify --verbose android/app/build/outputs/apk/release/app-release.apk
|
||||
cp android/app/build/outputs/apk/release/app-release.apk ~/pearcal-release.apk
|
||||
```
|
||||
Keystore: `~/keystore.jks` — alias: `pearcal`
|
||||
Keystore: `~/keystore.jks` - alias: `pearcal`
|
||||
|
||||
### iOS
|
||||
|
||||
@@ -54,7 +57,7 @@ iPhone UDID: `00008030-0009714C2613402E`
|
||||
ssh Tims-Mac-mini.local 'security unlock-keychain -p "" ~/Library/Keychains/buildkey.keychain'
|
||||
```
|
||||
|
||||
**Note on configuration:** Use `-configuration Release` for device installs — Debug builds try to connect to a Metro bundler at localhost:8081, which fails on physical devices without a running dev server. Release builds embed the JS bundle.
|
||||
**Note on configuration:** Use `-configuration Release` for device installs - Debug builds try to connect to a Metro bundler at localhost:8081, which fails on physical devices without a running dev server. Release builds embed the JS bundle.
|
||||
|
||||
**Signing note:** `DEVELOPMENT_TEAM=G79ALD29NA` uses the wildcard provisioning profile already cached on the Mac. `-allowProvisioningUpdates` does NOT work over SSH (no Apple account in the SSH session).
|
||||
|
||||
@@ -80,7 +83,7 @@ rsync -az Tims-Mac-mini.local:/tmp/PearCal-release.ipa /tmp/
|
||||
ideviceinstaller install /tmp/PearCal-release.ipa
|
||||
```
|
||||
|
||||
`set -o pipefail` is required — without it, `tail` swallows xcodebuild's non-zero exit code and the chain falls through to repackage an old cached `PearCal.app` in DerivedData, silently shipping a stale IPA.
|
||||
`set -o pipefail` is required - without it, `tail` swallows xcodebuild's non-zero exit code and the chain falls through to repackage an old cached `PearCal.app` in DerivedData, silently shipping a stale IPA.
|
||||
|
||||
**bare.js changes** (rebuild both bundles, then build iOS):
|
||||
```bash
|
||||
@@ -112,7 +115,7 @@ ideviceinstaller install /tmp/PearCal-release.ipa
|
||||
|
||||
**iOS bundle caching:** Expo's asset cache survives install-over-top. If iOS behaves differently than expected after a deploy, do a full uninstall first: `ideviceinstaller uninstall com.pearcal` (this wipes app data). Also always keep `bare-ios-sim.bundle` in sync with `bare-ios.bundle` and use `--checksum` with rsync.
|
||||
|
||||
**Bare native-addon version drift (iOS boot crash `ADDON_NOT_FOUND`):** the bare bundle is `bare-pack`ed on Linux (uses Linux `node_modules`), but iOS links its native addons (`bare-os`, `bare-fs`, …) as xcframeworks generated by `pod install` on the Mac (from the Mac's `node_modules`). `rsync` syncs source only, not `node_modules`, so the two machines drift. If they diverge, the bundle demands e.g. `bare-os.3.9.3.framework` while the app ships `3.6.2` → `ADDON_NOT_FOUND` → unhandled rejection → `Bare.exit` → immediate crash on every launch (even a fresh install; dies before `Init DB`). **After ANY dependency change (`package.json`), the next iOS build MUST run `npm install` + `pod install` on the Mac first** — the "bare.js changes" / "UI-only" flows above skip both. Order matters: rsync FIRST, then `pod install` (rsync clobbers the Mac's fresh `Podfile.lock` otherwise → `Check Pods Manifest.lock` fails, exit 65). Debug via the iOS Simulator on the Mac (`xcrun simctl … log stream --predicate 'process=="PearCal"'`) — Release console output is visible there, unlike on a physical device.
|
||||
**Bare native-addon version drift (iOS boot crash `ADDON_NOT_FOUND`):** the bare bundle is `bare-pack`ed on Linux (uses Linux `node_modules`), but iOS links its native addons (`bare-os`, `bare-fs`, …) as xcframeworks generated by `pod install` on the Mac (from the Mac's `node_modules`). `rsync` syncs source only, not `node_modules`, so the two machines drift. If they diverge, the bundle demands e.g. `bare-os.3.9.3.framework` while the app ships `3.6.2` → `ADDON_NOT_FOUND` → unhandled rejection → `Bare.exit` → immediate crash on every launch (even a fresh install; dies before `Init DB`). **After ANY dependency change (`package.json`), the next iOS build MUST run `npm install` + `pod install` on the Mac first** - the "bare.js changes" / "UI-only" flows above skip both. Order matters: rsync FIRST, then `pod install` (rsync clobbers the Mac's fresh `Podfile.lock` otherwise → `Check Pods Manifest.lock` fails, exit 65). Debug via the iOS Simulator on the Mac (`xcrun simctl … log stream --predicate 'process=="PearCal"'`) - Release console output is visible there, unlike on a physical device.
|
||||
|
||||
**Note:** New Swift/`.m` files must be registered in `PearCal.xcodeproj/project.pbxproj` via the `xcodeproj` Ruby gem before building. See plan tasks for the helper script.
|
||||
|
||||
@@ -120,20 +123,20 @@ ideviceinstaller install /tmp/PearCal-release.ipa
|
||||
|
||||
## Branch Strategy
|
||||
|
||||
Always create a branch before starting work — never commit directly to master.
|
||||
Always create a branch before starting work - never commit directly to master.
|
||||
- Feature branches: `feature/description`
|
||||
- Bug fix branches: `bugfix/description`
|
||||
- Merge via GitHub PR: `gh pr merge N --merge`
|
||||
- After merge: `git checkout master && git pull github master`
|
||||
- Open a PR with `gh pr create`, then stop. Tim reviews and merges (see root `CLAUDE.md`).
|
||||
- After Tim merges: `git checkout master && git pull github master`
|
||||
|
||||
## To-Do List
|
||||
|
||||
Open items tracked in `TODO.md`; completed items in `DONE.md` (both at repo root, unversioned, gitignored). When adding items, categorize by type, priority, and complexity.
|
||||
|
||||
### Completing a TODO item — required workflow:
|
||||
### Completing a TODO item - required workflow:
|
||||
1. List verification tests/steps and prompt the user for confirmation/results.
|
||||
2. If verification passes and no additional work is needed, proceed to commits.
|
||||
3. After commits, remove the item from `TODO.md` and add it to the top of the relevant date section in `DONE.md` as `- [x] Description — completed YYYY-MM-DD`, then show the remaining open TODO items.
|
||||
3. After commits, remove the item from `TODO.md` and add it to the top of the relevant date section in `DONE.md` as `- [x] Description - completed YYYY-MM-DD`, then show the remaining open TODO items.
|
||||
|
||||
## Patching Rules
|
||||
|
||||
@@ -185,7 +188,7 @@ Most method calls (`getProfile`, `putEvent`, `joinGroup`, etc.) route transparen
|
||||
| `src/bare.js` | Bare worklet: DB, Autobase groups, Hyperswarm, all data logic |
|
||||
| `src/ui/main.jsx` | WebView bootstrap: sets up `window.__pearDB`, `window.__pearSync`, renders `<App>` |
|
||||
| `src/ui/App.jsx` | Full React calendar UI (runs entirely inside the WebView) |
|
||||
| `src/invite.js` | Invite link builder/parser — shared between UI and bare contexts |
|
||||
| `src/invite.js` | Invite link builder/parser - shared between UI and bare contexts |
|
||||
| `src/ui/bundle.js` | Bundled output stub (not edited directly) |
|
||||
|
||||
### Data Storage (Bare worklet)
|
||||
@@ -198,7 +201,7 @@ Most method calls (`getProfile`, `putEvent`, `joinGroup`, etc.) route transparen
|
||||
- Group membership and events are mirrored from Autobase view back to local DB via `mirrorToLocal()`
|
||||
- **Peer discovery**: `Hyperswarm`, one topic per group (derived from `groupKey`)
|
||||
|
||||
### Native Modules (Android — `android/app/src/main/java/com/pearcal/`, iOS — `ios/PearCal/`)
|
||||
### Native Modules (Android - `android/app/src/main/java/com/pearcal/`, iOS - `ios/PearCal/`)
|
||||
|
||||
| Module | Purpose |
|
||||
|--------|---------|
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"versionCode": 1000031,
|
||||
"versionCode": 1000034,
|
||||
"privacyPolicy": "https://peerloomllc.github.io/pearcal-native/privacy.html"
|
||||
},
|
||||
"ios": {
|
||||
"bundleIdentifier": "com.pearcal",
|
||||
"buildNumber": "34",
|
||||
"buildNumber": "37",
|
||||
"infoPlist": {
|
||||
"NSCameraUsageDescription": "Used to set your profile photo",
|
||||
"NSPhotoLibraryUsageDescription": "Used to set your profile photo",
|
||||
@@ -65,6 +65,6 @@
|
||||
"assets": [
|
||||
"./assets/bare-universal.bundle"
|
||||
],
|
||||
"version": "1.0.31"
|
||||
"version": "1.0.34"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pearcal-electron",
|
||||
"version": "1.0.31",
|
||||
"version": "1.0.34",
|
||||
"description": "PearCal desktop client (Electron). Mirrors PearGuard's pattern.",
|
||||
"homepage": "https://peerloomllc.com/pearcal/",
|
||||
"author": {
|
||||
|
||||
@@ -561,7 +561,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = PearCal/PearCal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 34;
|
||||
CURRENT_PROJECT_VERSION = 37;
|
||||
DEVELOPMENT_TEAM = G79ALD29NA;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
@@ -574,7 +574,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.31;
|
||||
MARKETING_VERSION = 1.0.34;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -601,7 +601,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = PearCal/PearCal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 34;
|
||||
CURRENT_PROJECT_VERSION = 37;
|
||||
DEVELOPMENT_TEAM = G79ALD29NA;
|
||||
INFOPLIST_FILE = PearCal/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||
@@ -609,7 +609,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.31;
|
||||
MARKETING_VERSION = 1.0.34;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -635,7 +635,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = PearCalWidget/PearCalWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 34;
|
||||
CURRENT_PROJECT_VERSION = 37;
|
||||
DEVELOPMENT_TEAM = G79ALD29NA;
|
||||
INFOPLIST_FILE = PearCalWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||
@@ -644,7 +644,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.31;
|
||||
MARKETING_VERSION = 1.0.34;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.pearcal.widget;
|
||||
PRODUCT_NAME = PearCalWidget;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "PearCal Widget Development";
|
||||
@@ -782,7 +782,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = PearCalWidget/PearCalWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 34;
|
||||
CURRENT_PROJECT_VERSION = 37;
|
||||
DEVELOPMENT_TEAM = G79ALD29NA;
|
||||
INFOPLIST_FILE = PearCalWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||
@@ -791,7 +791,7 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.31;
|
||||
MARKETING_VERSION = 1.0.34;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.pearcal.widget;
|
||||
PRODUCT_NAME = PearCalWidget;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "PearCal Widget Development";
|
||||
|
||||
@@ -1,13 +1,28 @@
|
||||
## What's Changed
|
||||
🎉 New Features
|
||||
|
||||
- Blind Peers — always-on backup & sync for your shared groups. Pair an always-on "blind peer" to a group and it keeps everyone in sync and backed up around the clock — even when every member's phone is offline — and it can never read your events. Scan a QR to admit one, name each peer, watch its status live, and remove it anytime.
|
||||
- Encrypted groups. Group data is now encrypted per group, so blind peers (and any helper along the way) only store scrambled data they can't decrypt. Existing groups get a one-time heads-up when encryption turns on.
|
||||
|
||||
### ✨ Improvements
|
||||
✨ Improvements
|
||||
|
||||
- custom interval recurrence + editable series end date
|
||||
- optional show-upcoming-events on the daily widget (toggle under Profile --> Personal settings)
|
||||
- in-place auto-update for NSIS + AppImage
|
||||
- More reliable sync when two devices share a Wi-Fi network.
|
||||
- Desktop: application menu (Edit + Help/About); notification behavior now matches mobile; irrelevant buttons hidden.
|
||||
- Blind peers can be renamed inline, and names show up across your devices.
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
🐛 Bug Fixes
|
||||
|
||||
- restore reminders after reboot and app update
|
||||
- event-editor field parity + centered modal (desktop)
|
||||
- Android: fixed the stuck-on-loading-screen after force-close + quick reopen.
|
||||
- iOS: fixed a launch crash.
|
||||
- App no longer gets stuck at startup if one group fails to open.
|
||||
- A group's sync helper no longer lingers after the group is deleted.
|
||||
|
||||
🔒 Security & Privacy
|
||||
|
||||
- Deleting a group, leaving a group, and transferring ownership are now verified against the real owner — a removed/malicious member can't delete or hijack a group.
|
||||
- Group data is encrypted end-to-end across sync helpers.
|
||||
|
||||
🖥 Desktop & Seeder (GitHub builds)
|
||||
|
||||
- Blind-peer app installable on Linux, Windows, macOS, Umbrel, and Start9, with auto-update.
|
||||
- Windows desktop builds now run locally without a build VM.
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"description": "PearCal is a peer-to-peer calendar app that syncs directly between devices \u2014 no server, no cloud, no accounts required.\n\nYour calendar data never leaves your group. It lives only on the devices of the people you choose to share with, powered by Hypercore Protocol.\n\nFEATURES\n\nPeer Groups\n\nCreate a group and invite others via a share link or QR code. Each group has its own color and avatar. Members see only the events shared with them.\n\nEvents & Reminders\n\nCreate one-time or recurring events. Set a reminder time per event. Selectively share events with specific group members \u2014 not everyone in a group has to see every event.\n\nHolidays\nOptional US, Canada, and UK public holiday calendars. Toggle per country from your profile. Holiday events are read-only and stored locally only.\n\nPrivacy First\n\nNo account creation. No email address. No tracking. No ads. Your data stays on your devices.\n\nOpen Source\nPearCal is free and open source. Source code is available on GitHub.\n\nPERMISSIONS\n\nCamera \u2014 used to set your profile photo and scan QR invite codes.\nPhoto Library \u2014 used to set your profile photo.", "keywords": "calendar,p2p,peer-to-peer,private,shared,group,decentralized,no cloud,events,reminders,holidays", "supportUrl": "https://github.com/peerloomllc/pearcal-native/issues", "whatsNew": "New Features\n \n - Blind Peers \u2014 always-on backup & sync for your shared groups. Pair an always-on \"blind peer\" to a group and it keeps everyone in sync and backed up around the clock \u2014 even when every member's phone is offline \u2014 and it can never read your events. Scan a QR to admit one, name each peer, watch its status live, and remove it anytime.\n - Encrypted groups. Group data is now encrypted per group, so blind peers (and any helper along the way) only store scrambled data they can't decrypt. Existing groups get a one-time heads-up when encryption turns on.\n\n Improvements\n\n - More reliable sync when two devices share a Wi-Fi network.\n - Desktop: application menu (Edit + Help/About); notification behavior now matches mobile; irrelevant buttons hidden.\n - Blind peers can be renamed inline, and names show up across your devices.\n\n Bug Fixes\n\n - Android: fixed the stuck-on-loading-screen after force-close + quick reopen.\n - iOS: fixed a launch crash.\n - App no longer gets stuck at startup if one group fails to open.\n - A group's sync helper no longer lingers after the group is deleted.\n\n Security & Privacy\n\n - Deleting a group, leaving a group, and transferring ownership are now verified against the real owner \u2014 a removed/malicious member can't delete or hijack a group.\n - Group data is encrypted end-to-end across sync helpers.\n\n Desktop & Seeder (GitHub builds)\n\n - Blind-peer app installable on Linux, Windows, macOS, Umbrel, and Start9, with auto-update.\n - Windows desktop builds now run locally without a build VM."}
|
||||
@@ -9,7 +9,7 @@
|
||||
#
|
||||
# build-start9-s9pk.sh rewrites this FROM line to the freshly-pushed version +
|
||||
# manifest-list digest.
|
||||
FROM ghcr.io/peerloomllc/pearcal-seeder:1.0.33@sha256:36b9e9407b053c71b840f29a5f0423a67f15c2806827687b2cbec9dd69586c45
|
||||
FROM ghcr.io/peerloomllc/pearcal-seeder:1.0.34@sha256:6273ea9b8bb34a841768598587b601ef02a7b066625952633f08b24bb76111c6
|
||||
|
||||
# The published image is node:22-bookworm-slim (Debian), which has no init.
|
||||
RUN apt-get update \
|
||||
|
||||
@@ -10,7 +10,7 @@ id: pearcal-seeder
|
||||
title: "PearCal Seeder"
|
||||
# emver: up to four dot-separated numbers; the fourth (if present) is the StartOS
|
||||
# packaging revision. Kept in lockstep with the seeder image tag.
|
||||
version: 1.0.33
|
||||
version: 1.0.34
|
||||
release-notes: |
|
||||
First StartOS release of the PearCal blind-seeder. Runs the seed-mode worklet
|
||||
as an always-on service with a dashboard for enrolling groups and watching
|
||||
|
||||
@@ -4,4 +4,4 @@ import { compat, types as T } from "../deps.ts";
|
||||
// treats fresh installs and same-version reinstalls as up to date.
|
||||
// build-start9-s9pk.sh rewrites the version string on each release.
|
||||
export const migration: T.ExpectedExports.migration = compat.migrations
|
||||
.fromMapping({}, "1.0.33");
|
||||
.fromMapping({}, "1.0.34");
|
||||
|
||||
@@ -13,7 +13,7 @@ services:
|
||||
app:
|
||||
# Published, public, multi-arch (amd64 + arm64), pinned by manifest-list
|
||||
# digest. build-umbrel-image.sh rewrites this to :<version>@sha256:<digest>.
|
||||
image: ghcr.io/peerloomllc/pearcal-seeder:1.0.33@sha256:36b9e9407b053c71b840f29a5f0423a67f15c2806827687b2cbec9dd69586c45
|
||||
image: ghcr.io/peerloomllc/pearcal-seeder:1.0.34@sha256:6273ea9b8bb34a841768598587b601ef02a7b066625952633f08b24bb76111c6
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
security_opt:
|
||||
|
||||
@@ -6,7 +6,7 @@ id: peerloom-pearcal-seeder
|
||||
name: PearCal Seeder
|
||||
tagline: Keep your PearCal groups in sync 24/7
|
||||
category: networking
|
||||
version: "1.0.33"
|
||||
version: "1.0.34"
|
||||
port: 8731
|
||||
description: >-
|
||||
Run a blind seeder for your PearCal groups on your Umbrel so their calendars
|
||||
|
||||
Reference in New Issue
Block a user