From Fedora Project Wiki

Revision as of 09:20, 30 January 2019 by Cverna (talk | contribs)

Release Engineering Automation

This is a working document that aims to identify and breakdown the work needed to automate most of Fedora Release engineering.

Release Engineering Tasks that would benefit from automation

  • Adopting a package
  • TBD

Adopting a package

Currently when a packager wants to adopt a package that was previously orphan he needs to file a ticket for releng to process the requests (example : https://pagure.io/releng/issues?status=Closed&search_pattern=orphan)

The following need to be true for a package to be successfully adopted.

  • the package is not retired
  • the package is actually orphaned
  • the package is orphaned for less than 2 weeks
  • the person adopting the package is in the packager FAS group

When all these conditions are meet the following script can be use to give the package https://pagure.io/releng/blob/master/f/scripts/distgit/give-package.py

Automating checks
As a release engineer I want to automatically check if a package can be unorphaned.
Acceptance Criteria:

1 - Verify that the provided package is not a retired package, if retired an error message is displayed

2 - Verify that the provided package is owned by the orphan user, if not an error message is displayed

3 - Verify that the provided package was orphaned less or equal than 2 weeks ago, if not an error message is displayed

4 - When all conditions are met a success message is displayed

Automating processing
As a release engineer I want new tickets with "Unorphan <package_name>" title to automatically process the request.
Acceptance Criteria:

1 - Creating a new ticket on "https://pagure.io/releng/issues" with the title "Unorphan <package_name>" triggers the script check unorphaned script.

2 - If all conditions are met, the script checks if the requester is member of the packager FAS group.

3 - If the requester of is a packager give him package.

4 - When successful the script updates the original ticket with a comment and close the ticket.

5 - If the conditions are not met or the requester is not a packager the script updates the original ticket with the failure reason in a comment and close the ticket.