Skip to main content

2023

ยท 20 min read

Let's see what happened in Packit in 2023.

Week 0 ๐ŸŒ„ (December 20th 2022 โ€“ January 2nd 2023)โ€‹

  • ogr now raises GitForgeInternalError rather than PagureAPIException when getting 50x response from the Pagure API. This should increase usability as those tasks will be retried. (ogr#762)
  • Packit now puts the correct release number into the changelog when the Release tag is reset during propose-downstream. (packit#1816))

Week 1 (January 3rd โ€“ January 9th)โ€‹

  • SRPMs for projects that installed the GitHub App before September 6th and don't have srpm_build_deps defined are now built in Copr as well. (packit-service#1822)
  • We have fixed a bug in dashboard that linked null as a Copr build for Testing Farm runs that do not require any Copr build. (dashboard#200)
  • All classes including Specfile itself can now be copied using the standard copy() and deepcopy() functions from copy module. (specfile#176)

Week 2 (January 10th โ€“ January 16th)โ€‹

Week 3-4 (January 17th โ€“ January 30th)โ€‹

  • Users can now re-trigger bodhi_update and koji_build jobs by /packit create-update and /packit koji-update comments in an issue opened by Packit in the configured issue_repository if anything went wrong during these jobs. (packit-service#1796)
  • All Copr projects created by Packit now default to enable_net=False: our documentation stated this, but it wasn't the case. This is now corrected. (packit#1825)
  • You can now specify update_release: false in the configuration to tell Packit not to change the Version and Release in the spec file. It works the same as --no-update-release (renamed from now deprecated --no-bump) in the CLI. (packit#1827)
  • Packit now supports setting module_hotfixes for Copr projects. (packit#1829)
  • Packit now also allows passing in free-form parameters to Testing Farm in order to support all of its options immediately once they are added. The parameters can be passed through the tf_extra_params config option. The free-form dictionary must follow the structure of Testing Farm POST requests. See our documentation and examples for more information. (packit-service#1853)
  • Fixed a bug in section parsing that caused sections to be ignored when there were macro definitions spread across the spec file and not cumulated at the top. (specfile#191)
  • Also fixed the infinite loop that occurred when section options were followed by whitespace. (specfile#197)

Weeks 5โ€“6 (February 1st โ€“ February 13th)โ€‹

  • You can now use --srpm option with the packit build locally CLI command. (packit#1810)
  • You will newly see news about Packit as a footer of the GitHub check runs summary. (packit-service#1881)
  • Packit now groups related builds and test runs (e.g. triggered by the same event, just different chroots) together. In the future, this will allow better presentation of the overall pipelines (e.g. in the dashboard). We now also create database entries before sending requests to external service (e.g. Testing Farm), therefore failures will be more visible in the dashboard. (packit-service#1787)

Week 7 (February 14th โ€“ February 20th)โ€‹

  • Packit now provides PACKIT_PROJECT_VERSION environment variable when running changelog-entry action. (packit#1853)
  • Packit CLI now requires bodhi in version 7.0.0 at minimum. (packit#1844)
  • You can now specify branches for a job triggered by a commit with a regex. (packit-service#1909)

Week 8 (February 21st โ€“ February 27th)โ€‹

  • packit validate-config CLI command now provides details about errors when it cannot parse the config file. (packit#1861)
  • --update-release/--no-update-release CLI flag now affects only Release, not Version. (packit#1857)
  • Packit does fewer API calls when searching for the package configuration file in remote repositories. (packit#1846)
  • Commit statuses/check names will now contain the name of the branch or release for the build and test jobs with commit or release trigger. This will prevent the collision of the names. (packit-service#1920)

Week 9 (February 28th โ€“ March 6th)โ€‹

  • Aliases logic was updated to account for the upcoming Fedora release (Bodhi now marks such release as frozen). From now on, Fedora 38 updates will be created even when the release is frozen. (packit#1863)
  • packit validate-config now correctly checks glob-patterns in 'files_to_sync' (packit#1865) and provides details about errors when it cannot parse a config file. (packit#1861)
  • Pull-from-upstream jobs are now displayed on our dashboard ๐Ÿฅณ https://dashboard.packit.dev/jobs/pull-from-upstreams (packit-service#1951, packit-service#1939)
  • Packit will no longer automatically request access to the forks on GitLab. This will prevent us from spamming one-time contributors with requesting the access, whereas the regular contributors can add Packit following the instructions from the comments on the MRs, so they can receive the results of Packit pipeline right from the commit statuses. (packit-service#1946)
  • Packit will retry tasks that are interrupted by a worker shutdown. This should improve throughput and reduce cases where there is no outcome, i.e. "builds should have been done but nothing happened". (packit-service#1935)
  • OGR now understands a few community-hosted GitLab instances that could not be determined automatically from the hostname. Thanks to that, you don't need to hardcode these instances to be mapped correctly. (ogr#775)

Thank you, @SpyTec for so many wonderful changes in our dasbhoard.

Week 10 (March 7th โ€“ March 13th)โ€‹

  • Parsing the spec file by RPM is now performed only if really necessary, greatly improving performance in certain scenarios. (specfile#212)

Week 11 (March 14th โ€“ March 20th)โ€‹

  • Packit now uses the get_current_version action defined by the user to retrieve version before updating the specfile %setup macro (if any). (packit#1886)

Week 12 (March 21st โ€“ March 27th)โ€‹

  • 'upstream_tag_template' is now also used when looking for the latest version tag in Git. This allows upstream repositories to mix different tag-patterns in the same repository, but consider only one to tell the latest version. (packit#1891)

Week 13 (March 28th โ€“ April 3rd)โ€‹

  • Packit now preserves %autorelease during propose_downstream and pull_from_upstream. (packit#1904)
  • Since in GitLab, it is not possible to overwrite the pending statuses, Packit now provides more generic descriptions and URLs when setting the first pending status. (packit-service#1975)

Weeks 14โ€“15 (April 3rd โ€“ April 17th)โ€‹

  • packit source-git related commands can skip dist-git repos, where the git trailer is not found, when looking for the right dist-git dir where to work. (packit#1938)
  • Tmt tests can now be run with fmf root outside of git root (packit#1936)
  • Commits created by Packit no longer contain the "Signed-off-by" tag. (packit#1934)
  • Packit's source_git functionality installs/loads the _packitpatch script in a more reliable manner that doesn't rely on deprecated setuptools functionality. (packit#1926)
  • Packit now supports monorepo configuration in CLI (packit#1864)
  • Packit should now correctly catch the logs if any of the user actions fail during propose_downstream. (packit#1939)
  • Packit now resets Release field in dist-git spec file to 1 when the version in upstream spec file is not up-to-date with the release that triggered propose_downstream. (packit#1940)

Week 16 (April 18th โ€“ April 24th)โ€‹

  • Packit now complies with PEP 621 and stores project metadata in pyproject.toml. (packit#1913)
  • Packit now properly respects upstream_ref for tags that start with "a", "b", "c", "e", "n", "r", "s". (packit#1943)
  • Packit Service now supports multi package configuration (a.k.a. monorepo configuration). (packit-service#1982)

Week 17-18 (April 25th โ€“ May 3rd)โ€‹

  • Detection of %autorelease usage in dist-git spec file during propose-downstream and pull-from-upstream has been improved and Packit will always preserve it. (packit#1949)
  • We have fixed an issue that prevented you from building in Copr and Koji on release in the GitLab upstream. (packit-service#2027)
  • TMT tests can now be run with FMF root outside of git root. (packit-service#2007)
  • When reacting to branch pushes, Packit now correctly checks whether the branch name matches the configuration for the test jobs with configured commit trigger. (packit-service#2015)
  • The propose-downstream job triggered by an issue comment now correctly loads the configuration from the upstream repository. (packit-service#2021)
  • Packit is newly on Mastodon. Or, more specifically, on Fosstodon. Follow @packit@fosstodon.org and be one of the first to know about all the news!

Week 18 (May 4th - May 9th)โ€‹

We have experienced issues with automatic Bodhi updates that we are investigating. In case you miss a Bodhi update, you can retrigger the job via /packit create-update comment in a dist-git pull request. Besides that, during this short week (another Czech Republic public holiday) we didn't manage to implement any significant new features.

Week 19 (May 9th โ€“ May 15th)โ€‹

  • Packit now doesn't react to its own comments on Pagure and GitLab (on GitHub, this was already implemented). (packit-service#2048)

Week 20 (May 16th โ€“ May 22nd)โ€‹

  • We have implemented a denylisting mechanism allowing us to denylist namespaces/projects to prevent misuse of our service. (packit-service#2046)
  • Packit will now additionally require for each test job requiring build a build job definition to be present in the Packit configuration file. (packit-service#2012)
  • Packit now checks whether the configured architecture for the test target is supported by Testing Farm and in case it's not supported, Packit doesn't submit these test requests. (packit-service#2053)

Week 21 (May 23rd โ€“ May 29th)โ€‹

  • Unsuccessful Image Builder requests now provide error details so you can fix the Image configuration. (packit#1981)
  • Copr projects created by Packit will not follow the Fedora branching from now. This decision has been made to lower the load on Copr from the temporary Copr projects created, mainly, for the PR builds. If you are releasing your packages to the Copr, please use the new setting follow_fedora_branching. Already existing projects are not affected by this change and it is also not enforced with the custom Copr repositories. (packit#1970)
  • Additional artifact(s) passed as artifacts in the tf_extra_params dictionary will be now combined with the artifact passed by Packit instead of rewriting it. (packit-service#2056)
  • Specfile library now handles multiple %changelog sections. (specfile#230)

Week 22 (May 30th โ€“ June 5th)โ€‹

  • Packit will now filter the pull requests based on the target branch if the branch is specified in the particular job configuration. (packit-service#2074)
  • Packit now supports manual_trigger in the configuration that allows you to make jobs run only when explicitly triggered by a comment. (packit-service#2069)

Week 23 (June 6th โ€“ June 12th)โ€‹

  • Our dashboard now shows projects in a table instead of the cards. (dashboard#267)

  • /packit test command has two new options:

    With --identifier option, Testing Farm will trigger only jobs with that identifier. (packit-service#2079)

    Also, it is now possible to specify labels for a job and trigger tests based on labels using a --labels option of the /packit test command. (packit#1988, packit-service#2088)

  • If the vm_image_build job doesn't have Copr project/owner configured, Copr project used for the latest Copr build of the pull request will be now used. (packit-service#2080)

  • Fixed filters in files_to_sync not being applied properly. (packit#1977)

  • The issue that could've caused inconsistencies when tests from a PR were supposed to be merged during the test runs on the Testing Farm has been fixed. (packit-service#2090)

Week 24 (June 13th โ€“ June 19th)โ€‹

Week 25 (June 21st โ€“ June 27th)โ€‹

  • If you are interested about the manual triggering deployed two weeks ago, David Kornel and Jakub Stejskal published a blog post about this on fedoramagazine.org.
  • Copr builds configured as a monorepo job will now be built in one Copr project together. The bug with overwriting the statuses for monorepo jobs has been fixed as well. (packit-service#2097)

Week 26 (June 27th โ€“ July 3rd)โ€‹

  • The bug which prevented errors on Testing Farm request submission from being correctly propagated to the user was fixed. (packit-service#2103)
  • pull_from_upstream jobs can now be retriggered with a comment /packit pull-from-upstream in a dist-git pull request. (packit-service#2087)

Week 27 (July 4th โ€“ July 10th)โ€‹

  • Packit now correctly reloads upstream specfile after running pre-sync action. (packit#2006)

Week 28 (July 11th โ€“ July 17th)โ€‹

  • Packit now includes instructions on how to checkout the dist-git PR locally when syncing the release. (packit-service#2116)
  • We have fixed a bug in processing options of %prep macros in our specfile library. For instance, when a quoted string appeared inside an expression expansion, it could lead to improper parsing, rendering the spec file invalid after accessing the options. (specfile#253)
  • packit.dev has a new format! As the content has expanded a lot in the recent year, we decided to switch to using Docosaurus: now all the documentation is in one place and this format also enables additional features for our blog posts. (packit.dev#694)

Weeks 29โ€“30 (July 18th โ€“ July 31st)โ€‹

  • With plenty of team members on vacation, we didn't manage to implement any significant new features during these two weeks.

Week 31 (August 1st โ€“ August 7th)โ€‹

  • Licenses in Packit specfiles are now confirmed to be SPDX-compatible. (example PR: packit#2026) If you are interested in more details, see a talk from Flock 2023 by Mirek.

Week 32 (August 8th โ€“ August 14th)โ€‹

  • Two new configuration options for filtering when getting latest upstream release tag were introduced: upstream_tag_include and upstream_tag_exclude. They should contain a Python regex that can be used as an argument in re.match. (packit#2030, packit-service#2138)
  • Retriggering of pull-from-upstream via a comment will now use the correct configuration file from the default dist-git branch. (packit-service#2140)
  • The pull-from-upstream job can now be used with upstream repos that are not hosted on a supported git forge. (packit-service#2137)

Week 34 (August 22nd โ€“ August 28th)โ€‹

  • We have fixed a bug in packit source-git init caused by the changed behaviour in the newer version of rpmbuild. (packit#2048)
  • We have fixed an issue in our API endpoint that could cause DoS until manual intervention from our team. (packit-service#2164)
  • We have fixed a bug causing broken retriggering of Github checks. (packit-service#2161)
  • SRPM build commit statuses, for monorepos projects, are now being correctly updated. (packit-service#2157)
  • We have fixed the bug resulting in incorrect reporting for tests when retriggering a build of a different target that was not configured for tests. (packit-service#2144)
  • We have fixed an issue that caused retriggers of Testing Farm to fail, if you specified any labels in the comment and had one or more test job definitions without any labels specified. (packit-service#2156)
  • Macro definitions and tags gained a new valid attribute. A macro definition/tag is considered valid if it doesn't appear in a false branch of any condition appearing in the spec file. (specfile#276)

Week 35 (August 29th โ€“ September 4th)โ€‹

  • Now Packit exposes PACKIT_PACKAGE_NAME, PACKIT_UPSTREAM_PACKAGE_NAME and PACKIT_DOWNSTREAM_PACKAGE_NAME env variables to all the actions. (packit#2061)
  • Packit now sets PACKIT_UPSTREAM_REPO and PACKIT_DOWNSTREAM_REPO environment variables for release syncing actions. The variables represent paths where the respective git repositories are cloned (packit-service#2166)
  • We have fixed a bug causing issues with displaying some Project views on our dashboard. (packit-service#2165)

Week 36 (September 5th โ€“ September 11th)โ€‹

  • Packit now supports commit-message action that can be used to override the default commit message produced by Packit during propose-downstream or pull-from-upstream. Please pay attention to our documentation with regards to the usage of this action. (packit#2070)
  • Packit CLI now supports testing the pull-from-upstream workflow. Use the packit pull-from-upstream command from the packit RPM package. (packit#2063)
  • Packit now passes initiator context for tmt to the Testing Farm. You can use this option to run or skip certain tests when they're run by Packit. (packit-service#2176)
  • Testing Farm started additionally exposing regexes on top of the exact compose names in the /composes/ endpoints, and we now support this as well when checking the validity of compose. (packit-service#2168)
  • We have disabled the jitter for retrying Bodhi update tasks to prevent race conditions causing not created updates. (packit-service#2170)
  • We have fixed a bug in get_fork method for Pagure about checking the usernames for a match when going through existing forks. (ogr#800)

Week 37 (September 12th โ€“ September 18th)โ€‹

  • If you have concerns about Packit uploading new archives to lookaside cache before creating a pull request, you can newly set upload_sources to False to disable this. (packit#2086)
  • We have introduced a new configuration option notifications.failure_comment.message that enables notifying users on failure via a comment using the configured message. (packit-service#2182)

Week 38 (September 19th โ€“ September 25th)โ€‹

  • As part of the effort of implementing release syncing for CentOS Stream, Packit now supports the pkg_tool option in the config (at the top-level or with specific packages when using the monorepo syntax). This option can be used for switching between fedpkg or centpkg. (packit#2085)
  • When updating the Version tag during propose_downstream or pull_from_upstream, Packit now tries to update referenced macros (if any) rather than overwriting the references. (packit#2087)

Week 39 (September 26th โ€“ October 2nd)โ€‹

  • When using packit CLI you can now specify bugs resolved by an update by -b or --resolve-bug option for propose-downstream and pull-from-upstream commands. The values will be added by default to the changelog and commit message and provided in commit-message and changelog-entry actions as PACKIT_RESOLVED_BUGS env variable. (packit#2094)
  • Packit-service now automatically adds bugzilla created by Upstream Release Monitoring as - Resolves {bugzilla} to the changelog (or commit if autochangelog is used) and provides the value in commit-message and changelog-entry actions as PACKIT_RESOLVED_BUGS env variable. When retriggering the pull-from-upstream from comment, one can also specify the bug(s) as /packit pull-from-upstream --resolved-bugs rhbz#123,rhbz#125 and Packit will do the same. (packit-service#2193)
  • You can now configure notifications.failure_comment.message also for downstream jobs, where the configured message will be used as an extension of the comment added by default by Packit. (packit-service#2199)

Week 40 (October 3rd โ€“ October 9th)โ€‹

  • We have fixed an issue that you could encounter when running the Packit from the CLI that caused misinterpretation of the repository to be an upstream repo instead of a downstream. (packit#2117)
  • Packit now also detects resolved bugs in the default update notes (created from changelog diff) and assigns these when submitting the Bodhi updates. (packit#2111)
  • We have fixed an issue that prevented automated allowlisting in the Packit Service. (packit#2113)
  • Packit now exports PACKIT_UPSTREAM_PACKAGE_NAME, PACKIT_DOWNSTREAM_PACKAGE_NAME and PACKIT_CONFIG_PACKAGE_NAME also in the changelog_entry action. (packit#2103)
  • Packit now posts a comment with a link to the Packit dashboard to the pull requests created in Fedora dist-git when syncing the release. (packit-service#2215)

Week 41 (October 10th โ€“ October 16th)โ€‹

  • (breaking) Packit no longer accepts packit.json or .packit.json as a configuration file name. (packit#2123)
  • We have implemented several improvements in syncing the release downstream:
    • Packit now updates ACL of its own dist-git forks to allow users and groups with commit rights to the original dist-git repo to push directly to a fork. (packit#2112)
    • Packit now also properly cleans up the branch after syncing the release which should prevent unwanted files (e.g. tarballs) being committed to dist-git. (packit#2125)
    • We have adjusted the way how Packit includes the resolved bugzillas in the commit messages created when syncing the release downstream so that the resolved bugzillas are included in changelog when using %autochangelog. (packit#2126)
  • Packit now reacts to retriggering comments for downstream jobs by commenting on the same issue/PR and providing information about the jobs. (packit-service#2222)
  • We have fixed an issue that prevented you from running the jobs on the GitLab.com due to failing resolution of the upstream/downstream relationship for the cloned project. (packit#2120)
  • Packit now triggers the build for the /packit test comment command if the last build was not successful. (packit-service#2228)

And special thanks to @SpyTec for multiple wonderful dashboard improvements!

Week 43 (October 24th โ€“ October 30th)โ€‹

  • Packit no longer downloads sources excluded using spec file conditions. (packit#2132)

Week 44 (October 31st โ€“ November 6th)โ€‹

  • Dist tag (%{?dist}) is now enforced when updating release during SRPM creation. (packit#2106)

Week 45 (November 7th โ€“ November 13th)โ€‹

  • Now Packit allows ~^+ (special characters) in a tag (used for building the version string). (packit#2154)
  • Downstream Koji builds are now shown in a separate table in /jobs/downstream-koji-builds on dashboard and are also accessible via /api/koji-builds API endpoint. (packit-service#2244, packit-service#2249, dashboard#354)

Week 46 (November 14th โ€“ November 20th)โ€‹

  • Packit now supports pre-release version in propose_downstream and pull_from_upstream. A spec file update might be required, see the documentation for more details. (packit#2149)
    • In relation to that, specfile library has a new method, Specfile.update_version(), that allows updating spec file version even if it is a pre-release. (specfile#317)
  • Packit can now check, using the new update_version_mask configuration option, that the proposed version of new release and the current version of the dist-git branch are compatible and sync the dist-git branch only in that case. (packit#2156)
  • Packit is now able to get the version from spec file even if the Version tag is not present in the specfile directly, but e.g. imported from another file. (packit#2157)
  • PACKIT_COPR_PROJECT env var that is exposed to Testing Farm now includes the Copr project of the additional build specified in comment, if present. (packit-service#2253)

Week 47 (November 21st โ€“ November 27th)โ€‹

  • Packit now correctly sets the specfile content (e.g. changelog entry) even if it syncs the specfile from upstream for the first time. (packit#2170)

Week 48 (November 28th โ€“ December 4th)โ€‹

  • Packit now links the information related to upstream events in PRs opened when syncing a release. (packit#2173)

  • When accessing tags or macro definitions by name, specfile library now takes validity into account when looking for the best match. For example if there are two instances of Version tag, one in the true and one in the false branch of a condition, Specfile.version will always access the one that is in the true branch. This also applies to Packit when syncing a release and updating value of Version tag. (specfile#328)

Week 49 (December 5th โ€“ December 11th)โ€‹

  • We have introduced new configuration options test_command.default_labels and test_command.default_identifier that are used by default when running /packit test comment command without any arguments (instead of specifying them via --labels/--identifier). (packit-service#2270)

  • We have fixed a bug that GithubRelease.url returned an API URL. (ogr#824)

Week 50 (December 12th โ€“ December 18th)โ€‹

  • We have fixed a bug preventing a release from being synced downstream if the changelog to be set is empty. (packit#2183)
  • We have fixed a bug of not running Koji builds for Packit dist-git PRs with multiple commits if the last commit of the PR did not contain a spec file change. (packit-service#2275)

End of the year in Packitโ€‹

  • We have hit some issues with the firewall rules on the new cluster hosting our production. We are waiting for the required fix that is done outside of our team which should be deployed around January 11th. We will keep you informed about the current status. At the moment we are aware of the issues related to the:
    • pull-from-upstream jobs that have sources hosted at infradead.org, sourceforge.net and gitlab.gnome.org
    • jobs running on the gitlab.gnome.org in general
  • We have also fixed an issue that caused some Cockpit releases to fail, others might've been affected too, though there are no reports.