@scaleway/changesets-renovate 2.2.6 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -7,7 +7,7 @@ import { simpleGit } from "simple-git";
7
7
  async function run() {
8
8
  const branch = await simpleGit().branch();
9
9
  const branchPrefix = env["BRANCH_PREFIX"] ?? "renovate/";
10
- console.log("Detected branch:", branch);
10
+ console.log("Detected branch:", branch.current);
11
11
  if (!(branch.current.startsWith(branchPrefix) || env["SKIP_BRANCH_CHECK"])) {
12
12
  console.log("Not a renovate branch, skipping");
13
13
  return;
@@ -14,11 +14,4 @@ export declare function loadCatalogFromGit(revision?: string, filePath?: string)
14
14
  */
15
15
  export declare function findChangedDependenciesFromGit(oldRevision: string, newRevision?: string, filePath?: string): Promise<Map<string, string>>;
16
16
  export declare function getBumpsFromGit(files: string[]): Promise<Map<string, string>>;
17
- /**
18
- * Find packages affected by dependency changes
19
- * @param changedDeps Array of changed dependency names
20
- * @param packageJsonGlob Glob pattern to find package.json files
21
- * @returns Set of package names that are affected by the changes
22
- */
23
- export declare function findAffectedPackages(changedDeps: string[], packageJsonGlob?: string): Promise<Set<string>>;
24
17
  export declare function handleChangesetFile(fileName: string): Promise<void>;
package/dist/git-utils.js CHANGED
@@ -1,10 +1,7 @@
1
1
  import { env } from "node:process";
2
2
  import { simpleGit } from "simple-git";
3
- import { readFile } from "node:fs/promises";
4
- import fg from "fast-glob";
5
- import { load } from "js-yaml";
3
+ import { parse } from "yaml";
6
4
  //#region src/git-utils.ts
7
- var { globSync } = fg;
8
5
  /**
9
6
  * Load catalog from pnpm workspace file at specific git revision
10
7
  * @param revision Git revision to load file from (default: HEAD)
@@ -14,7 +11,7 @@ var { globSync } = fg;
14
11
  async function loadCatalogFromGit(revision = "HEAD", filePath = "pnpm-workspace.yaml") {
15
12
  try {
16
13
  if (!revision) return {};
17
- return load(await simpleGit().show([`${revision}:${filePath}`]))?.catalog ?? {};
14
+ return parse(await simpleGit().show([`${revision}:${filePath}`]))?.catalog ?? {};
18
15
  } catch {
19
16
  return {};
20
17
  }
@@ -46,30 +43,6 @@ async function getBumpsFromGit(files) {
46
43
  await Promise.all(promises);
47
44
  return bumps;
48
45
  }
49
- /**
50
- * Find packages affected by dependency changes
51
- * @param changedDeps Array of changed dependency names
52
- * @param packageJsonGlob Glob pattern to find package.json files
53
- * @returns Set of package names that are affected by the changes
54
- */
55
- async function findAffectedPackages(changedDeps, packageJsonGlob = "packages/*/package.json") {
56
- if (changedDeps.length === 0) return /* @__PURE__ */ new Set();
57
- const packageJsonPaths = globSync(packageJsonGlob);
58
- const affectedPackages = /* @__PURE__ */ new Set();
59
- for (const pkgJsonPath of packageJsonPaths) try {
60
- const json = JSON.parse(await readFile(pkgJsonPath, "utf8"));
61
- const deps = {
62
- ...json.dependencies,
63
- ...json.devDependencies,
64
- ...json.peerDependencies
65
- };
66
- for (const dep of changedDeps) if (deps[dep]) {
67
- affectedPackages.add(json.name);
68
- break;
69
- }
70
- } catch {}
71
- return affectedPackages;
72
- }
73
46
  async function handleChangesetFile(fileName) {
74
47
  if (!env["SKIP_COMMIT"]) {
75
48
  await simpleGit().add(fileName);
@@ -78,4 +51,4 @@ async function handleChangesetFile(fileName) {
78
51
  }
79
52
  }
80
53
  //#endregion
81
- export { findAffectedPackages, findChangedDependenciesFromGit, getBumpsFromGit, handleChangesetFile };
54
+ export { findChangedDependenciesFromGit, getBumpsFromGit, handleChangesetFile };
@@ -1,7 +1,8 @@
1
1
  import { createChangeset } from "./createChangeset.js";
2
+ import { findChangedDependenciesFromGit, handleChangesetFile } from "./git-utils.js";
3
+ import { findAffectedPackages } from "./utils.js";
2
4
  import { simpleGit } from "simple-git";
3
5
  //#region src/handle-catalog.ts
4
- var { findChangedDependenciesFromGit, findAffectedPackages, handleChangesetFile } = await import("./git-utils.js");
5
6
  /**
6
7
  * Handle pnpm workspace catalog changes
7
8
  */
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare function shouldIgnorePackage(packageName: string, ignoredPackages: string[]): boolean;
2
- export declare function getChangesetIgnoredPackages(): Promise<string[]>;
1
+ import { read } from '@changesets/config';
2
+ export declare function getChangesetConfig(): ReturnType<typeof read>;
3
3
  export declare function getPackagesNames(files: string[]): Promise<string[]>;
4
4
  /**
5
5
  * Load catalog from a YAML file
package/dist/utils.js CHANGED
@@ -1,27 +1,60 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import fg from "fast-glob";
3
- import "js-yaml";
2
+ import "yaml";
3
+ import path from "node:path";
4
+ import { read } from "@changesets/config";
5
+ import { glob } from "tinyglobby";
4
6
  //#region src/utils.ts
5
- var { globSync } = fg;
6
- function shouldIgnorePackage(packageName, ignoredPackages) {
7
- return ignoredPackages.some((ignoredPackage) => {
8
- if (ignoredPackage.endsWith("*")) return packageName.startsWith(ignoredPackage.slice(0, -1));
9
- return packageName === ignoredPackage;
10
- });
7
+ function shouldSkipPackage(packageJson, { ignore, allowPrivatePackages }) {
8
+ if (ignore?.includes(packageJson.name)) return true;
9
+ if (packageJson.private && !allowPrivatePackages) return true;
10
+ return !packageJson.version;
11
11
  }
12
- async function getChangesetIgnoredPackages() {
13
- return JSON.parse(await readFile(".changeset/config.json", "utf8")).ignore ?? [];
12
+ async function getChangesetConfig() {
13
+ return read(process.cwd());
14
14
  }
15
15
  async function getPackagesNames(files) {
16
- const ignoredPackages = await getChangesetIgnoredPackages();
16
+ const config = await getChangesetConfig();
17
17
  const packages = [];
18
18
  const promises = files.map(async (file) => {
19
19
  const data = JSON.parse(await readFile(file, "utf8"));
20
- if (shouldIgnorePackage(data.name, ignoredPackages)) return;
20
+ if (shouldSkipPackage(data, {
21
+ ignore: config.ignore,
22
+ allowPrivatePackages: config.privatePackages.version
23
+ })) return;
21
24
  if (!data.workspaces && data.version) packages.push(data.name);
22
25
  });
23
26
  await Promise.all(promises);
24
27
  return packages;
25
28
  }
29
+ /**
30
+ * Find packages affected by dependency changes
31
+ * @param changedDeps Array of changed dependency names
32
+ * @param packageJsonGlob Glob pattern to find package.json files
33
+ * @returns Set of package names that are affected by the changes
34
+ */
35
+ async function findAffectedPackages(changedDeps, packageJsonGlob = "packages/*/package.json") {
36
+ if (changedDeps.length === 0) return /* @__PURE__ */ new Set();
37
+ const config = await getChangesetConfig();
38
+ const packageJsonPaths = await glob(packageJsonGlob, { expandDirectories: false });
39
+ const affectedPackages = /* @__PURE__ */ new Set();
40
+ for (const pkgJsonPath of packageJsonPaths) try {
41
+ const json = JSON.parse(await readFile(pkgJsonPath, "utf8"));
42
+ const deps = {
43
+ ...json.dependencies,
44
+ ...json.devDependencies,
45
+ ...json.peerDependencies
46
+ };
47
+ if (shouldSkipPackage(json, {
48
+ ignore: config.ignore,
49
+ allowPrivatePackages: config.privatePackages.version
50
+ })) break;
51
+ for (const dep of changedDeps) if (deps[dep]) {
52
+ const dirName = path.basename(path.dirname(pkgJsonPath));
53
+ affectedPackages.add(dirName);
54
+ break;
55
+ }
56
+ } catch {}
57
+ return affectedPackages;
58
+ }
26
59
  //#endregion
27
- export { getPackagesNames };
60
+ export { findAffectedPackages, getPackagesNames };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/changesets-renovate",
3
- "version": "2.2.6",
3
+ "version": "2.4.0",
4
4
  "description": "Automatically create changesets for Renovate and pnpm catalogs",
5
5
  "keywords": [
6
6
  "catalogs",
@@ -35,10 +35,10 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@types/js-yaml": "4.0.9",
39
- "fast-glob": "3.3.3",
40
- "js-yaml": "4.1.1",
41
- "simple-git": "3.36.0"
38
+ "@changesets/config": "3.1.4",
39
+ "simple-git": "3.36.0",
40
+ "tinyglobby": "0.2.16",
41
+ "yaml": "2.8.4"
42
42
  },
43
43
  "engines": {
44
44
  "node": ">=20.x"