Skip to content

Use newer pyproject metadata licensing specifications#336

Merged
cleder merged 2 commits intocleder:developfrom
bkmgit:patch-1
Feb 19, 2026
Merged

Use newer pyproject metadata licensing specifications#336
cleder merged 2 commits intocleder:developfrom
bkmgit:patch-1

Conversation

@bkmgit
Copy link
Copy Markdown
Contributor

@bkmgit bkmgit commented Feb 19, 2026

https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license


Important

Update pyproject.toml to use newer licensing specifications with license and license-files fields.

  • Licensing:
    • Update license field in pyproject.toml to "LGPL-2.1-or-later".
    • Add license-files field with "LICENSE" and "docs/LICENSE.rst".
    • Remove project.license section.

This description was created by Ellipsis for 17e8bfe. You can customize this summary. It will automatically update as commits are pushed.

Summary by CodeRabbit

  • Chores
    • Updated project licensing metadata to LGPL-2.1-or-later format with explicit license file references.

@semanticdiff-com
Copy link
Copy Markdown

Review changes with  SemanticDiff

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Update pyproject.toml to use modern license metadata specifications

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Modernize license specification in pyproject.toml to use SPDX identifier format
• Replace deprecated [project.license] table with inline license field
• Add license-files field to explicitly declare license file locations
• Remove outdated LGPL classifier from project metadata

Grey Divider

File Changes

1. pyproject.toml ⚙️ Configuration changes +2/-4

Modernize license metadata to SPDX format

• Replaced [project.license] table with inline license = "LGPL-2.1-or-later" using SPDX
 identifier
• Added license-files field pointing to LICENSE and docs/LICENSE.rst
• Removed deprecated LGPL classifier from classifiers list
• Cleaned up formatting by removing blank line before license section

pyproject.toml


Grey Divider

Qodo Logo

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @bkmgit, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request modernizes the project's pyproject.toml configuration by adopting the latest recommended practices for declaring licensing information. The changes ensure that the project's license is specified in a more standardized and explicit manner, improving compatibility and clarity for packaging tools and users.

Highlights

  • Updated pyproject.toml licensing: The pyproject.toml file has been updated to use the newer, more explicit licensing specifications as recommended by Python packaging guidelines.
  • Removed legacy license classifier: The License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) classifier was removed from the project metadata.
  • Adopted direct license field: The [project.license] table with a text field was replaced by a direct license = "LGPL-2.1-or-later" field under [project].
  • Specified license files: A new license-files = ["LICENSE","docs/LICENSE.rst"] field was added to explicitly declare the locations of the project's license files.
Changelog
  • pyproject.toml
    • Removed outdated license classifier from project metadata.
    • Replaced legacy [project.license].text with project.license and project.license-files fields.
    • Updated license identifier to LGPL-2.1-or-later.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@cleder
Copy link
Copy Markdown
Owner

cleder commented Feb 19, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@what-the-diff
Copy link
Copy Markdown

what-the-diff Bot commented Feb 19, 2026

PR Summary

  • Update on License Specification
    The format of the license specification was simplified and made more concise. Also, the license version has been updated to "LGPL-2.1-or-later".

  • License Classifier Removal
    A particular classifier associated with the LGPL license has been removed from the list of classifiers.

  • Location Information for License Files
    Details have been added about the locations of the license files, particularly in the "LICENSE" document and in the "docs/LICENSE.rst". This makes it easier to find and reference them.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 19, 2026

📝 Walkthrough

Walkthrough

The pyproject.toml file was updated to modernize license metadata declarations. The LGPL classifier was removed from classifiers, and new standardized license metadata fields were added, replacing the deprecated project-wide license declaration block.

Changes

Cohort / File(s) Summary
License Metadata Update
pyproject.toml
Replaced deprecated license declaration block with standardized PEP 639 format: added license = "LGPL-2.1-or-later" and license-files pointing to LICENSE and docs/LICENSE.rst; removed LGPL classifier.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested labels

Review effort 1/5, license, documentation, configuration

Poem

🐰 Hop! License fields now align so clear,
No more classifiers, just metadata here,
LGPL-2.1 shines bright and true,
Standardized formats—the proper way through!
A metadata hop, neat and clean! 🌱

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating pyproject.toml to use newer metadata licensing specifications instead of the older format.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Preparing review...

@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented Feb 19, 2026

Codacy's Analysis Summary

0 new issue (≤ 0 issue)
0 new security issue

Review Pull Request in Codacy →

AI Reviewer available: add the codacy-review label to get contextual insights without leaving GitHub.

Copy link
Copy Markdown

@llamapreview llamapreview Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto Pull Request Review from LlamaPReview

Review Status: Automated Review Skipped

Dear contributor,

Thank you for your Pull Request. LlamaPReview has analyzed your changes and determined that this PR does not require an automated code review.

Analysis Result:

PR contains only configuration changes to pyproject.toml to modernize license specifications, requiring no automated code review

We're continuously improving our PR analysis capabilities. Have thoughts on when and how LlamaPReview should perform automated reviews? Share your insights in our GitHub Discussions.

Best regards,
LlamaPReview Team

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly updates the pyproject.toml file to use modern, standardized licensing metadata as per PEP 621 and PEP 639. The changes replace the deprecated [project.license] table and license classifier with the license and license-files keys. This is a good improvement. I have one piece of feedback regarding a potential build issue due to setuptools version compatibility.

Comment thread pyproject.toml
Copy link
Copy Markdown

@ellipsis-dev ellipsis-dev Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed everything up to 17e8bfe in 8 seconds. Click for details.
  • Reviewed 24 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 0 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.

Workflow ID: wflow_lF56jCj7FTOpGJPj

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Feb 19, 2026

Greptile Summary

This PR modernizes the license metadata in pyproject.toml to comply with PEP 639 and current Python packaging best practices.

Changes:

  • Replaced the old [project.license] table format with the newer inline license field using SPDX identifier LGPL-2.1-or-later
  • Added license-files to explicitly reference LICENSE and docs/LICENSE.rst
  • Removed redundant license classifier from the classifiers list

The changes correctly represent the existing LGPL 2.1 license and follow the guidance from the Python Packaging Authority documentation.

Confidence Score: 5/5

  • This PR is safe to merge with no risk
  • This is a metadata-only change that updates the license specification format to follow modern Python packaging standards (PEP 639). The SPDX identifier correctly matches the actual LGPL 2.1 license file, and both referenced license files exist in the repository.
  • No files require special attention

Important Files Changed

Filename Overview
pyproject.toml Updated license metadata to use newer PEP 639 SPDX identifier format

Last reviewed commit: 0e18e74

Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, no comments

Edit Code Review Agent Settings | Greptile

@qodo-code-review
Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. Wrong docs/ license file selected 🐞 Bug ✓ Correctness
Description
The repository contains docs/LICENSE.GPL with the full LGPL v2.1 text, yet the PR includes
docs/LICENSE.rst (a notice-only file) instead. If the intent was to distribute a docs/-directory
license file, docs/LICENSE.GPL is the correct choice; however, since the root LICENSE already
covers the full text, the simplest fix is to omit all docs/ entries entirely.
Code

pyproject.toml[46]

+license-files = ["LICENSE","docs/LICENSE.rst"]
Evidence
The repository tree shows two distinct license-related files under docs/: docs/LICENSE.rst
(copyright notice only) and docs/LICENSE.GPL (full LGPL v2.1 text). The PR chose the notice file
over the full-text file, which is a logical inversion of what license-files should contain.

docs/LICENSE.GPL[1-4]
docs/LICENSE.rst[1-10]
pyproject.toml[46-46]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The `license-files` entry includes `docs/LICENSE.rst` (a copyright notice) while ignoring `docs/LICENSE.GPL` (the full LGPL v2.1 text). This is a logical inversion — the file with actual legal text is excluded while the incomplete notice file is included.

## Issue Context
- `docs/LICENSE.GPL` contains the complete LGPL v2.1 legal text (identical to root `LICENSE`).
- `docs/LICENSE.rst` contains only a short copyright notice and a hyperlink.
- The root `LICENSE` file alone is sufficient for correct PEP 639 metadata.
- Including redundant or incorrect `docs/` entries adds confusion without benefit.

## Fix Focus Areas
- pyproject.toml[46-46]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pyproject.toml (1)

1-5: ⚠️ Potential issue | 🟠 Major

Bump setuptools minimum to >=77 for PEP 639 support.

PEP 639 support (SPDX license expressions and license-files list) was added in setuptools 77.0.0. The current constraint setuptools>=61.2 is insufficient and will fail to properly handle the license and license-files fields during builds.

Proposed fix
 requires = [
-    "setuptools>=61.2",
+    "setuptools>=77",
 ]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pyproject.toml` around lines 1 - 5, Update the setuptools minimum requirement
in the pyproject.toml build-system requires to ensure PEP 639 support: change
the "setuptools" entry under requires from "setuptools>=61.2" to
"setuptools>=77" so the build-backend ("setuptools.build_meta") will handle SPDX
license expressions and license-files correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@pyproject.toml`:
- Around line 1-5: Update the setuptools minimum requirement in the
pyproject.toml build-system requires to ensure PEP 639 support: change the
"setuptools" entry under requires from "setuptools>=61.2" to "setuptools>=77" so
the build-backend ("setuptools.build_meta") will handle SPDX license expressions
and license-files correctly.

@cleder cleder enabled auto-merge February 19, 2026 14:10
@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (26dce2f) to head (0e18e74).
⚠️ Report is 3 commits behind head on develop.

Additional details and impacted files
@@            Coverage Diff            @@
##           develop      #336   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           32        32           
  Lines         2709      2709           
  Branches        91        91           
=========================================
  Hits          2709      2709           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cleder cleder merged commit 0eda0c2 into cleder:develop Feb 19, 2026
27 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.

2 participants