Dashboard shows a message when the SRPM build logs are not present instead of
an empty page that might suggest logs are being loaded.
(packit/dashboard#158)
Packit service now discards old (currently, this means 3 months) SRPM builds logs.
(packit/packit-service#1315)
We have added target_branch_head_commit property to the PullRequest class in ogr that allows
you to get commit hash of the HEAD of the target branch (i.e. base, where the changes are merged to).
(packit/ogr#671)
Service now passes PACKIT_TARGET_SHA variable, which holds commit hash of the HEAD of the target
branch where the changes are supposed to be merged, to the Testing Farm environment. This should
help solving the issue of running tests from non-merged codebase on the Testing Farm side.
(packit/packit-service#1319)
Packit no longer ignores --no-bump and --release-suffix options for
source-git repos.
packit/packit#1452
Packit now names local branch pr/{pr_id} when checking out a PR, even when
it’s not being merged with the target branch. This results into NVR of the
build containing pr{pr_id} instead of pr.changes{pr_id}.
packit/packit#1445
%changelog sections in dist-git using the %autochangelog macro are
preserved when running
propose-downstream, except when sync_changelog is set to true.
When checking if directories hold a Git-tree, Packit now also allows .git
to be a file with a gitdir
reference, not only a directory.
SRPM build view contains info about build start and finished time.
packit/dashboard#163
When submitting a distgit PR during propose-downstream job, we create
a README.packit file with some info about the sync the packit version used.
To avoid this you can add create_sync_note: false to conig file.
packit/packit#1465
A new option --no-require-autosetup for source-git init command has been
introduced. Please note that source-git repositories not using %autosetup may
not be properly initialized. (packit#1470)
Packit-service now supports re-triggering against failed task using comment on
pull request /packit rebuild-failed and similarly for testing farm: /packit retest-failed.
(packit-service#1303)
Synchronization of default files can now be disabled using a new config
files_to_sync. Key sync_files is now deprecated.
(packit#1483)
(packit.dev#390)
python3-setuptools_scm is now available by default in the sandbox.
Packit now allows specifying more test distros for one build target
to test on in Testing Farm in the configuration. The checks for the
test job will also contain the name of the actual test distro
(and not the build target as previously).
A new option, srpm_build_deps, in the packit configuration file
can be used. Which is a list of RPM dependencies that are needed for
the actions to be run when building SRPM and is an indicator to build
the SRPMs in Copr.
When a specfile is being generated, and both specfile_path and
downstream_package_name are not set, Packit now correctly resolves this
situation and sets specfile_path to the name of the upstream repo suffixed
with ".spec".
(packit#1499)
A new command packit source-git status has been introduced for checking
the synchronization of a source-git and a dist-git repository based on the
used git trailers. The command outputs a range of commits which need to be
synchronized from dist-git to source-git or the other way around. If possible,
the command also provides instructions on how to synchronize the repositories.
(packit#1500)
We have added a new enable_net configuration option for Copr builds that
allows you to disable network access during Copr builds. It is also complemented
by --enable-net/--disable-net CLI options if you use Packit locally.
(packit#1504)
Packit now adds 👀 instead of 👍 as a reaction to /packit command
(packit-service#1372)
Progress of propose-downstream is now saved in the database and is available
via API. Visualization in the dashboard is to follow next week, stay tuned.
(packit-service#1292)
When running tests for the pull-request job, we now expose environment
variables for commit hash, branch and URL both for pull-request source and
target. In the test environment, you can use the following variables:
PACKIT_SOURCE_SHA, PACKIT_TARGET_SHA, PACKIT_SOURCE_BRANCH,
PACKIT_TARGET_BRANCH, PACKIT_SOURCE_URL and PACKIT_TARGET_URL.
These variables are not set for test runs of releases and branch pushes.
(packit-service#1382)
You can view information about ongoing propose-downstream jobs via our dashboard.
(dashboard#168)
We have switched the cache for dist-git branches and Copr targets to TTL cache
that gets discarded once in 12 hours, in case there is a change in targets, the
changes shall propagate to both of our deployments without the need to redeploy
within 12 hours. (packit#1513)
Packit now comments when it fails to find Copr project specified in the config.
(packit#1395)
Packit now reacts to dist-git pushes to either rawhide or main when configured
to do Koji builds for rawhide.
(packit#1393)
You can specify an identifier for your job to be able to configure one job multiple times.
For example, you can build multiple projects from one repository (known as monorepo concept)
or try multiple build options. Using identifiers allows Packit to avoid naming collisions
in commit statuses and default Copr project names.
(packit-service#1385)
Packit no longer provides a misleading comment when it fails to update a set of
targets on its own Copr projects.
(packit-service#1397)
When using Packit CLI for creating Bodhi updates,
you can now set fas_username and fas_password in your Packit user config
to not be asked about that when the command is executed.
Also, this allows Packit GitHub application to use this as well
so you can look forward to Bodhi updates created by Packit
(will be announced and described in a dedicated post).
(packit#1517)
We have updated contact information to Packit <hello@packit.dev>.
(packit-service#1410)
Interactions with Bodhi should be now more reliable when creating Bodhi updates.
(packit#1528)
Packit will no longer error out when trying to create a new Copr repository
when it is already present.
(packit#1527)
There is a new packit_instances key that you can use to specify the Packit
instances you want to use for working on your jobs. Nothing will change for our
production users, but users of our stage instance need to use this key to
preserve the support of the stage instance – they can set both stg and prod in
the packit_instances list to use both, or use just one. Just be careful with
the downstream jobs where both instances work with the same services.
This new option works like other Packit options so you can set it on the top
level and/or (re)define it on the job level.
More information about our staging instance can be found here:
packit#1530.
(packit#1417)
We have implemented get_contributors function in ogr that can be used for getting contributors to the project on GitHub (set of logins) and GitLab (set of authors).
(ogr#692)
When multiple propose downstream attempts for the same PR fail, the error messages are sent to to the same issue (as comments), instead of creating multiple new issues.
(packit#1427)
Downstream synchronization of the Packit configuration file (aka packit.yaml) is now working properly again.
(packit#1532)
packit source-git update-dist-git and packit source-git update-source-git now check the synchronization of source-git and dist-git repositories prior to doing the update. If the update can’t be done, for example, because the histories have diverged, the command provides instructions on how to synchronize the repositories.
A --force option is available to try to update the destination repository anyway.
(packit#1534)
When using post_upstream_clone to generate your spec-file,
Packit now correctly checks out a release before the action is run.
(packit#1542)
We have introduced two new build and test target aliases: fedora-latest-stable resolves to the latest stable Fedora
Linux release, while fedora-branched resolves to all branched releases (all Fedora Linux release, except rawhide).
(packit#1546)
We have reverted the functionality of Packit that allowed you to have set only specific targets for Copr repositories.
This functionality was introduced a while ago and was found to be not very beneficial in cases of differently
configured Copr jobs building in parallel in the same Copr repository. This is an implementation detail in the end,
but Copr project chroots are now only added and never subtracted
(every build has precisely specified targets based on the copr_build job definition).
(packit#1551)
If you are using our stage instance, we make it listen only on /packit-stg comment commands so you can now differentiate
between the instances when commanding Packit via pull-request or issue comments.
For the production instance, you can continue using /packit prefix as you are used to.
(packit-service#1432)
A new configuration option downstream_branch_name has been added, which is meant to be used in source-git projects
and allows users to customize the name of the branch in dist-git which corresponds to the current source-git branch.
(packit#1555)
revision-range argument of the source-git update-source-git command is now optional. If not specified,
dist-git commits with no counterpart in source-git are synchronized.
(packit#1547)
We have implemented reporting of status for the propose-downstream job which means that you can now
see the progress of the job via check runs/commit statuses on the particular release commits.
(packit-service#1435)
We have fixed an issue affecting Pipelines view on Dashboard. Currently you should be able to see pipelines again; we are also working on fixing empty rows for propose-downstream jobs.
(packit-service#1461)
Packit now shows the specific info when it does not have permissions to create a Bodhi update of your package.
When you configure issue_repository in your Packit config file, Packit will create an issue in that project and link the dist-git page where you can give Packit FAS user the correct permissions.
(packit-service#1465)
Packit now exports PACKIT_PR_ID environment variable to the Testing Farm.
(packit-service#1467)
The bug in the Copr permission request is now fixed. (After the release of a new Copr client, Packit didn’t catch that permission problem and didn’t request the permissions to build in a custom Copr project.)
(packit-service#1472)
We have fixed a bug that caused Packit to fail when submitting Testing Farm on commit trigger.
(packit-service#1474)
Packit now builds RPMs in Copr triggered by release event with correct NVR (without the artificial release suffix). You can use it for distributing RPM packages via Copr.
(packit-service#1478)
From the security perspective, we have decided to disable the create_pr option for our service, from now on Packit will unconditionally create PRs when running propose-downstream.
We have also updated the propose-downstream CLI such that it is possible to use create_pr from configuration or override it via --pr/--no-pr options.
(packit#1563)
Packit now supports release_suffix configuration option that allows you to override the long release string provided by Packit that is used to ensure correct ordering and uniqueness of RPMs built in Copr.
(packit#1568)
When initializing source-git repos, the author of downstream commits created from patch files which are not in a git-am format is set to the original author of the patch-file in dist-git, instead of using the locally configured Git author. (packit#1575)
Packit now correctly inform users about downstream errors only on the last try. (Previously, Packit informed for all tries even the last try succeded.) (packit-service#1485)
Dashboard now also shows propose-downstream jobs in pipelines view. We have also merged all jobs to one column to minimize dead space on the page. (dashboard#178)
Metadata dictionary is no longer required when specifying a job. Keys which used to belong to the yaml metadata dictionary are now keys of the job dictionary itself. (packit#1569)
Packit now correctly removes patches during packit source-git init when the preamble does not contain blank lines. (packit#1582)
Packit now supports --release-suffix parameter in all of the related CLI commands. Also we have added a support for the release_suffix option from configuration to the CLI. With regards to that we have introduced a new CLI switch --default-release-suffix that allows you to override the configuration option to Packit-generated default option that ensures correct NVR ordering of the RPMs. (packit#1586)
Resolved an SRPM build problem caused by a new version of git that refuses to fetch in a git repo when it’s owned on the OS level by someone else. (packit#1497)
Packit now passes PACKIT_COPR_PROJECT and PACKIT_COPR_RPMS variables to the Testing Farm. PACKIT_COPR_PROJECT holds Copr project in format owner/project and PACKIT_COPR_RPMS space-separated RPMs that were built in Copr. (packit-service#1486)
We have automated our allowlisting process via a new Packit comment command /packit verify-fas. You can find more info in our requirements. (packit-service#1487)
We have fixed an issue with the handling of messages from Copr on release builds, which has resulted in not setting the correct statuses on commits. (packit-service#1513)
When doing an automatic FAS account verification, Packit now suggests the URL where the GitHub account needs to be set. (packit-service#1508)
Packit will not raise an exception anymore when creating a SRPM with dangling symlinks. (packit#1592)
You can now override which dist-git commits will be built in Koji by specifying FAS accounts of authors and committers using
allowed_pr_authors or allowed_committers in the job metadata (see the documentation). (packit-service#1520)
Git ref name that Packit works with during propose-downstream is now made more obvious in logs.
(packit#1626)
Packit now correctly handles creation of custom archives in root while a specfile is in a subdirectory.
(packit#1622)
There is a new check for git projects that are allowed to use a custom Copr project.
There will be a better integration in the form of a new config field in Copr settings that Packit can use.
In the meantime, the mapping is defined and maintained by the Packit team.
Let us know if you need a project to be allowed.
(packit-service#1556)
A link to Copr build logs was updated: it now points to a place where logs are available once a build starts.
(packit-service#1554)
We adjusted the way we check the author of the PR for PRs related to
dist-git commits that trigger Koji build jobs. This should fix the race
condition causing not creating Koji builds in some cases.
(packit-service#1573)
Results from Testing Farm are now correctly reported when multiple jobs with
different identifier are defined.
(packit-service#1565)
On a Bodhi authentication error, Packit will retry the task multiple times
in ten-minute intervals to be able to fix the issue in the meantime.
(packit-service#1564)
Packit now guides everyone better when a FAS account is private
and updates the internal information about installations correctly
when the app is reinstalled.
(packit-service#1575)
Packit can now correctly create Bodhi updates using the new Bodhi 6 client.
(packit#1651)
RPM build commands of Packit CLI have been merged into one build subcommand,
for more information see the updated documentation.
We have also introduced a new –srpm option to the new build subcommand
that can be used to trigger local, Copr or Koji build from an already built
SRPM rather than the one implicitly created by Packit.
(packit#1611)
Packit now correctly supports tmt_plan and tf_post_install_script in the
configuration. (packit#1659)
We have reverted to Bodhi 5 client since Packit couldn’t create bodhi updates
with the new version 6 client: fedora-infra/bodhi#4660
(packit-service#1590).
Packit also provides a more helpful error message when it hits this.
(packit#1660)
During creating Copr builds, on Copr errors, Packit will retry the task
multiple times in case there is a Copr outage.
(packit-service#1579)
When using Packit before being allowed, Packit newly links an approval issue where the self-approval can be performed. (packit-service#1596)
A downstream koji-build can now be re-triggered by adding a comment containing /packit koji-build into a dist-git pull request with target branch corresponding to the branch the build should be acted upon. (packit-service#1586)
Action fix_spec_file can change a spec file - Packit now preserves that change.
(packit#1679)
BREAKING CHANGE: fixed an issue where the repo was searched for the specfile
before checking if downstream_package_name is set, and
<downstream_package_name>.spec can be used as the specfile_path.
(packit#1663)
We have fixed an issue when propose downstream didn’t retry to download sources that were not yet available at the time of the first attempt. (packit-service#1609)
When creating Copr builds, Packit will now retry multiple times in case there is a GitHub outage or an internal error. (packit-service#1589)
Packit CLI can now submit VM images in Red Hat Image Builder.
All build-related commands have now consistent --wait / --no-wait options.
(packit#1666)
Packit prepare-sources command now has a --create-symlinks / --no-create-symlinks option,
which enables copying the archive instead of symlinking. This will be used in the Copr environment,
where symlinking the archive previously caused issues.
(packit#1682)
We have fixed the handling of the situation when Packit lacks permission to update a Copr project.
(packit#1684)
Dashboard should now load data for jobs faster because
the database querying has been improved and also queries are done only when needed.
(packit-service#1617,
dashboard#189)
SRPMs for Copr builds are built in Copr by default for Packit GitHub app installations since September 6, 2022.
For older installations, you can set the srpm_build_deps config option to use Copr as a builder.
Let us know if you hit any issue with the new implementation. We are going to slowly decommission the old implementation
and are happy to help with the transition. (packit-service#1636)
More indexes added to the database have further improved API/dashboard response times. (packit-service#1639)
When submitting Testing Farm tests, Packit will now retry multiple times in case there is a failure.
(packit-service#1605)
We have implemented checking the available composes before submitting the tests for both internal and public Testing
Farm. (packit-service#1628)
When querying Bodhi for information about Fedora/EPEL releases to resolve aliases,
packit now correctly handles pagination of API results. This resolves an issue that caused
Fedora 37 not to be pointed to from any alias.
(packit#1704)
Added support for filenames specified in source URL fragments, for example: https://example.com/foo/1.0/download.cgi#/%{name}-%{version}.tar.gz (specfile#100)
Some more underlying improvements to our libraries and deployment.
Propose downstream job now pushes changes even when it’s not creating a new pull request. This allows updating existing pull requests. (packit#1725)
Packit now deduces Copr targets for Copr builds when you have set your custom Copr project to be used. (packit-service#1673)
Retriggering tasks via re-run button in Github commit checks when there are configured identifiers for jobs should now work correctly. (packit-service#1671)
Packit now reports a pending state rather than an error on Testing Farm runs in case the related copr build has not finished yet. (packit-service#1669)
We have improved mapping of Testing Farm Composes, if you have set your own custom mapping and the TF Compose is available, it will be used as is without any additional modifications we do (version, etc.). (packit-service#1675)
We have added support for running the tests with Copr builds built by Packit in another pull request (in a different repository). You can read more about this feature in our documentation. (packit-service#1658)
Packit now correctly selects a Testing Farm compose when it’s specified correctly in the configuration without an architecture suffix. (packit-service#1689)
We have fixed an issue that prevented Packit to work correctly on merge requests on GitLab instances. (packit-service#1683)
Packit Service will now replace invalid characters for the Copr projects using the default naming scheme. (packit-service#1684)
When we report to set Packit allowed forge projects in the Copr projects, the link for the group projects is now correct. (packit-service#1680)
It is now possible to filter changelog entries by specifying lower bound EVR, upper bound EVR or both. (specfile#104)
Packit now correctly authenticates with Bodhi 6 and therefore creates Bodhi updates. 🚀 (packit#1746, packit-service#1704)
There are two changes in the naming of the service jobs:
The build job type name has been deprecated. It aimed to be an alias when Packit supported just one build type.
There are currently more types of builds and just build can be misleading. Please, be explicit and use copr_build instead.
The production_build name for upstream Koji build is misleading because it is not used to run production/non-scratch
builds and because it can be confused with the koji_build job that is triggered for dist-git commits.
(The koji_build job can trigger both scratch and non-scratch/production builds.)
To be explicit, use upstream_koji_build for builds triggered in upstream and koji_build for builds triggered in downstream.
Users will get a neutral status describing the change when the old names are in use. The status will become a warning
starting in November and the old names will be removed by the end of the year. (packit-service#1656)
We’ve fixed the Markdown table format in the GitHub checks page, which was broken when the user’s repo was not allowed to use Packit. (packit-service#1688)
Fixed an issue with version and release in a spec file being updated even if --no-bump flag was specified.
Also fixed an issue when None appeared in release instead of a number.
(packit#1753)
We have improved the handling of test jobs which should fix related issues with reporting and triggering
that occurred when multiple test jobs were configured.
(packit-service#1717)
Fixed an issue due to which the repository was never searched for a specfile if specfile_path was not specified, and specfile_path was always set to <repo_name>.spec. (packit#1758)
Packit is now able to generate automatic Bodhi update notes including a changelog diff since the latest stable build of a package. (packit#1747)
Description of Bodhi updates now contains a changelog diff. (packit-service#1713)
You can re-trigger a Bodhi update via dist-git PR comment /packit create-update. (packit-service#1729)
Packit now correctly finds an SRPM when rpmbuild reports warnings while it parses a spec file. (packit#1772)
When packit.yaml is present in the repo but is empty, Packit now produces a better error message instead of an internal Python exception. (packit#1769)
Retriggering of tests when there is a build job and a test job with an identifier configured was fixed. (packit-service#1731)
Packit GitHub app will not modify a package version when release_suffix configuration option is empty. (packit-service#1738)
Our specfile parser now supports localized tags (e.g. Summary(fr)) and tags with qualifiers (e.g. Requires(post)). (specfile#132)
SRPM build logs are now deleted after 30 days instead of 90 days. This doesn’t apply to SRPM builds done in Copr, which deletes the logs after 14 days. (packit/packit-service#1745)
We have changed the limit for our SLO1: it was increased from 15s to 30s to account for setting all statuses. (packit-service#1776)
The job names deprecated in October (build alias of copr_build and production_build replaced by upstream_koji_build) newly lead to an error state (was neutral ) of the deprecated status created by Packit.
The old names will be removed by the end of the year. (packit-service#1777)
The Copr build logs URL now points to logs that are available even while building. (packit-service#1767)
Fixed an issue that caused empty lines originally inside changelog entries to appear at the end. (specfile#140)
packit propose-downstream now uploads all remote sources (those specified as URLs) and the
source specified by spec_source_id (whether remote or not) to lookaside. Previously, only Source0
was uploaded. Source0 is no longer treated specially, but as spec_source_id is Source0 by default,
Source0 is still being uploaded by default unless spec_source_id is overriden.
(packit#1778)
A VM image build can be triggered inside a PR via a comment
command /packit vm-image-build (the job needs to be defined in the configuration).
This feature is experimental and is still being tested.
(packit-service#1761)
Section and Tag objects in specfile library now have normalized_name property for more convenient comparison.
There is a new method, Specfile.get_active_macros(), to get active macros in the context of the spec file.
The underlying rpm.spec instance is now exposed as Specfile.rpm_spec property.
There is a new utility class for parsing NEVRA strings. (specfile#141)
Packit now correctly handles a race condition when it tries to create bodhi
updates for builds that are not yet tagged properly. CLI exprience was also
improved for this case.
(packit#1803)
Packit now resets the Release tag during propose-downstream if the version
is updated and the Release tag has not explicitly been overridden in the
upstream specfile.
(packit#1801)
If you still don’t build SRPMs in Copr you’ll get a warning status that you
should use srpm_build_deps to be sure that we don’t break your workflow once
we switch to building all SRPMs in Copr in January.
(packit-service#1804)
We’ve increased internal task retry backoff time in Packit GitHub app from 3 to
7 seconds. We hope this will increase success for network flakes and random
infrastructure issues. Creation of bodhi updates should be now more reliable too
as Packit will try more times (from 2 to 5).
(packit-service#1800)
Tags enclosed in conditional macro expansions are not ignored anymore.
(specfile#156)
Context managers (Specfile.sections(), Specfile.tags() etc.) can now be nested
and combined together (with one exception - Specfile.macro_definitions()), and
it is also possible to use tag properties (e.g. Specfile.version, Specfile.license)
inside them. It is also possible to access the data directly, avoiding the with
statement, by using the content property (e.g. Specfile.tags().content), but
be aware that no modifications done to such data will be preserved. You must use
with to make changes.
(specfile#153)
Context managers are no longer shared between Specfile instances, making it possible
to work with more than one Specfile instance at a time.
(specfile#157)