@@ -40,13 +40,22 @@ async function ensureBuildVersion(packageName, version) {
40
40
* @param {string } packageName
41
41
* @param {string } tag
42
42
*/
43
- function publishBuild ( packageName , tag ) {
43
+ function publishBuild ( packageName , tag , releaseBranch ) {
44
44
let buildDir = path . join ( rootDir , "packages" , packageName ) ;
45
- let args = [ "--access public" , `--tag ${ tag } ` ] ;
45
+
46
+ let args = [ "--access public" ] ;
47
+ if ( tag ) {
48
+ args . push ( `--tag ${ tag } ` ) ;
49
+ }
50
+
46
51
if ( tag === "experimental" || tag === "nightly" ) {
47
- args . push ( `--no-git-checks` ) ;
52
+ args . push ( "--no-git-checks" ) ;
53
+ } else if ( releaseBranch ) {
54
+ args . push ( `--publish-branch ${ releaseBranch } ` ) ;
48
55
} else {
49
- args . push ( "--publish-branch release-next" ) ;
56
+ throw new Error (
57
+ "Expected a release branch name to be provided for non-experimental/nightly releases"
58
+ ) ;
50
59
}
51
60
console . log ( ) ;
52
61
console . log ( ` pnpm publish ${ buildDir } --tag ${ tag } --access public` ) ;
@@ -75,13 +84,19 @@ async function run() {
75
84
) ;
76
85
77
86
// 2. Determine the appropriate npm tag to use
78
- let tag = version . includes ( "experimental" )
79
- ? "experimental"
80
- : version . includes ( "nightly" )
81
- ? "nightly"
82
- : semver . prerelease ( version ) == null
83
- ? "latest"
84
- : "pre" ;
87
+ let publishBranch ;
88
+ let tag ;
89
+ if ( version . includes ( "experimental" ) ) {
90
+ tag = "experimental" ;
91
+ } else if ( version . includes ( "nightly" ) ) {
92
+ tag = "nightly" ;
93
+ } else if ( version . startsWith ( "6." ) ) {
94
+ publishBranch = "release-v6" ;
95
+ tag = null ;
96
+ } else if ( version . startsWith ( "7." ) ) {
97
+ publishBranch = "release-next" ;
98
+ tag = semver . prerelease ( version ) == null ? "latest" : "pre" ;
99
+ }
85
100
86
101
console . log ( ) ;
87
102
console . log ( ` Publishing version ${ version } to npm with tag "${ tag } "` ) ;
@@ -103,17 +118,21 @@ async function run() {
103
118
await ensureBuildVersion ( "create-react-router" , version ) ;
104
119
105
120
// 4. Publish to npm
106
- publishBuild ( "react-router" , tag ) ;
107
- publishBuild ( "react-router-dom" , tag ) ;
108
- publishBuild ( "react-router-dev" , tag ) ;
109
- publishBuild ( "react-router-express" , tag ) ;
110
- publishBuild ( "react-router-node" , tag ) ;
111
- publishBuild ( "react-router-serve" , tag ) ;
112
- publishBuild ( "react-router-architect" , tag ) ;
113
- publishBuild ( "react-router-cloudflare" , tag ) ;
114
- publishBuild ( "react-router-fs-routes" , tag ) ;
115
- publishBuild ( "react-router-remix-routes-option-adapter" , tag ) ;
116
- publishBuild ( "create-react-router" , tag ) ;
121
+ publishBuild ( "react-router" , tag , releaseBranch ) ;
122
+ publishBuild ( "react-router-dom" , tag , releaseBranch ) ;
123
+ publishBuild ( "react-router-dev" , tag , releaseBranch ) ;
124
+ publishBuild ( "react-router-express" , tag , releaseBranch ) ;
125
+ publishBuild ( "react-router-node" , tag , releaseBranch ) ;
126
+ publishBuild ( "react-router-serve" , tag , releaseBranch ) ;
127
+ publishBuild ( "react-router-architect" , tag , releaseBranch ) ;
128
+ publishBuild ( "react-router-cloudflare" , tag , releaseBranch ) ;
129
+ publishBuild ( "react-router-fs-routes" , tag , releaseBranch ) ;
130
+ publishBuild (
131
+ "react-router-remix-routes-option-adapter" ,
132
+ tag ,
133
+ releaseBranch
134
+ ) ;
135
+ publishBuild ( "create-react-router" , tag , releaseBranch ) ;
117
136
} catch ( error ) {
118
137
console . log ( ) ;
119
138
console . error ( ` ${ error . message } ` ) ;
0 commit comments