#12934 Scripts Directory Restructuring Research - Build & Release Processes (Part 1/2)
Closed: Fixed by jnsamyak. Opened by jnsamyak.

Objective

Research and categorize scripts related to builds, releases, mass rebuilds, branching, and atomic/OSTree processes for the upcoming scripts directory restructuring initiative.

Scope - Scripts to Research

Your assigned scripts (approximately 38 items):

Root Level Scripts:

  • build_composeinfo, build-current.py, build-functions.sh, build-livecds, build-previous.py, build-test-ostree, buildepelbeta
  • koji_cleanup_signed.py, koji-build-srpm.py, koji-compare.py, koji-import.py, koji-reimport.py, koji-stalk.py, koji-task-report.py
  • mashcompose, mass_rebuild_file_bugs.py, mass-rebuild-close-bugs.py, mass-rebuild-second-run.py, mass-rebuild-special.py, mass-rebuild-test.py, mass-rebuild.py, massrebuildsinfo.py
  • push-two-week-atomic.py, sign-iot.sh, sigulsign_unsigned.py, stage-release-checksum-sign.sh, stage-release.sh, update_ostree_refs.sh

Directories:

  • branching/ (all contents), branching-epel/ (all contents), torrent-generator/ (all contents)

Target Directory Structure

Look at the ticket for reference: https://pagure.io/releng/issue/12925

Instructions

Please respond directly in this ticket by commenting for each script/directory using the following format:

Script Name: [script_name]
๐Ÿ“ Proposed Location: [path in new structure]
๐Ÿ”„ Alternative: [alternative path if unsure]
๐ŸŽฏ Purpose: (Check if it is written within the script - Yes/No)
๐Ÿ”— Dependencies:
- External repos: [list or "None"]
- Other releng scripts: [list or "None"]
- External services: [Koji, Bodhi, etc. or "None"]
- Special permissions: [signing keys, etc. or "None"]
๐Ÿ’ญ Additional Notes: 
[any concerns or questions]
Breaking changes: [describe potential issues]
Example Response:
Script Name: mass-rebuild.py
๐Ÿ“ Proposed Location: release_process/mass-rebuilds/
๐Ÿ”„ Alternative: builds/mass-rebuilds/
๐ŸŽฏ Purpose: Yes, it is there but we can rewrite it by`Orchestrates mass rebuilds for Fedora releases, handling package building in dependency order.`
๐Ÿ“Š Usage: release-time (typically twice per release cycle)
๐Ÿ”— Dependencies:
External repos: None
Other releng scripts: massrebuildsinfo.py, koji-.py scripts
External services: Koji build system, dist-git
Special permissions: Koji build permissions
๐Ÿ’ญ Additional Notes: 
Critical for the release process, needs careful testing
Breaking changes: Automated mass rebuild jobs may need path updates

Timeline

Research completion: [Date: 10th September, 2025]
Review discussion: [Date: 10th September, 2025]

Questions

Post any questions as comments on this ticket. If you can't determine a script's purpose, mark it in your response and we'll discuss.


Response Guidelines
- One comment per script/directory - keeps discussion organized
- Use the exact format above - makes review easier
- Be specific about dependencies - helps plan migration order
- Flag unclear items - better to ask than guess
- Consider grouping - if multiple scripts serve the same purpose, mention in notes

Also, I would suggest checking if the script is still relevant for today's scenarios.

Metadata Update from @jnsamyak:
- Issue tagged with: investigation, medium-gain, medium-trouble

Metadata Update from @jnsamyak:
- Custom field blocking adjusted to 12935,12931
- Issue marked as blocking: #12931
- Issue marked as blocking: #12935

Metadata Update from @humaton:
- Issue assigned to patrikp

Script Name: build_composeinfo (.py)

๐Ÿ“ Proposed Location: builds/compose
๐Ÿ”„ Alternative:
๐ŸŽฏ Purpose: Not written (seems to be a script that is run locally that generates information about a compose based on the .treeinfo file)

๐Ÿ”— Dependencies:
- External repos: None
- Other releng scripts: None
- External services: None
- Special permissions: None

๐Ÿ’ญ Additional Notes:
Not sure who uses this and for what reasons. Hopefully someone can chime in?
Breaking changes: None come to mind.

Metadata Update from @patrikp:
- Issue untagged with: sprint-0

Metadata Update from @patrikp:
- Issue tagged with: sprint-0

Script Name: build_composeinfo (.py)

๐Ÿ“ Proposed Location: builds/compose
๐Ÿ”„ Alternative:
๐ŸŽฏ Purpose: Not written (seems to be a script that is run locally that generates information about a compose based on the .treeinfo file)

๐Ÿ”— Dependencies:
- External repos: None

pungi-fedora

  • Other releng scripts: None
  • External services: None

Please check these properly, this is used by pungi-fedora in nigthly.sh, there are countable repositories that majorly releng touches look under releng/* or pungi-fedora or ansible or the repositories we touch on mass branching.

  • Special permissions: None

๐Ÿ’ญ Additional Notes:
Not sure who uses this and for what reasons. Hopefully someone can chime in?

As mentioned above, check these: https://pagure.io/pungi-fedora/blob/main/f/nightly.sh#_155

According to the naming convention, this should be renamed to build-composeinfo.py

Breaking changes: None come to mind.

It will break the nightly composes for all the stable and rawhide versions because script will error out without the path change.

Script Name: build_composeinfo (.py)

๐Ÿ“ Proposed Location: builds/compose
๐Ÿ”„ Alternative:
๐ŸŽฏ Purpose: Not written (seems to be a script that is run locally that generates information about a compose based on the .treeinfo file)

๐Ÿ”— Dependencies:
- External repos: None

pungi-fedora

  • Other releng scripts: None
  • External services: None

Please check these properly, this is used by pungi-fedora in nigthly.sh, there are countable repositories that majorly releng touches look under releng/* or pungi-fedora or ansible or the repositories we touch on mass branching.

  • Special permissions: None

๐Ÿ’ญ Additional Notes:
Not sure who uses this and for what reasons. Hopefully someone can chime in?

As mentioned above, check these: https://pagure.io/pungi-fedora/blob/main/f/nightly.sh#_155

According to the naming convention, this should be renamed to build-composeinfo.py

Breaking changes: None come to mind.

It will break the nightly composes for all the stable and rawhide versions because script will error out without the path change.

Ah, dependencies means which things depend on this script, not on which things this script depends. Thanks for the clarification.

Metadata Update from @patrikp:
- Issue untagged with: medium-gain, medium-trouble
- Issue tagged with: high-gain, high-trouble

We decided that rather than trying to do this through comments a better way would be to have a hackmd doc.

I am currently working on the doc and will share the link here once it's in a state that's ready for comments and suggestions.

Here is the doc: https://hackmd.io/@patrikp/S14T3k0cll

I think the settings should be such that any signed in user can leave comments and suggest edits.

Related PR:
https://pagure.io/releng/pull-request/12970

Metadata Update from @jnsamyak:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

Metadata