docs: repair the Code of Conduct's rendering and refresh CONTRIBUTING - #613
Conversation
- CODE_OF_CONDUCT.md: the whole document sat inside a `1. ` ordered-list item, every line after the first indented three spaces to continue it, so GitHub rendered the entire Code of Conduct as one numbered, indented list entry. Drop the wrapper; the Contributor Covenant 1.4 prose is byte-identical otherwise. The two `http://contributor-covenant.org` links become `https://` and point at the canonical 1.4 path, which is what resolves today. The reporting contact is left alone: `jarryshaw@icloud.com` matches the `authors` entry in `pyproject.toml`. - CONTRIBUTING.md: the substance dated from the 2019 `gaocegege/maintainer` generator and described another project. Its worked example was `store/localstore:`, a TiDB path with no counterpart here, and its "no longer than 70 characters" rule is exceeded by 127 of the last 200 subjects (median 77, longest 119). Replaced with the convention actually in use -- 55 of the last 60 commits carry a Conventional Commits type -- using a real commit as the example, and noting that older history is mixed. Added the test tiers and `make test` / `make test-all`, the pipenv development environment, the generated-`CHANGELOG.md` trap that the `Changelog drift` job gates, the reStructuredText convention with its repository-root Markdown exception, and the linters with their real line lengths (120 and 100, not PEP 8's 79). Dropped the stale generator footer, and stopped naming the README by extension. - Templates: the bug report offered Python 3.4-3.7 as examples where CI tests 3.10-3.14, and asked for no `pcapkit` version; the pull-request template asked for neither a passing test run nor a changelog entry. No changelog entry: contributor-facing documentation, not user-visible. Verified `python util/changelog_md.py --check` still exits 0. No tests run -- nothing here touches the package.
|
✅ GOOD TO MERGE — head |
Cross-review appendix — PR #613Reviewer: Sonnet; PR authored on Opus 5. Reviewed at head CIRollup
|
Requested by the maintainer: "for COC, let's use the latest version? i see it at 3.0 already". `CODE_OF_CONDUCT.md` was Contributor Covenant 1.4, whose rendering #613 repaired while deliberately leaving the version alone. - The text is the canonical 3.0 Markdown, fetched from https://www.contributor-covenant.org/version/3/0/code_of_conduct/code_of_conduct.md and diffed against what is committed, rather than transcribed. Our Pledge, Encouraged Behaviors, Restricted Behaviors and Scope are unaltered, upstream typographic quirks included. - 3.0 ships two `[NOTE` placeholders an adopter must fill. The reporting channel now names `jarryshaw@icloud.com`, the contact 1.4 already carried and the one `SECURITY.md` names as its email fallback, plus GitHub's report-abuse form for the case a solo project otherwise cannot cover -- a report about the maintainer. The enforcement placeholder is an instruction to the adopter and is removed. A sentence sends security reports to `SECURITY.md` instead, so the two documents do not appear to share a channel. - 3.0 assigns enforcement to plural "Community Moderators" (and once, inconsistently, "Community Managers"). This repository has one maintainer, so all eight occurrences are singular now, and the reporting section says plainly that there is no moderation team and that response is best-effort. The four-rung ladder is kept: each rung maps onto a lever one person holds on GitHub -- a private message, a locked thread, an interaction limit, a permanent block. - 3.0 is CC BY-SA 4.0, where 1.4's attribution paragraph carried no licence notice at all. The attribution names version 3.0, links the permanent `version/3/0/` URL, carries the CC BY-SA 4.0 notice and link, indicates that changes were made as BY requires, and confines share-alike to this document. `LICENSE` is untouched and the code stays BSD-3-Clause. Changelog entry added to `docs/source/changelog/1.5.0.rst`; `CHANGELOG.md` regenerated with `python util/changelog_md.py` and `--check` exits 0. Rendering verified through GitHub's Markdown API -- the ladder comes back as four list items each nesting three, not the single collapsed item #613 had to fix. No tests run: nothing here touches the package.
Requested by the maintainer: "for COC, let's use the latest version? i see it at 3.0 already". `CODE_OF_CONDUCT.md` was Contributor Covenant 1.4, whose rendering #613 repaired while deliberately leaving the version alone. - The text is the canonical 3.0 Markdown, fetched from https://www.contributor-covenant.org/version/3/0/code_of_conduct/code_of_conduct.md and diffed against what is committed, rather than transcribed. Our Pledge, Encouraged Behaviors, Restricted Behaviors and Scope are unaltered, upstream typographic quirks included. - 3.0 ships two `[NOTE` placeholders an adopter must fill. The reporting channel now names `jarryshaw@icloud.com`, the contact 1.4 already carried and the one `SECURITY.md` names as its email fallback, plus GitHub's report-abuse form for the case a solo project otherwise cannot cover -- a report about the maintainer. The enforcement placeholder is an instruction to the adopter and is removed. A sentence sends security reports to `SECURITY.md` instead, so the two documents do not appear to share a channel. - 3.0 assigns enforcement to plural "Community Moderators" (and once, inconsistently, "Community Managers"). This repository has one maintainer, so all eight occurrences are singular now, and the reporting section says plainly that there is no moderation team and that response is best-effort. The four-rung ladder is kept: each rung maps onto a lever one person holds on GitHub -- a private message, a locked thread, an interaction limit, a permanent block. - 3.0 is CC BY-SA 4.0, where 1.4's attribution paragraph carried no licence notice at all. The attribution names version 3.0, links the permanent `version/3/0/` URL, carries the CC BY-SA 4.0 notice and link, indicates that changes were made as BY requires, and confines share-alike to this document. `LICENSE` is untouched and the code stays BSD-3-Clause. Changelog entry added to `docs/source/changelog/1.5.0.rst`; `CHANGELOG.md` regenerated with `python util/changelog_md.py` and `--check` exits 0. Rendering verified through GitHub's Markdown API -- the ladder comes back as four list items each nesting three, not the single collapsed item #613 had to fix. No tests run: nothing here touches the package.
What this is
A review of
CODE_OF_CONDUCT.mdandCONTRIBUTING.md(plus the two.githubtemplates, which arethe same class of document), checking every claim they make against what the repository actually does
today. Both needed changes. Nothing in
pcapkit/,tests/orexamples/is touched.CODE_OF_CONDUCT.md — a rendering defect, not a policy change
The whole document was wrapped in a
1.ordered-list item, with all 27 content lines indented threespaces to continue it. On GitHub that renders the entire Code of Conduct as a single numbered,
indented list entry. It has been that way since
9705860in December 2017.Dropping the wrapper leaves the Contributor Covenant 1.4 prose byte-identical —
git diff -wshows only the heading line and the three link lines. The two
http://contributor-covenant.orglinksare now
https://and point at the canonical 1.4 path (/version/1/4/code-of-conduct/), which iswhat resolves today; the old ones 301 rather than 404, so this is tidying rather than repair.
The reporting contact is deliberately unchanged:
jarryshaw@icloud.commatches theauthorsentryin
pyproject.toml, so it is real and current, not a placeholder.Left for you to decide: whether to move off Covenant 1.4. 1.4 has no enforcement-guidelines
section. 2.1 adds a four-rung enforcement ladder, and 3.0 — which is now the latest, superseding 2.1 —
restructures the document into Encouraged/Restricted Behaviors with a "Community Moderators" role and
carries
[NOTE: ...]placeholders the adopter is expected to fill in. Both are a larger commitmentthan 1.4 makes, so which version to adopt is a call for you rather than something to change under
review.
CONTRIBUTING.md — the substance was from 2019 and described another project
It was generated by
gaocegege/maintaineron 2019-10-24 and only mechanically touched since (theREADME rename in 2022, the default-branch rename in 2023). Claims checked against the codebase:
store/localstore: add comment for variable declaration.store/.util/codec,util/types:, many as*:The real convention is Conventional Commits: 55 of the last 60 commits carry a
type(scope):prefix. Older history is mixed (bare
protocols:,corekit:), which the document now says so acontributor reading
git logis not misled.Added, because the document was silent and each is a real trap:
make test(the unit tier, the selection CI runs) vsmake test-all, and thefailure mode
tests/_tiers.pyexists to prevent — a unit-tier module reading a generated capturepasses locally and fails on a fresh checkout.
make setup, and thatPIPENV_VENV_IN_PROJECT=1puts it in.venv/— so only that environment has the dependencies.docs/source/changelog/<version>.rst;CHANGELOG.mdisproduced by
util/changelog_md.pyand a hand-edit fails theChangelog driftjob.docs/source/, with therepository-root Markdown exception that
util/changelog_md.pyalready documents.pylint, 100 forisort, not PEP 8's 79 —and the fact that none of them runs in the pull-request workflows, so they are a local gate.
docs/source/pep.rst, the maintained Help Wanted list.The README is referenced without its extension, so the reference stays correct either side of the
README conversion happening in parallel.
Templates
bug_report.mdoffered[e.g 3.7, 3.6, 3.5, 3.4]for the Python version where CI tests 3.10–3.14,and macOS Mojave for the OS. It also asked for no
pcapkitversion, which triage needs. ThePCAPKIT_DEVMODE=trueinstruction was checked and is still valid, so it stays.PULL_REQUEST_TEMPLATE.mdasked for neither a passing test run nor a changelog entry; the latter isCI-gated. The bare "Followed PEP8" checkbox now points at the coding-style section, since PEP 8's
79 columns is not what the linters enforce.
feature_request.mdwas checked and needed nothing.Verification
No changelog entry — this is contributor-facing documentation, not user-visible.
python util/changelog_md.py --checkstill exits 0. No tests were run; nothing here touches thepackage.