| title | 2020 | |
|---|---|---|
| date | 2022-01-04 | |
| tags |
|
Let's see what happened in Packit in 2020.
- Runs on Fedora 31. (#303, #304)
- Correctly checks list of whitelisted repositories when issue comment is added. (#309)
- Incorporates lots of SRPM related improvements. (#646, #650, #651, #652, #653)
- Better handles when Copr owner is not set. (#648)
- 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)
- 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)
- 0.8.1 has been released.
- CLI has bash auto completion. (#654)
- Few bugs have been squashed. (#668, #670, #676, #677, #678, #680, #682)
- More checks messages have been unified. (#355)
- One more testing-farm status is now shown before the tests are submitted. (#343)
- No-fmf scenario has better messages. (#362)
- Minor fixes and improvements. (#339, #340, #342, #345, #346, #347, #348, #352, #353, #350, #357, #358, #361, #364)
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!
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.
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)
- Dist-git patches are now applied in source-git repos with
-p1to 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).
targetskey in copr job definition in the packit.yaml is no longer a required field (it defaults tofedora-stable) (#431).- Builds are now correctly linked to their actual GitHub projects (this can be seen in the logs view) (#441).
- The generate command is now deprecated in favour of the init command (#728), contributed by @shreyaspapi.
- 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).
- We have changed how packit treats version and release in the spec file (#748).
- We handle the
git-describeoutput better which should help when tags contain dashes (#759).
- We handle the
- 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).
- Comments from packit-service about successful
propose-updatein 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).
- When you are executing
copr-buildcommand, you do not need to set the project name if this value is defined in thecopr_buildjob 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
authenticationkey in the configuration (#754).
- 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-updatetriggered 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).
- 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.
- 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
Sourceand creates.tar.gzby default - this should be more flexible and prevent issues for "non-standard" archive names. (#781)
- 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).
- Tomáš finished teaching
packit srpmto linearise extremely complex Git histories, in order to get patches that can be applied when building the SRPM. - Jirka made the schema validation code Marshmallow3 compatible. This
enables building
packitin Fedora 32 and Rawhide.
- Franta fixed an issue with parsing release events.
- Jirka made code Marshmallow3 compatible in this project, too.
- Job metadata field
dist-git-branchis now marked as deprecated, to be replaced bydist_git_branchesto 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.
In this week we mostly focused on CentOS Stream and some under the hood improvements, none of which are available for GitHub projects.
- Jano did a lot of work on initial CentOS Stream integration.
- Hunor added a Pagure build status reporting.
- Anchit added first API tests and improved build statuses given by the API.
- Laura and Rishav improved how data about Copr builds are stored in our db.
- 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)
- The image now uses ogr from git master instead of from Fedora stable RPM.
- 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)
- The debug logs in the CLI are now much more consistent. (#824)
- A bug in the
propose-updatecausing problems with the synchronization of the spec-file content was fixed. (#830) - You can now use
epel-allalias in the arguments and also in the configuration. (#835)
- In job definition for packit-service you can use
epel-allalias as well. (#835)
- The problem with kerberos initialization was fixed. (#838)
- We released a new version of the packit package. (release 0.11.0)
- We have been also working on some smaller issues and preparation steps for our future work. (#841, #843, #846, #847)
- 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)
Hello everyone, during this week we didn't manage to implement any significant new features - most of the work happened under the hood.
- 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).
- 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.
- 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).
- 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).
- 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).
- 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 -crequired (by @TomasTomecek, #871). - packit now includes pull request ID in version of rpm. (by @sturivny and @TomasTomecek, #870).
- We added support for copr builds in gitlab (by @shreyaspapi, #683).
- packit-service utilizes the new options introduced in packit (by @lachmanfrantisek, #694).
- We introduced a new command
packit validate-configwhich validates the contect of a package configuration file in your project (contributed by @TomasJani, #826).
- You are now able to override configuration for builds, releases and other jobs (by @TomasTomecek, #676). Read more about this feature here.
- Command
validate-configworks 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
%releasefield in spec file when usingsrpmcommand, 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
- 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
Copyright (c) Dominika Hodovska. This work is licensed under a Creative Commons Attribution 4.0 International License.
- Anchit added a few new API endpoints to Packit-as-a-Service to retrieve project information. This is used in the Dashboard, to provide an overview of the projects served by Packit.
- Jano did a lot of work on our deployment. The installation of all our dependencies is much simpler now. (packit-service#747, packit-service#753, packit-service#756, packit-service#757, packit#919),
- Packit now puts a link to our documentation in a pull request status when a contributor is not allowed to build the PR, thanks to Tomáš. (packit-service#758)
- 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)
- 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.
- Tomas improved logging of the Packit actions' output. (packit#950)
- Anchit fixed and enhanced the
/api/srpm-buildsendpoint. (packit-service#788)
- We store the submission time of SRPM builds now (packit-service#795 by Anchit).
- Shreyas improved implementation of the build status reporting (packit-service#740).
- Anchit enhanced the
/koji-buildsendpoint to be more consistent with/copr-buildsendpoint (packit-service#791).
- 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).
- The combination of the source-git patches with existing patches now works well (packit#963).
- Service now mostly supports also GitLab as you can see here or here. A lot of small issues were fixed in the last week (packit-service#806, packit-service#812, packit-service#814, packit-service#815, packit-service#816 ).
- Created Copr projects are now prefixed with the hostname for non-GitHub services and also support multipart namespaces (packit-service#819).
- Laura fixed two testing-farm related issues
(packit-service#808,
packit-service#809).
You can now use
testjob also on Pagure and GitLab thanks to that.
- 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
--remoteis global option now and available for all commands. Because of thissync-from-downstream --remotewas 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
- 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
%setupline in a spec file - you are now able to set content of-noption 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.
- franta made triggering of jobs more reliable and in correct situations (packit-service#837)
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.
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: truefor 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_changelogwhich 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
No user-facing changes in packit(-service) this week.
- 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)
- 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.
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).
- Laura fixed a bug, 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 added a warning to inform users about this upcoming change.
- Jano fixed a bug in
sync_releasemethod of Packit API. (packit#1043) - Jiri Konecny contributed a fix for how Packit creates COPR urls. (packit#1039)
- Laura updated instructions how to retrigger a job. (packit-service#892)
- Tomas implemented the
--upstream-urloption ofpackit initcommand. When specified,initalso sets up a source-git repository next to creating a configuration file.
- 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)