Skip to main content

2020

· 23 min read

Let's see what happened in Packit in 2020.

Week 1

packit

  • Correctly updates version on srpm build. (#642)
  • Downloads all URL sources before srpm build. (#643)

packit service

  • Runs on Fedora 31. (#303, #304)
  • Correctly checks list of whitelisted repositories when issue comment is added. (#309)

Week 2

packit

  • Incorporates lots of SRPM related improvements. (#646, #650, #651, #652, #653)
  • Better handles when Copr owner is not set. (#648)

packit service

  • Fixes SRPM exceptions/errors handling. (#311, #317)
  • Has loading of config fixed. (#318)

Week 3

packit

  • Uses Marshmallow for configuration schema. (#657)
  • Is able to build in Koji from upstream/source-git. (#658)
  • Doesn't download remote sources when "sources" path exists in upstream. (#659)
  • Configuration file allows list syntax in action commands. (#663)
  • Configuration can use a new option to exclude paths from patching. (#666)
  • Has few less bugs. (#660, #661, #664, #667)

packit service

  • Uses Marshmallow for configuration schema. (#320)
  • Runs build for test job even when it's not explicitly configured. (#324)
  • Reports invalid or missing packit config. (#328)
  • Status workflow has been changed and simplified. (#338)
  • Minor fixes. (#323, #326, #329, #331, #335, #336)

Week 4

packit

packit service

Week 5

packit

  • CLI has a new command for local build. (#687)
  • Logs less. (#685)

packit service

Week 6

Both Packit and Packit Service pre-commit hooks were updated to include prettier and setup-cfg-fmt, in order to have a more consistent formatting of markup, YAML, JSON and setup.cfg files.

It became easier for developers to build the Packit base image locally, and tests in Zuul were configured to run on Fedora 31.

Packit learned how to look for RPM spec files on its own, so specifying specfile_path in the configuration is not mandatory anymore. Packit will recursively search the tree and use the first spec file found.

The Redis pod in Packit Service uses an up to date image now, based on Fedora 31. Kudos to hhorak for the help!

Week 7

The default configuration generated by Packit has test jobs enabled from now on. This should simplify configuring Packit in new repositories.

Fixed a bug which was causing SRPM-build failures in Packit Service for projects which had their spec files stored in a subdirectory.

As a result of keys.fedoraproject.org being turned off, Packit now tries a list of GPG keyservers when downloading keys to check commit signatures.

When enabling Packit Service for new GitHub repositories, instead of checking if the requester is a Fedora packager, we'll check if they signed the Fedora Project Contributor Agreement.

While proposing an update to Fedora, Packit Service will report a failure now when there are no releases found in the upstream GitHub repository.

Test results became serializable, we will not block when no test results are received, and Packit Service received some initial code to enable using PostgreSQL as a data backend.

Week 8

Postgresql database was introduced in production environment to improve performance and enable implementation of new features, e.g. storing logs to reduce amount of messages sent directly to pull request (#406), (#420).

Cleanup in configuration files was performed, so no longer needed values were removed from .packit.yaml (#709). User experience was improved by adding new --upstrem-ref option to copr-build command in command-line interface (#718) and making error reporting more robust by adding new fedpkg clones related error message (#714).

Following bugs were fixed:

  • bug in copr-build command fixed (#713)
  • get_local_package_config() duplicate entries in 'directories' bug fixed (#715)

Week 9

packit

  • Dist-git patches are now applied in source-git repos with -p1 to resolve an issue when they are generated with git and patch program fails to apply them (#730).
  • Fedora 32 was added to 'fedora-all' and 'fedora-development' aliases (#731).
  • We have put more links to our documentation (README, deprecation warning in packit) so that people can easily correct their configuration files (#726).

packit-service

  • targets key in copr job definition in the packit.yaml is no longer a required field (it defaults to fedora-stable) (#431).
  • Builds are now correctly linked to their actual GitHub projects (this can be seen in the logs view) (#441).

Week 10 (March 2nd - March 6th)

packit

  • The generate command is now deprecated in favour of the init command (#728), contributed by @shreyaspapi.

packit-service

  • When a non-collaborator creates a PR, packit says that only "Collaborators can trigger packit-service" - this message has been improved to better match the reality (#445).
  • Packit service no longer posts comments on pull requests when a SRPM can't be created - the logs should be now aviable in the service's logs view available when clocking on the commit status check URL (#447).
  • Commands to control packit service can now be embedded in a comment (previously, the whole comment was treated as a command) - hence you can now create a comment to give an update and also trigger packit (#433), contributed by @IceWreck.
  • We have improved monitoring of packit-service by using more sentry.io's features (#458).
  • You can now disable the functionality when packit service comments on a PR when it gets built for the first time (notifications: {pull_request: {successful_build:: false}} in your packit.yaml), hi Lars! (#455).

Week 11 (March 9th - March 13th)

packit

  • We have changed how packit treats version and release in the spec file (#748).
    • We handle the git-describe output better which should help when tags contain dashes (#759).
  • When packit adds source-git patches into a spec file it adds them outside of rpm macros now (#760).
  • In pull request pipelines we run the packit-service tests so that we are sure we do not break the service (#752).

packit-service

  • Comments from packit-service about successful propose-update in the issue which triggered the update now include the URL of the new pull-request in Fedora (#472).
  • We have done some major refactoring how jobs are processed (#476), (#746), (#453).
  • Development and debugging of the packit-service should be easier now, we documented how to run packit-service locally (#473).

Week 12 (March 16th - March 20th)

packit

  • When you are executing copr-build command, you do not need to set the project name if this value is defined in the copr_build job in the configuration file (#763).
  • All patches generated from a source-git repo are now prefixed with a number so they are easy to sort (#765).
  • We improved the behaviour when loading the authentication in the config file - users are warned only if deprecated keys are used, no more confusing messages when you do not have authentication key in the configuration (#754).

packit-service

  • We periodically check the status of the copr-build so that we do not need to rely on the Fedora message bus. This should avoid failures in build status reporting (#490).
  • Propose-update triggered by comment in GitHub now recognizes also pre-releases (#498).
  • Several bugs in how we report results from Testing farm have been fixed and Testing farm results should now appear correctly in commit status checks (#496), (#505), (#510), (#513).

Week 13 (March 23th - March 27th)

  • New Packit version 0.9.0 was released.
  • Packit Service now mostly uses PostgreSQL instead of Redis as a backend, which will result in more responsive API and Dashboard.

Week 14 (March 30th - April 3rd)

packit

  • Fix web URLs for Copr builds owned by groups (#778).
  • Create downstream spec if it's not there (propose-update) - this used to happen when using packit on a newly created package in Fedora which did not have spec fille added yet. (#779)
  • Packit no longer inspects archive extension set in Source and creates .tar.gz by default - this should be more flexible and prevent issues for "non-standard" archive names. (#781)

packit-service

  • Several fixes and improvements after switching data store from Redis to PostgreSQL.
  • Use the configured COPR project when triggering Testing Farm (tests no longer fail for projects which are built in their own COPR namespace) (#524).

Week 15 (March 6th - April 9th)

packit

packit-service

Week 16 (April 14th - April 17th)

packit & packit-service

  • Job metadata field dist-git-branch is now marked as deprecated, to be replaced by dist_git_branches to match the naming of other metadata fields and to accept multiple branch names where Packit should work. (#797, #788 and #564).
  • A great deal of refactoring, CI work and general code improvements which will make Packit and Packit Service run smoother and development easier.

Week 17 (April 20th - April 24th)

packit-service

In this week we mostly focused on CentOS Stream and some under the hood improvements, none of which are available for GitHub projects.

Week 18 (April 27th - April 30th)

packit-service

  • Franta did a great deal of service & worker refactoring related to CentOS (#586) and to forks usage in GitHub. (#589)
  • Hunor fixed confusing GitHub status messages while building in Copr. (#588)

Week 19 (May 4th - May 6th)

packit

  • The image now uses ogr from git master instead of from Fedora stable RPM.

packit-service

  • Franta Fixed a previous week introduced bug, which prevented users from being whitelisted. (#599)
  • Hunor Made improvements to avoid a race condition in getting app access token. (#601)

Week 20+21 (May 11th - May 22th)

packit

  • The debug logs in the CLI are now much more consistent. (#824)
  • A bug in the propose-update causing problems with the synchronization of the spec-file content was fixed. (#830)
  • You can now use epel-all alias in the arguments and also in the configuration. (#835)

packit-service

  • In job definition for packit-service you can use epel-all alias as well. (#835)

Week 22 (May 25th - May 29th)

packit

packit-service

  • Jirka implemented creating a new bug in Bugzilla for CentOS Stream pull-requests (#627). This will be triggered when the label "accepted" is added to a PR in the (near) future.
  • You will be able to use aliases also for koji builds. (packit:#839, #632)
  • Laura fixed a problem with missing builds when triggering Packit Service with /packit test. Now, we trigger the build first if there are no builds for the pull-request yet. (#631)

Week 23 (June 1st - June 5th)

Hello everyone, during this week we didn't manage to implement any significant new features - most of the work happened under the hood.

packit

  • We have fixed a formatting issue when packit prints installation instructions for using builds from a copr repo (by @lachmanfrantisek, #852).
  • You are able to set up builds when you push to a branch, we have set this up for master branch of packit, feel free to get inspired (by @lachmanfrantisek, #851).

packit-as-a-service

  • We have run into multiple problems when you set up jobs for PRs and branch pushes - there were multiple fixes for this, packit-service wasn't able to work well with the fact that there are multiple jobs defined for the same job type - e.g. build.

Week 24 (June 8th - June 11th)

packit

  • Tomas re-implemented overriding of package config per job. This will enable overriding configuration for builds and releases once the corresponding changes are merged in Packit-as-a-Service. (#858, #859).

packit-as-a-service

  • We are now parsing events from Koji about the progress of the builds and report them (by Franta, #657).
  • We are now able to listen to Gitlab hooks and parse the (comment & push) events (by Shreyas, #629, #671).
  • Log pages have been restructured by linking SRPM build logs instead of including them (by Hunor, #641).

Week 25 (June 15th - June 19th)

packit

  • Packit logs more information for RebaseHelper errors (by @csomh, #865).

packit-as-a-service

  • Obtaining builds via packit API endpoint is now significantly quicker (by @IceWreck, #674).
  • We now have an API endpoint for obtaining results from testing farm (by @IceWreck, #678).
  • We finished the implementation of the trigger to create bugs in Bugzilla. Therefore packit is now able to create bugzilla for accepted PR's in CentOS (by @jpopelka, #662).

Week 26 (June 22th - June 26th)

packit

  • packit now supports using custom repositories and packages when building in Copr and has options to preserve the project and to list it in on the Copr home page @lachmanfrantisek, #872.
  • Custom commands defined by user in packit config now are run in the shell, no more bash -c required (by @TomasTomecek, #871).
  • packit now includes pull request ID in version of rpm. (by @sturivny and @TomasTomecek, #870).

packit-as-a-service

Week 27 (June 29th - July 3rd)

packit

  • We introduced a new command packit validate-config which validates the contect of a package configuration file in your project (contributed by @TomasJani, #826).

packit-as-a-service

  • You are now able to override configuration for builds, releases and other jobs (by @TomasTomecek, #676). Read more about this feature here.

Week 28 (July 6th - July 10th)

packit

  • Command validate-config works properly now and does not produce odd error messages, by @TomasTomecek and @csomh, #894 and #895
  • You will now properly see git-describe metadata in the %release field in spec file when using srpm command, by @TomasTomecek, #894
  • git-log is being used to get a list of commits between HEAD and latest tag to pick up commit messages and add those to %changelog, by @TomasTomecek, #889
  • packit is now able to load metadata from commits of a source-git repo and utilize them when creating patch files, by @lachmanfrantisek, #875

packit-as-a-service

  • We now have a new API endpoint: /api/projects/, by @IceWreck, #716
  • Over the last few weeks, @lbarcziova was very busy with refactoring how jobs and tasks are being executed in packit-service. This work is now complete which allows us to scale the deployment up while giving us better introspection in what's happening inside, by @lbarcziova, #704

Week 29 (July 13th - July 17th)

Tatranska Lomnica Copyright (c) Dominika Hodovska. This work is licensed under a Creative Commons Attribution 4.0 International License.

Week 30 (July 20th - July 24th)

Week 31 (July 27th - July 31st)

Week 32 (August 3rd - August 7th) and 33 (August 10th - August 13th)

  • We renamed our GitHub organisation to packit. That user had been inactive for a long time and Hunor's request was successful.
  • The Copr project settings are now changed only if needed. If we can't edit the settings, we ask for the admin access to the Copr project and the service shows you a table with the changes if you want to do the edit manually. (packit#921, packit-service#764)
  • Matej fixed an old bug with the custom command for creating archives. The archive was not found when building SRPM because of the incorrect processing of the paths from the command output. (packit#923)

Week 34 (August 17th - August 20th)

  • Tomas tought packit how to merge related commits, which were previously created by git-am applying of a multiple commit patch. (packit#933)
  • Anchit added new /api/srpm-builds/ endpoint.
  • Service now requests 'builder' permission for custom projects if needed.
  • Franta fixed a problem with only one job executed executed for 2 build definitions for the same trigger.

Week 35 (August 24th - August 28th)

Week 36 (August 31th - September 4th)

Week 37 (September 7th - September 11th)

  • Stage now uses Tokman to get access tokens for GitHub, which should resolve race condition when running parallel jobs (Tokman by Hunor, ogr integration by Matej).
  • Franta has addressed problems with Testing-Farm cluster with custom response on PRs that links to more information (pinned info, packit-service#798).

Week 38 (September 14th - September 18th)

Week 39 (September 21st - September 25th)

  • Packit-service can be configured to work with private namespaces. This is plumbing work which we need right now for CentOS Stream. We are not planning to enable this for GitHub - packit-service will still work only for public repositories, private ones are ignored. packit-service#831
  • If git tag contains more information than just version (e.g. pkg_name-v1.2.3), it is possible to use upstream_tag_template to extract version from the tag, which will be used in a subsequent task. doc packit#959
  • Added support for globbing pattern in upstream_ref. doc packit#960
  • Packit --remote is global option now and available for all commands. Because of this sync-from-downstream --remote was renamed to --remote-to-push. Remote can now be specified in the user's config (via upstream_git_remote parameter). packit#977

Following bugs were fixed:

  • Packit dropping leading zeros in version. packit#814
  • Packit CLI issue caused by picking incorrect copr project name. packit#971

Week 40 (September 28th - October 2nd)

  • Packit-service is now explicitly checking if requested copr-build targets exist and if not, the user is informed about it. packit-service#835
  • We have improved the way how packit updates %setup line in a spec file - you are now able to set content of -n option via archive_root_dir_template config option, it defaults to {upstream-pkg-name}. doc packit#834
  • Packit is able to generate a patch file with format-patch without leading a/ and b/ in the patch diff. Required for patches in dist-git which are applied with -p0.
  • Contribution guidelines were updated, now we have one shared link.

Week 41 (October 5th - October 9th)

Week 42 (October 12th - October 16th)

Nothing significant happened during this week. The only change was that Hunor resolved a problem when sentry client library (the alert service we use) caused errors in stage environment and hence the problem didn't make it to production.

We have also released a new version of packit: 0.18.

Week 43 (October 19th - October 24th)

We finally had a week with plenty updates!

  • We found out the hard way that one cannot build in Fedora koji directly from SRPM unless it's a scratch build. The discussion with Fedora rel-eng is happening at pagure.io/releng/issue/9801 and in the meantime, all koji builds will be halted on our side since we know they cannot succeed. Do scratch: true for koji builds before this gets resolved.
  • Packit creates a symlink for a generated archive at the root of the project. So far it only did it from a relative path and now absolute paths are supported as well. This is useful when your specfile is placed in a subdirectory and rpmbuild can't find the archive.
  • There is a new usability improvement to proposing a new downstream update. If the PR is already created, packit won't create it again. You will no longer receive duplicate downstream PRs in dist-git.
  • When doing a new downstream update, packit doesn't sync %changelog since those are usually out of sync between upstream and downstream. Packit creates a new entry for the new release in the downstream. There is a new packit.yaml configuration option sync_changelog which bypasses this behaviour and copies the %changelog from upstream and overwrites the downstream changelog. Please use this option only when your changelogs are in sync. Documentation

Week 44 (October 26th - October 30th)

No user-facing changes in packit(-service) this week.

Week 45 (November 2nd - November 6th)

  • Laura implemented an option for packit to copy description from a release into a changelog when running propose-update. Also the default message has been changed to the list of commit messages from last release. (packit#1004)
  • Jano improved handling of build targets in packit. (packit#986)
  • Tomas improved an experience of a contributor to source-git in case the contributor doesn't follow git-am patches style that is used. (packit#1000)

Week 46 (November 9th - November 13th)

  • Tomas improved the UX of logging in the CLI. (packit#1014)
  • Jano improved logic of acquiring current version in the CLI. (packit#1013)
  • We appreciate getting feedback from our users, if you could find some time to do so, there is an open issue for it.

Week 47 (November 16th - November 20th)

  • Matej fixed an issue with Packit CLI, enabling recursive search for spec-files (packit#1005). It turned out, this change made it very easy to deplete GitHub API quota, so it was reverted.
  • Laura made Copr builds to be part of the default jobs. This will cause build jobs to explicitly run, and display their own result flags in PRs, next to the test results. We hope this to be a more friendly behaviour for our new users (packit#1024).

Week 48 (November 23rd - November 27th)

  • Laura, where Packit Service failed to trigger Copr builds before triggering the tests in case triggering Copr builds was configured for a different event.
  • Thanks to Matej, Packit Service will now comment on commits in case Copr builds fail after a merge, in order to indicate the reason for the failure.
  • Packit Service will soon stop commenting on PRs after the first successful build. The installation instructions from these comments were moved to the result page by Laura, while Matej to inform users about this upcoming change.

Week 49 (November 30th - December 4th)

Week 50 (December 7th - December 11th)

  • Tomas implemented the --upstream-url option of packit init command. When specified, init also sets up a source-git repository next to creating a configuration file.

Week 51 (December 14th - December 18th)

  • Congratulations comments are now disabled by default, unless enabled in config.
  • A bug, which prevented npm to be run during SRPM build, has been fixed. (sandcastle#86)