|
|
(19 intermediate revisions by 2 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.txt |
| | | |
− | == 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 ===
| |
− |
| |
− | # lets clean our directories and update the po files
| |
− | $ make clean all
| |
− |
| |
− | # 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
| |
− | $ diff --side-by-side -B <(ls -1 *.po | sed -n "s/.po//p" | sort) <(cat LINGUAS)
| |
− |
| |
− | # double check everything matches
| |
− | $ 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
| |
− |
| |
− | # commit changes
| |
− | $ git commit -a
| |
− |
| |
− | # in /data/content/get-prerelease.html, from Alpha -> Beta (s/-Alpha-/-Beta/)
| |
− |
| |
− | == 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 ==
| |
− | === create branch ===
| |
− | # alpha
| |
− | $ git checkout -b f13-alpha master
| |
− | $ git push origin HEAD
| |
− |
| |
− | # beta
| |
− | $ git checkout -b f13-beta f13-alpha
| |
− | $ git push origin HEAD
| |
− |
| |
− | === checkout branch ===
| |
− | $ git checkout -t -b f13-beta origin/f13-beta
| |
− | # revise
| |
− | # git branch --track f13-beta origin/f13-beta
| |
− | # git checkout f13-beta
| |
− |
| |
− |
| |
− | === merging branching ideas (suggested by Ricky) ===
| |
− | git merge f13-beta
| |
− | git checkout --theirs f13-beta [list of conflicting po files]
| |
− | git commit
| |
− |
| |
− | === 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]] |
For changes, questions or comments, please contact anyone in the Fedora Infrastructure team.