Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ build/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.coverage
htmlcov/

Expand Down
26 changes: 25 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,32 @@

All notable changes to this project are documented in this file.

## Unreleased
## 1.0.0 - 2026-09-05

- First stable release: bumped the `Development Status` classifier from
`3 - Alpha` to `5 - Production/Stable`, matching `1.0.0`.
- Packaging polish:
- Confirmed the `py.typed` marker ships correctly inside the built wheel
(verified by installing that wheel into a fresh virtualenv and running
`mypy --strict` against a script importing the installed package, not
the local checkout) and that `pyproject.toml`'s keywords, project
URLs, and optional-dependency extras were already complete.
- Fixed a real sdist-packaging bug found while verifying the above: the
sdist was bundling whatever untracked local files happened to sit in
the working tree at build time — including the local `hypothesis`
test cache (`.hypothesis/`, 145 files) and other per-machine tool
state — alongside the actual source, since `hatchling`'s default
sdist selection includes anything not explicitly `.gitignore`d, and
not every local artifact was. Replaced that with an explicit
`[tool.hatch.build.targets.sdist]` allowlist naming exactly the
paths the package needs (`logquill/`, `tests/`, docs, license,
`pyproject.toml`), so a sdist built from any contributor's machine
stays limited to actual project files regardless of what else is
sitting in the working tree.
- Verified `python -m build` produces a clean wheel and sdist, `twine
check dist/*` passes on both, and installing the built wheel into a
fresh virtualenv works end to end — import, logging calls, and the
`logquill` CLI entry point all function against the installed package.
- Phase 9, docs, complete:
- Every public class and function across the package now has a docstring
explaining what it does and why you'd reach for it — not a restatement
Expand Down
2 changes: 1 addition & 1 deletion logquill/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
from logquill.transports.transport import CollectingTransport, Transport
from logquill.worker import AsyncWorker

__version__ = "0.5.0"
__version__ = "1.0.0"

__all__ = [
"AlertingPlugin",
Expand Down
19 changes: 17 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "logquill"
version = "0.5.0"
version = "1.0.0"
description = "A structured, leveled logging framework with pluggable transports and a plugin pipeline."
readme = "README.md"
license = "MIT"
Expand All @@ -21,7 +21,7 @@ keywords = [
"plugins",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
Expand Down Expand Up @@ -89,6 +89,21 @@ Issues = "https://github.com/nikhilvdev/logquill-python/issues"
[tool.hatch.build.targets.wheel]
packages = ["logquill"]

[tool.hatch.build.targets.sdist]
# Explicit allowlist rather than an exclude list: keeps the sdist limited
# to what the package actually needs regardless of what local, untracked
# tool/editor state happens to sit in the working tree at build time.
include = [
"/logquill",
"/tests",
"/README.md",
"/CHANGELOG.md",
"/CODE_OF_CONDUCT.md",
"/CONTRIBUTING.md",
"/LICENSE",
"/pyproject.toml",
]

[tool.ruff]
line-length = 100
target-version = "py38"
Expand Down