Files

177 lines
6.8 KiB
Markdown

# Changelog
# [0.13.0] - 2025-07-31
### Added
- Support for generating spec files from a local path
# [0.12.2] - 2025-04-15
### Fixed
- Also avoid crashing when you get a specifically None `project_urls` from the json
# [0.12.1] - 2025-04-07
### Fixed
- If no `project_urls` are present in the package data, try `project_url` and
fall back to `package_url`
# [0.12.0] - 2025-03-03
### Added
- Support for compat packages of various granularity (eg. '7', '7.2').
Invoke with `--compat <compat-version-string>`
- Support for pyproject declarative buildsystem, [rpm documentation](https://rpm-software-management.github.io/rpm/manual/buildsystem.html), [pyproject-rpm-macros documentation](https://src.fedoraproject.org/rpms/pyproject-rpm-macros)
- section 'Provisional: Declarative Buildsystem (RPM 4.20+)'.
### Changed
- Package extras are now primarily read from `provides_extra`, only after that's empty from `requires_dist`
- Updated the list of Trove License Classifiers
# [0.11.1] - 2024-11-21
### Changed
- Bring back the processing of the legacy sdist filenames (removed in v0.11.0).
# [0.11.0] - 2024-10-22
### Added
- For packages that publish METADATA with `License-File` field on PyPI,
the generated spec files contain a flag `%pyproject_save_files -l`
which asserts the presence of license files in the distribution during the RPM build
### Changed
- Implemented PEP 625: only the standardized sdist filenames are now supported
# [0.10.0] - 2024-10-10
### Added
- CLI `--automode`, `-a` to create buildable spec files (suitable for automated
environments)
### Changed
- In the default mode of pyp2spec create a spec file that requires a human input
The top-level modules cannot be easily detected, hence `%pyproject_save_files`
has to be filled in by a packager
- Continue with creating the spec files even if the license is not detected,
leave the field blank to fill in by the packager
### Removed
- Many CLI options and manual config entries. The tool now only takes care of what it can detect from the package data.
# [0.9.0] - 2024-04-11
### Added
- Added a possibility to create spec files for specific Python versions
Use a new command-line option `-p, --python-alt-version` to set it.
# [0.8.0] - 2023-10-11
### Added
- Automatically detect whether a package is archful or not based on a wheel name.
If so, `BuildArch: noarch` is not used in the resulting spec file.
If so, `BuildRequires: gcc` is automatically added to the resulting spec file.
- Automatically detect the package extras, provided that an extra contains at least one additional requirement
The detected extras are declared as RPM subpackages and required in the build time.
### Changed
- Use project version JSON API available at PyPI to obtain package metadata.
This ensures all the fields are relevant for the requested package version
### Removed
- CLI `--archful` switch - it's detected automatically now
- `manual_build_requires` config option
- `extra_build_requires` config option
- `extra_tox_env` config option
- support for Python 3.8
# [0.7.0] - 2023-05-03
### Changed
- rpmautospec macros (`%autochangelog` and `%autorelease`) are now used to populate the respective
fields in the generated specfile. The CLI options for defining custom values have been removed
- Convert the Python classifiers to Fedora SPDX expressions (where possible, based on [PEP 639](https://peps.python.org/pep-0639/))
- When `--fedora-compliant` option is set, a check of the converted license expressions is performed
to determine whether the license is allowed in Fedora. Data is provided by the [Fedora Legal team](https://gitlab.com/fedora/legal/fedora-license-data/)
- tomllib library is used to read toml files from Python 3.11 on
### Fixed
- pyp2spec quits when a package is not found on PyPI
# [0.6.1] - 2022-08-01
### Fixed
- Include LICENSE-MIT-0 in the sdist and fix license metadata
# [0.6.0] - 2022-08-01
### Changed
- template.spec and the files created by pyp2spec are relicensed under MIT-0 (No attribution) license
- PyPI package names are normalized according to PEP 503 to better conform with [Library naming guidelines](https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_naming)
- "Initial package" is the new default changelog message, which better reflects the needs of packagers
# [0.5.0] - 2022-06-15
### Changed
- Clearly state in version that project is in the alpha maturity phase,
its API may be subject of change
# [0.4.0] - 2022-05-23
### Added
- It's possible to declare archful package via CLI (`--archful, -a`) -
the generated spec file will not contain `BuildArch: noarch` line
- Package version compatible with PEP 440 is now converted to RPM scheme,
version not following the specification remains unchanged.
For that, a modified part of [pyreq2rpm](https://github.com/gordonmessmer/pyreq2rpm/blob/master/pyreq2rpm/pyreq2rpm.py) is used
### Changed
- Requirement to generate the runtime requirements is no longer passed as an `-r` flag,
this was made the default option as of pyproject-rpm-macros 0-53
- Sources are no longer enumerated as per [this change](https://pagure.io/packaging-committee/pull-request/1157) in Fedora's Packaging Guidelines
### Fixed
- CLI `--spec-output` option has got a short version `-o`. `-s` is valid for `--summary`
## [0.3.3] - 2022-01-11
### Fixed
- Prevent creating spec file without summary (fill in placeholder `...`)
- Prevent creating spec file with multiline summary value (fill in placeholder `...`)
- Don't create a spec file when the upstream `license` field contains the whole license text instead of the keyword - error and end the program.
- Add a comment in the generated spec file that the `description` field should be filled in by the packager
- Created spec files now contain a newline at the end of file
## [0.3.2] - 2021-12-10
### Fixed
- If no `project_urls` are present in the package data, fall back to `package_url`
which always lists the PyPI package URL
## [0.3.1] - 2021-12-09
### Fixed
- When sdist is in `zip` format, it %{pypi_source} is now correctly called with all arguments: name, version and format
## [0.3.0] - 2021-12-08
### Added
- `zip` is recognized as a valid sdist format and used to create source macro
- Description lines are now wrapped at 79 characters, so they don't annoy rpmlint
- `MANIFEST.in` to include tests in sdist
### Fixed
- Cassettes were reloaded so that tests don't send real HTTP requests
- 'OSI Approved' License classifier is ignored now, it's a top-level category
that doesn't bring any meaningful information
## [0.2.0] - 2021-11-29
### Added
- Explicit comment in template.spec that "'*' +auto" is not allowed in Fedora
- Command-line option `--top-level` to filter only top-level modules during the check phase
### Changed
- Proprietary licenses are declared as "BAD" for Fedora, not "UNKNOWN"
- Minor README corrections
## [0.1.0] - 2021-11-19
### Added
- pyp2spec: First published version