chore: add changeset for publishing a new git tag for private pkgs (#450)

parent 1f4b4b58
---
"@eth-optimism/l2geth": patch
"@eth-optimism/batch-submitter": patch
"@eth-optimism/data-transport-layer": patch
"@eth-optimism/message-relayer": patch
---
bump private package versions to try triggering a tag
diff --git a/node_modules/@changesets/cli/dist/cli.cjs.dev.js b/node_modules/@changesets/cli/dist/cli.cjs.dev.js diff --git a/node_modules/@changesets/cli/dist/cli.cjs.dev.js b/node_modules/@changesets/cli/dist/cli.cjs.dev.js
index f771824..662990f 100644 index f771824..197d160 100644
--- a/node_modules/@changesets/cli/dist/cli.cjs.dev.js --- a/node_modules/@changesets/cli/dist/cli.cjs.dev.js
+++ b/node_modules/@changesets/cli/dist/cli.cjs.dev.js +++ b/node_modules/@changesets/cli/dist/cli.cjs.dev.js
@@ -786,6 +786,7 @@ async function publishPackages({ @@ -794,7 +794,7 @@ async function publishPackages({
}) { token: otp,
const packagesByName = new Map(packages.map(x => [x.packageJson.name, x])); isRequired: Promise.resolve(true)
const publicPackages = packages.filter(pkg => !pkg.packageJson.private); };
+ const privatePackages = packages.filter(pkg => pkg.packageJson.private); - const unpublishedPackagesInfo = await getUnpublishedPackages(publicPackages, preState);
let twoFactorState = otp === undefined ? { + const unpublishedPackagesInfo = await getUnpublishedPackages(packages, preState);
token: null,
isRequired: isCI || publicPackages.some(x => x.packageJson.publishConfig && x.packageJson.publishConfig.registry && x.packageJson.publishConfig.registry !== "https://registry.npmjs.org" && x.packageJson.publishConfig.registry !== "https://registry.yarnpkg.com") || process.env.npm_config_registry !== undefined && process.env.npm_config_registry !== "https://registry.npmjs.org" && process.env.npm_config_registry !== "https://registry.yarnpkg.com" ? Promise.resolve(false) : // note: we're not awaiting this here, we want this request to happen in parallel with getUnpublishedPackages
@@ -800,10 +801,26 @@ async function publishPackages({
logger.warn("No unpublished packages to publish");
}
- return Promise.all(unpublishedPackagesInfo.map(pkgInfo => { if (unpublishedPackagesInfo.length === 0) {
- let pkg = packagesByName.get(pkgInfo.name); logger.warn("No unpublished packages to publish");
- return publishAPackage(pkg, access, twoFactorState, getReleaseTag(pkgInfo, preState, tag)); @@ -810,20 +810,29 @@ async function publishAPackage(pkg, access, twoFactorState, tag) {
- })); const {
+ const privatePromises = privatePackages.filter(privatePackage => { name,
+ const tagName = `${privatePackage.packageJson.name}@${privatePackage.packageJson.version}` version,
+ return !tagExists(tagName) - publishConfig
+ }).map(privatePackage => { + publishConfig,
+ return Promise.resolve({ + private: isPrivate
+ name: privatePackage.packageJson.name, } = pkg.packageJson;
+ newVersion: privatePackage.packageJson.version, const localAccess = publishConfig && publishConfig.access;
+ // Private packages do not need to be published - logger.info(`Publishing ${chalk__default['default'].cyan(`"${name}"`)} at ${chalk__default['default'].green(`"${version}"`)}`);
+ published: true - const publishDir = publishConfig && publishConfig.directory ? path.join(pkg.dir, publishConfig.directory) : pkg.dir;
+ }); - const publishConfirmation = await publish(name, {
+ }); - cwd: publishDir,
+ - access: localAccess || access,
- tag
- }, twoFactorState);
+ let published;
+ +
+ const publicPromises = unpublishedPackagesInfo.map(pkgInfo => { + if (!isPrivate) {
+ let pkg = packagesByName.get(pkgInfo.name); + logger.info(`Publishing ${chalk__default['default'].cyan(`"${name}"`)} at ${chalk__default['default'].green(`"${version}"`)}`);
+ return publishAPackage(pkg, access, twoFactorState, getReleaseTag(pkgInfo, preState, tag)); + const publishDir = publishConfig && publishConfig.directory ? path.join(pkg.dir, publishConfig.directory) : pkg.dir;
+ }) + const publishConfirmation = await publish(name, {
+ cwd: publishDir,
+ access: localAccess || access,
+ tag
+ }, twoFactorState);
+ published = publishConfirmation.published;
+ } else {
+ published = true;
+ }
+ +
+ const promises = [...privatePromises, ...publicPromises] return {
+ return Promise.all(promises); name,
newVersion: version,
- published: publishConfirmation.published
+ published
};
} }
async function publishAPackage(pkg, access, twoFactorState, tag) {
@@ -1357,3 +1374,8 @@ ${util.format("", err).replace(process.cwd(), "<cwd>")}
logger.error(err);
process.exit(1);
});
+
+async function tagExists(tagStr) {
+ const gitCmd = await spawn("git", ["tag", "-l", tagStr]);
+ return !!gitCmd.stdout.toString().trim();
+}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment