Change Log¶
[Unreleased]¶
[0.26.0] - 2021-09-27¶
Added¶
- Added support for SPEC files with no Source tags
Fixed¶
- Fixed traceback on setting original locale
rpmdiff
is now called with long options to workaround a bug in argument parsing
Changed¶
- Employed Github Actions for CI and PyPI deployment
- Character encoding is now explicitly specified everywhere, to conform with PEP597
- Made
copr
project creation more robust
[0.25.0] - 2021-07-13¶
Added¶
- Added lookaside cache preset for centpkg
Fixed¶
- Started using C locale for updating %changelog section
- Fixed documentation builds with Sphinx 4
- Fixed macro value detection in
SpecFile.set_tag()
- Fixed licensecheck availability test
Changed¶
- Moved from using deprecated
--old-chroot
mock
option to--isolation simple
- Migrated from Travis CI to Github Actions
- Moved away from soon-to-be-deprecated distutils
[0.24.0] - 2021-02-02¶
Added¶
- Added
--lookaside-cache-preset
option to enable using different lookaside cache configuration presets - Added
--no-changelog-entry
option to prevent rebase-helper from generating an entry in %changelog section - Added
--keep-comments
option to disable removing comments
Fixed¶
- Fixed removing accompanying comments alongside patches
- Fixed broken
--get-old-build-from-koji
option
Changed¶
- Switched to new format of Fedora lookaside cache URLs
- Limited koji builds to x86_64 (it’s a waste of resources until rebase-helper fully supports other architectures)
- Suppressed harmless errors produced by
rpm
when expanding and deleting macros - Paths in patches are now sanitized before applying with
git apply
, to allow dealing with unusual patch formats SpecFile._process_patches()
method has been replaced with a publicSpecFile.process_patch_macros()
method
[0.23.1] - 2020-09-30¶
Fixed¶
- Fixed uploads to Fedora lookaside cache and improved error handling
- A build is no longer retried as a result of checker failure
Changed¶
SpecFile.set_version()
andSpecFile.set_release()
now allow disabling of preserving macros- rpminspect checker now uses
rpminspect-fedora
[0.23.0] - 2020-08-28¶
Added¶
- Added rpminspect checker
Fixed¶
- rebase-helper is now able to deal with existing git repository in extracted upstream sources
- Prevented git commands executed in the background from launching an interactive editor and effectively rendering rebase-helper unusable
- Outputs of checkers are now removed before subsequent runs
- Tilde is now recognized as extra version separator
make test-podman
has been updated to work with the latest podman
Changed¶
- Checker outputs are now ordered by type in the text report
- Excessive blank lines are now removed from the SPEC file when removing patches
- Sources and patches are now automatically renamed, if necessary
- abipkgdiff now falls back to comparing without debuginfo in case it is unable to read it from the provided debuginfo packages
[0.22.0] - 2020-03-31¶
Added¶
- Added more type hints, including all public API methods
Fixed¶
SpecFile.reload()
no longer pointlessly callsSpecFile._read_spec_content()
- Deleted files are now skipped when detecting unresolved conflicts during
git rebase
- Fixed detection of Koji log file containing build failure
- Adapted to changes in git 2.26.0
- Fixed unhandled exception during upload to lookaside cache
Changed¶
- Removed no longer necessary workarounds from Fedora base images
- Simplified packit configuration
- Options
--pkgcomparetool
,--versioneer-blacklist
,--spec-hook-blacklist
and--build-log-hook-blacklist
can now be specified without an argument to indicate none of the tools/hooks should be run
[0.21.0] - 2020-02-21¶
Added¶
- Added public API tests for
Tags
class - Added support for %patchlist and %sourcelist
- Added support for automatic Source/Patch numbering
Fixed¶
- commit-hash-updater SPEC hook now handles empty release name
- sources is now ignored if it’s not a regular file
- Fixed summary and report paths when using
--bugzila-id
or--results-dir
- Fixed and extended detection of ABI changes reported by abipkgdiff
- Removed deprecated encoding parameter in
json.load()
for Python 3.9 - Fixed processing of remote patches
- Fixed handling of intermediate macros in
SpecFile.set_tag()
Changed¶
- All RPM macros are now reset when
SpecFile
object is destroyed - Renamed docker directory to containers and Dockerfiles to Containerfiles
- Switched from Docker Hub to quay.io for automatic image building
- Improved and cleaned up
SpecFile
tests - replace-old-version SPEC hook can now replace also extraversion
[0.20.0] - 2019-12-06¶
Added¶
- Introduced
Tags
class unifying and simplifying access to SPEC tags - Added proper support for crate and gem archives
- Added
--bugzilla-id
option to perform a rebase based on Upstream Release Monitoring bugzilla - Added
-D
/--define
option to define macros - Added tests for public API
Fixed¶
- Fixed
--build-tasks
option - Fixed detecting unresolved conflicts in non-UTF-8 files
- Prevented loss of messages logged before logging file handlers are created
- rebase-helper now skips unparseable lines in %prep instead of tracebacking on them
- Fixed parsing SPEC files with
-h
in %prep - Fixed processing SPEC files with zero-padded indexed tags and
%patch
macros
Changed¶
- Completely reworked dealing with extraversions
- Improved
SpecFile.set_tag()
to minimize changes made to the SPEC file
[0.19.0] - 2019-09-26¶
Added¶
- Added
--workspace-dir
option to allow specifying custom workspace directory - Added sonamecheck checker for detecting SONAME changes
- Added
--copr-project-permanent
,--copr-project-frontpage
and--copr-chroots
options
Fixed¶
- Strings like “1” are no longer replaced with macros in %prep
- SPEC files without Source0 tag are now handled correctly
- Fixed copr build tool, switched to V3 API
- Avoided parsing SPEC without properly setting
%{_sourcedir}
macro first
Changed¶
- Introduced
RpmHeader
class for more convenient access to package header attributes - Modification of Patch tags now preserves whitespace to minimize differences in SPEC
- Moved Bash completion script from
/etc/bash_completion.d
to/usr/share/bash-completion/completions
Removed¶
- Removed non-working
--patch-only
,--build-only
and--comparepkgs-only
options - Temporarily removed
--continue
option - Removed no longer used
python3-six
build dependency - Removed
copr
workaround in favor of making copr build tool unavailable in case it’s not working
[0.18.0] - 2019-08-21¶
Added¶
- Added workaround for missing mock group in Fedora Rawhide
Fixed¶
- Moved setup dependencies from
install_requires
tosetup_requires
Changed¶
- Refactored logging, see logging documentation for details
- Reason of build failure is now always logged
Removed¶
- Removed unused
Application
methods and attributes - Removed unused testing files
[0.17.2] - 2019-08-09¶
Added¶
- Added tests for
SpecContent
class - Enabled and configured Packit-as-a-Service
Fixed¶
- Added exception handling to PyPI release webhook endpoint
- Fixed
TestCLI.test_cli_unit()
test - Updated
MANIFEST.in
to include all necessary files
Changed¶
- Improved tests for
Application
class SpecFile.update_changelog()
now creates %changelog section if it doesn’t exist- rebase-helper now uses
setuptools-scm
to determine version from git setup.py sdist
now supports overriding distribution base name with--base-name
option
[0.17.1] - 2019-08-01¶
Fixed¶
- Fixed PyPI release webhook endpoint
Changed¶
- Removed direct dependencies preventing PyPI release
[0.17.0] - 2019-07-31¶
Added¶
- Added possibility for plugins to specify their own arguments
- Added basic type hints and enabled mypy linter
- Added rust package category
- replace-old-version SPEC hook can now replace old version with
%{version}
macro - replace-old-version SPEC hook can now replace also parts of version in Sources and Patches
Fixed¶
- Fixed broken ansicolors dependency
- Fixed printing of output of unavaiable checkers
- Fixed determining unmatched quotation in %prep section
- Made files build log hook handle conditions and macros in %files section
- files build log hook now adds man pages in a way that follows Fedora Packaging Guidelines
- files build log hook now ignores debuginfo files
- Fixed issues with polluted global macro namespace when parsing multiple different SPEC files
- Fixed handling of remote downstream patches (URLs)
- Fixed parsing of patch strip options in %prep
- Fixed wrapping of extra long lines in the usage documentation
- Sources from lookaside cache are now downloaded to a proper location
Changed¶
- Restructured the code layout of plugins
- Refactored parts of SpecFile class
- Disabled removing of “unused” patches
mock
is now automatically run with superuser privileges if necessary- Local builder is now used if
--get-old-build-from-koji
is specified and the build can’t be downloaded from Koji - checkers (even the default ones) are now skipped if they are not available
- Sources are now copied to destination if they cannot be extracted
- Reimplemented downloading Koji builds
- Updated documentation
Removed¶
- Removed Python 2 support
[0.16.3] - 2019-05-03¶
Fixed¶
- Fixed handling of SPEC files with conditionalized sections
- Fixed replace-old-version SPEC hook not to update version in %changelog and local sources
- Fixed capturing RPM error output during SPEC parsing
- Fixed handling of absolute %license and %doc paths in files build log hook
- Fixed logging of SRPM and RPM build errors
Changed¶
- Updated packit configuration for packit 0.2.0
- Adapted to upcoming change in RPM python API
- Made
SpecFile
class more suitable for external use
[0.16.2] - 2019-03-07¶
Fixed¶
- Fixed documentation building by mocking
requests-gssapi
- Fixed
TestOutputTool
for checkers
Changed¶
- Build log hooks are now run only if build of new binary packages fails
- It is now possible to use
--get-old-build-from-koji
option without FAS
[0.16.1] - 2019-02-28¶
Fixed¶
- Made
GitPatchTool
auto-skip empty commits caused by new rebase implementation in git 2.20 - Fixed
TestGitHelper
to work on real systems with existing git configuration
[0.16.0] - 2019-02-27¶
Added¶
- Added category for R packages
- Added
make test-podman
as an alternative tomake test-docker
- Added
--skip-upload
option (to be used in conjunction with--update-sources
) - Added check that all sources for the new version are present
- Added SPEC hook for escaping macros in comments
Changed¶
--get-old-build-from-koji
now tries to get specific version build (as opposed to the latest one)- Implemented parsing of multiline macros and shell expansions in SPEC files
- rebase-helper can now handle multiline enquoted strings in %prep section
- Refactored
GitPatchTool
to make the rebase process more robust and to preserve as much of the original downstream patches as possible git mergetool
is now run again if there are some unresolved conflicts left- Associated comments are now removed along with patches
Fixed¶
- Fixed populating list of logs on build failures
- Added missing abort after failed
git am
- Fixed processing SPEC files without %prep section
- Fixed several issues in ruby-helper SPEC hook
- Fixed unwanted expansion of %autosetup macro
- Fixed automatic rebulding based on build log hooks result
- Fixed removal of %doc and %license files in subpackages
Removed¶
- Removed
requests-kerberos
support and switched torequests-gssapi
exclusively
[0.15.0] - 2018-12-21¶
Added¶
- Implemented build log hooks and added files hook to detect and fix missing/unpackaged files
Changed¶
- Refactored and simplified all plugins
Fixed¶
- Fixed not listing all argument choices while generating documentation
- Fixed error in parsing rpmdiff output
- Fixed insertion of extra blank lines to a SPEC file after removing patches
Removed¶
- Removed unneeded packages from base Docker image
[0.14.0] - 2018-10-04¶
Added¶
- Added PathsToRPMMacros SPEC hook for transforming paths in %files section
- Added
--favor-on-conflict
option to prefer upstream or downstream changes with conflicting patches
Changed¶
- Extended PyPIURLFix SPEC hook to incorporate the new https://pypi.org website
- Made processing of patches in a SPEC file more robust
- Rewritten functional test to use an artificial package designed to check most aspects of the rebase process
pylint
is now run with Python 3 only, as Python 2 variant is no longer supported- Code refactoring, simplified
SpecFile
class - Checkers are no longer required for rebase-helper to run, only available checkers are used
Fixed¶
- Fixed bug in licensecheck checker when used with json output tool
- Fixed SPEC hook tests
- Fixed strangely acting lookaside cache upload progressbar
- Fixed downloading of SRPMs with
--get-old-build-from-koji
- Fixed building usage documentation
[0.13.2] - 2018-05-18¶
Added¶
- Added licensecheck checker for detecting license changes
- Added another not-so-verbose verbosity level
Changed¶
- Refactored
utils
module
Fixed¶
- Fixed abipkgdiff detecting changes in only one object file
- Fixed uploads to lookaside cache
- Fixed broken consequent build retries
[0.13.1] - 2018-04-19¶
Added¶
- Added
--apply-changes
option to apply changes.patch after successful rebase - Implemented .gitignore update with
--update-sources
Changed¶
- Extended
README.md
- Cleaned up constants
Fixed¶
- Fixed crash after failed rebase when no checkers were run
[0.13.0] - 2018-03-29¶
Added¶
- Added possibility to make changes to specfile between build retries
- Added CommitHashUpdater SPEC hook
- Added hackage versioneer
- Added support for uncompressed tar archives
- Created integration environment for test suite to isolate it from the internet
- Added
--update-sources
option to update sources file and upload new sources to lookaside cache
Changed¶
- Switched to
requests
library for downloads - Made error messages from Koji builds more useful
- Reworked handling of downstream patches
- Changed package build process to build first SRPMs and then RPMs
- Divided checkers into categories running at different phases of rebase
- Koji build tool refactored to be better adjustable and extensible
- Colorized rebase-helper output and enhanced log messages
- Significatly improved rebase summary and report
Fixed¶
- Fixed
TestConsoleHelper.test_get_message()
test - Fixed bug in rpmdiff output analysis
- Fixed some code styling errors and a large number of issues found by static analysis
[0.12.0] - 2017-12-19¶
Added¶
- Added npmjs and cpan versioneers
- Added possibility to specify custom py.test arguments
- Added possibility to customize changelog entry
- Added version check to abort rebase if requested version is not newer than current
- Added separate tox tasks for linting
- Implemented rpmbuild and mock SRPM build tools
- Added possibility to configure rebase-helper with configuration file
- Added possibility to blacklist certain SPEC hooks or versioneers
- Created
rebasehelper/rebase-helper
Docker Hub repository
Changed¶
- Made several speed optimizations in the test suite
- Tests requiring superuser privileges are now automatically skipped if necessary
- Simplified build analysis and made related log messages more useful
Fixed¶
- Fixed documentation builds on readthedocs.org broken by rpm distribution requirement
- Fixed reading username and e-mail from git configuration
- Added missing dependencies to Dockerfile
- Fixed processing of custom builder options
- Added workarounds for RPM bugs related to
%sources
and%patches
- Fixed several unhandled exceptions
- Fixed parsing tarball filename containing certain characters
[0.11.0] - 2017-10-04¶
Added¶
- Added
rpm-py-installer
to installrpm-python
from pip - Implemented detection of package category (python, perl, ruby, nodejs, php)
- Added RubyGems versioneer
- Added RubyHelper SPEC hook for getting additional sources based on instructions in SPEC file comments
Changed¶
- Value of Version and Release tags is now preserved if there are any macros that can be modified instead
- Versioneers and SPEC hooks are now run only for matching package categories
- Bash completion is now generated from source code, so it is always up-to-date
Fixed¶
- Prevented unwanted modifications of %prep section
- Fixed unexpected removal of rpms and build logs after last build retry
- Added files are no longer listed as removed in rpmdiff report
[0.10.1] - 2017-08-30¶
Added¶
- Added
--version
argument
Changed¶
- Anitya versioneer now primarily searches for projects using Fedora mapping
- Python dependencies moved from
requirements.txt
tosetup.py
Fixed¶
- Made
CustomManPagesBuilder
work with Sphinx >= 1.6 - %prep section parser is now able to handle backslash-split lines
[0.10.0] - 2017-08-25¶
Added¶
- Implemented extensible SPEC hooks and versioneers
- Added PyPI SPEC hook for automatic fixing of Source URL of Python packages
- Added Anitya and PyPI versioneers for determining latest upstream version of a package
- Added possibility to download old version build of a package from Koji
- Added support for test suite to be run in Docker containers
- Implemented functional tests for automatic testing of whole rebase process
- Diff against original source files is now generated as changes.patch
Changed¶
- Introduced plugin system for extending build tools, checkers and output tools
- Updated for Koji 1.13 which finally brings Python 3 support
- Improved output information and reports
- Added colorized output
- Improved project documentation
Fixed¶
- Pre-configured git username and e-mail address is now used if available
- Fixed several issues in rpmdiff and especially abipkgdiff checkers
- Fixed several test suite related issues
[0.9.0] - 2017-01-05¶
Added¶
- Old sources are now downloaded from Fedora lookaside cache
- Auto-generated and improved CLI documentation and man page
- Added support for downloading files of unknown size
Changed¶
SpecFile
class preparation for pre-download hooks- Code cleanup and refactorization
Fixed¶
- Fixed regexp for getting release number from SPEC
- Fixed functionality of
--results-dir
option - Several upstream monitoring fixes
- Fixed issues caused by Fedora Flag Day
[0.8.0] - 2016-07-31¶
Added¶
- Added support for JSON output format
- Added support for copr build tool
- Added support for passing arbitrary extra arguments to local builders (mock, rpmbuild) with
--builder-options
. - Added new option
--build-retries
allows the user to specify number of build retries (by default 2) - Added support for csmock check tool
Changed¶
- Renamed fedpkg build tool to koji to make it more clear
- Downloading of files is now done only using standard Python library and not using PyCURL
Fixed¶
- Many bug fixes and code clean up
[0.7.3] - 2016-04-08¶
Added¶
- Added
rpm.addMacro
Fixed¶
- Handled exceptions raised during parsing of SPEC files
- Fixed unapplied patches mixing with deleted ones
[0.7.2] - 2016-03-15¶
Added¶
- Added information about scratch builds
Fixed¶
- Added check if file exists and is empty for the-new-hotness
- Patches are applied in case
--builds-nowait
option is used
[0.7.1] - 2016-02-22¶
Added¶
- Two new command line options used by upstream monitoring
Fixed¶
- fedpkg reimplementation
[0.7.0] - 2016-01-13¶
Changed¶
- Several improvements
Fixed¶
- pkgdiff is now smarter
- Included
tar.bz2
into list of supported formats - Added support for noarch package in case of fedpkg build
- Checker should return
None
if there is no debug package
Removed¶
- Removed a bunch of debug stuff
[0.6.2] - 2015-11-09¶
Fixed¶
- Logs are being saved to their own directory
- Prep script is moved into workspace directory
- No more traceback in case
koji
module is not present - Each checker creates its own log file
- rebase-helper informs if it failed or not
- Report on script is smarter
[0.6.1] - 2015-10-30¶
Added¶
upstream-monitoring.py
- used by upstream monitoring servicerebase-helper-fedmsg.py
- testing Python script
[0.6.0] - 2015-07-31¶
Added¶
- Parts of
%prep
section related to patching are executed - Support for abipkgdiff
Fixed¶
- Several fixes
- Replaced
yum
withdnf
[0.5.0] - 2015-05-22¶
Added¶
- Added support for building packages via fedpkg (or koji)
- Added summary report for better overview
continue
option implemented forgit rebase
- Added several tests
- Added class for operating with Git repositories
Changed¶
git rebase
is used instead ofpatch
command
Fixed¶
- Fixed several decoding issues
- Several PEP8 and W1202 fixes
Removed¶
DiffHelper
class is not needed
[0.4.0] - 2014-12-05¶
Added¶
- Handling of extra versions like
b1
,rc1
, etc. - Added build log analyzer to detect unpackaged files or other issues
- Added Bash completion
Changed¶
- Improved version extraction from archive name
- rebase-helper output is looged to
rebase-helper-results
directory SpecFile
class rewritten