LinuxCommandLibrary

pkgctl-release

Get package release information from repository

TLDR

Release a build artifact

$ pkgctl release --repo [repository] --message [commit_message]
copy

SYNOPSIS

pkgctl release --branch <branch> [OPTIONS]

PARAMETERS

--branch <branch>, -b <branch>
    Specifies the target Fedora branch (e.g., f38, rawhide) for the release.

--stable
    Proposes the update as a stable release in Bodhi, requiring karma.

--unstable
    Proposes the update as an unstable release in Bodhi, typically for testing.

--message <message>, -m <message>
    Sets the detailed message for the Bodhi update.

--type <type>
    Defines the type of Bodhi update (e.g., bugfix, enhancement, security).

--commit, -c
    Commits the changes to the local dist-git repository.

--push, -p
    Pushes the committed changes to the remote dist-git repository.

--update, -u
    Creates a new update in the Bodhi update system.

--from-tag <tag>
    Specifies a particular git tag from which the release should be based.

--dry-run
    Performs a simulated run without making any actual changes or pushing to remote.

--force
    Forces the release operation, potentially overriding existing checks.

--wait-on-update
    Waits for the Bodhi update to be successfully created and returned.

--notes <notes>
    Adds additional release notes to the Bodhi update, displayed in Bodhi.

DESCRIPTION

pkgctl-release is a subcommand of the pkgctl utility, which streamlines the process of preparing and submitting package updates within the Fedora Project's dist-git infrastructure. It automates several steps traditionally performed manually by package maintainers, including creating new branches, committing changes, pushing them to dist-git, and proposing updates to the Bodhi update system.

This command aims to simplify the release workflow, ensuring consistency and reducing the potential for errors during the package update process. It's primarily used for pushing new upstream releases or important bug fixes to various Fedora branches, making the update process more efficient and less prone to manual mistakes.

CAVEATS

  • Requires a properly configured dist-git environment and authenticated access to the Fedora infrastructure (e.g., Kerberos tickets).
  • Incorrect usage, especially with --force, can lead to unintended package updates or conflicts.
  • Assumes the user is in a dist-git repository clone for a specific package.
  • Network connectivity is essential for interacting with dist-git and Bodhi.

WORKFLOW INTEGRATION

The pkgctl-release command is typically used as part of a larger package update workflow. It is often preceded by local development, testing, and building the package, and followed by monitoring the Bodhi update system for karma and eventual stable release.

IDEMPOTENCY AND SAFETY

While designed to be robust, it's crucial to understand that repeated calls might not always be idempotent, especially if the state of the dist-git repository or Bodhi has changed externally. Using --dry-run is highly recommended for complex or new release scenarios to preview actions without committing them.

HISTORY

The pkgctl suite, including pkgctl-release, was developed as a modern replacement and improvement over the older fedpkg tool for interacting with Fedora's dist-git. It aims to provide a more intuitive and consistent command-line interface, leveraging Python and focusing on simplifying common packaging workflows. Its introduction reflects Fedora's continuous efforts to streamline contributor tools and improve developer experience.

SEE ALSO

pkgctl(1), fedpkg(1), git(1), rpm(8), dnf(8)

Copied to clipboard