[releng-misc-guide] Initialise Releng Miscellaneous guide

Signed-off-by: Samyak Jain <samyak.jn11@gmail.com>
This commit is contained in:
Samyak Jain 2023-04-04 13:01:23 +05:30
parent d5a4761208
commit 96d9c091f1
23 changed files with 318 additions and 2 deletions

View file

@ -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

View file

@ -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]

View file

@ -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]

View file

@ -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

View file

@ -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 <overview>`.
=== Why we do things the way we do them
For information on the Fedora Release Engineering Philosophy, see
`philosophy <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 <sop>` 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`

View file

@ -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].

View file

@ -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.