René's URL Explorer Experiment


Title: [codex] Automate desktop release version sync by DragonnZhang · Pull Request #5 · modelstudioai/openwork · GitHub

Open Graph Title: [codex] Automate desktop release version sync by DragonnZhang · Pull Request #5 · modelstudioai/openwork

X Title: [codex] Automate desktop release version sync by DragonnZhang · Pull Request #5 · modelstudioai/openwork

Description: What this PR does Adds release-version tooling to the desktop release flow. The manual workflow asks for a desktop app version, accepts either 0.0.2 or v0.0.2, normalizes that into package version 0.0.2 and release tag v0.0.2, and uses the same version across installer builds, GitHub Release publishing, and the version-sync PR. The workflow now bumps desktop package versions inside GitHub Actions. For dry_run=true, each build job bumps locally and builds installers without pushing a branch or touching GitHub Releases. For dry_run=false, the workflow requires main, creates release/desktop-vX.Y.Z, commits the bumped versions, builds from that release ref, publishes the Release against that ref, then creates a version-sync PR back to main and enables auto-merge. This also adds bun run bump-desktop-version , which updates the three desktop release version sources together: package.json, apps/electron/package.json, and packages/shared/package.json. Use --dry-run to preview the changes without writing files. Why it's needed The installer version comes from the Electron app package metadata, while the runtime-visible version comes from the shared package metadata. Without explicit tooling, a maintainer could type 0.0.2 in GitHub Actions while the packaged app still reports 0.0.1, or manually bump only one of the package files. Keeping these versions aligned is also the base contract needed before electron auto-update metadata is enabled later. Automating the bump in the release workflow removes the need for a manual pre-release version PR. Reviewer Test Plan How to verify Run bun run bump-desktop-version --dry-run 0.0.2 and confirm it lists package.json, apps/electron/package.json, and packages/shared/package.json changing from 0.0.1 to 0.0.2 while leaving the working tree unchanged. Run the Desktop Release workflow from GitHub Actions with version=0.0.2 and dry_run=true from this branch; confirm the prepare job bumps and validates the version, the build jobs start from the selected ref and bump locally before packaging, the dry-run summary uses release tag v0.0.2, and no release branch or GitHub Release is created. After this PR lands, run the workflow from main with dry_run=false. Confirm it creates release/desktop-vX.Y.Z, publishes the GitHub Release against that release ref, creates chore(release): desktop vX.Y.Z, and enables auto-merge for that version-sync PR. Evidence (Before & After) N/A. This is CI/release automation, not a user-visible UI change. Tested on OS Status 🍏 macOS ✅ tested 🪟 Windows ⚠️ not tested 🐧 Linux ⚠️ not tested Environment (optional) Local checks on macOS: bun run bump-desktop-version --dry-run 0.0.2 bun run bump-desktop-version --dry-run v0.0.2 bun run bump-desktop-version --dry-run 0.02 fails as expected because 0.02 is not valid SemVer bun run bump-desktop-version 0.0.1 bun run check-release-version --version 0.0.1 bun run check-release-version --version 0.0.2 fails as expected while source versions are still 0.0.1 ruby -e 'require "yaml"; YAML.load_file(".github/workflows/desktop-release.yml"); puts "YAML OK"' go run github.com/rhysd/actionlint/cmd/actionlint@latest .github/workflows/desktop-release.yml git diff --check Risk & Scope Main risk or tradeoff: The first full installer build and auto-merge path still need to run on GitHub-hosted macOS, Windows, and Linux runners. Local validation proves workflow syntax, version checks, bump behavior, and shell structure. Not validated / out of scope: Code signing, notarization, Windows signing, and electron auto-update feed behavior are intentionally not enabled here. Breaking changes / migration notes: Maintainers no longer need a manual pre-release version bump PR. For real publishing, run the workflow from main with dry_run=false; the workflow will create and auto-merge the version-sync PR. Linked Issues N/A 中文说明 What this PR does 给桌面端发布流程增加 release version 工具。手动 workflow 填写的是桌面端 app version,支持输入 0.0.2 或 v0.0.2,会统一转换成 package version 0.0.2 和 release tag v0.0.2,并且让安装包构建、GitHub Release 发布、版本同步 PR 都使用同一个版本。 workflow 现在会在 GitHub Actions 里自动 bump 桌面端 package 版本。dry_run=true 时,每个 build job 都只在本地 bump 后打安装包,不推分支,也不碰 GitHub Releases。dry_run=false 时,workflow 要求从 main 触发,创建 release/desktop-vX.Y.Z,提交 bump 后的版本,从这个 release ref 构建,基于这个 ref 发布 Release,然后自动创建同步回 main 的版本 PR 并开启 auto-merge。 同时新增 bun run bump-desktop-version ,一次性更新三个桌面端发布版本源:package.json、apps/electron/package.json、packages/shared/package.json。可以用 --dry-run 预览改动,不写文件。 Why it's needed 安装包版本来自 Electron app package metadata,运行时可见版本来自 shared package metadata。如果没有显式工具,维护者可能在 GitHub Actions 里填了 0.0.2,但最终打出来的 app 仍然显示 0.0.1,或者手动 bump 时只改了其中一个 package 文件。 保持这些版本一致,也是后续启用 electron 自动更新 metadata 前必须有的基础约定。把 bump 放进 release workflow 后,就不再需要发版前人工提一个版本号 PR。 Reviewer Test Plan How to verify 运行 bun run bump-desktop-version --dry-run 0.0.2,确认它会列出 package.json、apps/electron/package.json、packages/shared/package.json 从 0.0.1 改到 0.0.2,但不会改动工作区。 在 GitHub Actions 里从这个分支运行 Desktop Release workflow,设置 version=0.0.2 且 dry_run=true;确认 prepare job 会 bump 并校验版本,build jobs 会从所选 ref 开始并在本地 bump 后再打包,dry-run summary 使用 release tag v0.0.2,并且不会创建 release branch 或 GitHub Release。 这个 PR 合并后,从 main 运行 workflow,并设置 dry_run=false。确认它会创建 release/desktop-vX.Y.Z,基于这个 release ref 发布 GitHub Release,创建 chore(release): desktop vX.Y.Z,并为这个版本同步 PR 开启 auto-merge。 Evidence (Before & After) N/A。这是 CI/release 自动化,不是用户可见 UI 改动。 Tested on OS Status 🍏 macOS ✅ tested 🪟 Windows ⚠️ not tested 🐧 Linux ⚠️ not tested Environment (optional) macOS 本地检查: bun run bump-desktop-version --dry-run 0.0.2 bun run bump-desktop-version --dry-run v0.0.2 bun run bump-desktop-version --dry-run 0.02 按预期失败,因为 0.02 不是合法 SemVer bun run bump-desktop-version 0.0.1 bun run check-release-version --version 0.0.1 bun run check-release-version --version 0.0.2 在源码仍是 0.0.1 时按预期失败 ruby -e 'require "yaml"; YAML.load_file(".github/workflows/desktop-release.yml"); puts "YAML OK"' go run github.com/rhysd/actionlint/cmd/actionlint@latest .github/workflows/desktop-release.yml git diff --check Risk & Scope Main risk or tradeoff: 第一次完整安装包构建和 auto-merge 路径仍然需要在 GitHub 托管的 macOS、Windows、Linux runner 上执行;本地校验证明的是 workflow 语法、版本校验、bump 行为和 shell 结构正确。 Not validated / out of scope: 这里不启用代码签名、公证、Windows 签名,也不处理 electron 自动更新 feed。 Breaking changes / migration notes: 维护者不再需要发版前手动提版本号 PR。真正发布时,从 main 运行 workflow,并设置 dry_run=false;workflow 会自动创建并 auto-merge 版本同步 PR。 Linked Issues N/A

Open Graph Description: What this PR does Adds release-version tooling to the desktop release flow. The manual workflow asks for a desktop app version, accepts either 0.0.2 or v0.0.2, normalizes that into package version ...

X Description: What this PR does Adds release-version tooling to the desktop release flow. The manual workflow asks for a desktop app version, accepts either 0.0.2 or v0.0.2, normalizes that into package version ...

Opengraph URL: https://github.com/modelstudioai/openwork/pull/5

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:a3452ab5-bd8c-6fc7-8579-90c4fbd42d54
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDF7A:10637F:1F1E9B2:2949FE5:6A51EFDE
html-safe-nonce51afabec4353780b9a149c4a551f36aa4a8df3e72bff46a80a537439dd59eead
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERjdBOjEwNjM3RjoxRjFFOUIyOjI5NDlGRTU6NkE1MUVGREUiLCJ2aXNpdG9yX2lkIjoiMjE2NDQ3OTAyMDA1NzYyMDQ0NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac2b52b33fecf8b1ad29998dd5646bf0772ebf9377ebafbb8cb7ca5ef0dfbad049
hovercard-subject-tagpull_request:3822339763
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/modelstudioai/openwork/pull/5/files
twitter:imagehttps://avatars.githubusercontent.com/u/52599892?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/52599892?s=400&v=4
og:image:altWhat this PR does Adds release-version tooling to the desktop release flow. The manual workflow asks for a desktop app version, accepts either 0.0.2 or v0.0.2, normalizes that into package version ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/modelstudioai/openwork git https://github.com/modelstudioai/openwork.git
octolytics-dimension-user_id283556804
octolytics-dimension-user_loginmodelstudioai
octolytics-dimension-repository_id1256697754
octolytics-dimension-repository_nwomodelstudioai/openwork
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1256697754
octolytics-dimension-repository_network_root_nwomodelstudioai/openwork
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7aed05249554b889eb33d002851a973eebcc7e91
ui-targetcanary-1
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelstudioai/openwork/pull/5/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelstudioai%2Fopenwork%2Fpull%2F5%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelstudioai%2Fopenwork%2Fpull%2F5%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=modelstudioai%2Fopenwork
Reloadhttps://github.com/modelstudioai/openwork/pull/5/files
Reloadhttps://github.com/modelstudioai/openwork/pull/5/files
Reloadhttps://github.com/modelstudioai/openwork/pull/5/files
Please reload this pagehttps://github.com/modelstudioai/openwork/pull/5/files
modelstudioai https://github.com/modelstudioai
openworkhttps://github.com/modelstudioai/openwork
Notifications https://github.com/login?return_to=%2Fmodelstudioai%2Fopenwork
Fork 3 https://github.com/login?return_to=%2Fmodelstudioai%2Fopenwork
Star 11 https://github.com/login?return_to=%2Fmodelstudioai%2Fopenwork
Code https://github.com/modelstudioai/openwork
Issues 14 https://github.com/modelstudioai/openwork/issues
Pull requests 12 https://github.com/modelstudioai/openwork/pulls
Actions https://github.com/modelstudioai/openwork/actions
Projects https://github.com/modelstudioai/openwork/projects
Security and quality 0 https://github.com/modelstudioai/openwork/security
Insights https://github.com/modelstudioai/openwork/pulse
Code https://github.com/modelstudioai/openwork
Issues https://github.com/modelstudioai/openwork/issues
Pull requests https://github.com/modelstudioai/openwork/pulls
Actions https://github.com/modelstudioai/openwork/actions
Projects https://github.com/modelstudioai/openwork/projects
Security and quality https://github.com/modelstudioai/openwork/security
Insights https://github.com/modelstudioai/openwork/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmodelstudioai%2Fopenwork%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmodelstudioai%2Fopenwork%2Fissues%2Fnew%2Fchoose
DragonnZhanghttps://github.com/DragonnZhang
mainhttps://github.com/modelstudioai/openwork/tree/main
dragon/add-desktop-release-workflowhttps://github.com/modelstudioai/openwork/tree/dragon/add-desktop-release-workflow
Conversation 0 https://github.com/modelstudioai/openwork/pull/5
Commits 3 https://github.com/modelstudioai/openwork/pull/5/commits
Checks 0 https://github.com/modelstudioai/openwork/pull/5/checks
Files changed https://github.com/modelstudioai/openwork/pull/5/files
Please reload this pagehttps://github.com/modelstudioai/openwork/pull/5/files
[codex] Automate desktop release version sync https://github.com/modelstudioai/openwork/pull/5/files#top
Show all changes 3 commits https://github.com/modelstudioai/openwork/pull/5/files
00f638d ci: validate desktop release version DragonnZhang Jun 8, 2026 https://github.com/modelstudioai/openwork/pull/5/commits/00f638d77c70b4e1ebe7e8d18d99deabcd26e042
1b7175c chore: add desktop version bump script DragonnZhang Jun 8, 2026 https://github.com/modelstudioai/openwork/pull/5/commits/1b7175c1abde1b8eed286e76a4ec87838baa158c
3e2a76b ci: automate desktop release version sync DragonnZhang Jun 8, 2026 https://github.com/modelstudioai/openwork/pull/5/commits/3e2a76bab37035746f5e3a5724b771061b896be9
Clear filters https://github.com/modelstudioai/openwork/pull/5/files
Please reload this pagehttps://github.com/modelstudioai/openwork/pull/5/files
Please reload this pagehttps://github.com/modelstudioai/openwork/pull/5/files
desktop-release.yml https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
package.json https://github.com/modelstudioai/openwork/pull/5/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
bump-desktop-version.ts https://github.com/modelstudioai/openwork/pull/5/files#diff-32796157dcc3e06d01235e2af26d50eb29e69283c381874f32a920ed88439278
check-release-version.ts https://github.com/modelstudioai/openwork/pull/5/files#diff-72e039543e89a68f2ef12e1764d1de201842159fefae8a4b817f137adfb9aa4f
desktop-release-version.ts https://github.com/modelstudioai/openwork/pull/5/files#diff-9b8fcbdaf2b332fb9146749eca148e8695cf0be1bfaccfca3f0f6e949316af68
.github/workflows/desktop-release.ymlhttps://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
View file https://github.com/modelstudioai/openwork/blob/3e2a76bab37035746f5e3a5724b771061b896be9/.github/workflows/desktop-release.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelstudioai/openwork/pull/5/{{ revealButtonHref }}
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
https://github.com/modelstudioai/openwork/pull/5/files#diff-74d52c7679436607803289e317eb95b8c2fd90bd2ba4ff4375d37197d62e1775
package.jsonhttps://github.com/modelstudioai/openwork/pull/5/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
View file https://github.com/modelstudioai/openwork/blob/3e2a76bab37035746f5e3a5724b771061b896be9/package.json
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelstudioai/openwork/pull/5/{{ revealButtonHref }}
https://github.com/modelstudioai/openwork/pull/5/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
https://github.com/modelstudioai/openwork/pull/5/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
scripts/bump-desktop-version.tshttps://github.com/modelstudioai/openwork/pull/5/files#diff-32796157dcc3e06d01235e2af26d50eb29e69283c381874f32a920ed88439278
View file https://github.com/modelstudioai/openwork/blob/3e2a76bab37035746f5e3a5724b771061b896be9/scripts/bump-desktop-version.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelstudioai/openwork/pull/5/{{ revealButtonHref }}
Please reload this pagehttps://github.com/modelstudioai/openwork/pull/5/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.