@vaharoni/devops 1.2.6 → 1.2.7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-pyproject-toml.d.ts","sourceRoot":"","sources":["../../../src/libs/discovery/process-pyproject-toml.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process-pyproject-toml.d.ts","sourceRoot":"","sources":["../../../src/libs/discovery/process-pyproject-toml.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAUxE,wBAAgB,gBAAgB,gCAkD/B"}
|
|
@@ -1,40 +1,49 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import fs from "fs";
|
|
2
3
|
import { globSync } from "glob";
|
|
3
4
|
import { packageFilePythonSchema } from "../../types";
|
|
4
5
|
import { PackageDataProcessor } from "./process-common";
|
|
5
6
|
import TOML from "@iarna/toml";
|
|
6
7
|
import path from "path";
|
|
7
8
|
const rootPath = process.env.MONOREPO_ROOT || process.cwd();
|
|
9
|
+
const rootPyprojectPath = path.join(rootPath, "pyproject.toml");
|
|
8
10
|
const _workspaces = {};
|
|
9
11
|
let _workspacesLoaded = false;
|
|
10
12
|
export function pythonWorkspaces() {
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
pathList: allPyprojectTomls,
|
|
16
|
-
zodSchema: packageFilePythonSchema,
|
|
17
|
-
fileParser: TOML.parse,
|
|
18
|
-
nameExtractor: (data) => data.project.name,
|
|
19
|
-
});
|
|
20
|
-
processor
|
|
21
|
-
.convert((data) => {
|
|
22
|
-
const deployment = data.tool?.devops?.deployment;
|
|
23
|
-
const scripts = data.tool?.devops?.scripts;
|
|
24
|
-
const dependencyNames = data.project.dependencies ?? [];
|
|
25
|
-
return {
|
|
26
|
-
scripts,
|
|
27
|
-
deployment,
|
|
28
|
-
dependencyNames: processor.filterDependencies(dependencyNames),
|
|
29
|
-
};
|
|
30
|
-
})
|
|
31
|
-
.forEach((pkgData) => {
|
|
32
|
-
_workspaces[pkgData.name] = pkgData;
|
|
33
|
-
});
|
|
34
|
-
console.warn(chalk.yellow(
|
|
35
|
-
// prettier-ignore
|
|
36
|
-
`Python workspace discovery initialized. Workspaces found: ${Object.keys(_workspaces).join(", ")}`));
|
|
13
|
+
if (_workspacesLoaded)
|
|
14
|
+
return _workspaces;
|
|
15
|
+
// No root pyproject.toml means no Python workspaces - skip discovery
|
|
16
|
+
if (!fs.existsSync(rootPyprojectPath)) {
|
|
37
17
|
_workspacesLoaded = true;
|
|
18
|
+
return _workspaces;
|
|
38
19
|
}
|
|
20
|
+
const rootPyproject = TOML.parse(fs.readFileSync(rootPyprojectPath, "utf8"));
|
|
21
|
+
const workspaceMembers = rootPyproject?.tool?.uv?.workspace?.members ?? [];
|
|
22
|
+
const allPyprojectTomls = workspaceMembers.flatMap((member) => globSync(path.join(rootPath, member, "pyproject.toml")));
|
|
23
|
+
const processor = new PackageDataProcessor({
|
|
24
|
+
language: "python",
|
|
25
|
+
pathList: allPyprojectTomls,
|
|
26
|
+
zodSchema: packageFilePythonSchema,
|
|
27
|
+
fileParser: TOML.parse,
|
|
28
|
+
nameExtractor: (data) => data.project.name,
|
|
29
|
+
});
|
|
30
|
+
processor
|
|
31
|
+
.convert((data) => {
|
|
32
|
+
const deployment = data.tool?.devops?.deployment;
|
|
33
|
+
const scripts = data.tool?.devops?.scripts;
|
|
34
|
+
const dependencyNames = data.project.dependencies ?? [];
|
|
35
|
+
return {
|
|
36
|
+
scripts,
|
|
37
|
+
deployment,
|
|
38
|
+
dependencyNames: processor.filterDependencies(dependencyNames),
|
|
39
|
+
};
|
|
40
|
+
})
|
|
41
|
+
.forEach((pkgData) => {
|
|
42
|
+
_workspaces[pkgData.name] = pkgData;
|
|
43
|
+
});
|
|
44
|
+
console.warn(chalk.yellow(
|
|
45
|
+
// prettier-ignore
|
|
46
|
+
`Python workspace discovery initialized. Workspaces found: ${Object.keys(_workspaces).join(", ")}`));
|
|
47
|
+
_workspacesLoaded = true;
|
|
39
48
|
return _workspaces;
|
|
40
49
|
}
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import fs from "fs";
|
|
2
3
|
import { globSync } from "glob";
|
|
3
4
|
import { packageFilePythonSchema, type PackageData } from "../../types";
|
|
4
5
|
import { PackageDataProcessor } from "./process-common";
|
|
@@ -6,44 +7,58 @@ import TOML from "@iarna/toml";
|
|
|
6
7
|
import path from "path";
|
|
7
8
|
|
|
8
9
|
const rootPath = process.env.MONOREPO_ROOT || process.cwd();
|
|
10
|
+
const rootPyprojectPath = path.join(rootPath, "pyproject.toml");
|
|
9
11
|
const _workspaces: Record<string, PackageData> = {};
|
|
10
12
|
let _workspacesLoaded = false;
|
|
11
13
|
|
|
12
14
|
export function pythonWorkspaces() {
|
|
13
|
-
if (
|
|
14
|
-
const allPyprojectTomls = globSync(
|
|
15
|
-
path.join(rootPath, "**/*/pyproject.toml")
|
|
16
|
-
);
|
|
17
|
-
const processor = new PackageDataProcessor({
|
|
18
|
-
language: "python",
|
|
19
|
-
pathList: allPyprojectTomls,
|
|
20
|
-
zodSchema: packageFilePythonSchema,
|
|
21
|
-
fileParser: TOML.parse,
|
|
22
|
-
nameExtractor: (data) => data.project.name,
|
|
23
|
-
});
|
|
15
|
+
if (_workspacesLoaded) return _workspaces;
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const deployment = data.tool?.devops?.deployment;
|
|
28
|
-
const scripts = data.tool?.devops?.scripts;
|
|
29
|
-
const dependencyNames = data.project.dependencies ?? [];
|
|
30
|
-
return {
|
|
31
|
-
scripts,
|
|
32
|
-
deployment,
|
|
33
|
-
dependencyNames: processor.filterDependencies(dependencyNames),
|
|
34
|
-
};
|
|
35
|
-
})
|
|
36
|
-
.forEach((pkgData) => {
|
|
37
|
-
_workspaces[pkgData.name] = pkgData;
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
console.warn(
|
|
41
|
-
chalk.yellow(
|
|
42
|
-
// prettier-ignore
|
|
43
|
-
`Python workspace discovery initialized. Workspaces found: ${Object.keys(_workspaces).join(", ")}`
|
|
44
|
-
)
|
|
45
|
-
);
|
|
17
|
+
// No root pyproject.toml means no Python workspaces - skip discovery
|
|
18
|
+
if (!fs.existsSync(rootPyprojectPath)) {
|
|
46
19
|
_workspacesLoaded = true;
|
|
20
|
+
return _workspaces;
|
|
47
21
|
}
|
|
22
|
+
|
|
23
|
+
const rootPyproject = TOML.parse(
|
|
24
|
+
fs.readFileSync(rootPyprojectPath, "utf8")
|
|
25
|
+
) as { tool?: { uv?: { workspace?: { members?: string[] } } } };
|
|
26
|
+
const workspaceMembers: string[] =
|
|
27
|
+
rootPyproject?.tool?.uv?.workspace?.members ?? [];
|
|
28
|
+
|
|
29
|
+
const allPyprojectTomls = workspaceMembers.flatMap((member) =>
|
|
30
|
+
globSync(path.join(rootPath, member, "pyproject.toml"))
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const processor = new PackageDataProcessor({
|
|
34
|
+
language: "python",
|
|
35
|
+
pathList: allPyprojectTomls,
|
|
36
|
+
zodSchema: packageFilePythonSchema,
|
|
37
|
+
fileParser: TOML.parse,
|
|
38
|
+
nameExtractor: (data) => data.project.name,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
processor
|
|
42
|
+
.convert((data) => {
|
|
43
|
+
const deployment = data.tool?.devops?.deployment;
|
|
44
|
+
const scripts = data.tool?.devops?.scripts;
|
|
45
|
+
const dependencyNames = data.project.dependencies ?? [];
|
|
46
|
+
return {
|
|
47
|
+
scripts,
|
|
48
|
+
deployment,
|
|
49
|
+
dependencyNames: processor.filterDependencies(dependencyNames),
|
|
50
|
+
};
|
|
51
|
+
})
|
|
52
|
+
.forEach((pkgData) => {
|
|
53
|
+
_workspaces[pkgData.name] = pkgData;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
console.warn(
|
|
57
|
+
chalk.yellow(
|
|
58
|
+
// prettier-ignore
|
|
59
|
+
`Python workspace discovery initialized. Workspaces found: ${Object.keys(_workspaces).join(", ")}`
|
|
60
|
+
)
|
|
61
|
+
);
|
|
62
|
+
_workspacesLoaded = true;
|
|
48
63
|
return _workspaces;
|
|
49
64
|
}
|