diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..04a5be4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/python-pyproject-metadata-*.tar.gz diff --git a/README.md b/README.md index 9ff45cc..5e1724d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # python-pyproject-metadata -Dataclass for PEP 621 metadata with support for core metadata generation. +[This package](https://github.com/FFY00/python-pyproject-metadata) contains a +dataclass for [PEP 621](https://peps.python.org/pep-0621/) metadata with +support for core metadata generation. -This project does not implement the parsing of pyproject.toml containing +This project does not implement the parsing of `pyproject.toml` containing PEP 621 metadata. Instead, given a Python data structure representing PEP 621 metadata (already parsed), it will validate this input and -generate a PEP 643-compliant metadata file (e.g. PKG-INFO). \ No newline at end of file +generate a PEP 643-compliant metadata file (e.g. PKG-INFO). diff --git a/python-pyproject-metadata.spec b/python-pyproject-metadata.spec new file mode 100644 index 0000000..addd8cc --- /dev/null +++ b/python-pyproject-metadata.spec @@ -0,0 +1,96 @@ +# Building the documentation requires the furo Sphinx theme. But building furo +# requires sphinx_theme_builder, which requires this package. Avoid a +# dependency loop with this conditional. +%bcond_with doc + +Name: python-pyproject-metadata +Version: 0.6.1 +Release: 1%{?dist} +Summary: PEP 621 metadata parsing + +License: MIT +URL: https://github.com/FFY00/python-pyproject-metadata +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz + +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: %{py3_dist docutils} +BuildRequires: %{py3_dist packaging} +BuildRequires: %{py3_dist pip} +BuildRequires: %{py3_dist pytest} +BuildRequires: %{py3_dist setuptools} +BuildRequires: %{py3_dist tomli} +BuildRequires: %{py3_dist wheel} + +%if %{with doc} +BuildRequires: %{py3_dist furo} +BuildRequires: %{py3_dist sphinx} +BuildRequires: %{py3_dist sphinx-autodoc-typehints} +%endif + +%global _desc %{expand: +Dataclass for PEP 621 metadata with support for core metadata generation. + +This project does not implement the parsing of pyproject.toml containing +PEP 621 metadata. Instead, given a Python data structure representing +PEP 621 metadata (already parsed), it will validate this input and +generate a PEP 643-compliant metadata file (e.g. PKG-INFO).} + +%description %_desc + +%package -n python3-pyproject-metadata +Summary: PEP 621 metadata parsing + +# This can be removed when F40 reaches EOL +Obsoletes: python3-pep621 < 0.5 +Provides: python3-pep621 = %{version}-%{release} + +%description -n python3-pyproject-metadata %_desc + +%if %{with doc} +%package doc +Summary: Documentation for python3-pyproject-metadata + +# This can be removed when F40 reaches EOL +Obsoletes: python3-pep621-doc < 0.5 +Provides: python3-pep621-doc = %{version}-%{release} + +%description doc +Documentation for python3-pyproject-metadata. +%endif + +%prep +%autosetup + +%build +%pyproject_wheel +rst2html --no-datestamp CHANGELOG.rst CHANGELOG.html + +%if %{with doc} +# Build the documentation +PYTHONPATH=$PWD/build/lib +mkdir html +sphinx-build -b html docs html +rm -rf html/{.buildinfo,.doctrees} +%endif + +%install +%pyproject_install +%pyproject_save_files pyproject_metadata + +%check +%pytest + +%files -n python3-pyproject-metadata -f %{pyproject_files} +%doc CHANGELOG.html README.md +%license LICENSE + +%if %{with doc} +%files doc +%doc html +%endif + +%changelog +* Tue Jul 26 2022 Jerry James - 0.6.1-1 +- Initial RPM, obsoleting python-pep621 diff --git a/sources b/sources new file mode 100644 index 0000000..bdcaa2b --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (python-pyproject-metadata-0.6.1.tar.gz) = 4af84f9534a5c71e192e1355e1e99f99e82b97d01411c011ed2f1dff579a7420a0f5d982eea5a032de8549c14191b64334c8e2aeea22fe767837e662e8d8b588