98 lines
4 KiB
Text
98 lines
4 KiB
Text
== Adjust EOLs and SLs on branches
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
This SOP is about adjust EOLs and SLs on so-called "arbitrary" branches.
|
|
Unretiring a package _also_ involves changing the EOL on a branch, but
|
|
you won't find information on that here. See the unretirement SOP for
|
|
more info there.
|
|
====
|
|
|
|
=== Description
|
|
|
|
With "arbitrary branching", modules can include streams for an RPM that
|
|
are not directly associated with a Fedora release. Modules _themselves_
|
|
can have branches not directly associated with a Fedora release. For
|
|
instance, our [.title-ref]#python3# module has a [.title-ref]#3.6#
|
|
branch. The SLs on that module branch all go EOL on 2018-06-01.
|
|
*@torsava*, one of the
|
|
https://src.fedoraproject.org/modules/python3k[python3 module
|
|
maintainers], may request that this branch have its EOL extended until
|
|
2018-12-01.
|
|
|
|
When a maintainer wants to change EOL on a rpm, module, or container
|
|
branch, they need to file a https://pagure.io/releng/issues[releng
|
|
ticket] requesting it. They have no way to do it on their own. Releng
|
|
must review the request, and then process it.
|
|
|
|
=== Policy
|
|
|
|
Here are some _policy_ guidelines to help you (releng) make decisions
|
|
about these tickets
|
|
|
|
* Clarify. Does the maintainer want the EOL lengthed for an rpm? Or for
|
|
a module? Or for a container? If they just say "increase the EOL for
|
|
[.title-ref]#httpd#, please", it is not clear which thing they're really
|
|
talking about.
|
|
* Expect that maintainers generally know _when_ their EOL should go
|
|
until. You don't need to go and research upstream mailing lists to
|
|
figure out what makes sense. Politely asking the maintainer for some
|
|
background information on _why_ the EOL should be changed is good to
|
|
record in the ticket for posterity. Bonus points if they can provide
|
|
references to upstream discussions that make the request make sense.
|
|
* EOLs should _almost always_ only be extended into the future.
|
|
Shortening an EOL should only be done with care. There might be modules
|
|
out there that depend on an rpm branch with a conflicting EOL of their
|
|
own. If a _shorter_ EOL is requested for an rpm branch, you should
|
|
verify that no modules that depend on it have a conflicting EOL. If a
|
|
_shorter_ EOL is requested for a module branch, you should verify that
|
|
no other modules require it that have a conflicting EOL.
|
|
* EOLs should not be arbitrary dates. At Flock 2017, we
|
|
https://pagure.io/fedrepo_req/issue/100[decided on using two standard
|
|
dates] for EOLs to help make things less crazy. You should use December
|
|
1st or June 1st of any given year for all EOL dates.
|
|
* Many branches will _often_ have multiple SLs all with the _same_ EOL.
|
|
I.e., the branch is fully supported until such time as it is totally
|
|
retired. There is no gray area. However, it is _possible_ to have
|
|
branches with piecemeal SLs and EOLs. A branch may support
|
|
[.title-ref]#bug_fixes# until time X but will further support
|
|
[.title-ref]#security_fixes# until time Y. This is nicely flexible for
|
|
the maintainers, but also introduces complexity. If a maintainer
|
|
requests piecemeal SL EOLs, ask to make sure they really want this kind
|
|
of complexity.
|
|
|
|
=== Action
|
|
|
|
We have a script in the releng repo:
|
|
|
|
....
|
|
$ PYTHONPATH=scripts/pdc python3 scripts/pdc/adjust-eol.py -h
|
|
....
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Run it with [.title-ref]#python3#. It imports [.title-ref]#fedrepo_req#
|
|
which is python3 by default. Installing [.title-ref]#python2#
|
|
dependencies should be possible when needed.
|
|
====
|
|
|
|
Here is an example of using it to increase the SL of the
|
|
[.title-ref]#3.6# branch of the [.title-ref]#python3# module (not the
|
|
rpm branch):
|
|
|
|
....
|
|
$ PYTHONPATH=scripts/pdc python3 scripts/pdc/adjust-eol.py \
|
|
fedora \
|
|
SOME_TOKEN \
|
|
python3 \
|
|
module \
|
|
3.6 \
|
|
2018-12-01
|
|
Connecting to PDC args.server 'fedora' with token 'a9a1e4cbca122c21580d1fe4646e603a770c5280'
|
|
Found 2 existing SLs in PDC.
|
|
Adjust eol of (module)python3#3.6 security_fixes:2018-06-01 to 2018-12-01? [y/N]: y
|
|
Adjust eol of (module)python3#3.6 bug_fixes:2018-06-01 to 2018-12-01? [y/N]: y
|
|
Set eol to 2018-12-01 on ['(module)python3#3.6 security_fixes:2018-06-01', '(module)python3#3.6 bug_fixes:2018-06-01']
|
|
....
|