Skip to content

Add side-by-side dev channel release flow - #28

Merged
damianh merged 1 commit into
mainfrom
dh/dev-channel-planning
Jul 26, 2026
Merged

damianh merged 1 commit into
mainfrom
dh/dev-channel-planning

Conversation

@damianh

@damianh damianh commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Why

We need a real dev channel that can be installed alongside stable, is clearly identifiable in Windows, and can be published continuously without winget.

What changed

  • Added channel-aware app identity so stable and dev use different runtime identifiers where needed (display naming, instance key, ProgId/custom protocol, and local app-data roots).
  • Parameterized the Inno Setup script by channel to produce distinct install directory, AppId, output artifact naming, Start menu entry, and Add/Remove Programs name (Browser Wrangler (Dev Channel) for dev).
  • Extended update resolution so stable keeps stable-only behavior while dev can consume prerelease-based release data; version tag parsing now accepts prerelease/build suffixes.
  • Updated release automation to publish dev-channel prereleases automatically on merges to dev, support manual stable/dev dispatch, and remove winget submission.
  • Updated settings/about/docs copy to be channel-aware and added tests covering prerelease list selection and prerelease tag parsing.

Notes for reviewers

  • Dev channel builds are enabled by passing -p:ReleaseChannel=dev at publish/build time.
  • The release workflow now produces channel-specific artifact prefixes (BrowserWrangler vs BrowserWrangler-dev) to avoid collisions.

Introduce channel-aware app identity, installer metadata, update behavior, and release automation so dev builds install/run alongside stable without winget. Dev releases now publish from the dev branch as prereleases, and update checks resolve by channel with prerelease tag support.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 26, 2026 16:44
@damianh
damianh merged commit 0fe95ae into main Jul 26, 2026
3 checks passed
@damianh
damianh deleted the dh/dev-channel-planning branch July 26, 2026 16:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a side-by-side dev release channel with distinct identity, storage, installer artifacts, and prerelease updates.

Changes:

  • Introduces channel-aware application and installer identities.
  • Adds dev-channel prerelease resolution and version parsing.
  • Automates dev releases and removes winget submission.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/release.yml Adds stable/dev release automation.
README.md Documents dev installation and updates.
installer/BrowserWrangler.iss Parameterizes installer identity by channel.
src/BrowserWrangler.Core/AppInfo.cs Defines channel-specific identities.
src/BrowserWrangler.Core/Configuration/ConfigStore.cs Separates channel configuration storage.
src/BrowserWrangler.Core/Logging/RuleHitLogStore.cs Separates channel log storage.
src/BrowserWrangler.Core/Updates/UpdateChecker.cs Adds prerelease update selection.
src/BrowserWrangler/BrowserWrangler.csproj Adds release-channel build configuration.
src/BrowserWrangler/Pages/SettingsPage.xaml Makes update wording channel-neutral.
src/BrowserWrangler/Program.cs Uses channel-specific instance keys.
src/BrowserWrangler/Services/DiagnosticsInfo.cs Labels dev versions.
src/BrowserWrangler/Services/UpdateAutomationService.cs Separates downloaded updates by channel.
tests/BrowserWrangler.Core.Tests/UpdateCheckerTests.cs Tests prerelease selection and tags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<TrimMode>partial</TrimMode>
<DefineConstants>$(DefineConstants);DISABLE_XAML_GENERATED_MAIN</DefineConstants>
<ReleaseChannel Condition="'$(ReleaseChannel)' == ''">stable</ReleaseChannel>
<DefineConstants Condition="'$(ReleaseChannel)' == 'dev'">$(DefineConstants);DEV_CHANNEL</DefineConstants>
Comment on lines +193 to +196
if (_allowPrerelease && prerelease)
{
release = candidate;
return true;

#if DEV_CHANNEL
public const bool IsDevChannel = true;
public const string Name = DevName;
Comment thread README.md
- `src/BrowserWrangler` — WinUI 3 app: config UI, picker, toast
- `tests/BrowserWrangler.Core.Tests` — xUnit tests
- `installer/` — Inno Setup script and winget manifest templates
- `installer/` — Inno Setup script and release manifest templates
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.

2 participants