@styx-api/core 0.5.1 → 0.5.2

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/index.cjs CHANGED
@@ -4510,14 +4510,22 @@ function generateRootInitPy() {
4510
4510
  }
4511
4511
  /**
4512
4512
  * Root `pyproject.toml`: a metapackage depending on `styxkit[all]` (the runner
4513
- * stack it re-exports) plus each per-suite distribution. `packages` lists only
4514
- * the metapackage's own module so setuptools ships the styxkit re-export without
4515
- * sweeping the sibling suite directories into this distribution. The module is
4516
- * the `<project>/` namespace package the suites nest into, so installing the
4517
- * metapackage makes `<project>.use_docker()` reachable alongside the suites'
4518
- * `from <project> import <pkg>`. `moduleDir` is the on-disk source directory; it
4519
- * differs from the import `moduleName` only when a suite is named after the
4520
- * project, in which case a `package-dir` remap keeps the import name intact.
4513
+ * stack it re-exports) plus each per-suite distribution, pinned to this exact
4514
+ * project version (`niwrap_fsl==1.2.3`). The suites all ride the project version
4515
+ * and ship in lockstep, so an exact pin keeps `pip install niwrap==X` consistent:
4516
+ * during the post-release index-propagation window (or any momentary registry
4517
+ * inconsistency) pip errors cleanly instead of silently grafting an older suite
4518
+ * whose layout no longer matches the metapackage. Mirrors the way the CLI pins
4519
+ * `@styx-api/core` exactly.
4520
+ *
4521
+ * `packages` lists only the metapackage's own module so setuptools ships the
4522
+ * styxkit re-export without sweeping the sibling suite directories into this
4523
+ * distribution. The module is the `<project>/` namespace package the suites nest
4524
+ * into, so installing the metapackage makes `<project>.use_docker()` reachable
4525
+ * alongside the suites' `from <project> import <pkg>`. `moduleDir` is the on-disk
4526
+ * source directory; it differs from the import `moduleName` only when a suite is
4527
+ * named after the project, in which case a `package-dir` remap keeps the import
4528
+ * name intact.
4521
4529
  */
4522
4530
  function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4523
4531
  const cb = new CodeBuilder(" ");
@@ -4531,7 +4539,8 @@ function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4531
4539
  cb.line(`requires-python = "${REQUIRES_PYTHON}"`);
4532
4540
  cb.line("dependencies = [");
4533
4541
  for (const dep of PYTHON_RUNNER_DEPS) cb.line(` "${dep}",`);
4534
- for (const dist of distNames) cb.line(` "${tomlStr(dist)}",`);
4542
+ const suitePin = tomlStr(proj.version ?? "0.0.0");
4543
+ for (const dist of distNames) cb.line(` "${tomlStr(dist)}==${suitePin}",`);
4535
4544
  cb.line("]");
4536
4545
  cb.blank();
4537
4546
  cb.line("[tool.setuptools]");
package/dist/index.mjs CHANGED
@@ -4509,14 +4509,22 @@ function generateRootInitPy() {
4509
4509
  }
4510
4510
  /**
4511
4511
  * Root `pyproject.toml`: a metapackage depending on `styxkit[all]` (the runner
4512
- * stack it re-exports) plus each per-suite distribution. `packages` lists only
4513
- * the metapackage's own module so setuptools ships the styxkit re-export without
4514
- * sweeping the sibling suite directories into this distribution. The module is
4515
- * the `<project>/` namespace package the suites nest into, so installing the
4516
- * metapackage makes `<project>.use_docker()` reachable alongside the suites'
4517
- * `from <project> import <pkg>`. `moduleDir` is the on-disk source directory; it
4518
- * differs from the import `moduleName` only when a suite is named after the
4519
- * project, in which case a `package-dir` remap keeps the import name intact.
4512
+ * stack it re-exports) plus each per-suite distribution, pinned to this exact
4513
+ * project version (`niwrap_fsl==1.2.3`). The suites all ride the project version
4514
+ * and ship in lockstep, so an exact pin keeps `pip install niwrap==X` consistent:
4515
+ * during the post-release index-propagation window (or any momentary registry
4516
+ * inconsistency) pip errors cleanly instead of silently grafting an older suite
4517
+ * whose layout no longer matches the metapackage. Mirrors the way the CLI pins
4518
+ * `@styx-api/core` exactly.
4519
+ *
4520
+ * `packages` lists only the metapackage's own module so setuptools ships the
4521
+ * styxkit re-export without sweeping the sibling suite directories into this
4522
+ * distribution. The module is the `<project>/` namespace package the suites nest
4523
+ * into, so installing the metapackage makes `<project>.use_docker()` reachable
4524
+ * alongside the suites' `from <project> import <pkg>`. `moduleDir` is the on-disk
4525
+ * source directory; it differs from the import `moduleName` only when a suite is
4526
+ * named after the project, in which case a `package-dir` remap keeps the import
4527
+ * name intact.
4520
4528
  */
4521
4529
  function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4522
4530
  const cb = new CodeBuilder(" ");
@@ -4530,7 +4538,8 @@ function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4530
4538
  cb.line(`requires-python = "${REQUIRES_PYTHON}"`);
4531
4539
  cb.line("dependencies = [");
4532
4540
  for (const dep of PYTHON_RUNNER_DEPS) cb.line(` "${dep}",`);
4533
- for (const dist of distNames) cb.line(` "${tomlStr(dist)}",`);
4541
+ const suitePin = tomlStr(proj.version ?? "0.0.0");
4542
+ for (const dist of distNames) cb.line(` "${tomlStr(dist)}==${suitePin}",`);
4534
4543
  cb.line("]");
4535
4544
  cb.blank();
4536
4545
  cb.line("[tool.setuptools]");