Skip to main content

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

Project description

Packit 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?

Content of source-git repository is equivalent to dist-git, but uses upstream format: source files instead of tarballs, git commits instead of patches.

You can host this repository, or the specific git branch, anywhere you want. If you open a pull request, you will receive feedback on the changes:

  • Does the package build with the changes?
  • Do all the package tests pass?
  • How about tests of the dependant packages?
  • Are the changes good to be included in Fedora?

The goal of packit is to provide automation and tooling to interact with source-git repositories so you don't have to touch dist-git ever again. Our plan is to center development experience around upstream repositories and source-git.

Upstream repositories and source-git repositories are pretty much the same thing. Creating source-git only makes sense when the upstream does not accept downstream spec file or adding spec file to such a project doesn't make sense.

For more info on source-git, please read the detailed design doc.

Plan

  • Automatically release to Fedora Rawhide (by the end of February 2019).

    • Once there is a new upstream release, create a PR in downstream pagure.
  • Send new downstream changes back to upstream. (so the spec files are in sync)

  • Provide feedback on upstream pull requests.

    • Run RPM builds in COPR and integrate the results into Github.

Workflows covered by packit

Current status

Work has begun on the MVP.

  • You can release to rawhide using packit
    • Implement propose-update command (in master now)
  • source-git
    • You can release to rawhide from source-git using packit
  • Packit as a service
    • Packit reacts to Github webhooks
    • Have a github app for packit
    • Deployment

Requirements

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

Installation

You can install packit using pip:

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

Resources

Project details


Release history Release notifications | RSS feed

This version

0.0.1

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

Uploaded Source

Built Distribution

packitos-0.0.1-py2.py3-none-any.whl (27.1 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: packitos-0.0.1.tar.gz
  • Upload date:
  • Size: 152.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for packitos-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1e101c9b02b81fc68e4cd11626f7a59fd24007495bbe41df812afb4f5deaee57
MD5 556a119349569c8100dedf9f47adc6b2
BLAKE2b-256 e550e776f806793d4914bb4b26c4ab63d7fe1deefe9d44bf8c51d1096d2a8f3d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: packitos-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for packitos-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c14190c5773a1657532db472790196aa361ca6ab774344c4ccd7ebdf87c28a30
MD5 ec513acc6fd9dc6d13922e137b26b6a1
BLAKE2b-256 4a4adf908231329909ac07609a2444616b2f5aba97a6b0e1da07a5fb2b6b9a9c

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