Feature/issue 1333 pyproject modernize#1381
Conversation
Add resource-estimate deps to dev group for uv parity. Document pyproject.toml and uv sync in CONTRIBUTING.
There was a problem hiding this comment.
Code Review
This pull request migrates the project's build configuration and metadata from setup.py to pyproject.toml, updating documentation, packaging scripts, and manifest files accordingly. Feedback on the changes suggests correcting the license field format in pyproject.toml to comply with PEP 621 and restoring the missing Apache Software License classifier to maintain parity with the previous setup.
| name = "openfermion" | ||
| description = "The electronic structure package for quantum computers." | ||
| readme = {file = "README.md", content-type = "text/markdown"} | ||
| license = "Apache-2.0" |
There was a problem hiding this comment.
| classifiers = [ | ||
| "Development Status :: 5 - Production/Stable", | ||
| "Intended Audience :: Developers", | ||
| "Intended Audience :: Education", | ||
| "Intended Audience :: Science/Research", | ||
| "Operating System :: MacOS", | ||
| "Operating System :: Microsoft :: Windows", | ||
| "Operating System :: POSIX :: Linux", | ||
| "Programming Language :: Python :: 3", | ||
| "Programming Language :: Python :: 3.10", | ||
| "Programming Language :: Python :: 3.11", | ||
| "Programming Language :: Python :: 3.12", | ||
| "Programming Language :: Python :: 3.13", | ||
| "Topic :: Scientific/Engineering :: Chemistry", | ||
| "Topic :: Scientific/Engineering :: Quantum Computing", | ||
| ] |
There was a problem hiding this comment.
The classifier "License :: OSI Approved :: Apache Software License" is missing from the classifiers list. To maintain functional equivalence with the original setup.py configuration and ensure proper categorization on PyPI, please include it.
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Chemistry",
"Topic :: Scientific/Engineering :: Quantum Computing",
]
References
- When migrating configuration, keep the settings functionally equivalent to the original to maintain a clean change history.
|
@mhucka keeping |
Moved project metadata from
setup.pyintopyproject.toml(PEP 621), modeled on qsim:[project]metadata, dynamic version/deps fromdev_tools/requirements/deps/*.txt,resourcesoptional extra, and a PEP 735devdependency group foruv sync --group dev. Removedsetup.py, and updatedMANIFEST.inand_version.pyaccordingly.Tested with
python -m build(sdist + wheel),pip install -e ., and full pytest (2196 passed; 6 Windows-only parallel-test failures also onmain), also updatedCONTRIBUTING.mdto point atpyproject.tomlas the canonical config and document theuv sync --group devworkflow.Intentionally deferred:
.pylintrc/ other dotfile tool configs intopyproject.tomluv.lock(if we want that workflow?)uv syncinstead of lockeddev_tools/requirements/envs/*.txt(those files andcreate-env-files.share unchanged)Closes #1333