@styx-api/core 0.5.1 → 0.5.3

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
@@ -3782,7 +3782,8 @@ function emitMetadata$1(ctx, metaConst, cb) {
3782
3782
  cb.line(`name=${pyStr(name)},`);
3783
3783
  cb.line(`package=${pyStr(pkg)},`);
3784
3784
  if (ctx.app?.doc?.literature?.length) cb.line(`citations=[${ctx.app.doc.literature.map(pyStr).join(", ")}],`);
3785
- if (ctx.app?.container?.image) cb.line(`container_image_tag=${pyStr(ctx.app.container.image)},`);
3785
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
3786
+ if (containerImage) cb.line(`container_image_tag=${pyStr(containerImage)},`);
3786
3787
  });
3787
3788
  cb.line(")");
3788
3789
  }
@@ -4510,14 +4511,22 @@ function generateRootInitPy() {
4510
4511
  }
4511
4512
  /**
4512
4513
  * 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.
4514
+ * stack it re-exports) plus each per-suite distribution, pinned to this exact
4515
+ * project version (`niwrap_fsl==1.2.3`). The suites all ride the project version
4516
+ * and ship in lockstep, so an exact pin keeps `pip install niwrap==X` consistent:
4517
+ * during the post-release index-propagation window (or any momentary registry
4518
+ * inconsistency) pip errors cleanly instead of silently grafting an older suite
4519
+ * whose layout no longer matches the metapackage. Mirrors the way the CLI pins
4520
+ * `@styx-api/core` exactly.
4521
+ *
4522
+ * `packages` lists only the metapackage's own module so setuptools ships the
4523
+ * styxkit re-export without sweeping the sibling suite directories into this
4524
+ * distribution. The module is the `<project>/` namespace package the suites nest
4525
+ * into, so installing the metapackage makes `<project>.use_docker()` reachable
4526
+ * alongside the suites' `from <project> import <pkg>`. `moduleDir` is the on-disk
4527
+ * source directory; it differs from the import `moduleName` only when a suite is
4528
+ * named after the project, in which case a `package-dir` remap keeps the import
4529
+ * name intact.
4521
4530
  */
4522
4531
  function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4523
4532
  const cb = new CodeBuilder(" ");
@@ -4531,7 +4540,8 @@ function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4531
4540
  cb.line(`requires-python = "${REQUIRES_PYTHON}"`);
4532
4541
  cb.line("dependencies = [");
4533
4542
  for (const dep of PYTHON_RUNNER_DEPS) cb.line(` "${dep}",`);
4534
- for (const dist of distNames) cb.line(` "${tomlStr(dist)}",`);
4543
+ const suitePin = tomlStr(proj.version ?? "0.0.0");
4544
+ for (const dist of distNames) cb.line(` "${tomlStr(dist)}==${suitePin}",`);
4535
4545
  cb.line("]");
4536
4546
  cb.blank();
4537
4547
  cb.line("[tool.setuptools]");
@@ -6888,7 +6898,8 @@ function emitMetadata(ctx, metaConst, cb) {
6888
6898
  cb.line(`name: ${JSON.stringify(name)},`);
6889
6899
  cb.line(`package: ${JSON.stringify(pkg)},`);
6890
6900
  if (ctx.app?.doc?.literature?.length) cb.line(`citations: ${JSON.stringify(ctx.app.doc.literature)},`);
6891
- if (ctx.app?.container?.image) cb.line(`container_image_tag: ${JSON.stringify(ctx.app.container.image)},`);
6901
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
6902
+ if (containerImage) cb.line(`container_image_tag: ${JSON.stringify(containerImage)},`);
6892
6903
  });
6893
6904
  cb.line("};");
6894
6905
  }
package/dist/index.mjs CHANGED
@@ -3781,7 +3781,8 @@ function emitMetadata$1(ctx, metaConst, cb) {
3781
3781
  cb.line(`name=${pyStr(name)},`);
3782
3782
  cb.line(`package=${pyStr(pkg)},`);
3783
3783
  if (ctx.app?.doc?.literature?.length) cb.line(`citations=[${ctx.app.doc.literature.map(pyStr).join(", ")}],`);
3784
- if (ctx.app?.container?.image) cb.line(`container_image_tag=${pyStr(ctx.app.container.image)},`);
3784
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
3785
+ if (containerImage) cb.line(`container_image_tag=${pyStr(containerImage)},`);
3785
3786
  });
3786
3787
  cb.line(")");
3787
3788
  }
@@ -4509,14 +4510,22 @@ function generateRootInitPy() {
4509
4510
  }
4510
4511
  /**
4511
4512
  * 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.
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.
4520
4529
  */
4521
4530
  function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4522
4531
  const cb = new CodeBuilder(" ");
@@ -4530,7 +4539,8 @@ function generateRootPyproject(proj, distNames, moduleName, moduleDir) {
4530
4539
  cb.line(`requires-python = "${REQUIRES_PYTHON}"`);
4531
4540
  cb.line("dependencies = [");
4532
4541
  for (const dep of PYTHON_RUNNER_DEPS) cb.line(` "${dep}",`);
4533
- 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}",`);
4534
4544
  cb.line("]");
4535
4545
  cb.blank();
4536
4546
  cb.line("[tool.setuptools]");
@@ -6887,7 +6897,8 @@ function emitMetadata(ctx, metaConst, cb) {
6887
6897
  cb.line(`name: ${JSON.stringify(name)},`);
6888
6898
  cb.line(`package: ${JSON.stringify(pkg)},`);
6889
6899
  if (ctx.app?.doc?.literature?.length) cb.line(`citations: ${JSON.stringify(ctx.app.doc.literature)},`);
6890
- if (ctx.app?.container?.image) cb.line(`container_image_tag: ${JSON.stringify(ctx.app.container.image)},`);
6900
+ const containerImage = ctx.package?.docker ?? ctx.app?.container?.image;
6901
+ if (containerImage) cb.line(`container_image_tag: ${JSON.stringify(containerImage)},`);
6891
6902
  });
6892
6903
  cb.line("};");
6893
6904
  }