Prepare the package page for the repository going public - #1
Conversation
Six of these were held back while nodemaven-python was internal, where a link into it answers 404 to anyone not signed in. - pyproject: Source and Issues added to [project.urls]. PyPI bakes that table into each uploaded distribution and never re-reads it, so these reach the existing 0.1.2 page through a release and never through the visibility flip. The same is true of everything below that touches the README, which is the long description. - README: the quickstart now makes its first live request through ANY proxy, using Provider plus host= and port=. Nothing in the library changed - the capability shipped in 0.1.0 and the README buried it in the last section. Verified 2026-09-04 against the 0.1.2 wheel from PyPI in a clean venv with NODEMAVEN_* stripped from the environment: 7 of 7 cases pass, including credentials read from a file-defined gateway's own env prefix. - README: a Parameters table for the shipped gateway carrying the dates the values were measured on, and an Errors table. Names are validated, values mostly are not, and that is now said outright. - README: the CI badge, an absolute LICENSE link, and the benchmark harness the retry claim is measured on. - CHANGELOG.md, written from the tags and the PyPI upload records rather than from memory. It records that norotate never shipped in any release. - ci.yml: a ci-ok job that is green only when every matrix job is. A required check is matched by name, so the six matrix-derived names go stale the moment the Python list changes and block every PR until somebody edits the ruleset. It needs if: always() and an explicit test of the result, because a SKIPPED required check counts as passing. - The two public members that had no docstring got one: Provider.is_measured and Proxy.provider. Ordering constraint, measured 2026-09-04 while the repository was still internal: the CI badge renders "tests: repo or workflow not found" and both new GitHub URLs 404 anonymously although the paths exist when authenticated. So this lands with the visibility flip or after it, never before - otherwise the package page carries a broken badge and a dead link, which is what the flip is meant to fix.
|
Warning Review limit reachedNext included review available in 51 minutes. View limit detailsLimit details: You’ve used the included review currently available. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (2)
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe workflow adds a stable aggregate CI status check. The README and changelog receive expanded usage, gateway, release, and reference documentation. Project metadata and provider and proxy API docstrings now include repository and behavior details. ChangesRepository maintenance
Estimated code review effort: 2 (Simple) | ~10 minutes Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing. Comment |
There was a problem hiding this comment.
All reported issues were addressed across 6 files
You're on the cubic free plan with 2 free PR reviews remaining this month. Upgrade for unlimited reviews.
Re-trigger cubic
Both are the same kind of mistake - a sentence that was true of an earlier draft and was not re-read after the draft grew. - The Errors table gave ParamError three triggers and there are more. A value outside a list the definition declares is refused too, and so are the two structural cases: session() on a definition with no session parameter, and a definition whose parameter names collide with the constructor's own. - "Names are validated, values are not" is true of the shipped gateway and false of the schema. The values key exists and is enforced; NodeMaven's definition leaves it empty on purpose, which is a fact about that definition rather than about the library. - The changelog said "all four" over a list of five, and the fifth was held back for a reason about a different repository: proxy-benchmark was internal until 2026-09-01, this one still is.
Everything here was held back while
nodemaven-pythonwas internal, where a link into it answers 404 to anyone not signed in.The ordering constraint, and it is the only risky part
Measured 2026-09-04, while this repository is still internal:
tests: repo or workflow not found;https://github.com/nodemaven/nodemaven-pythonand.../issuesboth 404 anonymously, although both paths exist when authenticated.So this merges with the visibility flip or after it, never before. Landing it first puts a broken badge and a dead link on the PyPI page, which is the exact thing the flip is supposed to fix. That is CEO rule 1 territory.
None of it reaches PyPI without a release. PyPI bakes
[project.urls]into each uploaded distribution and never re-reads the repository, and the long description is the README of the distribution that was uploaded. The 0.1.2 page will not change when this merges or when visibility flips; it changes at 0.1.3.What is in it
pyproject.toml:SourceandIssuesin[project.urls].Providerplushost=/port=. Nothing in the library changed - the capability shipped in 0.1.0 and the README buried it in the last section. Verified 2026-09-04 against the 0.1.2 wheel from PyPI in a clean venv withNODEMAVEN_*stripped: 7 of 7 cases, including credentials read from a file-defined gateway's own env prefix. This removes account issuance from the three-developer quickstart test.Parameters: a table for the shipped gateway with the dates each value set was measured on, plusErrors. Names are validated, values mostly are not, and that is now said outright rather than implied.blob/main/LICENSElink, a link to the benchmark harness the retry claim is measured on, and three stale claims corrected in place with a note on what each looked like from the inside.CHANGELOG.md, new, written from the tags and the PyPI upload records rather than from memory. It records thatnorotatenever shipped in any release: both the addition and the removal sat between the 0.1.1 and 0.1.2 tags.ci.yml: aci-okjob that is green only when every matrix job is. A required status check is matched by name, so the six matrix-derived names go stale the moment the Python version list changes and block every PR until somebody edits the ruleset. It carriesif: always()and an explicit test ofneeds.test.result, because a skipped required check counts as passing.Provider.is_measuredandProxy.provider. Public API coverage is 22/22.Checks run locally
25 tests pass in a clean venv on 3.13;
twine checkPASSED on both wheel and sdist; both workflows parse; no broken in-page anchors; no Cyrillic and no em-dashes in any tracked file. The only failing links are the threenodemaven-pythonURLs above, by design.Not in it, queued for 0.1.3
typebelongs inknown_params. The published SDK refuses it, and we probed it working from the VPS on 2026-08-26 with a negative control: a junk value answers 407 while an unimplemented name answers 200, andtype=mobiledrew T-Mobile three times plus Cellco and AS7018 wheretype=residentialand the unset arm drew wireline only. The SDK currently blocks selecting the mobile half of what we sell. It is the exact mirror of thenorotatemistake, in the other direction.mainruleset forci-okonce this is onmain.Summary by cubic
Prepares the
nodemavenpackage page for the repository becoming public by adding Source/Issues metadata, working README links and a CI badge, a changelog, clearer gateway and error documentation, and the two missing public API docstrings. The quickstart now demonstrates a live request through any proxy instead of implying a NodeMaven account is required; this is documentation-only, and runtime behavior is unchanged.CI
ci-ok, which passes only when every matrix job succeeds and prevents required-check names from drifting as Python versions change.Rollout
Written for commit 3a1e9ed. Summary will update on new commits.
Summary by CodeRabbit