Releases: scitex-ai/scitex-python
Releases · scitex-ai/scitex-python
Release list
v2.30.8
v2.30.7
Release v2.30.7. See CHANGELOG.md for details.
v2.30.6
Release v2.30.6. See CHANGELOG.md for details.
v2.30.5
Changed
- Umbrella
==pin bumps to PyPI latest (PS-170 freshness sweep).
scitex-writer 2.23.0→2.24.1 (post-compile fail-loud verification gate +
clew verify gate + markers/colophon — the fix for the figure-less-PDF
incident, soscitex[writer]consumers get the gate), scitex-dev
0.20.1→0.21.0 (the unified compliance-linter trio: figure-lint v1 +
raw-import research-ERROR +--new-onlybaseline gate), scitex-clew
0.2.18→0.2.22.
v2.30.4
Changed
- Umbrella
==pin bumps to PyPI latest (PS-170 freshness sweep).
figrecipe 0.29.5→0.29.9 (NeuroVista grant figure fixes: caption justify,
title-aware 10pt-bold-Arial panel labels, imshow aspect honoring,
numpy-scalar recipe-save crash), scitex-writer 2.22.0→2.23.0,
scitex-clew 0.2.17→0.2.18. Lets downstream research projects pin
figrecipe==0.29.9consistently alongsidescitex==2.30.4. _LazyModuleerror messages now name the canonical attribute home when
one exists. Whenscitex.<short>.<attr>lookup fails because<short>
is not installed (extras gate) or because<short>is installed but
doesn't carry<attr>(the "phantom" case), the resulting error now
routes through a curated redirect map (scitex._canonical_redirects).
Example:scitex.gen.load_configs(which doesn't exist inscitex_gen)
used to raiseImportError: scitex.gen requires additional dependencies. Install with: pip install scitex[gen]— telling the user to pip-install
a heavy extras package (torch + CUDA + …) that doesn't even contain the
function. Now it raisesImportError: scitex.gen.load_configs is not available here; the canonical location is scitex.io.load_configs (already installed by the umbrella core — no extra needed). Change your import tofrom scitex.io import load_configs``. Same upgrade for the
AttributeErrorpath when the module loaded fine but doesn't have the
attribute. Seed redirect entries (gen → io / session / dict / str / etc /
context / types) come from proj-paper-ripple-wm's PR#4a misdirected-
callsite audit (2026-06-07) — the mngs.gen kitchen-sink namespace was
split across multiple scitex peers, leaving hundreds of callsites
pointing at `scitex.gen.` for `X` that now lives elsewhere.pip installhints now use{sys.executable} -m pip. The previous
barepip install scitex[...]hint risked installing into a system-level
Python when the user had an active virtualenv. Switched to
{sys.executable} -m pip install 'scitex[<extras>]'so the install lands
in the venv the user is currently running. Quotes the extras spec so
shells that glob square brackets (zsh) don't choke. Applied to both
_LazyModule.__getattr__'s ImportError fallback and the__dir__()
missing-module warning.scitex.securityrepointed toscitex_audit.githubper ADR-0001
(scitex-dev #139, Accepted 2026-06-07).scitex-securitywas absorbed
intoscitex-audit0.2.0; the 5 public symbols (check_github_alerts,
save_alerts_to_file,get_latest_alerts_file,format_alerts_report,
GitHubSecurityError) now live inscitex_audit.github. The umbrella
_LazyModule("security", external="scitex_audit.github")resolution- the
external_alias_map"security" entry both move atomically. (#322)
- the
clickpromoted to a hard core dependency (click>=8.0.0in
[project.dependencies]). Thescitex-pkgconsole-script
(scitex.cli.pkg:pkg) does an unguarded module-loadimport click, so
PS-213 (console-script-deps-must-be-core, scitex-dev v0.17.10+) requires
click in core — barepip install scitexfollowed byscitex-pkg --help
no longer raisesModuleNotFoundError. (#328)- Umbrella sub-package pins bumped to PyPI latest to satisfy PS-170
(audit-umbrella-pins freshness gate) — unblocks thetestsmatrix that
was red onmainsince 2026-06-09:scitex-dev0.17.4 → 0.17.10,
scitex-io0.2.20 → 0.3.1,scitex-stats0.2.23 → 0.2.24,scitex-db
0.1.11 → 0.1.12,scitex-msword0.2.0 → 0.3.2,scitex-dataset0.3.10
→ 0.4.0,scitex-writer2.17.3 → 2.17.5,scitex-agent-container
0.21.9 → 0.21.11. 18 occurrences updated across[project.dependencies],
module extras,[dev], and tooling extras. (#329)
Added
scitex._canonical_redirectsmodule — private helper carrying the
(short, attr) → canonical_shortmap and the two hint builders
(missing_extras_hint,phantom_attr_hint). Extracted from
scitex.re_exportto keep the latter under the 512-line file cap. Pinned
by 27 tests acrosstests/scitex/test_canonical_redirects.pyand
tests/scitex/test_lazymodule_redirects.py.[security]extra now installsscitex-audit>=0.2.0(was empty).
Brings the umbrella extras into compliance with skill 03 §8 "every
module MUST have an extra listing its standalone package". (#322)scitex-auditpinned to==0.2.0in main deps,[audit],
[dev], and[all]. (#322)
Removed
scitex-security==0.1.4from main deps and[all]— absorbed
intoscitex-audit. The deprecatedscitex-security0.2.0 PyPI
shim is NOT pulled by the umbrella; users who explicitly depend on
the old package still get aDeprecationWarningredirecting them
toscitex_audit.github. (#322)
Migration
from scitex_security import X→from scitex_audit.github import X,
or justscitex.security.X(now resolves to the same SSOT).scitex-security check OWNER/REPO --save→scitex-audit github --repo OWNER/REPO --save. The legacy console-script hard-errors
with a redirect per CLI-deprecation skill 11 §5.~/.scitex/security/auto-symlinks to~/.scitex/audit/github-alerts/
on first import ofscitex_audit(one-shot, marker-gated).
v2.30.3
Release v2.30.3. See CHANGELOG.md for details.
v2.30.2
Release v2.30.2. See CHANGELOG.md for details.
v2.30.1
Release v2.30.1. See CHANGELOG.md for details.
v2.30.0
Changed
- Umbrella decomposition campaign:
scitex.<x>modules are now thin branded aliases to their owning standalone packages instead of in-tree shim directories. Dropped the in-tree shim dirs forerrors(→scitex_logging),torch(→scitex_linalg),stats(→scitex_stats),diagram(→figrecipe.diagram),clew(→scitex_clew),tunnel(→scitex_ssh),rng/verify.scitex.utilsis now a thin re-export aggregator that distributes implementations to their owning packages. Env-loading delegates toscitex-config. - Linter:
scitex.linter(and the more-consistentscitex.dev.linter) now resolve to the real enginescitex_dev.linter. Two stale registrations that kept routing to the archivedscitex_linterdistribution were removed (#306).
Removed
scitex-coredependency: dropped frompyproject.toml; all formerscitex-corecontents are standalonized. Enables public-archiving ofscitex-core. (#299)scitex.utils.verify_scitex_format: removed; superseded by thescitex-devlinter. (#300)- Dropped 10 redundant legacy MCP bridge files now covered by registry auto-mount.
Fixed
- CI test matrix: greened the chronic-red umbrella matrix — switched to
uvresolver, CPU-only torch, dropped coverage-triggered segfaults, and added a retry-on-incomplete-report guard for the non-deterministic C-extension shutdown segfault. (#303, #304, #305) - Bumped sibling pins for PS-170 freshness (
scitex-dev0.15.0, et al.).
v2.29.3
Fixed
- Dependency pins: Restore
>=minima for siblingscitex-*deps (was exact==, which referenced unpublished versions likescitex-config==0.3.3and brokepip install scitexwith ResolutionImpossible). Fixes #282. The 2.29.0 and 2.29.1 PyPI releases shipped the broken==pins; 2.29.3 is the corrected release.