@@ -8,7 +8,6 @@ console.log("=== publishing ===\n")
88
99const dir = fileURLToPath ( new URL ( ".." , import . meta. url ) )
1010process . chdir ( dir )
11-
1211const tag = `v${ Script . version } `
1312
1413const pkgjsons = await Array . fromAsync (
@@ -17,54 +16,56 @@ const pkgjsons = await Array.fromAsync(
1716 } ) ,
1817) . then ( ( arr ) => arr . filter ( ( x ) => ! x . includes ( "node_modules" ) && ! x . includes ( "dist" ) ) )
1918
19+ async function prepareReleaseFiles ( ) {
20+ for ( const file of pkgjsons ) {
21+ let pkg = await Bun . file ( file ) . text ( )
22+ pkg = pkg . replaceAll ( / " v e r s i o n " : " [ ^ " ] + " / g, `"version": "${ Script . version } "` )
23+ console . log ( "updated:" , file )
24+ await Bun . file ( file ) . write ( pkg )
25+ }
26+
27+ const extensionToml = fileURLToPath ( new URL ( "../packages/extensions/zed/extension.toml" , import . meta. url ) )
28+ let toml = await Bun . file ( extensionToml ) . text ( )
29+ toml = toml . replace ( / ^ v e r s i o n = " [ ^ " ] + " / m, `version = "${ Script . version } "` )
30+ toml = toml . replaceAll ( / r e l e a s e s \/ d o w n l o a d \/ v [ ^ / ] + \/ / g, `releases/download/v${ Script . version } /` )
31+ console . log ( "updated:" , extensionToml )
32+ await Bun . file ( extensionToml ) . write ( toml )
33+
34+ await $ `bun install`
35+ await $ `./packages/sdk/js/script/build.ts`
36+ }
37+
2038if ( Script . release && ! Script . preview ) {
2139 await $ `git fetch origin --tags`
2240 await $ `git switch --detach`
2341}
2442
25- for ( const file of pkgjsons ) {
26- let pkg = await Bun . file ( file ) . text ( )
27- pkg = pkg . replaceAll ( / " v e r s i o n " : " [ ^ " ] + " / g, `"version": "${ Script . version } "` )
28- console . log ( "updated:" , file )
29- await Bun . file ( file ) . write ( pkg )
30- }
31-
32- const extensionToml = fileURLToPath ( new URL ( "../packages/extensions/zed/extension.toml" , import . meta. url ) )
33- let toml = await Bun . file ( extensionToml ) . text ( )
34- toml = toml . replace ( / ^ v e r s i o n = " [ ^ " ] + " / m, `version = "${ Script . version } "` )
35- toml = toml . replaceAll ( / r e l e a s e s \/ d o w n l o a d \/ v [ ^ / ] + \/ / g, `releases/download/v${ Script . version } /` )
36- console . log ( "updated:" , extensionToml )
37- await Bun . file ( extensionToml ) . write ( toml )
38-
39- await $ `bun install`
40- await import ( `../packages/sdk/js/script/build.ts` )
41- process . chdir ( dir )
43+ await prepareReleaseFiles ( )
4244
4345console . log ( "\n=== cli ===\n" )
44- await import ( `.. /packages/opencode/script/publish.ts`)
46+ await $ `bun . /packages/opencode/script/publish.ts`
4547
4648console . log ( "\n=== sdk ===\n" )
47- await import ( `.. /packages/sdk/js/script/publish.ts`)
49+ await $ `bun . /packages/sdk/js/script/publish.ts`
4850
4951console . log ( "\n=== plugin ===\n" )
50- await import ( `.. /packages/plugin/script/publish.ts`)
52+ await $ `bun . /packages/plugin/script/publish.ts`
5153
5254if ( Script . release ) {
53- await import ( `.. /packages/desktop/scripts/finalize-latest-json.ts`)
54- await import ( `.. /packages/desktop-electron/scripts/finalize-latest-yml.ts`)
55+ await $ `bun . /packages/desktop/scripts/finalize-latest-json.ts`
56+ await $ `bun . /packages/desktop-electron/scripts/finalize-latest-yml.ts`
5557}
5658
5759if ( Script . release && ! Script . preview ) {
58- process . chdir ( dir )
5960 await $ `git commit -am "release: ${ tag } "`
60- const releaseCommit = ( await $ `git rev-parse HEAD` . text ( ) ) . trim ( )
6161 await $ `git tag -d ${ tag } ` . nothrow ( )
6262 await $ `git tag ${ tag } `
6363 await $ `git push origin refs/tags/${ tag } --force-with-lease --no-verify`
6464 await new Promise ( ( resolve ) => setTimeout ( resolve , 5_000 ) )
6565 await $ `git fetch origin`
6666 await $ `git checkout -B dev origin/dev`
67- await $ `git cherry-pick ${ releaseCommit } `
67+ await prepareReleaseFiles ( )
68+ await $ `git commit -am "sync release versions for ${ tag } "`
6869 await $ `git push origin HEAD:dev --no-verify`
6970}
7071
0 commit comments