Skip to content

ci: tag-driven releases, trunk-based on main, bump to 1.0.0#32

Closed
peters wants to merge 195 commits intomainfrom
fix/linux-arm64-bionic-toolchain
Closed

ci: tag-driven releases, trunk-based on main, bump to 1.0.0#32
peters wants to merge 195 commits intomainfrom
fix/linux-arm64-bionic-toolchain

Conversation

@peters
Copy link
Contributor

@peters peters commented Mar 24, 2026

Summary

  • Replace GitVersion with tag-driven release workflow (matching horizon)
  • Switch to trunk-based development on main (removed develop branch)
  • Add release.yml for publishing to crates.io, NuGet, Cloudsmith, and GitHub Releases
  • Add version helper scripts (version-lib.sh, next-version.sh, set-release-version.sh)
  • Bump workspace version to 1.0.0 release line

Test plan

  • CI passes (version-sync, clippy, tests, artifacts)
  • ./scripts/check-version-sync.sh passes locally
  • ./scripts/next-version.sh beta outputs v1.0.0-beta.1
  • After merge, create GitHub Release with tag v1.0.0-beta.1 to validate release workflow

peters added 30 commits March 3, 2026 14:13
Manifest improvements:
- Add `distro` and `variant` fields to TargetConfig
- Make `AppConfig.id` optional — auto-derived as {main}-{distro}-{rid}[-{variant}]
- Top-level `channels` auto-collected from apps when omitted
- normalize() expands multi-target apps into single-target apps post-parse

Azure storage:
- Read SURGE_AZURE_ACCESS_KEY and SURGE_AZURE_SECRET_KEY from env
  when access_key/secret_key are empty in StorageConfig
Replace ~40 inline crate:: paths with top-level use imports in both
production and test code, per AGENTS.md import style rules.
Replace inline crate:: paths with top-level use imports in both
production and test code, per AGENTS.md import style rules.
… struct

Introduce StorageCredentials with named access_key/secret_key fields
instead of an ad-hoc (String, String) tuple, per AGENTS.md typed struct
guidance.
peters and others added 28 commits March 13, 2026 14:49
Remote Tailscale installs relied only on `systemctl --user show-environment`
to discover graphical session variables. On the GNOME node we debugged,
that was not reliable enough for the install path, so the installer could
detect a GUI session earlier in the flow and still launch the app headless
without `DISPLAY` or `XAUTHORITY`.

Add a dedicated remote launch-environment probe that still reads the user
systemd environment but also inspects common desktop/session processes for
`DISPLAY`, `XAUTHORITY`, `DBUS_SESSION_BUS_ADDRESS`,
`WAYLAND_DISPLAY`, and `XDG_RUNTIME_DIR`.

This keeps remote installs aligned with the live session state and prevents
graphical apps such as youpark from being started headless after install.

Tested with:
- cargo test -p surge-cli commands::install::tests:: -- --nocapture
Linux desktop shortcuts already included the manifest environment, but Linux
startup shortcuts did not. That meant apps launched from autostart could
miss required variables from `.surge/surge.yml` even though manual desktop
launches worked correctly.

Factor the Linux desktop-entry exec-line generation so both desktop and
startup entries share the same environment handling, then apply that shared
path to supervisor-backed startup entries as well.

Add coverage to assert that startup shortcuts keep custom environment
variables while still routing through `surge-supervisor`.

This fixes youpark startup on GNOME so the autostart entry preserves its
OpenCV-related runtime flags from the manifest.

Tested with:
- cargo test -p surge-core platform::shortcuts::tests:: -- --nocapture
Allow install to run without a checked-out app manifest by resolving backend settings from install overrides and user env, with an app-scoped prefix fallback for release index discovery.

For host-mismatch Tailscale installs, replace target-native installer execution with a staged app-copy deployment path that downloads or reconstructs the full package locally, streams the extracted app tree to the remote node, writes runtime metadata, installs Linux shortcuts, and activates the app remotely.

Also expose reusable installer bundle and Linux shortcut rendering helpers needed by the remote deployment path.
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.56 to 1.2.57.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](rust-lang/cc-rs@cc-v1.2.56...cc-v1.2.57)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.57
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.22 to 0.3.23.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](tokio-rs/tracing@tracing-subscriber-0.3.22...tracing-subscriber-0.3.23)

---
updated-dependencies:
- dependency-name: tracing-subscriber
  dependency-version: 0.3.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [gittools/actions](https://github.com/gittools/actions) from 4.3.3 to 4.4.1.
- [Release notes](https://github.com/gittools/actions/releases)
- [Commits](GitTools/actions@v4.3.3...v4.4.1)

---
updated-dependencies:
- dependency-name: gittools/actions
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.60 to 4.6.0.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.5.60...clap_complete-v4.6.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-version: 8.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [gittools/actions](https://github.com/gittools/actions) from 4.4.1 to 4.4.2.
- [Release notes](https://github.com/gittools/actions/releases)
- [Commits](GitTools/actions@v4.4.1...v4.4.2)

---
updated-dependencies:
- dependency-name: gittools/actions
  dependency-version: 4.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.44 to 0.4.45.
- [Commits](alexcrichton/tar-rs@0.4.44...0.4.45)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 0.4.45
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.9 to 0.103.10.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](rustls/webpki@v/0.103.9...v/0.103.10)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Switch to trunk-based development on main (remove develop branch).
Version is now driven by git tags and workspace Cargo.toml, matching
the horizon release flow. Add release.yml for publishing to crates.io,
NuGet, Cloudsmith, and GitHub Releases. Bump to 1.0.0 release line.
@peters peters closed this Mar 24, 2026
@peters peters deleted the fix/linux-arm64-bionic-toolchain branch March 24, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant