New Edition
Introduction
Fedora editions are "versions" of Fedora that users can install. These include "official" editions (Workstation and Server at time of writing), but the ultimate goal in Websites is to also make Spins and Labs editions be considered "editions" in some form as far as websites are concerned. That is to say, we’d like to ultimately have Spins and Labs have a section on the main getfedora.org site, rendering https://spins.fedorparoject.org/ and https://labs.fedoraproject.org/ useless and able to be gotten rid of. Doing this effectively will take some time.
Also note that most of the content in this document applies to adding pages in
general, with the notable exception of the release.yaml
edits. Adding a page
to getfedora.org should follow largely the same process, though.
All new editions should be added to getfedora.org, to aid in our goal of getting
rid of all of the |
Now then, all work in this document takes place in the repository in which
getfedora.org lives, and particularly in
the sites/getfedora.org/
directory.
Edition-specific Release Variables
The first step is to edit release.yaml
, and add the relevant sections under
ga
and beta
for your new edition. Use workstation
and server
as
templates. You might not need all variables that these existing sections have,
or you might need to add new ones, depending on your templates, but these blocks
should get you started.
Exporting the Edition Routes
Now, open main.py
and go to near the bottom, where you’ll note a number of
export_route(…)
calls. This method is a custom method defined earlier in the
file, which does a little bit of work for us: The first argument is an internal
identifier name, so that we can reference the page using url_for
safely (if
the URL changes, so will the URLs that get generated by url_for
). The second
argument is a path to the directory that contains the templates you’ll make, but
with a preceding and trailing /
. Follow the example of the other, currently
existing pages and add the appropriate export_route
calls at the end.
Hacking the Templates
The templates themselves live in the sites
directory (under
sites/getfedora.org/
still). There are already templates started (but not
currently exported in main.py
) for silverblue
, coreos
, and iot
, at time
of writing.
Every string you add must be enclosed in |
You can copy the templates from the existing editions, if you need inspiration or help.
Letting the Translators Do Their Thing
Once the above is done, the next step is get all the strings in the hands of the
Fedora Translations team. If you have an account on Fedora’s Zanata instance,
and are in the appropriate websites group on Zanata, and have a valid
~/.config/zanata.ini
file, you can do this step yourself. Otherwise you’ll
either need to be added to the appropriate team or have someone do this for you:
Run ./scripts/translations-source.sh
. At the end of its output, it will give
you the Zanata command to push the strings up: zanata push getfedora.org.pot
Concluding
Largely, that is it. You’ve added variables that are easy to update each release
(in release.yaml
), you’ve exported the pages, written your templates in a
translatable way, and pushed those strings to the Translations team. Now you can
sit back and relax while the translators do their thing. Their translations will
go live immediately (well, within an hour) and automatically.