From e26fb1d7550311664d9e35576ff4e3a9c565512b Mon Sep 17 00:00:00 2001 From: scitex-agent-container Date: Sun, 30 Aug 2026 03:29:55 +0000 Subject: [PATCH] chore: untrack two committed store files, add the rules that let them in Two database files were tracked in this repo: a 68 KB clew runtime store at .scitex/clew/runtime/db.sqlite, and a second one under a legacy clew example. Both are binary, so `git grep -I` skips them and neither appears in any text scan of this tree - the only thing that surfaced them was a binary-inclusive sweep. They are untracked here, and the .gitignore gains the patterns that were missing: the existing rules covered only Django's db.sqlite3, which is why these two slipped in. Three stale sentences are corrected in the same pass. All three describe clew's provenance store as a local file database; clew moved its stores onto the per-host PostgreSQL and has no database file, so the wording sent a reader looking for something that is never written: docs/sphinx/core_concepts.rst (twice) and docs/sphinx/modules/io.rst. pyproject's note on the `clew` extra claimed it pulls in nothing and uses only stdlib. It pins scitex-clew==0.17.0, and clew owns its own store; the note now says that. The .env example's comment describing CROSSREF_LOCAL_DB is made generic - it names a path, not a format. One entry is dropped from tests/integration/test_cross_package_imports.py: scitex_io._load_modules._sqlite3 no longer exists on scitex-io's develop, so that parametrised case was doing nothing but SKIPPING, every run, with "auto-gen snapshot drift". Measured: 60 skips before, 59 after, same 254 passed. The block is auto-generated and the generator (`ecosystem write-integration-tests`) is not in the installed scitex-dev, so it is corrected by hand; a regeneration would drop it too, since nothing in this tree references the module. --- .env.d.examples/00_crossref-local.env | 2 +- .gitignore | 9 +++++++++ .scitex/clew/runtime/db.sqlite | Bin 69632 -> 0 bytes docs/sphinx/core_concepts.rst | 5 +++-- docs/sphinx/modules/io.rst | 2 +- .../scitex/clew/multi_parent/scitex/clew.db | Bin 94208 -> 0 bytes pyproject.toml | 2 +- tests/integration/test_cross_package_imports.py | 1 - 8 files changed, 15 insertions(+), 6 deletions(-) delete mode 100644 .scitex/clew/runtime/db.sqlite delete mode 100644 examples/_legacy/scitex/clew/multi_parent/scitex/clew.db diff --git a/.env.d.examples/00_crossref-local.env b/.env.d.examples/00_crossref-local.env index 00eaaeeaa..b381c40ba 100644 --- a/.env.d.examples/00_crossref-local.env +++ b/.env.d.examples/00_crossref-local.env @@ -11,5 +11,5 @@ CROSSREF_LOCAL_API_URL=http://localhost:31291 CROSSREF_LOCAL_HOST=0.0.0.0 CROSSREF_LOCAL_PORT=31291 -# Path to SQLite database (for db mode) +# Path to the local CrossRef database file (for db mode) # CROSSREF_LOCAL_DB=/path/to/crossref.db diff --git a/.gitignore b/.gitignore index 20d3a496a..8e3334abf 100755 --- a/.gitignore +++ b/.gitignore @@ -147,6 +147,15 @@ local_settings.py db.sqlite3 db.sqlite3-journal +# Embedded database files. These are binary, so `git grep` skips them and a +# committed one stays invisible until something opens it. Two were already +# tracked here (a clew runtime store and a legacy example's) before these +# rules existed; the rules are what stop the next one. +**/*.sqlite +**/*.sqlite3 +**/clew.db +.scitex/clew/runtime/ + # Flask stuff: instance/ .webassets-cache diff --git a/.scitex/clew/runtime/db.sqlite b/.scitex/clew/runtime/db.sqlite deleted file mode 100644 index e51371676d65c5f3a90dded252ab12cc7dd35b88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69632 zcmeI*Pi)&%90zclbWNKydEG=Cb!k+066_Nu9=NqY-UU^^F$S ze}3=Z=e=jgiI!Yhnp1T}SlujdShx>oz!xcB%>MowjAA-!->zACg%<`Qfk ziwnZOLME$))yfX;oFGo$46W8o%W9c9?8|8I(0Z8(+O1eEf3+BVzu)8ZO-=E)(|Ueo zU8x;0o%U^d&5C4GFU`sOn=4G(7OxhmXI7q-Gs5LedOnr8CcG+N6H?3B#qzb!&gf~Q)DVu7{rXiho4Y6j9mX-&1BW|ZJ8s%^G z8)Muq+-~1M!)UjQc*aA%TBZLvfY+59%6dD~Mbq$n+b39S4;9VmQ-ypOW?9EsTy!#N!5_x>wQjNV1nQ2 z-z#BrU0GGvmE2lhTT`_D<`QT?tE?>vC(AT0_@>k8o1ppo>-n2g#uC}rRKy|E%97SP zn>Ko#zSFdGh>2T3zHU9i0nVHjeGi@=o8-5Pxgi7&Ppxz@E=F3=_7e z#rQDiTCVnD#`0Ro{^fvHD63mKJ>BWmE<7-*-q9_h^n6+0cb%}0TvbadJs&l`CbAE; zTo3F6=qqnMSJ*5nwHJW)VT~taV;I^87B)9l)Do@RA+6m|^n5X|=Z&nI2f*p)dVS}I zS`7f!g}D%0I_OPCAG^`;cp{u@;2t;dulJ9Ed*mB($GhuY@{V}!dg2G)h~Ov$AOHaf zKmY;|fB*y_00E98FL3(Pc92fG10F8L`B}l{{b(pGhGS<$=}b7D6=UZ_@mx55HkOPh z!Xmu~DygOGkzu#Lo=R6Vo!-LQCXzzoaNJBpf?Ut`Dfa|TnDX~=^PH}3(7bXiy^jM|oJdF%WA;aqiCDPJmPsScLq)X9HI_&uLbY1bVfEHi z8r0Hga|I)I6^w_XNl7vpC4X}&+ff%6W6@;7Oy#0&a*_8q@*(+%d`ljYAIX>Gb8?sb zNq6D_0SG_<0uX=z1Rwwb2tWV=5P(1@1c+mTx4eCH%I)y;=6gHiUdK4U_r{CR=NRJI z`zd1sjsRbKnTh`#1YFz*l*bgon(cWZ*~oPSStoQ(G=tX0SG_<0uX=z1Rwwb z2tWV=5P(3p3b4=rasS_~y@Pr|00Izz00bZa0SG_<0uX=z1Ue(YKL6**V~+mA0|F3$ z00bZa0SG_<0uX=z1Rwx`BOq{scTDxwzN^vvVq<*%e*`)fO@IIdAOHafKmY;|fB*y_ z009UbB7pnnVL{<=h00bZa0SG_<0uX=z1Rwx` zE)~G%|6STKs1^hu009U<00Izz00bZa0SG{#g95n!?;s|!f&c^{009U<00Izz00bZa l0SI)d0Pg?0v|~^$2tWV=5P$##AOHafKmY;|fItTY{sWNtq22%h diff --git a/docs/sphinx/core_concepts.rst b/docs/sphinx/core_concepts.rst index 4484557c4..aa77bbd09 100644 --- a/docs/sphinx/core_concepts.rst +++ b/docs/sphinx/core_concepts.rst @@ -37,7 +37,7 @@ The Session Model 2. **Logging**: All stdout/stderr captured to ``script.log`` 3. **Config injection**: YAML files from ``./config/`` merged and injected 4. **CLI generation**: Function parameters become ``--flags`` -5. **Provenance**: File hashes recorded to SQLite for reproducibility +5. **Provenance**: File hashes recorded to the Clew store for reproducibility .. code-block:: python @@ -124,7 +124,8 @@ Provenance Tracking (Clew) -------------------------- Inside ``@stx.session``, every ``stx.io.save`` and ``stx.io.load`` call -records the file's SHA-256 hash to a local SQLite database. This enables: +records the file's SHA-256 hash to the Clew provenance store. This +enables: - **Verification**: Check if output files have been modified since creation - **DAG reconstruction**: Trace which inputs produced which outputs diff --git a/docs/sphinx/modules/io.rst b/docs/sphinx/modules/io.rst index 222150bb8..d52fd27ac 100644 --- a/docs/sphinx/modules/io.rst +++ b/docs/sphinx/modules/io.rst @@ -94,7 +94,7 @@ Provenance Tracking ------------------- Inside ``@stx.session``, every ``save`` and ``load`` records file hashes -to a local SQLite database for reproducibility verification. +to the Clew provenance store for reproducibility verification. .. code-block:: python diff --git a/examples/_legacy/scitex/clew/multi_parent/scitex/clew.db b/examples/_legacy/scitex/clew/multi_parent/scitex/clew.db deleted file mode 100644 index 01dc4efe04ad7e53d2586a708897e56166edb8be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94208 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