Skip to content

Improve PyPI packaging metadata and README#32

Merged
marevol merged 1 commit into
mainfrom
chore/pypi-publishing-readiness
Jun 25, 2026
Merged

Improve PyPI packaging metadata and README#32
marevol merged 1 commit into
mainfrom
chore/pypi-publishing-readiness

Conversation

@marevol

@marevol marevol commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Polishes the package for PyPI publishing. The project ships the GitHub README.md directly as the PyPI long description (readme = "README.md" in pyproject.toml), so this PR makes that file render and read well on the PyPI project page while keeping a single source of truth, and fills in the standard distribution metadata that was missing. It also bumps the version for the next development cycle.

pyproject.toml

  • Bump version 0.2.00.3.0.dev0 to open the next development cycle (PEP 440 canonical dev form).
  • Add keywords for discoverability.
  • Add Trove classifiers (development status, console environment, intended audience, Python 3 / 3.13, OS, search/utilities topics). No license classifier is added on purpose — the project uses the SPDX license = "Apache-2.0" expression (setuptools ≥ 77, emitted as License-Expression), which is mutually exclusive with the deprecated License :: classifier.
  • Add [project.urls] (Homepage, Repository, Issues, Documentation, Changelog) so the links appear in the PyPI sidebar.

README.md

  • Add badges (PyPI version, supported Python versions, license) using absolute URLs so they render on PyPI.
  • Feature pip install as Method 1 (with pipx / uv tool variants), since PyPI is the primary distribution channel; Docker and from-source methods follow.
  • Fix the placeholder repository URL your-orgcodelibs in the git clone examples.
  • Fix the relative LICENSE link (which 404s on PyPI) to an absolute GitHub URL, both in the license badge and the License section.
  • Normalize the FESS_VERSION example from 15.6.1 to 15.7.0 to match the code default and every other example.
  • Refresh the Docker image tag from the stale 0.1.0 to 0.2.0.

Verification

  • uv build produces fessctl-0.3.0.dev0 sdist + wheel.
  • twine check dist/*PASSED for both artifacts (confirms the README renders as the PyPI long description).
  • Inspected the built wheel METADATA: version 0.3.0.dev0, License-Expression: Apache-2.0 (no license classifier), all Project-URLs, keywords, classifiers, and Description-Content-Type: text/markdown present.

- Bump version to 0.3.0.dev0 for the next development cycle
- Add keywords, Trove classifiers, and [project.urls] to pyproject.toml
  (no license classifier; License-Expression Apache-2.0 is used)
- Rework README as the PyPI long description: PyPI/Python/License badges
  with absolute URLs, feature pip install as the primary method, fix the
  placeholder repository URL (your-org -> codelibs), point the LICENSE
  link to an absolute URL, normalize FESS_VERSION examples to 15.7.0,
  and refresh Docker image tags
@marevol marevol merged commit 713f666 into main Jun 25, 2026
3 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