Skip to main content

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):

  1. scip-java index
  2. stubborn index --merge for changed relative_path values

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

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stubborn_watch-0.1.0b2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stubborn_watch-0.1.0b2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

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

Hashes for stubborn_watch-0.1.0b2.tar.gz
Algorithm Hash digest
SHA256 f6e4a84e811d0e9cf666c63d122ff20ff1149ce5a55d3d12b64b77c4aa89d12a
MD5 894948f6d3891406e2a374c86225f814
BLAKE2b-256 8167f7ae7872e332be7c9f677a09cb30f3882918abe4516d5ff8c1a1a1f6e279

See more details on using hashes here.

File details

Details for the file stubborn_watch-0.1.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for stubborn_watch-0.1.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 f19c388a1291e54afd2c90dcd3a1441186ab0e54c31f74d9ef0a43dd10bd624f
MD5 0f4c9f0680418f97bde3b77b6e98dbb9
BLAKE2b-256 369ca11e9873527e33622d0b3d45dade73dcaa923655e70c16c9cfddfa2929ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page