Metadata-Version: 2.4
Name: verscan
Version: 0.1.0
Summary: Zero-dependency CLI to verify package.json, CHANGELOG.md, and git tag all share the same version — catch release mistakes before they ship.
Author: yyfjj
License: MIT
Project-URL: Homepage, https://github.com/jjdoor/verscan-py
Project-URL: Repository, https://github.com/jjdoor/verscan-py
Project-URL: Issues, https://github.com/jjdoor/verscan-py/issues
Keywords: version,release,changelog,git,semver,cli,devops,ci,lint,check
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# verscan

Zero-dependency CLI to verify that `package.json` (or `pyproject.toml`), `CHANGELOG.md`, and your latest git tag all agree on the same version number — before you ship.

```
$ verscan

  ✓ pyproject.toml  0.3.1  (reference)
  ✓ CHANGELOG.md    0.3.1
  ✓ git tag         0.3.1

verscan: all sources match → 0.3.1
```

## Install

```bash
pip install verscan
```

No dependencies. Python ≥ 3.8 required.

## Usage

```bash
verscan [options] [dir]
```

| Option | Description |
|--------|-------------|
| `--no-git` | Skip git tag check |
| `--no-changelog` | Skip CHANGELOG.md check |
| `--manifest <file>` | Custom manifest path (default: auto-detect) |
| `--changelog <file>` | Custom changelog path (default: `CHANGELOG.md`) |
| `--json` | Output JSON |
| `--version` | Print verscan version |
| `--help` | Show help |

**Exit codes:** `0` all match · `1` mismatch · `2` parse/read error

## Examples

```bash
verscan                      # check current directory
verscan --no-git             # skip git tag (before tagging)
verscan ./packages/api       # check a sub-package
verscan --json | python3 -c "import sys,json; d=json.load(sys.stdin); sys.exit(0 if d['ok'] else 1)"
```

## CI integration

```yaml
- name: Verify versions aligned
  run: pip install verscan && verscan
```

For the Node.js CLI counterpart, see [verscan](https://github.com/jjdoor/verscan).

## License

MIT
