Rust based release manager for JS/TS monorepos, heavily inspired by Vite+ ❤️
publish changelog rust release bun pnpm changeset version bump node
0

Configure Feed

Select the types of activity you want to include in your feed.

v1.0.0-alpha.5 (#7)

* fix: skip GitHub release in napi prepublish

* Revert "fix: skip GitHub release in napi prepublish"

This reverts commit f541349ef9630005e1f7091bdc925433b264ea9f.

* fix(bump): apply bump type on first pre-release before adding tag

* chore: commit pending changes

* v1.0.0-alpha.5

authored by

bdbch and committed by
GitHub
(May 23, 2026, 3:10 AM +0200) 39512fdc 616a1655

+74 -10
+1 -1
.oxrls/pre.json
··· 2 2 "pre_versions": { 3 3 "@bdbchgg/oxrls": { 4 4 "tag": "alpha", 5 - "count": 4 5 + "count": 5 6 6 } 7 7 } 8 8 }
+6
CHANGELOG.md
··· 4 4 5 5 ### Patch Changes 6 6 7 + - **@bdbchgg/oxrls** (v1.0.0-alpha.5): Fixed a bug where a pre-version would not correctly bump it's version on the first pre-version 8 + 9 + ## 2026-05-23 10 + 11 + ### Patch Changes 12 + 7 13 - **@bdbchgg/oxrls** (v1.0.0-alpha.4): Fixed a bug that caused the binary not to be included with the bundle 8 14 9 15 ## 2026-05-22
+1 -1
Cargo.toml
··· 3 3 authors = ["Dominik Biedebach <dominik@bdbch.com>"] 4 4 edition = "2024" 5 5 name = "oxrls" 6 - version = "1.0.0-alpha.4" 6 + version = "1.0.0-alpha.5" 7 7 8 8 [lib] 9 9 crate-type = ["cdylib", "rlib"]
+7 -1
package.json
··· 1 1 { 2 2 "name": "@bdbchgg/oxrls", 3 - "version": "1.0.0-alpha.4", 3 + "version": "1.0.0-alpha.5", 4 4 "ava": { 5 5 "environmentVariables": { 6 6 "OXC_TSCONFIG_PATH": "./__test__/tsconfig.json" ··· 57 57 "x86_64-unknown-linux-gnu", 58 58 "aarch64-apple-darwin" 59 59 ] 60 + }, 61 + "optionalDependencies": { 62 + "@bdbchgg/oxrls-darwin-arm64": "1.0.0-alpha.4", 63 + "@bdbchgg/oxrls-darwin-x64": "1.0.0-alpha.4", 64 + "@bdbchgg/oxrls-linux-x64-gnu": "1.0.0-alpha.4", 65 + "@bdbchgg/oxrls-win32-x64-msvc": "1.0.0-alpha.4" 60 66 }, 61 67 "packageManager": "yarn@4.14.1", 62 68 "publishConfig": {
+18 -7
src/bump.rs
··· 105 105 let old_version = pkg.package_json.semver_version()?; 106 106 107 107 // Apply pre-release tag if the package is in pre-mode 108 - // When already in pre-release, keep the base version and just increment the counter 108 + // On the FIRST pre-release bump (count == 1), apply the bump type 109 + // to the base version before adding the pre-release tag. 110 + // Subsequent bumps only increment the pre-release counter. 109 111 let new_version = if let Some((tag, count)) = 110 112 resolve_pre_release(pkg_name, config, &mut pre_state, workspace) 111 113 { 112 - // Strip pre-release suffix, use the base version, then re-apply with new counter 113 - let base = semver::Version::new(old_version.major, old_version.minor, old_version.patch); 114 - apply_pre_release(&base, &tag, count) 114 + if count == 1 { 115 + // First pre-release: bump the base version, then add pre-release tag 116 + let bumped = bump_version(&old_version, *bump_type); 117 + let base = 118 + semver::Version::new(bumped.major, bumped.minor, bumped.patch); 119 + apply_pre_release(&base, &tag, count) 120 + } else { 121 + // Subsequent pre-release: keep the base version, just increment counter 122 + let base = 123 + semver::Version::new(old_version.major, old_version.minor, old_version.patch); 124 + apply_pre_release(&base, &tag, count) 125 + } 115 126 } else { 116 127 // Normal bump — not in pre-release mode 117 128 bump_version(&old_version, *bump_type) ··· 1040 1051 1041 1052 let core = plan.bumps.get("@scope/core").unwrap(); 1042 1053 // Should be 1.2.4-beta.1 instead of 1.2.4 1043 - assert_eq!(core.new_version.to_string(), "1.2.3-beta.1"); 1054 + assert_eq!(core.new_version.to_string(), "1.2.4-beta.1"); 1044 1055 1045 1056 // Second bump should increment the counter 1046 1057 let content2 = r#"--- ··· 1082 1093 1083 1094 let core = plan.bumps.get("@scope/core").unwrap(); 1084 1095 // Major bump from 1.2.3 -> 2.0.0-rc.1 1085 - assert_eq!(core.new_version.to_string(), "1.2.3-rc.1"); 1096 + assert_eq!(core.new_version.to_string(), "2.0.0-rc.1"); 1086 1097 assert_eq!(core.old_version.to_string(), "1.2.3"); 1087 1098 } 1088 1099 ··· 1113 1124 let plan = build_release_plan(&workspace, &config, &release_dir, false).unwrap(); 1114 1125 1115 1126 let core = plan.bumps.get("@scope/core").unwrap(); 1116 - assert_eq!(core.new_version.to_string(), "1.2.3-beta.1"); 1127 + assert_eq!(core.new_version.to_string(), "1.2.4-beta.1"); 1117 1128 1118 1129 let react = plan.bumps.get("@scope/react").unwrap(); 1119 1130 assert_eq!(react.new_version.to_string(), "1.1.0"); // no pre-release
+41
yarn.lock
··· 5 5 version: 9 6 6 cacheKey: 10c0 7 7 8 + "@bdbchgg/oxrls-darwin-arm64@npm:1.0.0-alpha.4": 9 + version: 1.0.0-alpha.4 10 + resolution: "@bdbchgg/oxrls-darwin-arm64@npm:1.0.0-alpha.4" 11 + conditions: os=darwin & cpu=arm64 12 + languageName: node 13 + linkType: hard 14 + 15 + "@bdbchgg/oxrls-darwin-x64@npm:1.0.0-alpha.4": 16 + version: 1.0.0-alpha.4 17 + resolution: "@bdbchgg/oxrls-darwin-x64@npm:1.0.0-alpha.4" 18 + conditions: os=darwin & cpu=x64 19 + languageName: node 20 + linkType: hard 21 + 22 + "@bdbchgg/oxrls-linux-x64-gnu@npm:1.0.0-alpha.4": 23 + version: 1.0.0-alpha.4 24 + resolution: "@bdbchgg/oxrls-linux-x64-gnu@npm:1.0.0-alpha.4" 25 + conditions: os=linux & cpu=x64 & libc=glibc 26 + languageName: node 27 + linkType: hard 28 + 29 + "@bdbchgg/oxrls-win32-x64-msvc@npm:1.0.0-alpha.4": 30 + version: 1.0.0-alpha.4 31 + resolution: "@bdbchgg/oxrls-win32-x64-msvc@npm:1.0.0-alpha.4" 32 + conditions: os=win32 & cpu=x64 33 + languageName: node 34 + linkType: hard 35 + 8 36 "@bdbchgg/oxrls@workspace:.": 9 37 version: 0.0.0-use.local 10 38 resolution: "@bdbchgg/oxrls@workspace:." 11 39 dependencies: 40 + "@bdbchgg/oxrls-darwin-arm64": "npm:1.0.0-alpha.4" 41 + "@bdbchgg/oxrls-darwin-x64": "npm:1.0.0-alpha.4" 42 + "@bdbchgg/oxrls-linux-x64-gnu": "npm:1.0.0-alpha.4" 43 + "@bdbchgg/oxrls-win32-x64-msvc": "npm:1.0.0-alpha.4" 12 44 "@emnapi/core": "npm:^1.5.0" 13 45 "@emnapi/runtime": "npm:^1.5.0" 14 46 "@napi-rs/cli": "npm:^3.2.0" ··· 21 53 tinybench: "npm:^6.0.0" 22 54 typescript: "npm:^6.0.0" 23 55 vite-plus: "npm:latest" 56 + dependenciesMeta: 57 + "@bdbchgg/oxrls-darwin-arm64": 58 + optional: true 59 + "@bdbchgg/oxrls-darwin-x64": 60 + optional: true 61 + "@bdbchgg/oxrls-linux-x64-gnu": 62 + optional: true 63 + "@bdbchgg/oxrls-win32-x64-msvc": 64 + optional: true 24 65 bin: 25 66 oxrls: ./bin/oxrls.js 26 67 languageName: unknown