Fix packaging metadata and repository URLs - #33
Open
glopesdev wants to merge 1 commit into
Open
Conversation
bruno-f-cruz
approved these changes
Aug 21, 2026
glopesdev
changed the base branch from
fix-device-dispatch
to
refactor-data-api
August 21, 2026 23:09
glopesdev
force-pushed
the
fix-package-metadata
branch
2 times, most recently
from
August 22, 2026 00:28
a923063 to
e691b0f
Compare
glopesdev
changed the base branch from
refactor-data-api
to
fix-array-member-typing
August 22, 2026 01:39
The four packages carrying the code declared only a name, a description and their dependencies, so each would publish a blank project page with no license, no classifiers and no links, where the umbrella harp package declared all of them. They now carry authors, license, license-files, readme, classifiers and project.urls. Each package keeps its own copy of the license text, since PEP 639 forbids a parent directory reference in license-files and setuptools accepts one while silently shipping no file. Sibling links in the package READMEs are absolute, since a relative link resolves nowhere on a project page. Repository, documentation and raw content URLs follow the rename to harp-tech/python, and mkdocs declares site_url for the first time.
glopesdev
force-pushed
the
fix-package-metadata
branch
from
August 22, 2026 01:40
e691b0f to
e20eea6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four of the five published distributions carry no license, no long description, no classifiers and no links. Verified against built wheels rather than config:
harpreportsLicense-Expression, a bundledLICENSE, twelve classifiers, fiveProject-URLentries and a long description, whileharp-protocol,harp-device,harp-serialandharp-datareport a summary and nothing else. So the page for the package a user installs to get the protocol layer would be blank, with no license and no route back to the repository.All four now declare
authors,license,license-files,readme, the same twelve classifiers as the umbrella, and the same five URLs.harp-protocolalready hadauthorsandlicense, so it gained only what was missing.Why the license text is duplicated per package
PEP 639 is explicit that
license-filespatterns are relative to the directory holdingpyproject.tomland that "Parent directory indicators (..) MUST NOT be used". So no compliant backend can declare a shared license from outside the package directory. Setuptools makes this worse than a plain error:license-files = ["../../../LICENSE"]builds successfully and emitsLicense-Expression, while silently shipping no file and noLicense-Fileentry, which is how a wheel ends up claiming MIT and carrying no license text. A package-local copy produces both.This is also what comparable projects do: opentelemetry-python, which publishes dozens of distributions from one repository, keeps a
LICENSEbeside everypyproject.toml.URLs after the rename
The repository is now
harp-tech/python, so every URL follows. Three of the twelve edits were not metadata: the root README logo was pinned to araw.githubusercontent.comURL, which is the one form that does not follow a rename, and four API links in the same README pointed at the old documentation path.mkdocs.ymlgainssite_url, which was unset, so the published location is declared in one place.Attaching the READMEs is also what made their relative sibling links load-bearing, since a relative link resolves nowhere on a project page. They are now absolute, which incidentally takes
mkdocs build --strictfrom six unrecognized relative links to zero.Deliberately unchanged
Inter-package dependencies stay unpinned for now. Only release candidates have been tagged so far, and pip excludes pre-releases unless the specifier names one, so a
>=0.5floor would refuse0.5.0rc2, while an exact pin cannot be expressed in static metadata against a version derived from the tag.Sibling links point at
tree/mainrather than at commit permalinks or at the documentation site. A permalink fails in the worse direction, staying valid while showing an old tree, and the documentation site does not exist until the first non-prerelease deploy. This will happen soon, but would be good to decide first what our approach for per-version docs will be, so I deferred it.