Conversation
f29320b to
5a4e370
Compare
|
@mauritsvanrees who could the our legal hero for this PR? 🤔 😅 see the first message for the details. |
|
Note: I did not look at the code yet. @gforcada We could make a mapping from our most used license classifiers to the new license expressions. I see at least these:
Maybe @polyester has thoughts here? You could also ask in the sprint standup tomorrow if anyone there has knowledge about this. |
Move `get_pyproject_toml` inline on the module as in `plone.meta` we don't have `.shared.packages` module. `META_HINT` is on our `config_package` module. Simplify the `OLDEST_PYTHON_VERSION` to a static value (3.10).
Check the license and trove classifiers from `setup.py` against a known set of licenses and complain in certain scenarios: - if there is more than one license trove classifier - if there is license trove classifier out of our known set - if the license and the license trove classifier disagree If all works well and there is either none or only one trove classifier and it matches with the license argument on setup.py, get a valid SPDX license expression. This last part is important, otherwise `pyroma`, and probably PyPI when uploading, will complain and refuse new releases.
Surround `pyproject.toml` `project` table with some special comments that `config-package` will use to avoid dropping that content whenever it runs. Add the `[project.urls]` table on `pyproject.toml` with a few project related URLs: source, issue tracker and change log.
5a4e370 to
62b54c9
Compare
|
I am trying it on Eyeballing the changes, what stands out is this:
At the end of the file I see this change:
Another one:
|
|
Rather more importantly, the |
Easier: if the repo url starts with |
The easy part is done: adapt the
zope.metascript to be usable withinplone.meta.We still need to fix what happens after we run againconfig-packageon a repository 😅Now we have a legal problem 🙃:
On
setup.pywe used both:but also classifiers:
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",On
pyproject.tomlthough, we are pressed to use license expressions which mostly boils down to either put a single string from the SPDX license list or a combination of a few of them (though not so much our case).On
license=insetup.pywe have a mix of:The last (
ZPL 2.1) one seems easy:license = "ZPL-2.1".What about the GPL or BSD ones? the few ones that mention v2 is
GPL-2.0-onlyorGPL-2.0-or-later?Same for BSD, there are so many variations... 😵💫 😅