The Websites Team Robert Mayr (robyduck).

Slides:



Advertisements
Similar presentations
Version Control CS440 – Introduction to Software Engineering © 2014 – John Bell Based on slides prepared by Jason Leigh for CS 340 University.
Advertisements

Quick Guide To Git & Wiki. Why We Need Version Control Group projects – Prevents loss of code when trying to merge versions – Allows Individual projects.
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Git Branching What is a branch?. Review: Distributed - Snapshots Files are stored by SHA-1 hash rather than filename Stored in git database in compressed.
Github. Download & install git   Git bash  Git GUI.
CS282.  Doxygen is a documentation generator for ◦ C++, C, C#, Java, Objective-C, Python, PHP, …  Doxygen will document your code according to the “tags”
Enhancing open-source localization By Farzana Forhad Farzana Forhad May 20, 2010 Advisor: Dr. Chris Pollett Committee members: Dr. Robert Chun & Professor.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
1Offline Weekly Meeting May May 2006 AliRoot Build Integration and (Testing) System Peter Hristov Vagner Morais.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Portal Update Plan Ashok Adiga (512)
12/14/20151 Uniquescriptz Backend Support Document Ver 2.0.
Intro to Git presented by Brian K. Vagnini Hosted by.
Welcome to Snap! Below the Line Decal Facilitated By: Zachary McPherson and Bao Xie.
INTRODUCTION TO GIT. Install Egit for eclipse Open eclipse->Help->Install New Software Search for one of the following -
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Making the website. Get your folders sorted first Create a new folder in “N” called “My hockey website” Create folders inside called “Documents”, “images”
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Introduction to Git Thomas.
Fedora Documentation Project Paul W. Frields Volunteer Contributor August 2007.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
An Introduction to. Where did Fedora come from? Boxed set every 6 months == Failed business model [
Basics of GIT for developers and system administrators
Subversion Subversion is a brand of version control software that is frequently used to store the code and documentation of a project so as to permit.
M.Sc. Juan Carlos Olivares Rojas
Development process Douglas Schilling Landgraf
L – Modeling and Simulating Social Systems with MATLAB
Open Source Systems Administration
How to open source your Puppet configuration
Packaging a Structural Biology Application – imod / 3dmod
CReSIS Git Tutorial.
Git Practice walkthrough.
CS/COE 1520 Recitation Week 2
Integration Methodology and Procedures
L – Modeling and Simulating Social Systems with MATLAB
Version Control overview
HTML & teh internets.
Play Framework: Introduction
Development and Deployment
PHP Training at GoLogica in Bangalore
Storing, Sending, and Tracking Files Recitation 2
Internationalizing your application with Quickly
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
Version Control with git
The Big Picture
Getting Started with Contribution to Openstack
Getting Started with Git and Bitbucket
Configuring Internet-related services
Version control with Git Part II
Using Github.
Git CS Fall 2018.
Version Control System - Git
Introduction to Git and GitHub
Version Control with Git
Version Control with Git and GitHub
GitHub 101 Using Github and Git for Source Control
Version/revision control via git
Git GitHub.
Introduction to The Git Version Control System
Presentation transcript:

The Websites Team Robert Mayr (robyduck)

What is the Websites Team? What does the Websites Team do? File structure and site building. How to contribute?

What is the Websites Team?

...a group of fans who know and use… Html – Css Php Python Genshi

... and have the goal to... Consolidate all key Fedora websites onto one uniform scheme; Maintain content that doesn't fall under any particular sub-project; Make the sites as fun and exciting as the project they represent.

Websites Infrastructure Design Localization Intern.tion Ambass Package Bugzap Epel Docs Marketing Infrastructure Design Websites Localization Intern.tion

What does the Websites Team do?

Translation Artwork Documentation Ambassadors Infrastructure website Maintain all the websites related to the fedoraproject.org domain Collaborate with the Infra Team Translation Artwork Documentation Ambassadors Infrastructure website Bug triage Marketing

[ How does it work? ] Architecture and build of the sites maintained

In every single subdomain the directory tree actually is the following: . |-- boot.fedoraproject.org | |-- build | |-- ChangeLog | |-- data | |-- httpd | |-- Makefile | |-- po | `-- static `-- TODO

i18n ${_('String')} ${Markup(_('String with > html code'))} 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. ${_('String')} ${Markup(_('String with > html code'))} ${Markup(_('String with a <a href="%s">link</a>') % ‘http://fedoraproject.org)} ${_('%(size)s, DVD ISO disc image for %(arch)s-bit PC') % {'size':'3.1 GB', 'arch':'32'}} It’s the simplest example; The markup that could be used everywhere (it works with embedded html code) Example using a variable. That is really useful in order to avoid having translators to translate again the string when changing the variable; It’s the 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 try with ‘make en test’ in order to build the website for the en language. Once it's correct, you need to generate the new translation template file (POT) with $ make pot

I10n . |-- boot.fedoraproject.org | |-- build | | ‘-- translations.py All POs are downloaded hourly 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, transifex.com. $ make pushpot For adding a new language, you need to update the LINGUAS file, the translation.py file, and the languages.conf file. The tree is like following: . |-- 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.

The new upcomming architecture will have a different directory tree, using a recursive make: (to be done) . |-- boot.fedoraproject.org | |-- build | |-- data | |-- httpd | |-- Makefile | |-- po | `-- static … |-- build |-- Makefile |-- static |-- templates `-- TODO

Build All websites are rebuilt hourly with a syncStatic script; Only the Infra Group can change the script and decide against which branch each website is build; There is also a specific syncStatic.stg script for the staging websites, as stg.fedoraproject.org and spins.stg.fedoraproject.org The build of all the sites takes about 30-35 minutes.

Let’s do some practice

Preparing the system Configuration of the system and clone of the Team Websites’ GIT repository su -c 'yum shell‘ > install git gettext python-genshi python-setuptools babel python-feedparser > groupinstall 'Web Server‘ > run $ git config --global user.name “Robert Mayr“ $ git config --global user.email robyduck@fedoraproject.org $ git config --global color.ui auto $ cd $HOME $ git clone git://git.fedorahosted.org/git/fedora-web.git

Create a new branch Create a local development branch and verify it is syncronized $ cd fedora-web/fedoraproject.org $ git checkout -b devel_branch Working on an existing branch without overwriting anything, for example: $ git checkout -b devel_branch --track origin/f18-beta $ git remote show origin $ git branch -a $ git status

Test of the changes After changing the files verify ALWAYS the website rebuild: $ cd fedora-web/fedoraproject.org $ make $ make test $ make stoptest If anything it’s ok apply your changes: $ git add data/content/file1.html data/content/file2.html … $ git commit –am ‘’my first file edit’

Sending your changes The first times you need to create a patch: $ cd fedora-web/fedoraproject.org $ git format-patch origin/master The patch can be send to the track website-ticket, from where the administrators will apply it. Once you get the commit permissions in the 'gitfedora-web' group you can send your changes directly: $ git push

How to contribute to the Websites Team

First steps Join the Websites Mailing List and send a self-introduction; Create your FAS account and your personal page on the Wiki; Request to join the Websites group; Follow us on the freenode IRC channel #fedora-websites.

Start contributing Take the Easyfix tickets for your first works; Send your patch; Inform the team about your patch linking it in the ML; Request sponsorship for the ‘gitfedora-web’ group.