Dev orchestration: file watch → SCIP indexer → stubborn index --merge
Project description
stubborn-watch
Debounced file watch → external SCIP indexer (scip-java) → stubborn index --merge.
Stubborn does not parse Java source. This package only orchestrates the dev loop described in ADR-009.
Install
pip install stubborn-watch
Requires scip-java on PATH for the default indexer command.
Usage
Watch mode (dev loop)
stubborn index --scip index.scip --out symbols.db # initial full snapshot
stubborn-watch watch --root . --db symbols.db
On save (debounced, default 2s):
scip-java indexstubborn index --mergefor changedrelative_pathvalues
One-shot merge (hooks / CI helpers)
stubborn-watch merge-once --root . --db symbols.db \
--paths com/example/Foo.java,com/example/Bar.java
Use --skip-index when index.scip is already fresh.
Workspace watch (multi-repo)
For source-available internal repos, use a workspace manifest so each repo can index and merge independently into one shared workspace DB:
{
"workspace": "acme",
"db": "symbols.db",
"repos": [
{ "repo_key": "orders-api", "root": "../orders-api", "scip": "index.scip" },
{ "repo_key": "orders-core", "root": "../orders-core", "scip": "index.scip" }
]
}
stubborn-watch workspace-watch --manifest stubborn-workspace.json
stubborn context symbols.db --workspace acme --target "<stable_id>"
Validation scope
This repo owns orchestration-focused validation:
- CLI smoke for
merge-once - debounce and path normalization
- subprocess invocation contracts around
scip-java
The canonical ADR-009 runnable demo lives in stubborn-demo:
That keeps stubborn-watch focused on watch behavior, while stubborn-demo owns runnable demo assets and black-box validation projects.
Options
| Flag | Default | Purpose |
|---|---|---|
--root |
. |
Project root |
--db |
(required) | SQLite symbol graph |
--scip |
index.scip |
SCIP index path |
--debounce |
2.0 |
Seconds to coalesce events |
--pattern |
**/*.java |
Watched file glob |
--scip-cmd |
scip-java index |
External indexer command |
--workspace |
— | Workspace name for repo-scoped merges |
--repo |
— | Repo key for repo-scoped merges |
Related
- stubborn — core compiler +
--merge - stubborn-mcp — MCP server over the same
symbols.db - stubborn-demo — runnable demos and validation projects
- stubborn-hub — program architecture
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stubborn_watch-0.1.0b2.tar.gz.
File metadata
- Download URL: stubborn_watch-0.1.0b2.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6e4a84e811d0e9cf666c63d122ff20ff1149ce5a55d3d12b64b77c4aa89d12a
|
|
| MD5 |
894948f6d3891406e2a374c86225f814
|
|
| BLAKE2b-256 |
8167f7ae7872e332be7c9f677a09cb30f3882918abe4516d5ff8c1a1a1f6e279
|
File details
Details for the file stubborn_watch-0.1.0b2-py3-none-any.whl.
File metadata
- Download URL: stubborn_watch-0.1.0b2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f19c388a1291e54afd2c90dcd3a1441186ab0e54c31f74d9ef0a43dd10bd624f
|
|
| MD5 |
0f4c9f0680418f97bde3b77b6e98dbb9
|
|
| BLAKE2b-256 |
369ca11e9873527e33622d0b3d45dade73dcaa923655e70c16c9cfddfa2929ec
|