From 96d9c091f1cf34766735af4d41de6671e7145131 Mon Sep 17 00:00:00 2001 From: Samyak Jain Date: Tue, 4 Apr 2023 13:01:23 +0530 Subject: [PATCH] [releng-misc-guide] Initialise Releng Miscellaneous guide Signed-off-by: Samyak Jain --- antora.yml | 1 + modules/release_guide/nav.adoc | 2 +- modules/releng_misc_guide/nav.adoc | 16 ++ .../pages/_partials/attributes.adoc | 8 + modules/releng_misc_guide/pages/index.adoc | 150 ++++++++++++++++++ modules/releng_misc_guide/pages/overview.adoc | 141 ++++++++++++++++ .../pages/sop_clean_amis.adoc | 0 .../pages/sop_find_module_info.adoc | 0 .../sop_generating_openh264_composes.adoc | 2 +- .../pages/sop_package_blocking.adoc | 0 .../pages/sop_package_unblocking.adoc | 0 .../pages/sop_process_dist_git_requests.adoc | 0 .../pages/sop_pushing_updates.adoc | 0 .../pages/sop_remote_dist_git_branches.adoc | 0 .../sop_requesting_task_automation_users.adoc | 0 .../pages/sop_retire_orphaned_packages.adoc | 0 .../pages/sop_signing_builds.adoc | 0 .../pages/sop_sigul_client_setup.adoc | 0 .../pages/sop_template.adoc | 0 .../pages/sop_unretire.adoc | 0 .../pages/sop_update_critpath.adoc | 0 .../pages/sop_update_releng_docs.adoc | 0 .../pages/troubleshooting.adoc | 0 23 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 modules/releng_misc_guide/nav.adoc create mode 100644 modules/releng_misc_guide/pages/_partials/attributes.adoc create mode 100644 modules/releng_misc_guide/pages/index.adoc create mode 100644 modules/releng_misc_guide/pages/overview.adoc rename modules/{release_guide => releng_misc_guide}/pages/sop_clean_amis.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_find_module_info.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_generating_openh264_composes.adoc (97%) rename modules/{release_guide => releng_misc_guide}/pages/sop_package_blocking.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_package_unblocking.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_process_dist_git_requests.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_pushing_updates.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_remote_dist_git_branches.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_requesting_task_automation_users.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_retire_orphaned_packages.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_signing_builds.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_sigul_client_setup.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_template.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_unretire.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_update_critpath.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/sop_update_releng_docs.adoc (100%) rename modules/{release_guide => releng_misc_guide}/pages/troubleshooting.adoc (100%) diff --git a/antora.yml b/antora.yml index d9d1710..0849152 100644 --- a/antora.yml +++ b/antora.yml @@ -17,3 +17,4 @@ nav: - modules/developer_guide/nav.adoc - modules/sysadmin_guide/nav.adoc - modules/release_guide/nav.adoc +- modules/releng_misc_guide/nav.adoc diff --git a/modules/release_guide/nav.adoc b/modules/release_guide/nav.adoc index 8054d7a..387640d 100644 --- a/modules/release_guide/nav.adoc +++ b/modules/release_guide/nav.adoc @@ -1,5 +1,5 @@ -* xref:release_process.adoc[Release process] * xref:index.adoc[Release guide] +* xref:release_process.adoc[Release process] ** xref:mass_rebuild.adoc[Mass Rebuild] ** xref:sop_file_ftbfs.adoc[File FTBFS bugs] ** xref:sop_mass_branching.adoc[Mass Branching] diff --git a/modules/releng_misc_guide/nav.adoc b/modules/releng_misc_guide/nav.adoc new file mode 100644 index 0000000..79ee7f9 --- /dev/null +++ b/modules/releng_misc_guide/nav.adoc @@ -0,0 +1,16 @@ +* xref:index.adoc[Releng Miscellaneous guide] +** xref:sop_generating_openh264_composes.adoc[Generate openh264 composes] +** xref:sop_find_module_info.adoc[Find Module Information] +** xref:sop_unretire.adoc[Unretire package branch] +** xref:sop_update_critpath.adoc[Update Critpath] +** xref:sop_update_releng_docs.adoc[Update RelEng Rendered Docs] +** xref:sop_remote_dist_git_branches.adoc[Remove dist-git branches] +** xref:sop_package_unblocking.adoc[Package Unblocking] +** xref:sop_retire_orphaned_packages.adoc[Retire Orphaned Packages] +** xref:sop_requesting_task_automation_users.adoc[Requesting Automation Users] +** xref:sop_process_dist_git_requests.adoc[Process fedora-scm-requests tickets] +** xref:sop_signing_builds.adoc[Sign the packages] +** xref:sop_clean_amis.adoc[Clean AMIs Process] +** xref:sop_pushing_updates.adoc[Pushing Updates] +** xref:sop_package_blocking.adoc[Package Blocking] +* xref:troubleshooting.adoc[Fedora Release Engineering Troubleshooting Guide] \ No newline at end of file diff --git a/modules/releng_misc_guide/pages/_partials/attributes.adoc b/modules/releng_misc_guide/pages/_partials/attributes.adoc new file mode 100644 index 0000000..b138961 --- /dev/null +++ b/modules/releng_misc_guide/pages/_partials/attributes.adoc @@ -0,0 +1,8 @@ +:year: 2023 +:rawhide_next: 40 +:rawhide: 39 +:rawhide_name: Thirty Nine +:branched: 38 +:branched_name: Thirty Eight +:current: 37 +:old_release: 36 diff --git a/modules/releng_misc_guide/pages/index.adoc b/modules/releng_misc_guide/pages/index.adoc new file mode 100644 index 0000000..6e60ae0 --- /dev/null +++ b/modules/releng_misc_guide/pages/index.adoc @@ -0,0 +1,150 @@ +== Fedora Release Engineering + +Contents: + +overview philosophy contributing troubleshooting architecture sop + +This page contains information about the Fedora Release Engineering +team. + +[[releng-contact-info]] +=== Contact Information + +* IRC: `#fedora-releng` on irc.libera.chat +* Mailing List: https://admin.fedoraproject.org/mailman/listinfo/rel-eng[rel-eng@lists.fedoraproject.org] +* Issue tracker: https://pagure.io/releng/new_issue[Fedora Releng Pagure Tickets] + +If you want the to get something done (e.g. moving packages to +buildroots or into frozen compositions) by the ReleaseEngineering Team, +please create a ticket in the issue tracker mentioned above. Please +enter your FAS-username or e-mail address in the respective textbox, to +make sure the team can contact you. + +[[index-team-composition]] +=== Team Composition +* https://fedoraproject.org/wiki/User:kevin[Kevin Fenzi (nirik)] +* https://fedoraproject.org/wiki/User:sharkcz[Dan Horák (sharkcz)](secondary arches) +* https://fedoraproject.org/wiki/User:pbrobinson[Peter Robinson(pbrobinson)] +* https://fedoraproject.org/wiki/User:maxamillion[Adam Miller(maxamillion)] +* https://fedoraproject.org/wiki/User:humaton[Tomas Hrcka(humaton)] + +Release Team members are approved by FESCo. However, FESCo has delegated +this power to the Release Team itself. If you want to join the team, +please read `join-releng`. + +=== What is Fedora Release Engineering? + +For a Broad Overview, see `overview `. + +=== Why we do things the way we do them + +For information on the Fedora Release Engineering Philosophy, see +`philosophy `. + +=== Fedora Release Engineering Leadership + +Mohan Boddu (mboddu on IRC, FAS username mohanboddu) + +Leadership is currently appointed by FESCo with input from the current +release team. + +=== Things we Do + +* {blank} ++ +Create official Fedora releases.:: + ** {blank} + + + Fedora Products;; + *** Cloud + *** Server + *** Workstation + ** Fedora Spins +* Report progress towards release from +https://fedoraproject.org/wiki/Releases/Branched[branched] creation on. +* Give reports to FESCo on changes to processes. +* If something is known to be controversial, we let FESCo know before +implementing otherwise implementation generally happens concurrently to +reporting. +* Set policy on freeze management +* Administrate the build system(s) +* Remove unmaintained packages from Fedora +* Push updated packages +* write and maintain tools to compose and push Fedora + +[[join-releng]] +=== Joining Release Engineering + +Much of rel-eng's communication is via IRC. One of the best ways to +initially get involved is to attend one of the meetings and say that +you're interested in doing some work during the open floor at the end of +the meeting. If you can't make the meeting times, you can also ping one +of us on IRC or sign up for the +https://admin.fedoraproject.org/mailman/listinfo/rel-eng[mailing list]. + +Since release engineering needs special access to systems essential to +Fedora people new to rel-eng will usually get access a little bit at a +time. Typically people won't immediately be granted the ability to sign +packages and push updates for example. A couple of tasks you could start +out with are troubleshooting why builds are failing (and if rel-eng +could take actions to fix it) as the requests are submitted to pagure or +help with scripts for various rel-eng tasks. + +There are also a number of tools that Fedora Release Engineering uses +and relies upon, working on improving these upstream to fascilitate with +new things that the Fedora Project is aiming to deliver is also a great +way to get involved with Fedora Rel-Eng. + +=== How we do it + +See our `Standard Operating Procedures ` for details on how we do +the things we do. + +Most discussions regarding release engineering will happen either in +[.title-ref]##fedora-releng# or on the releng mailing list. For +requests, please consult the `releng-contact-info` + +=== Meetings + +rel-eng holds regular meetings every Monday at 14:30 UTC in +[.title-ref]##fedora-meeting-3# on the Libera IRC network. + +* https://pagure.io/releng/issues?status=Open&tags=meeting[Meeting +agendas] are created from open tickets in pagure that contain the +meeting keyword. + +==== Meeting Minutes + +Minutes are posted to the rel-eng mailing list. They are also available +at the +https://meetbot.fedoraproject.org/sresults/?group_id=releng&type=team[Meetbot +team page for releng] + +There are also +https://fedoraproject.org/wiki/ReleaseEngineering/Meetings[historical +Meeting Minutes for 2007-04-16 to 2009-05-04]. + +=== Current activities + +See our https://pagure.io/releng/issues[ticket queue] for the things we +are currently working. + +See https://fedoraproject.org/wiki/Releases[Releases] for information +about Fedora releases, including schedules. + +=== Freeze Policies + +* https://fedoraproject.org/wiki/Milestone_freezes[Milestone (Alpha, +Beta, Final) freezes] +* https://fedoraproject.org/wiki/Software_String_Freeze_Policy[String +Freeze Policy] (Same time as Alpha Freeze) +* https://fedoraproject.org/wiki/Changes/Policy[Change freeze policy] +(that's 'Change' as in 'feature') +* https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] (not +technically a freeze, but of interest) + +=== Indices and tables + +* `genindex` +* `modindex` +* `search` diff --git a/modules/releng_misc_guide/pages/overview.adoc b/modules/releng_misc_guide/pages/overview.adoc new file mode 100644 index 0000000..46cc1f2 --- /dev/null +++ b/modules/releng_misc_guide/pages/overview.adoc @@ -0,0 +1,141 @@ +[[overview]] +== Fedora Release Engineering Overview + +[[overview-intro]] +=== Introduction + +The development of Fedora is a very open process, involving over a +thousand package maintainers (along with testers, translators, +documentation writers and so forth). These maintainers are responsible +for the bulk of Fedora distribution development. An elected +https://fedoraproject.org/wiki/Fedora_Engineering_Steering_Committee[committee +of people] provides some level of direction over the engineering aspects +of the project. + +The rapid pace of Fedora development leaves little time for polishing +the development system into a quality release. To solve this dilemma, +the Fedora project makes use of regular freezes and milestone (Alpha, +Beta, Final) releases of the distribution, as well as "branching" of our +trees to maintain different strains of development. + +Stable branches of the Fedora tree and associated +https://fedoraproject.org/wiki/Repositories[Repositories] are maintained +for each Fedora release. The +https://fedoraproject.org/wiki/Releases/Rawhide[Rawhide] rolling +development tree is the initial entry point for all Fedora development, +and the trunk from which all branches diverge. Releases are +https://fedoraproject.org/wiki/Releases/Branched[Branched] from Rawhide +some time before they are sent out as stable releases, and the milestone +releases (Alpha, Beta and Final) are all built from this Branched tree. + +Nightly snapshot images of various kinds are built from Rawhide and +Branched (when it exists) and made available for download from within +the trees on the https://mirrors.fedoraproject.org/[mirrors] or from the +https://fedoraproject.org/wiki/Koji[Koji] build system. + +The https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle[Fedora +Release Life Cycle] page is a good entry point for more details on these +processes. Some other useful references regarding the Fedora release +process include: + +* The https://fedoraproject.org/wiki/Changes/Policy[Release planning +process] +* The +https://fedoraproject.org/wiki/QA:Release_validation_test_plan[release +validation test plan] +* The https://fedoraproject.org/wiki/QA:Updates_Testing[updates-testing +process], via https://fedoraproject.org/wiki/Bodhi[Bodhi] and the +https://fedoraproject.org/wiki/Updates_Policy[Updates Policy] +* The https://fedoraproject.org/wiki/QA:SOP_compose_request[test compose +and release candidate system] +* The https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process[blocker +bug process] and +https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process[freeze +exception bug process] +* The [.title-ref]#Repositories# +* The https://fedoraproject.org/wiki/Bugs_and_feature_requests[Bugzilla +system] + +=== Final Release Checklist + +Various tasks need to be accomplished prior to a final Fedora release. +Release Engineering is responsible for many of them, as outlined here. + +==== Release Announcement + +The https://fedoraproject.org/wiki/Docs_Project[Fedora Documentation +Project] prepares release announcements for the final releases. A +https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Documentation&op_sys=Linux&target_milestone=---&bug_status=NEW&version=devel&component=release-notes&rep_platform=All&priority=normal&bug_severity=normal&assigned_to=relnotes%40fedoraproject.org&cc=&estimated_time_presets=0.0&estimated_time=0.0&bug_file_loc=http%3A%2F%2F&short_desc=RELNOTES%20-%20Summarize%20the%20release%20note%20suggestion%2Fcontent&comment=Provide%20details%20here.%20%20Do%20not%20change%20the%20blocking%20bug.&status_whiteboard=&keywords=&issuetrackers=&dependson=&blocked=151189&ext_bz_id=0&ext_bz_bug_id=&data=&description=&contenttypemethod=list&contenttypeselection=text%2Fplain&contenttypeentry=&maketemplate=Remember%20values%20as%20bookmarkable%20template&form_name=enter_bug[bug +needs to be filed] for this two weeks before the final release date. + +==== Mirror List Files + +A new set of mirror list files need to be created for the new release. +Email mailto:mirror-admin@fedoraproject.org[Fedora Mirror Admins] to +have these files created. These should be created at the Final Freeze +point but may redirect to Rawhide until final bits have been staged. + +=== Release Composing + +Fedora “releases” can be built by anyone with a fast machine of proper +arch and access to a package repository. All of the tools necessary to +build a release are available from the package repository. These tools +aim to provide a consistent way to build Fedora releases. A complete +release can actually be built with only a couple commands, including the +creation of network install images, offline install images ('DVDs'), +live images, disk images, install repositories, [[FedUp]] upgrade +images, and other bits. These commands are named pungi and +livecd-creator. + +[NOTE] +.Note +==== +There is work currently being done to replace livecd-creator with +https://github.com/rhinstaller/lorax/blob/master/src/sbin/livemedia-creator[livemedia-creator]. +==== + +==== Pungi + +https://pagure.io/pungi[Pungi] is the tool used to compose Fedora +releases. It requires being ran in a chroot of the package set that it +is composing. This ensures that the correct userland tools are used to +match up with the kernel that will be used to perform the installation. +It uses a comps file + yum repos to gather packages for the compose. The +https://fedoraproject.org/wiki/Koji[Koji] build system provides a way to +run tasks within chroots on the various arches, as well as the ability +to produce yum repos of packages from specific collections. + +==== Livecd-creator + +Livecd-creator is part of the +https://fedoraproject.org/wiki/FedoraLiveCD[livecd-tools] package in +Fedora and it is used to compose the live images as part of the Fedora +release. It is also used to compose many of the custom +https://spins.fedoraproject.org[Spins] or variants of Fedora. + +=== Distribution + +Once a compose has been completed, the composed tree of release media, +installation trees, and frozen +https://fedoraproject.org/wiki/Repositories[Repositories] needs to be +synchronized with the Fedora mirror system. [[MirrorManager]] has some +more details on the mirror system. Many of the images are also offered +via BitTorrent as an alternative method of downloading. + +==== Download Mirrors + +Depends on the Fedora Mirror System and infrastructure to populate them +privately. + +==== BitTorrent + +BitTorrent is currently served by http://torrent.fedoraproject.org. +Images are added to the system via this +https://infrastructure.fedoraproject.org/infra/docs/docs/sysadmin-guide/sops/torrentrelease.rst[Standard +Operating Procedure]. + +=== Acknowledgements + +This document was influenced by +http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/article.html[release +engineering documents] from http://freebsd.org[FreeBSD]. diff --git a/modules/release_guide/pages/sop_clean_amis.adoc b/modules/releng_misc_guide/pages/sop_clean_amis.adoc similarity index 100% rename from modules/release_guide/pages/sop_clean_amis.adoc rename to modules/releng_misc_guide/pages/sop_clean_amis.adoc diff --git a/modules/release_guide/pages/sop_find_module_info.adoc b/modules/releng_misc_guide/pages/sop_find_module_info.adoc similarity index 100% rename from modules/release_guide/pages/sop_find_module_info.adoc rename to modules/releng_misc_guide/pages/sop_find_module_info.adoc diff --git a/modules/release_guide/pages/sop_generating_openh264_composes.adoc b/modules/releng_misc_guide/pages/sop_generating_openh264_composes.adoc similarity index 97% rename from modules/release_guide/pages/sop_generating_openh264_composes.adoc rename to modules/releng_misc_guide/pages/sop_generating_openh264_composes.adoc index 1b5972c..2cc9fae 100644 --- a/modules/release_guide/pages/sop_generating_openh264_composes.adoc +++ b/modules/releng_misc_guide/pages/sop_generating_openh264_composes.adoc @@ -179,7 +179,7 @@ On batcave01.iad2.fedoraproject.org you can use ansible to force all the proxies to sync the codec content from sundries01: .... -# nsible -a '/usr/bin/rsync --delete -a --no-owner --no-group sundries01::codecs.fedoraproject.org/ /srv/web/codecs.fedoraproject.org/' proxies +# ansible -a '/usr/bin/rsync --delete -a --no-owner --no-group sundries01::codecs.fedoraproject.org/ /srv/web/codecs.fedoraproject.org/' proxies .... Mirrorlist servers should update every 15min. diff --git a/modules/release_guide/pages/sop_package_blocking.adoc b/modules/releng_misc_guide/pages/sop_package_blocking.adoc similarity index 100% rename from modules/release_guide/pages/sop_package_blocking.adoc rename to modules/releng_misc_guide/pages/sop_package_blocking.adoc diff --git a/modules/release_guide/pages/sop_package_unblocking.adoc b/modules/releng_misc_guide/pages/sop_package_unblocking.adoc similarity index 100% rename from modules/release_guide/pages/sop_package_unblocking.adoc rename to modules/releng_misc_guide/pages/sop_package_unblocking.adoc diff --git a/modules/release_guide/pages/sop_process_dist_git_requests.adoc b/modules/releng_misc_guide/pages/sop_process_dist_git_requests.adoc similarity index 100% rename from modules/release_guide/pages/sop_process_dist_git_requests.adoc rename to modules/releng_misc_guide/pages/sop_process_dist_git_requests.adoc diff --git a/modules/release_guide/pages/sop_pushing_updates.adoc b/modules/releng_misc_guide/pages/sop_pushing_updates.adoc similarity index 100% rename from modules/release_guide/pages/sop_pushing_updates.adoc rename to modules/releng_misc_guide/pages/sop_pushing_updates.adoc diff --git a/modules/release_guide/pages/sop_remote_dist_git_branches.adoc b/modules/releng_misc_guide/pages/sop_remote_dist_git_branches.adoc similarity index 100% rename from modules/release_guide/pages/sop_remote_dist_git_branches.adoc rename to modules/releng_misc_guide/pages/sop_remote_dist_git_branches.adoc diff --git a/modules/release_guide/pages/sop_requesting_task_automation_users.adoc b/modules/releng_misc_guide/pages/sop_requesting_task_automation_users.adoc similarity index 100% rename from modules/release_guide/pages/sop_requesting_task_automation_users.adoc rename to modules/releng_misc_guide/pages/sop_requesting_task_automation_users.adoc diff --git a/modules/release_guide/pages/sop_retire_orphaned_packages.adoc b/modules/releng_misc_guide/pages/sop_retire_orphaned_packages.adoc similarity index 100% rename from modules/release_guide/pages/sop_retire_orphaned_packages.adoc rename to modules/releng_misc_guide/pages/sop_retire_orphaned_packages.adoc diff --git a/modules/release_guide/pages/sop_signing_builds.adoc b/modules/releng_misc_guide/pages/sop_signing_builds.adoc similarity index 100% rename from modules/release_guide/pages/sop_signing_builds.adoc rename to modules/releng_misc_guide/pages/sop_signing_builds.adoc diff --git a/modules/release_guide/pages/sop_sigul_client_setup.adoc b/modules/releng_misc_guide/pages/sop_sigul_client_setup.adoc similarity index 100% rename from modules/release_guide/pages/sop_sigul_client_setup.adoc rename to modules/releng_misc_guide/pages/sop_sigul_client_setup.adoc diff --git a/modules/release_guide/pages/sop_template.adoc b/modules/releng_misc_guide/pages/sop_template.adoc similarity index 100% rename from modules/release_guide/pages/sop_template.adoc rename to modules/releng_misc_guide/pages/sop_template.adoc diff --git a/modules/release_guide/pages/sop_unretire.adoc b/modules/releng_misc_guide/pages/sop_unretire.adoc similarity index 100% rename from modules/release_guide/pages/sop_unretire.adoc rename to modules/releng_misc_guide/pages/sop_unretire.adoc diff --git a/modules/release_guide/pages/sop_update_critpath.adoc b/modules/releng_misc_guide/pages/sop_update_critpath.adoc similarity index 100% rename from modules/release_guide/pages/sop_update_critpath.adoc rename to modules/releng_misc_guide/pages/sop_update_critpath.adoc diff --git a/modules/release_guide/pages/sop_update_releng_docs.adoc b/modules/releng_misc_guide/pages/sop_update_releng_docs.adoc similarity index 100% rename from modules/release_guide/pages/sop_update_releng_docs.adoc rename to modules/releng_misc_guide/pages/sop_update_releng_docs.adoc diff --git a/modules/release_guide/pages/troubleshooting.adoc b/modules/releng_misc_guide/pages/troubleshooting.adoc similarity index 100% rename from modules/release_guide/pages/troubleshooting.adoc rename to modules/releng_misc_guide/pages/troubleshooting.adoc