@scaleway/changesets-renovate 2.3.0 → 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.
@@ -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,7 +1,5 @@
1
1
  import { env } from "node:process";
2
2
  import { simpleGit } from "simple-git";
3
- import { readFile } from "node:fs/promises";
4
- import { glob } from "tinyglobby";
5
3
  import { parse } from "yaml";
6
4
  //#region src/git-utils.ts
7
5
  /**
@@ -45,30 +43,6 @@ async function getBumpsFromGit(files) {
45
43
  await Promise.all(promises);
46
44
  return bumps;
47
45
  }
48
- /**
49
- * Find packages affected by dependency changes
50
- * @param changedDeps Array of changed dependency names
51
- * @param packageJsonGlob Glob pattern to find package.json files
52
- * @returns Set of package names that are affected by the changes
53
- */
54
- async function findAffectedPackages(changedDeps, packageJsonGlob = "packages/*/package.json") {
55
- if (changedDeps.length === 0) return /* @__PURE__ */ new Set();
56
- const packageJsonPaths = await glob(packageJsonGlob, { expandDirectories: false });
57
- const affectedPackages = /* @__PURE__ */ new Set();
58
- for (const pkgJsonPath of packageJsonPaths) try {
59
- const json = JSON.parse(await readFile(pkgJsonPath, "utf8"));
60
- const deps = {
61
- ...json.dependencies,
62
- ...json.devDependencies,
63
- ...json.peerDependencies
64
- };
65
- for (const dep of changedDeps) if (deps[dep]) {
66
- affectedPackages.add(json.name);
67
- break;
68
- }
69
- } catch {}
70
- return affectedPackages;
71
- }
72
46
  async function handleChangesetFile(fileName) {
73
47
  if (!env["SKIP_COMMIT"]) {
74
48
  await simpleGit().add(fileName);
@@ -77,4 +51,4 @@ async function handleChangesetFile(fileName) {
77
51
  }
78
52
  }
79
53
  //#endregion
80
- 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,26 +1,60 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import "tinyglobby";
3
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
- function shouldIgnorePackage(packageName, ignoredPackages) {
6
- return ignoredPackages.some((ignoredPackage) => {
7
- if (ignoredPackage.endsWith("*")) return packageName.startsWith(ignoredPackage.slice(0, -1));
8
- return packageName === ignoredPackage;
9
- });
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;
10
11
  }
11
- async function getChangesetIgnoredPackages() {
12
- return JSON.parse(await readFile(".changeset/config.json", "utf8")).ignore ?? [];
12
+ async function getChangesetConfig() {
13
+ return read(process.cwd());
13
14
  }
14
15
  async function getPackagesNames(files) {
15
- const ignoredPackages = await getChangesetIgnoredPackages();
16
+ const config = await getChangesetConfig();
16
17
  const packages = [];
17
18
  const promises = files.map(async (file) => {
18
19
  const data = JSON.parse(await readFile(file, "utf8"));
19
- if (shouldIgnorePackage(data.name, ignoredPackages)) return;
20
+ if (shouldSkipPackage(data, {
21
+ ignore: config.ignore,
22
+ allowPrivatePackages: config.privatePackages.version
23
+ })) return;
20
24
  if (!data.workspaces && data.version) packages.push(data.name);
21
25
  });
22
26
  await Promise.all(promises);
23
27
  return packages;
24
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
+ }
25
59
  //#endregion
26
- 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.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Automatically create changesets for Renovate and pnpm catalogs",
5
5
  "keywords": [
6
6
  "catalogs",
@@ -35,6 +35,7 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
+ "@changesets/config": "3.1.4",
38
39
  "simple-git": "3.36.0",
39
40
  "tinyglobby": "0.2.16",
40
41
  "yaml": "2.8.4"