Skip to content

chore(release): prepare 0.1.0 release - #8

Merged
Autumn-Atlas merged 4 commits into
masterfrom
agent/release-readiness-0.1.0
Sep 9, 2026
Merged

chore(release): prepare 0.1.0 release#8
Autumn-Atlas merged 4 commits into
masterfrom
agent/release-readiness-0.1.0

Conversation

@Autumn-Atlas

Copy link
Copy Markdown
Contributor

Summary

Release-readiness alignment for the 0.1.0 publication of the currentsapi SDK. Nothing was published to PyPI; this PR only aligns metadata/docs and proves the artifacts build, check, and install cleanly.

Evidence: PyPI 0.0.2 vs this repo

Verified live via https://pypi.org/pypi/<name>/json (not from memory):

PyPI 0.0.2 (2019-07-23) This repo (master + PR)
Distribution name currentsapi (currentsapi-0.0.2-py2.py3-none-any.whl) currentsapi (unchanged, correct)
currentsapi-python on PyPI HTTP 404: name is not registered by anyone; the repo name is not a distribution name
Long description Says pip install currentsapi-python — a bug; that name was never on PyPI README says pip install currentsapi (correct)
Deps requests==2.21.0, python-dateutil==2.8.0 requests>=2.25.0, python-dateutil>=2.8.0
Python support Classifiers 2.6–3.5, no python_requires >=3.8, classifiers 3.8–3.12, CI matrix 3.8–3.12
URL currentsapi-dev/currentsapi-python currentslab/currentsapi-python
Code APIException w/ get_status() etc.; no domain/version/timeout; 3 endpoints CurrentsAPIError w/ .status/.code/.message; domain/version/timeout ctor args; 5 endpoints

Canonical distribution name decision: keep currentsapi. It matches setup.py, it is the name this project already owns on PyPI (0.0.1/0.0.2 published by Zhi Rui Tam, home page pointing at this project), and currentsapi-python is unregistered.

0.0.2 sdist was downloaded and compared: APIExceptionCurrentsAPIError, constructor gained domain/version/timeout, search() params aligned, available_* endpoints added, dependency pins relaxed.

Changes in this PR

  • fix(packaging): version single-sourced (setup.py reads __version__ from currentsapi/__init__.py); deprecated tests_require replaced by extras_require["dev"]; obsolete setup.cfg removed (deprecated description-file, and universal=1 was wrong for a py3-only package — wheels now build as py3-none-any).
  • docs(readme): states the distribution name vs repo name explicitly, notes Python 3.8+, documents CurrentsAPIError handling. Quick-start verified against source (CurrentsAPI(api_key=...), latest_news, search, available_languages/regions/category).
  • docs(changelog): 0.1.0 section extended with the packaging alignment; all existing entries fact-checked against the tree (endpoints, CI workflow, unittest.mock tests, removed search() params).

Validation

  • python3 -m pytest tests/ -q40 passed (Python 3.13.11, Linux x64).
  • python -m builddist/currentsapi-0.1.0-py3-none-any.whl + dist/currentsapi-0.1.0.tar.gz; twine check dist/* → PASSED for both. Wheel contains only the currentsapi package (no tests/examples leakage); sdist ships sources + LICENSE + tests.
  • Clean-venv smoke (python3 -m venv /tmp/sdk-smoke + pip install dist/currentsapi-0.1.0-py3-none-any.whl): from currentsapi import CurrentsAPI, __version__, instantiated with a dummy key, verified endpoint URLs and that all README-documented methods exist, and imported both example modules (company_news_monitor, source_linked_briefing) — no network calls, no credentials. pip show → Name currentsapi, Version 0.1.0.

Flags

  • Smoke ran on Python 3.13.11, which is not in the classifiers/CI matrix (they stop at 3.12). python_requires=">=3.8" does not exclude 3.13 and everything passed, but classifiers/CI are the owner's call — not changed here.

Owner checklist to actually publish (nothing below has been done)

  1. Review and merge this PR.
  2. Confirm PyPI name ownership of currentsapi (project page shows Zhi Rui Tam / currentsapi-dev as 2019 uploader): ensure the publishing account has maintainer rights on the currentsapi project on PyPI.
  3. Provide twine credentials or CI secrets: TWINE_USERNAME=__token__ / TWINE_PASSWORD=<pypi-api-token> (or configure Trusted Publishing on the GitHub workflow).
  4. Optionally add a publish workflow (.github/workflows/publish.yml) triggered on tag, then tag v0.1.0.
  5. Build final artifacts from the merge commit (python -m build), re-run twine check dist/*, and twine upload dist/* (or run the publish workflow).
  6. After upload, verify pip install currentsapi resolves to 0.1.0.

No package was uploaded, no PyPI state was modified, and no credentials were accessed.

- setup.py now reads __version__ from currentsapi/__init__.py so the
  version can no longer drift between the two files.
- Replace deprecated tests_require with an extras_require 'dev' extra.
- Remove setup.cfg: description-file is deprecated and the universal
  wheel flag is wrong for a Python 3-only package (wheels now build as
  py3-none-any).
…ndling

- State that the PyPI distribution name is 'currentsapi' while the
  repository is 'currentsapi-python', matching the 0.0.1/0.0.2 releases.
- Note Python 3.8+ support (mirrors python_requires).
- Document CurrentsAPIError and its status/code/message accessors.
@Autumn-Atlas
Autumn-Atlas merged commit 1a70cef into master Sep 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant