The Fedora 42 schedule[1] has a mass branching schedule, We need to plan and coordinate all tasks in preparation for it. For the driving changes please refer to [2].
Most importantly for the reviewers or the participators for the PRs and other $stuff here is the checklist we created from our last branching and will be our source to check if we missed anything! https://docs.fedoraproject.org/en-US/infra/release_guide/mass_branching_checklist/
[1] https://fedorapeople.org/groups/schedule/f-42/f-42-key-tasks.html [2] https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild#Driving_Features
(for reviewers here is a checklist that one can copy this on the releng tracker, so we can keep track of everything needed in one place)
create-new-release-branches.py
--createfile
make-koji-release-tags
mass-branching-git.py
fedora:rawhide
fedora:${RAWHIDE}
Metadata Update from @phsmoura: - Issue tagged with: f42, high-gain, medium-trouble
BTW for creating branches, I need to get the list of all the RPMs that active (I.e. not retired in rawhide); For that, I'm using the following script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#!/usr/bin/bash set -eu # Define variables CHECKOUT_PATH="${1:-/srv/git/rpms}" OUTPUT_TEMP_PACKAGES="package_list.txt" OUTPUT_TEMP_RETIRED="retired_packages.txt" OUTPUT_FINAL="components_f42.txt" # Step 1: Get all package names from the rpms directory echo "Fetching all package names..." : > "$OUTPUT_TEMP_PACKAGES" # Clear or create file for git_repo in ${CHECKOUT_PATH}/*.git; do git_repo_name="$(basename "${git_repo}" .git)" echo "$git_repo_name" >> "$OUTPUT_TEMP_PACKAGES" done echo "Stored all package names in $OUTPUT_TEMP_PACKAGES." # Step 2: Fetch retired packages from Fedora JSON source echo "Fetching retired packages..." curl -s https://src.fedoraproject.org/lookaside/retired_in_rawhide.json | jq -r '.rawhide[]' > "$OUTPUT_TEMP_RETIRED" echo "Stored retired packages in $OUTPUT_TEMP_RETIRED." # Step 3: Remove retired packages from the full package list to get active packages echo "Filtering active packages..." grep -Fxvf "$OUTPUT_TEMP_RETIRED" "$OUTPUT_TEMP_PACKAGES" | awk '{print "rpm/" $0}' > "$OUTPUT_FINAL" echo "Stored active package list in $OUTPUT_FINAL." # Step 4: Remove temporary files rm -f "$OUTPUT_TEMP_PACKAGES" "$OUTPUT_TEMP_RETIRED" echo "Removed temporary files." echo "Process completed successfully! 🚀"
which gave the result:
wc -l active_packages.txt 24436 active_packages.txt
Looks about right to me, but if someone can verify these, would be great!
There's going to be the packages we found that were created, but never imported.
Perhaps you could add a step 1.5:
Check if there's a rawhide $packagename.spec file for the package?
That would stop it from creating any of those never imported ones?
Great! To filter out packages that were created but never imported, I'll modify the script to check if the package has a .spec file in the rawhide branch.
Okay the script got introduced:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#!/usr/bin/bash set -eu # Define variables CHECKOUT_PATH="${1:-/srv/git/rpms}" OUTPUT_TEMP_PACKAGES="package_list.txt" OUTPUT_TEMP_RETIRED="retired_packages.txt" OUTPUT_FINAL="components_f42.txt" # Step 1: Get all package names from the rpms directory echo "Fetching all package names..." : > "$OUTPUT_TEMP_PACKAGES" # Clear or create file for git_repo in ${CHECKOUT_PATH}/*.git; do git_repo_name="$(basename "${git_repo}" .git)" echo "$git_repo_name" >> "$OUTPUT_TEMP_PACKAGES" done echo "Stored all package names in $OUTPUT_TEMP_PACKAGES." # Step 1.5: Check if the package has a .spec file in rawhide, filtering out never-imported packages echo "Filtering packages that do not have a rawhide .spec file..." : > "$OUTPUT_TEMP_PACKAGES.filtered" # Create a new temp file while IFS= read -r pkg; do if git -C "${CHECKOUT_PATH}/${pkg}.git" ls-tree -r rawhide --name-only | grep -qE "^${pkg}\\.spec$"; then echo "$pkg" >> "$OUTPUT_TEMP_PACKAGES.filtered" fi done < "$OUTPUT_TEMP_PACKAGES" mv "$OUTPUT_TEMP_PACKAGES.filtered" "$OUTPUT_TEMP_PACKAGES" echo "Filtered package list is now stored in $OUTPUT_TEMP_PACKAGES." # Step 2: Fetch retired packages from Fedora JSON source echo "Fetching retired packages..." curl -s https://src.fedoraproject.org/lookaside/retired_in_rawhide.json | jq -r '.rawhide[]' > "$OUTPUT_TEMP_RETIRED" echo "Stored retired packages in $OUTPUT_TEMP_RETIRED." # Step 3: Remove retired packages from the full package list to get active packages echo "Filtering active packages..." grep -Fxvf "$OUTPUT_TEMP_RETIRED" "$OUTPUT_TEMP_PACKAGES" | awk '{print "rpm/" $0}' > "$OUTPUT_FINAL" echo "Stored active package list in $OUTPUT_FINAL." # Step 4: Remove temporary files rm -f "$OUTPUT_TEMP_PACKAGES" "$OUTPUT_TEMP_RETIRED" echo "Removed temporary files." echo "Process completed successfully! 🚀"
And the result seems reasonable to me:
24299 components_f42.txt
Earlier it was 24436, which has package such as
> rpm/askbot-plugin-authfas > rpm/atari++ > rpm/Atomes > rpm/autoconf268 > rpm/biosig4c++ > rpm/bonnie++ > rpm/boost1.78
Metadata Update from @jnsamyak: - Issue untagged with: medium-trouble - Issue tagged with: high-trouble
Metadata Update from @jnsamyak: - Issue assigned to jnsamyak
The branching is done!
Retrospective details: https://hackmd.io/DykaMNJ1TXGjilEOokTp1A?view Docs improvements: https://pagure.io/infra-docs-fpo/pull-request/365
Metadata Update from @jnsamyak: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Log in to comment on this ticket.