This is a detailed documentation for the update functionality of packit. The command creates a new pull request in Fedora using a selected or latest upstream release.
Place a file called
packit.yaml in the root of your upstream repository.
Place a spec file into your upstream project (and make sure that
specfile_path in the config has a correct value).
Create a new upstream release. The spec file needs to be included in the ref for upstream release, because packit checks out the tag for the upstream release before copying files downstream.
Once you have performed the upstream release (and the new archive is up),
packit propose-update in a working directory of your upstream
$ git clone https://github.com/user-cont/colin.git $ cd colin $ packit propose-update using "master" dist-git branch syncing ./colin.spec INFO: Downloading file from URL https://files.pythonhosted.org/packages/source/c/colin/colin-0.3.0.tar.gz 100%[=============================>] 3.18M eta 00:00:00 downloaded archive: /tmp/tmpaanrpgjz/colin-0.3.0.tar.gz uploading to the lookaside cache PR created: https://src.fedoraproject.org/rpms/colin/pull-request/4
As you can see, one of the things
propose-update does is, it downloads the
upstream release tarball and uploads it to the lookaside cache. This is
required by the Fedora Packaging
Then it takes the spec file from the upstream repo, copies it downstream (while
also all the files set in the
synced_files) and creates the downstream PR.
Usage: packit propose-update [OPTIONS] [PATH_OR_URL] [VERSION] Release current upstream release into Fedora PATH_OR_URL argument is a local path or a URL to the upstream git repository, it defaults to the current working directory VERSION argument is optional, the latest upstream version will be used by default Options: --dist-git-branch TEXT Comma separated list of target branches in dist-git to release into. (defaults to 'master') --dist-git-path TEXT Path to dist-git repo to work in. Otherwise clone the repo in a temporary directory. --local-content Do not checkout release tag. Use the current state of the repo. --force-new-sources Upload the new sources also when the archive is already in the lookaside cache. --no-pr Do not create a pull request to downstream repository. --remote TEXT Name of the remote to discover upstream project URL, If this is not specified, default to origin. --upstream-ref TEXT Git ref of the last upstream commit in the current branch from which packit should generate patches (this option implies the repository is source-git). -f, --force Don't discard changes in the git repo by default, unless this is set. -h, --help Show this message and exit.