zendev
Zendev is a repository-native development workflow toolkit. It provides commit conventions, pull-request checks, proposal-repository mechanics, and a small logging helper as typed Python packages and thin GitHub Action or hook adapters.
Scope
This repository owns reusable workflow mechanisms:
- commit-message creation and validation
- PR title, body, and checklist validation
- proposal frontmatter, graph, history, and index validation
Consuming repositories continue to own their schemas, templates, terminology, semantic checks, lifecycle policy, and proposal decisions. Git and committed repository files remain the source of truth.
Installation
Install zendev for the complete toolkit and unified command. It installs all
four component distributions as required dependencies. The components remain
available separately for narrower use:
| Distribution | Purpose |
|---|---|
zendev |
Complete toolkit and unified CLI |
zendev-commit |
Commit profiles, validation, and interactive commits |
zendev-review |
Commit and pull-request message validation |
zendev-proposal |
Proposal validation and deterministic indexes |
zendev-log |
Loguru setup helper |
For example, run published commands without installing them globally:
uvx --from zendev zendev --help
uvx --from zendev-commit zendev-commit --help
uvx --from zendev-review zendev-message --help
uvx --from zendev-proposal zendev-proposal --help
For local development:
uv sync --all-packages --all-groups
uv run zendev --help
Python 3.12 or newer is required. All command-line entry points use Typer.
python -m zendev exposes the same command tree as zendev.
Version 0.2.0 removes the logging re-export from the root namespace. For
logging-only use, install zendev-log and import it directly:
uv add zendev-log
from zendev.log import setup_log
from zendev import setup_log is no longer supported.
Commands
| Unified command | Component command | Purpose |
|---|---|---|
zendev commit |
zendev-commit |
Create and run an interactive commit. |
zendev message check [FILE] |
zendev-message check [FILE] |
Validate a commit or pull-request message. |
zendev proposal check |
zendev-proposal check |
Validate a proposal repository and its committed index. |
zendev proposal check --fix |
zendev-proposal check --fix |
Write the deterministic proposal index. |
message check takes FILE or --text. Default scope is auto: one line
checks the title, and a multi-line input checks the complete commit message.
--title and --body select a single part. --body uses the pull-request
template schema; a complete message does not.
Public hooks are zendev-message-check and zendev-proposal-check. They run
the matching check command. Add CLI flags through hook args, for example
args = ["--fix"] on zendev-proposal-check.
The complete zendev distribution always provides the proposal group. The
standalone component command does not require zendev.
Use COMMAND --help for the authoritative option reference.
Workflows
- Zendev Feature Proposals: lightweight design records required before public feature changes.
zendev-commit: profiles, message hook, configuration, and vendored Gitmoji data.zendev-review: message check behavior.zendev-proposal: policy schema, validation, lifecycle history, and deterministic indexes.- Composite Actions: GitHub workflow integration for review checks.
zendev-log: Loguru initialization.
Development
See CONTRIBUTING.md for setup, validation, documentation
ownership, vendored-data maintenance, and pull-request conventions. The five
distributions share one uv workspace, lockfile, version, and release tag while
contributing independent portions of the PEP 420 zendev namespace.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 zendev-0.3.0-py3-none-any.whl.
File metadata
- Download URL: zendev-0.3.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8c78af34d78cecfd107cdcc34ae72a583d812e421bf5a2242b3f608a8170fc4
|
|
| MD5 |
1228a356f9e06283b548e74de46a686c
|
|
| BLAKE2b-256 |
daa0f9af970741ac62116150ce8ea20d6691055684cf16e683b617ec569834be
|
Provenance
The following attestation bundles were made for zendev-0.3.0-py3-none-any.whl:
Publisher:
cd-release.yml on zendev-lab/zendev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zendev-0.3.0-py3-none-any.whl -
Subject digest:
f8c78af34d78cecfd107cdcc34ae72a583d812e421bf5a2242b3f608a8170fc4 - Sigstore transparency entry: 2696254593
- Sigstore integration time:
-
Permalink:
zendev-lab/zendev@6add4d100898f7a1a3c7643a5ca15051a0088e43 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/zendev-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd-release.yml@6add4d100898f7a1a3c7643a5ca15051a0088e43 -
Trigger Event:
push
-
Statement type: