Skip to main content

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

Project description

Pack It! Build Status

This project provides tooling and automation to integrate upstream open source projects into Fedora operating system.

What and why?

  • Our intent is to bring downstream and upstream communities closer: provide feedback from downstream to upstream. (e.g. "Hello <upstream project Y>, your newest release doesn't work in Fedora rawhide, it breaks <Z>, here is a link to logs.")

  • We want to only merge, build and compose components which integrate well with the rest of the operating system. The biggest impact of such behavior will be on Fedora rawhide and when working on a new release.

  • Automatically pull and validate new upstream releases. This can be a trivial thing to do, why should maintainers waste their times on work which can be automated.

  • Developing in dist-git is cumbersome. Editing patch files and moving tarballs around is not fun. Why not working with the source code itself? With source git, you'll have an upstream repository and the dist-git content stuffed in a dedicated directory.

  • Let's use modern development techniques such as pull requests, code review, modern git forges, automation and continuous integration. We have computers to do all the mundane tasks. Why we, as humans, should do such work?

  • We want dist-git to be "a database of content in a release" rather a place to do actual work. On the other hand, you'll still be able to interact with dist-git the same way. We are not taking that away. Source git is meant to be the modern, better alternative.

DevConf.cz "Auto-maintain your package" talk.

Ehm, what's source-git?

Please read about source-git in a dedicated document.

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 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.
    • 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 in a separate document: docs/configuration.md.

TL;DR

specfile_path: packit.spec
synced_files:
  - packit.spec
upstream_project_name: packit
downstream_package_name: packit

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 --enablerepo=updates-testing packit

Or

$ 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:

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

Candidates for early adoption

Please, open a PR if you want to be on the list, or just let us know.

  • Identity team (@pvoborni)
  • Plumbers & shells (@msekletar @lnykryn @siteshwar)
  • pykickstart (@dcantrell @larskarlitski)
  • python-operator-courier (Ralph Bean)
  • @thrix
  • youtube-dl (Till Mass)
  • anaconda (@jkonecny12)
  • greenboot (@LorbusChris)
  • rebase-helper (@nforro)
  • ABRT
  • standard-test-roles

Resources

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.2.0.tar.gz (180.4 kB view details)

Uploaded Source

Built Distribution

packitos-0.2.0-py2.py3-none-any.whl (41.2 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: packitos-0.2.0.tar.gz
  • Upload date:
  • Size: 180.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

File hashes

Hashes for packitos-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cb8bf94746aeba8ad9452812eb5a7d920c6f81d075cdefeeccdfcd8856db6709
MD5 b432d6a3487e9bf197ac65f0023d85e1
BLAKE2b-256 880db8a40d536e046339512a778d4bd8501c084fa5d7abb5746f9c9de71b8114

See more details on using hashes here.

File details

Details for the file packitos-0.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: packitos-0.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.2 pkginfo/1.4.2 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

File hashes

Hashes for packitos-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cd7b51b4a4e15587379a59b73ae0142fdccab30301fb51a9a548a743b077286b
MD5 add95518a85b3795ac0e8bacdc1301a5
BLAKE2b-256 eba513b83e15c8d24cdc02e43de5ece1428b18a42b7a25bede2898da5557741d

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