Skip to content

Commit 0f31ba7

Browse files
committed
Prepare python-substack 0.2.0
1 parent 4c0d980 commit 0f31ba7

25 files changed

Lines changed: 853 additions & 372 deletions

‎.github/workflows/ci_publish.yml‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ permissions:
1212
jobs:
1313
deploy:
1414
runs-on: ubuntu-latest
15+
environment:
16+
name: pypi
17+
url: https://pypi.org/p/python-substack
18+
permissions:
19+
contents: read
20+
id-token: write
1521
steps:
1622
- uses: actions/checkout@v6
1723
- uses: actions/setup-python@v6
@@ -55,6 +61,3 @@ jobs:
5561
/tmp/python-substack-mcp/bin/python -c "import substack_mcp.mcp_server"
5662
- name: Publish validated distributions
5763
uses: pypa/gh-action-pypi-publish@release/v1
58-
with:
59-
user: __token__
60-
password: ${{ secrets.PYPI_TOKEN }}

‎.gitignore‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,7 @@ dmypy.json
129129
.pyre/
130130

131131
.idea/
132-
.vscode/
132+
.vscode/
133+
134+
# Local maintainer release plan
135+
ROADMAP.md

‎.pre-commit-config.yaml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
repos:
22
- repo: https://github.com/pre-commit/pre-commit-hooks
3-
rev: v2.3.0
3+
rev: v6.0.0
44
hooks:
55
- id: check-yaml
66
- id: end-of-file-fixer
77
- id: trailing-whitespace
88
- repo: https://github.com/psf/black
9-
rev: 22.10.0
9+
rev: 26.5.1
1010
hooks:
1111
- id: black
1212
- repo: https://github.com/pycqa/isort
13-
rev: 5.12.0
13+
rev: 8.0.1
1414
hooks:
1515
- id: isort
1616
name: isort (python)

‎CHANGELOG.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# Changelog
22

3+
## 0.2.0
4+
5+
### Added
6+
7+
- Outcome-focused documentation for authentication, legacy CLI commands,
8+
low-level Python construction, YAML drafts, MCP, compatibility, security,
9+
contributing, and adoption metrics.
10+
- Offline tests for the documented unauthenticated installation checks and
11+
local documentation links.
12+
- A documented compatibility commitment covering the Python API, five console
13+
scripts, unified CLI, JSON keys, environment variables, and MCP tools.
14+
15+
### Improved
16+
17+
- Reposition the package around safe writer-side Markdown automation.
18+
- Put the unpublished draft workflow and publishing safeguards first in the
19+
README.
20+
- Classify the package as Beta after four years of compatible releases.
21+
- Update pre-commit, formatting, and import-sorting hooks to current verified
22+
releases.
23+
- Validate the hook runner as a locked development dependency.
24+
- Publish through short-lived PyPI Trusted Publishing credentials instead of a
25+
long-lived API token.
26+
27+
Existing Python APIs, CLI commands, console scripts, defaults, JSON contracts,
28+
environment variables, and MCP tools remain unchanged.
29+
330
## 0.1.27
431

532
### Added

‎CONTRIBUTING.md‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Contributing
2+
3+
## Setup
4+
5+
Fork and clone the repository, then install the package and all optional
6+
dependencies:
7+
8+
```bash
9+
poetry install --all-extras
10+
```
11+
12+
Install the repository hooks:
13+
14+
```bash
15+
poetry run pre-commit install
16+
```
17+
18+
## Validation
19+
20+
Run the offline suite:
21+
22+
```bash
23+
poetry run pytest -q -m "not live" --strict-markers
24+
```
25+
26+
Run all configured hooks:
27+
28+
```bash
29+
poetry run pre-commit run --all-files
30+
```
31+
32+
Live tests are opt-in because they create disposable drafts in a real
33+
publication:
34+
35+
```bash
36+
RUN_SUBSTACK_E2E=1 poetry run pytest -q -m live
37+
RUN_SUBSTACK_CLI_E2E=1 poetry run pytest -q -m live tests/substack/test_cli_end_to_end.py
38+
```
39+
40+
Live tests must never publish. Confirm that disposable drafts are removed after
41+
every run.
42+
43+
## Pull requests
44+
45+
- Keep changes focused and preserve existing public interfaces and defaults.
46+
- Add a regression test for every bug fix.
47+
- Add offline tests for new behavior.
48+
- Update user-facing documentation and `CHANGELOG.md` when behavior changes.
49+
- Never include passwords, cookies, `.env` contents, or captured request
50+
headers.
51+
52+
Feature requests and bug reports are welcome through the repository issue
53+
templates. Authentication reports must have all credentials removed.
54+
55+
## Releases
56+
57+
Maintainer release requirements are documented in
58+
[docs/releasing.md](docs/releasing.md).

0 commit comments

Comments
 (0)