User:Shaiton/websites presentation

From FedoraProject

< User:Shaiton(Difference between revisions)
Jump to: navigation, search
(Replaced content with "alive at: https://fedoraproject.org/wiki/Websites/workflow")
 
Line 1: Line 1:
{{ Admon/warning | In progress. Any help appreciated. | This is a start page for a detailed Websites team presentation. You can edit freely.}}
+
alive at: https://fedoraproject.org/wiki/Websites/workflow
 
+
'''The Plan'''
+
 
+
The idea is to detailed any side of the Websites Team. That would be used to fill The wiki page for incommers, but also to construct some slideshow.
+
 
+
'''Slideshow framework'''
+
 
+
Once started, we are going to move quickly to the framework chosen. We will code on a personnal git repo but publicly available (like gitorious).
+
 
+
The slides for a short presentation of the Websites-Group are available [http://robyduck.fedorapeople.org/presentations/ here], you're welcome to translate them to other languages.
+
 
+
__TOC__
+
 
+
== Who we are ==
+
As the name says we are a group, spread over the world, that aims to improve Fedora's image and to create the best possible interface for users and contributors on the Internet.<br />
+
The key goals of the websites group include:
+
* Consolidating all key Fedora websites onto one uniform scheme
+
* Maintaining content that doesn't fall under any particular sub-project
+
* Generally, making the sites as fun and exciting as the project they represent
+
To realize our mission the group members have good html, css and php skills, but are also able to use the genshi framework, based on Python.<br />
+
Moreover the websites team has to coordinate his work with the [[Infrastructure|  Fedora Infrastructure Team]] , [[DocsProject|  Fedora Documentation Project]], the [[Design|  Fedora Design Team]] and the [[L10N|  Fedora Localization Team]].
+
 
+
== What we do ==
+
Our goal is to develop and maintain all the websites related to the [http://fedoraproject.org fedoraproject.org] domain. Therefore we don't maintain the wiki and are not involved directly into what is maintained by the [[Infrastructure | Infrastructure Team]]. On the [http://status.fedoraproject.org/| Infrastructure Start Page] for example you can see what is maintained by the Infra Team, but you will notice that the activity range between the mentioned teams is very close and accordingly needs a good coordination.<br />
+
We keep ourself in touch with the community, like other teams, with the [https://fedorahosted.org/fedora-websites/report/1 Websites Tickets], where you can also track a bug.
+
 
+
== The websites arch (build, dev and trans) ==
+
=== Our build system ===
+
Our websites are rebuilt hourly. This is done using the syncStatic script which is puppet managed. In other words, you need to be on the infra team to change it. A sample copy is uploaded [http://shaiton.fedorapeople.org/web/syncStatic.sh there]. This is where we decide against which branch we build each websites. There is also a specific syncStatic.stg script for the staging websites. Example of stg websites are stg.fedoraproject.org and spins.stg.fedoraproject.org.
+
 
+
For release time, please refer to our specific documentation [http://infrastructure.fedoraproject.org/infra/docs/fedorawebsites.txt there].
+
 
+
=== Coding ===
+
''insert graph here''
+
==== Architecture ====
+
There is a specific folder for each websites under which you will find the following tree:
+
 
+
    .
+
    |-- boot.fedoraproject.org
+
    |  |-- build
+
    |  |-- ChangeLog
+
    |  |-- data
+
    |  |-- httpd
+
    |  |-- Makefile
+
    |  |-- po
+
    |  `-- static
+
    `-- TODO
+
 
+
There are several folders, one for each websites. The main one have the same tree: a build folder where we have some python scripts for Genshi, the Makefile which is used to run the build, po which hold the translation files, data who has some templates and the HTML sources (in data/content/), and static where are some static files (pictures, JS scripts, CSS..).
+
The httpd folder is used to set a local apache server in order to run a testing instance.
+
 
+
==== i18n ====
+
We use the Genshi framework for internationalization. Our current templates need to have special markup around the strings in order to mark them as translatable.
+
 
+
There are several way to use the markups.
+
 
+
# <code>${_('String')}</code>
+
# <code>${Markup(_('String with &amp;gt; html code'))}</code>
+
# <code>${Markup(_('String with a &amp;lt;a href="%s"&amp;gt;link&amp;lt;/a&amp;gt;') % 'http://fedoraproject.org')}</code>
+
# <code>${_('%(size)s, DVD ISO disc image for %(arch)s-bit PC') % {'size':'3.1 GB', 'arch':'32'}}</code>
+
 
+
Fist you have the simplest example. Then the markup that could be used everywhere (it works with embedded html code, not as the first one). Then, you have an example using a variable. That is really useful in order to avoid having translators to translate again the string when changing the variable. The last example is a most complete one which shows you how to deal with multiple variables. The translator will be able to change the variable order using it's name.
+
 
+
To test that you haven't missed anything (for example you need to escape the simple quote from the string), try with <code>make en test</code> in order to build the website for the <code>en</code> language.
+
 
+
Once it's correct, you need to generate the new translation template file (POT) with <code>make pot</code>.
+
 
+
=== l10n ===
+
All POs are download hourly. Any error should be reported to our [https://fedorahosted.org/fedora-websites/newticket tracking system].
+
 
+
Whenever the HTML content change, we need to update the POT as explained on the previous section. Then, we need to push this POT to the translation platform, [http://fedora.transifex.com/ transifex.com]. This is done by the command <code>make pushpot</code>. But only the maintainers of the [https://fedora.transifex.com/projects/p/fedora-web/ fedora-web] release are able to push a new POT. Ask them if you need to do so. Please, open a new ticket.
+
 
+
 
+
If you need to add a new language, you need to update the LINGUAS file, the translation.py file, and the languages.conf file.
+
 
+
Here is the tree:
+
    .
+
    |-- boot.fedoraproject.org
+
    |  |-- build
+
    |  |      `-- translations.py
+
    |  |-- httpd
+
    |  |      `-- conf
+
    |  |              `-- languages.conf.in
+
    |  `-- po
+
    |        `--LINGUAS
+
    `-- l10N_update.sh
+
 
+
The script "l10N_update.sh" could be used to generate a new LINGUAS file as well as to upload a new POT and to backup the PO files. There is a redesign on going in order to automatize this, and have only one translation.py and languages.conf.in files. This is ticket [https://fedorahosted.org/fedora-websites/ticket/90 #90].
+
 
+
== The Hot (comming) New Websites Arch ==
+
 
+
The idea is to have a different tree using a recursive make. The syncStatic script will have few changes. Like the following (not sure about the httpd folder)
+
 
+
  .
+
  |-- boot.fedoraproject.org
+
  |  |-- build
+
  |  |-- data
+
  |  |-- httpd
+
  |  |-- Makefile
+
  |  |-- po
+
  |  `-- static
+
  …
+
  |-- build
+
  |-- Makefile
+
  |-- static
+
  |-- templates
+
  `-- TODO
+
 
+
 
+
This is directly related to ticket [https://fedorahosted.org/fedora-websites/ticket/90 #90].
+
 
+
== How to join/help ==
+
Joining the websites team is not very difficult and doesn't differ too much from the join procedure of the other Sub-Projects.<br />
+
Obviously the best starting point is the [https://fedoraproject.org/wiki/Websites/Join join page], where you should follow the points step by step.
+
PHP and Python skills are welcome, because our sites are build with Html/CSS and the Genshi framework
+
for internationalization as mentioned above.<br />
+
It would be a good idea taking a look at the [http://960.gs/ 960 grid system], because there are many ''divs'' in our
+
sources.<br />
+
First of all join the [https://admin.fedoraproject.org/mailman/listinfo/websites websites mailing list] and send a self introduction.
+
 
+
To get started, you need also:
+
 
+
=== Clone the websites repository ===
+
 
+
* Ensure you have the {{package|git}} package and the Apache web server installed:
+
<pre>su -c 'yum shell'
+
> install git gettext python-genshi python-setuptools babel python-feedparser
+
> groupinstall 'Web Server'
+
> run</pre>
+
 
+
* Set up at least your name and email address in your global ''git'' configuration:
+
git config --global user.name "John Smith"
+
git config --global user.email "john.smith@mailbox.com"
+
git config --global color.ui auto
+
 
+
* Make sure you are in a directory to which you have write access, such as your home directory or a subdirectory, and clone the websites repository.  ''This takes several minutes on a fast connection.''
+
<pre>cd $HOME
+
git clone git://git.fedorahosted.org/git/fedora-web.git</pre>
+
 
+
* Change directory to the website you want to change.  The repository carries several sites, including fedoraproject.org, spins.fedoraproject.org, and others.
+
<pre>cd fedora-web/fedoraproject.org</pre>
+
 
+
* You can make a fresh, new branch for your changes, or you can do your work against an existing branch of the ''fedora-web'' project.  To make a fresh branch for your own use only ("mynewbranch" is a name you can choose):
+
<pre>git checkout -b mynewbranch</pre>
+
If you want to work on something that already exists as a branch on websites, like a redesign branch, you can set up your branch to track the changes on that branch.  That allows you to build on the existing work without worrying about whether you're overwriting the existing team's work.  For example, if you want to help with the "fpo-redesign" branch:
+
<pre>git checkout -b mynewbranch --track origin/fpo-redesign</pre>
+
 
+
Make your changes.  It's best to make a set of related changes together, but don't make many unrelated changes at once.  For instance, it's OK to make several spelling fixes together, but don't combine those with an additional navigation menu option.
+
 
+
Test your changes.
+
<pre>make</pre>
+
After the make completes successfully and the website will now be available in your /out/ directory.
+
Now run a local sandbox test of the website:
+
<pre>make test</pre>
+
 
+
Point your web browser at http://localhost:5000 to view the sandbox site.  When you are done viewing, stop the temporary web server:
+
<pre>make stoptest</pre>
+
 
+
If everything looks OK, stage the files you changed:
+
<pre>git add data/content/file1.html data/content/file2.html</pre>
+
 
+
Commit the staged changes:
+
<pre>git commit -m 'Fix spelling errors'</pre>
+
 
+
=== Sending in your changes ===
+
 
+
* When you're done, create patch files for your changes:
+
<pre>git format-patch origin/master</pre>
+
 
+
* Now you can send the patches you've created, which will have names such as ''0001-my-change.patch'', to the {{fplist|websites}} list or upload your patch to our [https://fedorahosted.org/fedora-websites/report/1 track] if you fixed a ticket.
+
 
+
=== Join the FAS Group ===
+
 
+
Log in at https://admin.fedoraproject.org/accounts/login and join the websites group.
+
 
+
=== Work on tickets ===
+
 
+
Start working on [https://fedorahosted.org/fedora-websites/report/1 open tickets], take a look also on the [http://fedoraproject.org/easyfix/#fedora-websites easyfix] page.
+
 
+
=== Join IRC channel and Mailing List ===
+
 
+
Please ask if you have any doubts, writing to the [https://admin.fedoraproject.org/mailman/listinfo/websites Websites Mailing List] or on IRC channel #fedora-websites,
+
located on the freenode server.
+
 
+
=== Request sponsorship to the 'gitfedora-web' group ===
+
 
+
After you've done successfully your first changes and sent them as patch for the websites team, you can request sponsorhip to the 'gitfedora-web' group, which will allow you to commit to the [http://git.fedorahosted.org/git/?p=fedora-web.git fedora-web repository] (where the website source code is at).
+

Latest revision as of 18:45, 23 February 2013

alive at: https://fedoraproject.org/wiki/Websites/workflow