projen 0.101.16 → 0.101.18

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.
Files changed (148) hide show
  1. package/.jsii +239 -200
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +1 -1
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +3 -3
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-build.js +1 -1
  22. package/lib/cdk/jsii-docgen.js +1 -1
  23. package/lib/cdk/jsii-project.js +1 -1
  24. package/lib/cdk8s/auto-discover.js +2 -2
  25. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  26. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  27. package/lib/cdk8s/cdk8s-construct.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps.js +1 -1
  30. package/lib/cdk8s/integration-test.js +1 -1
  31. package/lib/cdktf/cdktf-construct.js +1 -1
  32. package/lib/circleci/circleci.js +1 -1
  33. package/lib/component.js +2 -2
  34. package/lib/dependencies.js +1 -1
  35. package/lib/dev-env.js +1 -1
  36. package/lib/docker-compose/docker-compose-service.js +1 -1
  37. package/lib/docker-compose/docker-compose.js +1 -1
  38. package/lib/file.js +1 -1
  39. package/lib/gitattributes.js +1 -1
  40. package/lib/github/actions-provider.js +1 -1
  41. package/lib/github/auto-approve.js +1 -1
  42. package/lib/github/auto-merge.js +1 -1
  43. package/lib/github/auto-queue.js +1 -1
  44. package/lib/github/dependabot.js +1 -1
  45. package/lib/github/dependency-review.js +1 -1
  46. package/lib/github/github-credentials.js +1 -1
  47. package/lib/github/github-project.js +1 -1
  48. package/lib/github/github.js +1 -1
  49. package/lib/github/merge-queue.js +1 -1
  50. package/lib/github/mergify.js +1 -1
  51. package/lib/github/pr-template.js +1 -1
  52. package/lib/github/pull-request-backport.js +1 -1
  53. package/lib/github/pull-request-lint.js +1 -1
  54. package/lib/github/stale.js +1 -1
  55. package/lib/github/task-workflow-job.js +1 -1
  56. package/lib/github/task-workflow.js +1 -1
  57. package/lib/github/workflow-actions.js +1 -1
  58. package/lib/github/workflow-jobs.js +1 -1
  59. package/lib/github/workflow-steps.js +1 -1
  60. package/lib/github/workflows.js +1 -1
  61. package/lib/gitlab/configuration.js +1 -1
  62. package/lib/gitlab/gitlab-configuration.js +1 -1
  63. package/lib/gitlab/nested-configuration.js +1 -1
  64. package/lib/gitpod.js +1 -1
  65. package/lib/ignore-file.js +1 -1
  66. package/lib/ini.js +1 -1
  67. package/lib/java/java-project.js +1 -1
  68. package/lib/java/junit.js +1 -1
  69. package/lib/java/maven-compile.js +1 -1
  70. package/lib/java/maven-packaging.js +1 -1
  71. package/lib/java/maven-sample.js +1 -1
  72. package/lib/java/pom.js +2 -2
  73. package/lib/java/projenrc.js +1 -1
  74. package/lib/javascript/biome/biome.js +1 -1
  75. package/lib/javascript/bundler.js +1 -1
  76. package/lib/javascript/eslint.js +1 -1
  77. package/lib/javascript/jest.js +4 -4
  78. package/lib/javascript/license-checker.js +1 -1
  79. package/lib/javascript/node-package.js +1 -1
  80. package/lib/javascript/node-project.js +1 -1
  81. package/lib/javascript/npm-config.js +1 -1
  82. package/lib/javascript/pnpm-workspace-config.js +2 -2
  83. package/lib/javascript/pnpm-workspace.js +1 -1
  84. package/lib/javascript/prettier.js +1 -1
  85. package/lib/javascript/projenrc.js +1 -1
  86. package/lib/javascript/typescript-config.js +2 -2
  87. package/lib/javascript/upgrade-dependencies.js +2 -2
  88. package/lib/javascript/yarnrc.js +1 -1
  89. package/lib/json-patch.js +1 -1
  90. package/lib/json.js +1 -1
  91. package/lib/license.js +1 -1
  92. package/lib/logger.js +1 -1
  93. package/lib/makefile.js +1 -1
  94. package/lib/object-file.js +1 -1
  95. package/lib/project-build.js +1 -1
  96. package/lib/project-tree.js +1 -1
  97. package/lib/project.js +1 -1
  98. package/lib/projects.js +1 -1
  99. package/lib/projenrc-json.js +1 -1
  100. package/lib/projenrc.js +1 -1
  101. package/lib/python/pip.js +1 -1
  102. package/lib/python/poetry.js +2 -2
  103. package/lib/python/projenrc.js +1 -1
  104. package/lib/python/pyproject-toml-file.js +1 -1
  105. package/lib/python/pytest-sample.js +1 -1
  106. package/lib/python/pytest.js +1 -1
  107. package/lib/python/python-project.js +1 -1
  108. package/lib/python/python-sample.js +1 -1
  109. package/lib/python/requirements-file.js +1 -1
  110. package/lib/python/setuppy.js +1 -1
  111. package/lib/python/setuptools.js +1 -1
  112. package/lib/python/uv-config.d.ts +86 -19
  113. package/lib/python/uv-config.js +12 -5
  114. package/lib/python/uv.js +1 -1
  115. package/lib/python/venv.js +1 -1
  116. package/lib/readme.js +1 -1
  117. package/lib/release/publisher.js +1 -1
  118. package/lib/release/release-trigger.js +1 -1
  119. package/lib/release/release.js +1 -1
  120. package/lib/renovatebot.js +1 -1
  121. package/lib/run-task.cjs +4 -4
  122. package/lib/sample-file.js +2 -2
  123. package/lib/script-runner.js +1 -1
  124. package/lib/source-code.js +1 -1
  125. package/lib/task-shell.js +1 -1
  126. package/lib/task.js +1 -1
  127. package/lib/tasks.js +1 -1
  128. package/lib/testing.js +1 -1
  129. package/lib/textfile.js +1 -1
  130. package/lib/toml.js +1 -1
  131. package/lib/typescript/projenrc-ts.js +1 -1
  132. package/lib/typescript/projenrc.js +1 -1
  133. package/lib/typescript/typescript-runner.js +1 -1
  134. package/lib/typescript/typescript-typedoc.js +1 -1
  135. package/lib/typescript/typescript.js +5 -5
  136. package/lib/version.js +2 -2
  137. package/lib/vscode/devcontainer.js +1 -1
  138. package/lib/vscode/extensions.js +1 -1
  139. package/lib/vscode/launch-config.js +1 -1
  140. package/lib/vscode/settings.js +1 -1
  141. package/lib/vscode/vscode.js +1 -1
  142. package/lib/web/next.js +3 -3
  143. package/lib/web/postcss.js +1 -1
  144. package/lib/web/react.js +3 -3
  145. package/lib/web/tailwind.js +1 -1
  146. package/lib/xmlfile.js +1 -1
  147. package/lib/yaml.js +1 -1
  148. package/package.json +4 -4
@@ -7,7 +7,7 @@ const __1 = require("..");
7
7
  * Python test code sample.
8
8
  */
9
9
  class PytestSample extends __1.Component {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PytestSample", version: "0.101.16" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PytestSample", version: "0.101.18" };
11
11
  constructor(project, options) {
12
12
  super(project);
13
13
  new __1.SampleDir(project, options.testdir, {
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const component_1 = require("../component");
6
6
  const dependencies_1 = require("../dependencies");
7
7
  class Pytest extends component_1.Component {
8
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.Pytest", version: "0.101.16" };
8
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.Pytest", version: "0.101.18" };
9
9
  testMatch;
10
10
  constructor(project, options = {}) {
11
11
  super(project);
@@ -23,7 +23,7 @@ const PYTHON_PROJECT_NAME_REGEX = /^[A-Za-z0-9-_\.]+$/;
23
23
  * @pjid python
24
24
  */
25
25
  class PythonProject extends github_1.GitHubProject {
26
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PythonProject", version: "0.101.16" };
26
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PythonProject", version: "0.101.18" };
27
27
  /**
28
28
  * Python module name (the project name, with any hyphens or periods replaced
29
29
  * with underscores).
@@ -8,7 +8,7 @@ const sample_file_1 = require("../sample-file");
8
8
  * Python code sample.
9
9
  */
10
10
  class PythonSample extends component_1.Component {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PythonSample", version: "0.101.16" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.PythonSample", version: "0.101.18" };
12
12
  constructor(project, options) {
13
13
  super(project);
14
14
  new sample_file_1.SampleDir(project, options.dir, {
@@ -11,7 +11,7 @@ const semver_1 = require("../util/semver");
11
11
  * @see https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format
12
12
  */
13
13
  class RequirementsFile extends file_1.FileBase {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.RequirementsFile", version: "0.101.16" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.RequirementsFile", version: "0.101.18" };
15
15
  packages = new Array();
16
16
  packageProvider;
17
17
  constructor(project, filePath, options) {
@@ -7,7 +7,7 @@ const file_1 = require("../file");
7
7
  * Python packaging script where package metadata can be placed.
8
8
  */
9
9
  class SetupPy extends file_1.FileBase {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.SetupPy", version: "0.101.16" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.SetupPy", version: "0.101.18" };
11
11
  setupConfig;
12
12
  constructor(project, options) {
13
13
  super(project, "setup.py");
@@ -9,7 +9,7 @@ const dependencies_1 = require("../dependencies");
9
9
  * Manages packaging through setuptools with a setup.py script.
10
10
  */
11
11
  class Setuptools extends component_1.Component {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.Setuptools", version: "0.101.16" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.python.Setuptools", version: "0.101.18" };
13
13
  publishTask;
14
14
  /**
15
15
  * A task that uploads the package to the Test PyPI repository.
@@ -244,11 +244,30 @@ export interface UvConfiguration {
244
244
  */
245
245
  readonly environments?: string[];
246
246
  /**
247
- * Package names to exclude, e.g., `werkzeug`, `numpy`.
247
+ * Dependencies to exclude when resolving the project's dependencies.
248
+ *
249
+ * Excludes are used to prevent a package from being selected during resolution,
250
+ * regardless of whether it's requested by any other package. When a package is excluded,
251
+ * it will be omitted from the dependency list entirely.
252
+ *
253
+ * Including a package as an exclusion will prevent it from being installed, even if
254
+ * it's requested by transitive dependencies. This can be useful for removing optional
255
+ * dependencies or working around packages with broken dependencies.
256
+ *
257
+ * Exclusions can be limited to the dependencies declared by a specific package version by
258
+ * using a table with `package` and `dependencies`. The `package` table identifies the package
259
+ * whose dependencies will be excluded by `name` and, optionally, `version`. If `version` is
260
+ * omitted, the exclusions apply to all versions of that package. A version-specific entry
261
+ * takes precedence over an all-versions entry.
262
+ *
263
+ * !!! note
264
+ * In `uv lock`, `uv sync`, and `uv run`, uv will only read `exclude-dependencies` from
265
+ * the `pyproject.toml` at the workspace root, and will ignore any declarations in other
266
+ * workspace members or `uv.toml` files.
248
267
  *
249
268
  * @schema UvConfiguration#exclude-dependencies
250
269
  */
251
- readonly excludeDependencies?: string[];
270
+ readonly excludeDependencies?: any[];
252
271
  /**
253
272
  * Limit candidate packages to those that were uploaded prior to the given date.
254
273
  *
@@ -263,9 +282,11 @@ export interface UvConfiguration {
263
282
  * number of seconds assuming that a day is 24 hours (e.g., DST transitions are ignored).
264
283
  * Calendar units such as months and years are not allowed.
265
284
  *
285
+ * Set to `false` to disable `exclude-newer`.
286
+ *
266
287
  * @schema UvConfiguration#exclude-newer
267
288
  */
268
- readonly excludeNewer?: string;
289
+ readonly excludeNewer?: ExcludeNewerOverride;
269
290
  /**
270
291
  * Limit candidate packages for specific packages to those that were uploaded prior to the
271
292
  * given date.
@@ -486,9 +507,9 @@ export interface UvConfiguration {
486
507
  /**
487
508
  * Don't build source distributions.
488
509
  *
489
- * When enabled, resolving will not run arbitrary Python code. The cached wheels of
490
- * already-built source distributions will be reused, but operations that require building
491
- * distributions will exit with an error.
510
+ * When enabled, uv will reuse cached wheels from previously built source distributions, but
511
+ * operations that require building a source distribution will exit with an error. uv may
512
+ * still build editable requirements, and their build backends may run arbitrary Python code.
492
513
  *
493
514
  * @schema UvConfiguration#no-build
494
515
  */
@@ -558,11 +579,38 @@ export interface UvConfiguration {
558
579
  */
559
580
  readonly offline?: boolean;
560
581
  /**
561
- * PEP 508-style requirements, e.g., `ruff==0.5.0`, or `ruff @ https://...`.
582
+ * Overrides to apply when resolving the project's dependencies.
583
+ *
584
+ * Overrides are used to force selection of a specific version of a package, regardless of the
585
+ * version requested by any other package, and regardless of whether choosing that version
586
+ * would typically constitute an invalid resolution.
587
+ *
588
+ * While constraints are _additive_, in that they're combined with the requirements of the
589
+ * constituent packages, overrides are _absolute_, in that they completely replace the
590
+ * requirements of any constituent packages.
591
+ *
592
+ * Including a package as an override will _not_ trigger installation of the package on its
593
+ * own; instead, the package must be requested elsewhere in the project's first-party or
594
+ * transitive dependencies.
595
+ *
596
+ * Overrides can be limited to the dependencies declared by a specific package version by
597
+ * using a table with `package` and `dependencies`. The `package` table identifies the package
598
+ * whose dependencies will be overridden by `name` and, optionally, `version`. If `version` is
599
+ * omitted, the overrides apply to all versions of that package. Requirements in `dependencies`
600
+ * replace dependencies with the same name and add dependencies that are not declared by the
601
+ * package. Dependencies not listed in `dependencies` are left unchanged.
602
+ *
603
+ * Scoped overrides currently support registry version specifiers only. Direct URL and path
604
+ * sources, including Git sources, and explicit indexes are not supported.
605
+ *
606
+ * !!! note
607
+ * In `uv lock`, `uv sync`, and `uv run`, uv will only read `override-dependencies` from
608
+ * the `pyproject.toml` at the workspace root, and will ignore any declarations in other
609
+ * workspace members or `uv.toml` files.
562
610
  *
563
611
  * @schema UvConfiguration#override-dependencies
564
612
  */
565
- readonly overrideDependencies?: string[];
613
+ readonly overrideDependencies?: any[];
566
614
  /**
567
615
  * Whether the project should be considered a Python package, or a non-package ("virtual")
568
616
  * project.
@@ -593,11 +641,21 @@ export interface UvConfiguration {
593
641
  */
594
642
  readonly prerelease?: PrereleaseMode;
595
643
  /**
596
- * Whether to enable experimental, preview features.
644
+ * Whether to enable all experimental, preview features.
645
+ *
646
+ * Use `preview-features` instead.
597
647
  *
598
648
  * @schema UvConfiguration#preview
599
649
  */
600
650
  readonly preview?: boolean;
651
+ /**
652
+ * Whether to enable specific or all experimental preview features.
653
+ *
654
+ * Unknown feature names are ignored with a warning.
655
+ *
656
+ * @schema UvConfiguration#preview-features
657
+ */
658
+ readonly previewFeatures?: any;
601
659
  /**
602
660
  * The URL for publishing packages to the Python package index (by default:
603
661
  * <https://upload.pypi.org/legacy/>).
@@ -1176,8 +1234,8 @@ export interface Index {
1176
1234
  */
1177
1235
  readonly format?: IndexFormat;
1178
1236
  /**
1179
- * Status codes that uv should ignore when deciding whether
1180
- * to continue searching in the next index after a failure.
1237
+ * Status codes that uv should ignore when deciding whether to continue resolution after a
1238
+ * request to this index fails.
1181
1239
  *
1182
1240
  * ```toml
1183
1241
  * [[tool.uv.index]]
@@ -1458,9 +1516,11 @@ export interface PipOptions {
1458
1516
  * number of seconds assuming that a day is 24 hours (e.g., DST transitions are ignored).
1459
1517
  * Calendar units such as months and years are not allowed.
1460
1518
  *
1519
+ * Set to `false` to disable `exclude-newer`.
1520
+ *
1461
1521
  * @schema PipOptions#exclude-newer
1462
1522
  */
1463
- readonly excludeNewer?: string;
1523
+ readonly excludeNewer?: ExcludeNewerOverride;
1464
1524
  /**
1465
1525
  * Limit candidate packages for specific packages to those that were uploaded prior to the given date.
1466
1526
  *
@@ -1637,9 +1697,9 @@ export interface PipOptions {
1637
1697
  /**
1638
1698
  * Don't build source distributions.
1639
1699
  *
1640
- * When enabled, resolving will not run arbitrary Python code. The cached wheels of
1641
- * already-built source distributions will be reused, but operations that require building
1642
- * distributions will exit with an error.
1700
+ * When enabled, uv will reuse cached wheels from previously built source distributions, but
1701
+ * operations that require building a source distribution will exit with an error. uv may
1702
+ * still build editable requirements, and their build backends may run arbitrary Python code.
1643
1703
  *
1644
1704
  * Alias for `--only-binary :all:`.
1645
1705
  *
@@ -1733,9 +1793,10 @@ export interface PipOptions {
1733
1793
  /**
1734
1794
  * Only use pre-built wheels; don't build source distributions.
1735
1795
  *
1736
- * When enabled, resolving will not run code from the given packages. The cached wheels of already-built
1737
- * source distributions will be reused, but operations that require building distributions will
1738
- * exit with an error.
1796
+ * When enabled, uv will reuse cached wheels from previously built source distributions, but
1797
+ * operations that require building a source distribution for the given packages will exit
1798
+ * with an error. uv may still build editable requirements, and their build backends may run
1799
+ * arbitrary Python code.
1739
1800
  *
1740
1801
  * Multiple packages may be provided. Disable binaries for all packages with `:all:`.
1741
1802
  * Clear previously specified packages with `:none:`.
@@ -2007,6 +2068,8 @@ export declare enum TorchMode {
2007
2068
  AUTO = "auto",
2008
2069
  /** Use the CPU-only PyTorch index. (cpu) */
2009
2070
  CPU = "cpu",
2071
+ /** Use the PyTorch index for CUDA 13.2. (cu132) */
2072
+ CU132 = "cu132",
2010
2073
  /** Use the PyTorch index for CUDA 13.0. (cu130) */
2011
2074
  CU130 = "cu130",
2012
2075
  /** Use the PyTorch index for CUDA 12.9. (cu129) */
@@ -2373,8 +2436,12 @@ export declare enum TargetTriple {
2373
2436
  By default uses Android API level 24, but respects
2374
2437
  the `ANDROID_API_LEVEL` environment variable if set. (x86_64-linux-android) */
2375
2438
  X86_UNDERSCORE_64_HYPHEN_LINUX_HYPHEN_ANDROID = "x86_64-linux-android",
2376
- /** A wasm32 target using the Pyodide 2024 platform. Meant for use with Python 3.12. (wasm32-pyodide2024) */
2439
+ /** A wasm32 target using the Pyodide 2024 platform. Meant for use with Python 3.12.
2440
+ See <https://pyodide.org/en/stable/development/abi/312.html> (wasm32-pyodide2024) */
2377
2441
  WASM32_HYPHEN_PYODIDE2024 = "wasm32-pyodide2024",
2442
+ /** A wasm32 target using the Pyodide 2025 platform. Meant for use with Python 3.13.
2443
+ See <https://pyodide.org/en/stable/development/abi/313.html> (wasm32-pyodide2025) */
2444
+ WASM32_HYPHEN_PYODIDE2025 = "wasm32-pyodide2025",
2378
2445
  /** An ARM64 target for iOS device
2379
2446
 
2380
2447
  By default, iOS 13.0 is used, but respects the `IPHONEOS_DEPLOYMENT_TARGET`