2 Commits

Author SHA1 Message Date
a91cb67487 fix(drone): use AUTH_URL and private index in quality gate
All checks were successful
continuous-integration/drone/tag Build is passing
2026-10-17 04:24:27 +05:30
650d3a19e8 chore(release): 0.0.3
Squash-merge lib-standardisation: adopt repo standards across packaging,
tooling, docs, and CI.

- standardize pyproject.toml (canonical packaging, lint config, extras, GSDFC pydoclint)
- add py.typed marker, modernize type hints and Google-style docstrings
- nest generated docs under docs/lib and docs/mcp; add hand-written wiki
- adopt standard Type A PyPI CI pipeline (tag==version guard + quality gate)
- promote generated CHANGELOG.md; bump version to 0.0.3
2026-10-17 02:16:48 +05:30
3 changed files with 30 additions and 25 deletions

View File

@@ -1,21 +1,3 @@
# Drone standard — Type A: PyPI package
#
# Canonical pipeline for internal Python libraries that ship a wheel/sdist to
# the private index (dagpipe, doc-forge, hexa, mail-intake, mongo-ops,
# omniread, openapi-first, py-jwt).
#
# Two pipelines ship together:
# build-and-publish-pypi — tag-triggered build + quality gate + publish.
# backfill-pypi-from-tags — custom-triggered replay of every git tag that is
# missing from the index (disaster recovery).
#
# Secrets (Drone): PIP_REPO_URL, PIP_USERNAME, PIP_PASSWORD.
# Copy to <repo>/.drone.yml unchanged; the package name and version are read
# from pyproject.toml, so no per-repo edits are required.
#
# Version guard: the tag build fails unless the git tag equals the version in
# pyproject.toml (see the versioning standard). This stops a tag from looking
# like a release while silently publishing nothing.
---
kind: pipeline
type: docker
@@ -67,8 +49,12 @@ steps:
commands:
- pip install --upgrade pip build
- |
AUTH_URL="https://${PIP_USERNAME}:${PIP_PASSWORD}@$(echo "${PIP_REPO_URL#*://}" | sed 's:/*$::')/simple"
pip install --index-url "$AUTH_URL" --extra-index-url https://pypi.org/simple/ -U ".[dev]" "pydoclint>=0.9.1"
if [ -z "$PIP_REPO_URL" ] || [ -z "$PIP_USERNAME" ] || [ -z "$PIP_PASSWORD" ]; then
echo "PIP_REPO_URL / PIP_USERNAME / PIP_PASSWORD are not set" >&2
exit 1
fi
- AUTH_URL="https://$PIP_USERNAME:$PIP_PASSWORD@$(echo "$PIP_REPO_URL" | sed -E 's|^[a-zA-Z]+://||; s|/*$||')/simple"
- pip install --index-url "$AUTH_URL" --extra-index-url https://pypi.org/simple/ -U ".[dev]" "pydoclint>=0.9.1"
- echo "Running quality gate..."
- python -m black --check .
- python -m ruff check .

View File

@@ -7,15 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.0.3] - 2026-10-17
### Added
- `py.typed` marker for PEP 561 type information.
- `.drone.yml` CI with a quality-gate step (black, ruff, mypy, pytest).
- Canonical `docforge.nav.yml`, generated `mkdocs.yml` and `mcp_docs/` via doc-forge.
- Type stubs for the `csv` and `xlsx` subpackages.
- Hand-written wiki, plus doc-forge-generated API reference under `docs/lib`
and MCP bundle under `docs/mcp` (per-kind MkDocs configs).
- MIT `LICENSE`.
### Changed
- Standardized `pyproject.toml` (canonical packaging, lint tool config, extras).
- Adopted the standard Type A PyPI CI pipeline: a `tag == version` guard and a
quality gate (black, ruff, mypy, pydoclint, pytest).
- Standardized `pyproject.toml` (canonical packaging, lint tool config, extras)
with a shared Google-style `[tool.pydoclint]` configuration.
- Docstring types modernised (`List` -> `list`, `Optional` -> `X | None`) to
match signatures.
### Fixed
- `XLSX`/`CSV` members added to the `content` type surface.
- Stub fixes for typed API surfaces.
- Stub fixes for typed API surfaces.
[Unreleased]: https://git.aetoskia.com/aetos/omniread/compare/0.0.3...HEAD
[0.0.3]: https://git.aetoskia.com/aetos/omniread/compare/0.0.2...0.0.3

View File

@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "omniread"
version = "0.0.1"
version = "0.0.3"
description = "Composable content ingestion framework with pluggable scrapers and parsers for HTML, PDF, and structured data"
readme = "README.md"
requires-python = ">=3.10"
@@ -171,6 +171,14 @@ module = [
ignore_missing_imports = true
[tool.pydoclint]
style = "google"
exclude = '\.pyi$|tests/'
allow-init-docstring = true
skip-checking-raises = true
check-class-attributes = false
[tool.coverage.run]
source = ["omniread"]
omit = [