Skip to main content

A set of tools to integrate upstream open source projects into Fedora operating system.

Project description

Build Status black pre-commit

Packit

Elevator pitch

Packit is a CLI tool that helps developers auto-package upstream projects into Fedora operating system. You can use packit to continously build your upstream project in Fedora. With packit you can create SRPMs, open pull requests in dist-git, submit koji builds and even create bodhi updates, effectively replacing the whole Fedora packaging workflow.

Plan and current status

We are working on two things now:

  1. Packit as a tool - a standalone CLI tool which you can install from Fedora repositories and use easily.
  2. Packit service - A service offering built on top of packit tool. Our expectation is that you would add packit service into your Github repository and it would start handling things automatically: opening pull requests on dist-git, building packages, creating updates, ...

For the run-down of the planned work, please see the task-list below.

  • E2E workflow for getting upstream releases into Fedora using packit CLI.
    • Bring new upstream releases into Fedora rawhide as dist-git pull requests. (propose-update command included in 0.1.0 release)
    • Build the change once it's merged. #137
    • Send new downstream changes back to upstream. (so the spec files are in sync) #145
    • Packit can create bodhi updates. #139
    • Ability to propose updates also to stable releases of Fedora.
    • Create SRPMs from the upstream repository
    • Build RPMs in COPR and integrate the results into Github.
  • source-git
    • Packit can create a SRPM from a source-git repo.
    • You can release to rawhide from source-git using packit.
    • Packit can create a source-git repository.
    • Packit helps developers with their source-git repositories.
  • Packit as a service
    • Packit reacts to Github webhooks.
    • Have a Github app for packit.
      • Github app is on Marketplace.
    • Packit service is deployed and usable by anyone.

Workflows covered by packit

This list contains workflows covered by packit tool and links to the documentation.

Configuration

Configuration file for packit is described here.

TL;DR

specfile_path: packit.spec
synced_files:
  - packit.spec
upstream_package_name: packitos
downstream_package_name: packit

User configuration file

User configuration file for packit is described here.

Requirements

Packit is written in python 3 and is supported only on 3.6 and later.

When packit interacts with dist-git, it uses fedpkg, we suggest installing it:

sudo dnf install -y fedpkg

Installation

On Fedora:

$ dnf install packit

You can also use our packit-releases Copr repository (contains also released versions of OGR):

$ dnf copr enable packit/packit-releases
$ dnf install packit

Or from PyPI:

$ pip3 install --user packitos

(packit project on PyPI is NOT this packit project)

You can also install packit from master branch, if you are brave enough:

You can use our packit-master Copr repository (contains master version of OGR):

$ dnf copr enable packit/packit-master
$ dnf install packit

Or

$ pip3 install --user git+https://github.com/packit/packit.git

Run from git directly:

You don't need need to install packit to try it out. You can run it directly from git (if you have all the dependencies installed):

$ python3 -m packit.cli.packit_base --help
Usage: packit_base.py [OPTIONS] COMMAND [ARGS]...

Options:
  -d, --debug
  -h, --help         Show this message and exit.
...

Who is interested

  • Identity team (@pvoborni)
  • Plumbers - Source Git (@msekletar @lnykryn)
  • shells (@siteshwar)
  • python-operator-courier (Ralph Bean)
  • @thrix
  • youtube-dl (Till Mass)
  • greenboot (@LorbusChris)
  • ABRT
  • OSBS (atomic-reactor, osbs-client, koji-containerbuild) (@cverna)
  • CoreOS (starting with rpm-ostree, ignition, and ostree) (@jlebon)
  • cockpit (@martinpitt)
  • iptables (@jsynacek)

For the up to date list of projects which are using packit, click here.

Logo design

Created by Marián Mrva - @surfer19

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

packitos-0.17.0.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

packitos-0.17.0-py3-none-any.whl (122.2 kB view details)

Uploaded Python 3

File details

Details for the file packitos-0.17.0.tar.gz.

File metadata

  • Download URL: packitos-0.17.0.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for packitos-0.17.0.tar.gz
Algorithm Hash digest
SHA256 f93c89bc3c634242de49ec7c522274c0de176c73d083b301b8610a2729cd7034
MD5 5371ef836a1b79f736d818674e8b0072
BLAKE2b-256 920a94f933f7dc481c54aca1be34f0d2cc848a49576a06ee4f73f73fe97b22d5

See more details on using hashes here.

File details

Details for the file packitos-0.17.0-py3-none-any.whl.

File metadata

  • Download URL: packitos-0.17.0-py3-none-any.whl
  • Upload date:
  • Size: 122.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for packitos-0.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 600e921f82f3dfb9c7056046e2309f1d18558c38ecfc1df7bfd7db3ae944052d
MD5 09bfd74d9700c2446615d2a783a1c353
BLAKE2b-256 406dfab5f32d3e30aa29f512c6bbf2c747504327a540df7a0de0610b93e0169e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page