|
|
(15 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| {{header|websites}} | | {{header|websites}} |
| | This SOP has moved to the fedora Infrastructure SOP git repo. Please see the current document at: http://infrastructure.fedoraproject.org/infra/docs/fedorawebsites.rst |
|
| |
|
| == Preparing the website for a release ==
| | For changes, questions or comments, please contact anyone in the Fedora Infrastructure team. |
|
| |
|
| === Update gpg key ===
| |
|
| |
|
| As the release approaches, watch the <code>fedora-release</code> package for a
| |
| new key to be added. Use the <code>update-gpg-keys</code> script in the
| |
| fedora-web git repository to add it to <code>static/</code>. Manually add it
| |
| to <code>/keys</code> and <code>/verify</code>.
| |
|
| |
| === Update LINGUAS and languages.conf file ===
| |
|
| |
| Let's clean our directories and update the po files
| |
| <pre>
| |
| $ make clean all
| |
| </pre>
| |
|
| |
| Checks file listing vs what's in LINGUAS (left side is the correct one)
| |
| *The ones that only have a " <" on the right side are the ones that are needed
| |
|
| |
| <pre>
| |
| $ diff --side-by-side -B <(ls -1 *.po | sed -n "s/.po//p" | sort) <(cat LINGUAS)
| |
| </pre>
| |
|
| |
| Double check everything matches
| |
| <pre>
| |
| $ ls *.po | wc -l ; wc -l LINGUAS
| |
|
| |
| $ make httpd/conf/languages.conf
| |
| $ sed -i "s:@DOCUMENTROOT@:/srv/web/start.fedoraproject.org:g" languages.conf.in
| |
| </pre>
| |
|
| |
| Commit changes
| |
| <pre>
| |
| $ git commit -a
| |
| </pre>
| |
|
| |
| In /data/content/get-prerelease.html, from Alpha -> Beta
| |
| <pre>
| |
| $ sed -i s/-Alpha-/-Beta/g <filename>
| |
| </pre>
| |
|
| |
| == Update website ==
| |
| === For Alpha ===
| |
| # add Alpha banner
| |
| # add "Someone say Alpha" note
| |
| # update links alpha links in get-prerelease.html
| |
| ## Ensure href's are consistent with actual filenames of mirrored content
| |
| ## '''need link to rel-eng SOP here''' (RFE, doesn't exist yet)
| |
| # modify:
| |
| ## data/content/get-fedora.html (add alpha note)
| |
| ## data/content/get-prerelease.html
| |
| ## static/js/banner.js (alpha banner)
| |
|
| |
| === For Beta ===
| |
| # add countdown banner
| |
| # update links beta links in get-prerelease.html
| |
| ## Ensure href's are consistent with actual filenames of mirrored content
| |
| ## '''need link to rel-eng SOP here''' (RFE, doesn't exist yet)
| |
| # modify:
| |
| ## data/content/counter.html (add languages)
| |
| ## data/templates/js.html (add release counter and hide banner.js
| |
| ## static/js/release-counter* (update dates/times, languages)
| |
| ## data/templates/sidebar (add non-js version of countdown)
| |
|
| |
| === For GA ===
| |
| # merge beta -> master
| |
| $ git checkout master
| |
| $ git merge f13-beta
| |
|
| |
| # manually edit the .pot files that are listed as conflicts
| |
| # then manually go to each site and 'make all test'
| |
|
| |
| # on GA release day, tag repo Fx.
| |
| # update banner.js (/static/js/banners.js) to reflect new banner
| |
|
| |
| # change /data/content/get-fedora.html from Alpha -> Beta
| |
| # note: if you're looking for paths, you should be able to find the paths in /pub on bapp01 (sudo su - mirrormanager first)
| |
| # add alpha/beta banner (see design team)
| |
|
| |
| == Prepare puppet commits ==
| |
|
| |
| Prior to release day, prepare puppet commits to move the fedora-web branch to the release (alpha, beta, final, whatever)
| |
|
| |
| # update branch
| |
| edit modules/fedora-web/files/syncStatic.sh
| |
|
| |
| # redirect /get-prerelease
| |
| edit modules/fedora-web/files/redirects.conf
| |
|
| |
| == Fire in the hole ==
| |
|
| |
| After 9:15 AM EDT release day, push the puppet changes (e.g.: <code>cd ~/puppet
| |
| && git push</code>). This timing ensures that the cron jobs will not
| |
| automatically push the new website before 10:00 AM. Then, on
| |
| <code>puppet1</code> run:
| |
|
| |
| <pre>
| |
| # Ensure you have the puppet repo checked out to ~/puppet and up to date
| |
| cd ~/puppet && make HOSTS="bapp1 proxy1 proxy2 proxy3 proxy4 proxy5 proxy6 proxy7" push
| |
| </pre>
| |
|
| |
| On bapp1, run:
| |
| <pre>
| |
| # Once /usr/local/bin/syncStatic on bapp1 is updated with your changes, run
| |
| sudo -u apache /usr/local/bin/syncStatic
| |
| </pre>
| |
|
| |
| This takes about 15 minutes, so try to do this well before you need to push the
| |
| final site out.
| |
|
| |
| Finally, when releng gives the OK, run the following on the proxies to make the
| |
| site live:
| |
|
| |
| <pre>
| |
| # To sync the changes out, you can use func from puppet1 if you have sudo on puppet1.
| |
| # Otherwise, SSH to the proxies and call the below command.
| |
| sudo /usr/bin/rsync -a --no-owner --no-group bapp01::fedoraproject.org/* /srv/web/fedoraproject.org/
| |
| </pre>
| |
|
| |
| Push commit to redirect get-prerelease to get-fedora. If you have sudo on puppet1, run:
| |
|
| |
| $ sudo func proxy\* call command run "/usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::fedoraproject.org/* /srv/web/fedoraproject.org/"
| |
|
| |
| Otherwise, manually run this on each proxy server:
| |
|
| |
| $ sudo /usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::fedoraproject.org/* /srv/web/fedoraproject.org/
| |
|
| |
| If necessary, clear proxy caches using
| |
|
| |
| $ rm -rf /srv/cache/mod_cache/*
| |
|
| |
| Update the static banner on start.fedoraproject.org. The procedure is the same as with fedoraproject.org, except that the command to run on the proxies is
| |
|
| |
| $ sudo /usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::start.fedoraproject.org/* /srv/web/start.fedoraproject.org/
| |
|
| |
|
| |
| == Tips ==
| |
| === Creating Branches ===
| |
| Alpha
| |
| <pre>
| |
| $ git checkout -b f13-alpha master
| |
| $ git push origin HEAD
| |
| </pre>
| |
|
| |
| Beta
| |
| <pre>
| |
| $ git checkout -b f13-beta f13-alpha
| |
| $ git push origin HEAD
| |
| </pre>
| |
|
| |
| === Checking Out Branch ===
| |
| <pre>
| |
| $ git checkout -t -b f13-beta origin/f13-beta
| |
| </pre>
| |
|
| |
| Alternative
| |
| <pre>
| |
| $ git branch --track f13-beta origin/f13-beta
| |
| $ git checkout f13-beta
| |
| </pre>
| |
|
| |
| === Merging branches ===
| |
| Suggested by Ricky
| |
| <pre>
| |
| $ git merge f13-beta
| |
| $ git checkout --theirs f13-beta [list of conflicting po files]
| |
| $ git commit
| |
| </pre>
| |
|
| |
| === non-js counter ===
| |
| <pre>
| |
| <?python
| |
| from datetime import datetime
| |
|
| |
| today = datetime.utcnow()
| |
| release = datetime(2010, 5, 18, 14)
| |
|
| |
| difference = release - today
| |
| days = difference.days
| |
| if difference.seconds > 0 or difference.minutes > 0 or difference.hours > 0: days += 1
| |
| if days < 0: days = 0
| |
| days = str(days)
| |
|
| |
| image_lang = 'en'
| |
| available_languages = ('ar', 'bn_IN', 'cs', 'da', 'de', 'el', 'en', 'es', 'fi', 'fr', 'gu', 'he', 'hi', 'hr', 'hu', 'id', 'is', 'it', 'ja', 'kn', 'ko', 'ks', 'ml', 'nl', 'pa', 'pl', 'pt', 'pt_BR', 'ro', 'ru', 'si', 'sr', 'sv', 'th', 'tr', 'uk', 'zh_CN', 'zh_TW')
| |
| if lang in available_languages:
| |
| image_lang = lang
| |
| image = image_lang + '/fedora13-countdown-banner-' + days + '.' + image_lang + '.png'
| |
| ?>
| |
| <div id="banner">
| |
| <a href="http://fedoraproject.org/wiki/Releases/13/Schedule"><img src="${Markup(_('%s/static/images/counter/%s') % (path, image))}" alt="${Markup(_('Fedora 13 Goddard released in %s days!') % days)}" /></a>
| |
| <a style="text-decoration: none; font-size: 1.6ex; color: #99AABB;" href="${path}/${lang}/counter">${Markup(_('Add a counter to your own site!'))}</a>
| |
| </div>
| |
| </pre>
| |
|
| |
| === alpha/beta banners (static/js/banner.js) ===
| |
| <pre>
| |
| [
| |
| "https://fedoraproject.org/static/images/banners/f13alpha.png",
| |
| "Fedora 13 Alpha",
| |
| "https://fedoraproject.org/get-prerelease",
| |
| 5
| |
| ],
| |
| </pre>
| |
|
| |
| === commit message example ===
| |
| <pre>
| |
| adding f13 countdown banner
| |
| - added languages to counter.html
| |
| - remove banner.js / add release counter to js.html
| |
| - add non-js banner to sidebar.html
| |
| - updated release dates in release-count-ext.js and release-counter.js
| |
| - removed older counter images
| |
| - added new counter images
| |
|
| |
| adding new language for fp.o
| |
| - Persian (fa)
| |
| - Portuguese (Brazilian) (pt_BR)
| |
| - Russian (ru)
| |
| </pre>
| |
|
| |
| [[Category:Websites]]
| |
| [[Category:Infrastructure SOPs]] | | [[Category:Infrastructure SOPs]] |