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.
- 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.
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.
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
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
Thanks Kèvin ^^
On Sat, 30 Mar 2013 09:33:01 +0100 shaiton@fedoraproject.org wrote:
Hi Fedora webmasters,
We already discussed this during last winter, and are going to apply the new workflow, starting now.
...snip...
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.
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
Thanks. I think this workflow will work out nicely.
kevin
2013/4/2 Kevin Fenzi kevin@scrye.com
On Sat, 30 Mar 2013 09:33:01 +0100 shaiton@fedoraproject.org wrote:
Hi Fedora webmasters,
We already discussed this during last winter, and are going to apply the new workflow, starting now.
...snip...
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
The new workflow is going really fine and makes things easier to handle. As we will merge tuesday and are preparing the alpha branch to simply push it at the right time, we should only avoid to have too much conflicting issues. It would probably be the best not to push anything to alpha or master branch until F19-Alpha is released, IMHO. For development commits we are using the stg-branch. Let's see if the cat is dead or alive.... :D
The new workflow is going really fine and makes things easier to handle. As we will merge tuesday and are preparing the alpha branch to simply push it at the right time, we should only avoid to have too much conflicting issues. It would probably be the best not to push anything to alpha or master branch until F19-Alpha is released, IMHO. For development commits we are using the stg-branch. Let's see if the cat is dead or alive.... :D
I hope we won't kill him :)
After a quick check, only fedoraproject.org/po/fedora-web.pot will make conflict. To avoid it, we just have to override it with the f19-alpha branch (theirs) or run "make pot" ;)
Robert, I am sure you'll be ready for Beta too. In any case we will discuss a bit more about GA and Beta before my vacation (see vacation wiki page). I should miss just Beta.
(And I agree, we should avoid commits on master and alpha now, we should be ready: #196)
websites@lists.fedoraproject.org