2013/3/30
<shaiton@fedoraproject.org>
Hi Fedora webmasters,
We already discussed this during last winter, and are going to apply the
new workflow, starting now.
Here is the major changes:
- Production should always be against the "master" branch. If you have a
quick fix to make, that's where it should go. For every websites.
Finally I won't push any commits to the wrong branch (hopefully...) :)
- Preparing the websites for a new release is made on an fXX-Alpha,
fXX-Beta or fXX branch. The current one should be built on staging. At
release day, we just merge this branch into master to go live in prod.
We should not forget to tag this commit.
- Enhencements or test could be made on the "stg" branch. That way we
always have a developing branch.
[skip the following point if you don't need to read about translation
management]
- Please don't push a new POT unless you know what you are doing. We know
have only one Transifex resource per website, without duplicates as
before (fpo-master, fpo-f18-alpha...) Therefore, from one branch you can
break the translations on the other branch. It won't cause too much
damage as Transifex keep an history of the translations (pushing back
the right POT restore it), but the strings won't be translated for the
other branch. I introduced an any way to block pulling translation
during the build by keeping a file named "PO_FREEZE" at the top of the
website directory. This file is tested on Makefile.in.
The usual workflow is to share the same POs files (not locking pulling)
during Alpha and Beta, while we will probably want to lock it during the
Beta stage in order to let translators work for the new release
(translating the new slideshow, features page if needed, and other new
change). At release day we should check that "PO_FREEZE is deleted on
master in order to pull again the translations.
This translation things is hidden here, it works on our builder with
syncTranslations.sh script on puppet aside with syncStatic (puppet). The
first script pulls the translations from Transifex twice a day (or so)
while the usual syncStatic script hourly calls the "syncpos" Makefile.in
target in order to sync the POs from the pulled POs. "PO_FREEZE" just
lock the "syncpos" target.
There was no need to (force) pull hourly all translations. We should
probably pull hourly few days before GA, if asked by translators. But
it is now separated from our builds.
That's a very nice idea, the PO_FREEZE will help us a lot when working on fXX branch for GA. I think we have to check the workflow during Alpha stage (when working on fXX-beta), and after our first experience, document this part more detailled in our workflow wiki page.
Therefore, we will need the infrastructure help only to manually build the
websites at the right time and to change the redirect (as get-prerelease).
And to change the PO pulling cron.
Anyone from our team would be able to push the new website for the
release. It is now easier to understand, easier to handle if for any
reasons we need someone else to do the task for GA, you have full power!!
Of course, the best is to let those doing it everytimes to do it the next
time... :)
We are quite ready for Alpha (#196), we will see then if it works nice or
if we should go back to our shadow workflow.
This is basically all, with Robert we also wrote the following pages in
order to make it easier for new contributors to understand our
workflow/tasks.
All our new workflow now should be documented clear enough, we will (probably) improve the pages during the first release cycle, which is starting with the first merge to master at april 16th.
https://fedoraproject.org/wiki/Websites/workflow
https://fedoraproject.org/wiki/Websites/workflow/checklist
I also updated our following SOP, please comment:
http://infrastructure.fedoraproject.org/infra/docs/fedorawebsites.txt
--
Kévin Raymond
(Shaiton)
--
websites mailing list
websites@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/websites