Repository navigation
Conversation
The repo ships an MIT LICENSE, but pyproject.toml and .speakeasy/gen.yaml leave the license unset. The published distribution therefore carries no License-Expression, and scanners that read package metadata (such as Aikido) report the package as Proprietary. Set the license in gen.yaml so future generations keep it, and in pyproject.toml so the current tree builds with it. The built wheel now reports License-Expression: MIT.
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.
Summary
The repo has shipped an MIT
LICENSEsince #74 (following #68), and the wheel bundles it. Butpyproject.tomland.speakeasy/gen.yamlleave the license unset, so the published distribution has noLicense-Expression, nolicensefield, and no license classifier. Scanners that read package metadata (such as Aikido) find nothing there and fall back to reportingclerk-backend-apias Proprietary. Every project that depends on the SDK gets a critical license finding as a result.This PR declares the license in both places:
.speakeasy/gen.yaml:python.license: ""becomesMIT, so future generations carry it.pyproject.toml: addslicense = "MIT"(a PEP 639 SPDX expression) to[project], so the current tree builds with it.PR #245 set the precedent of changing a
gen.yamlvalue and the matchingpyproject.tomlentry together.No version bump, no regenerated code, and no
License ::classifier. PEP 639 deprecates the classifier whenLicense-Expressionis present, and some tools reject the combination.Before / after
Wheel
METADATAfrom an isolated build (python -m build, poetry-core 2.5.0):Before (
main):After:
The sdist
PKG-INFOshows the sameLicense-Expression: MIT.Please check on the next generation
Merging this does not publish anything by itself. The fix reaches PyPI with the next Speakeasy generation, which renders
pyproject.tomlfrompython.license. Could you confirm that generation keeps exactly onelicense = "MIT"in[project]?.speakeasy/gen.lockhas persistent edits enabled forpyproject.toml. If the generator writes the license in a different place or format than the line added here, the merge could produce a duplicatelicensekey, which is invalid TOML.I know CONTRIBUTING asks for issues rather than direct PRs on generated code. This touches only generator config and the matching
pyproject.tomlline, so I hope it's small enough to take directly.