m (1 revision(s)) |
m (internal link cleaning) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 6: | Line 6: | ||
This page was used to facilitate the organization and communication about our Google Summer of Code project "An upstream-friendly l10n Web UI for Fedora". Basically it's a place where we ''keep stuff''. It is now kept for historical purposes. | This page was used to facilitate the organization and communication about our Google Summer of Code project "An upstream-friendly l10n Web UI for Fedora". Basically it's a place where we ''keep stuff''. It is now kept for historical purposes. | ||
{{ | {{Admon/note | The original application text can be found at: [[SummerOfCode/2007/DimitrisGlezos| SummerOfCode/2007/DimitrisGlezos]]}} | ||
}} | |||
== Goal == | == Goal == | ||
Line 27: | Line 24: | ||
== Roadmap == | == Roadmap == | ||
{| | {| | ||
|- | |- | ||
! colspan="2" | Project milestones | |||
|- | |- | ||
| Date || Wha? | |||
|- | |- | ||
| May ||<class="g2" | (./) Study DL structure | | May ||<class="g2" | (./) Study DL structure | ||
Line 58: | Line 55: | ||
=== Milestones === | === Milestones === | ||
# (./) Port DL to Fedora. Set up modules, theme etc. | |||
# (./) Add support for git and Mercurial to statistics | |||
# (./) Put it into production @ [http://translate.fedoraproject.org/ translate.fedoraproject.org] | |||
# (./) Build model for submission on top of DL | |||
# (./) Write functionality for checkout/commit for local repos | |||
# (./) Write functionality over password/SSH | |||
# (./) Test and put into production (out of GSoC's coding scope) | |||
== Details == | == Details == | ||
Line 70: | Line 67: | ||
=== First ideas === | === First ideas === | ||
# Investigate WUI for translation statistics and choose one or two | |||
* Most prominent one is [http://l10n.gnome.org/ GNOME's Damned Lies] , because it's written in Python, it's featureful enough to accommodate our needs. Needs tweaking to make it project-agnostic (currently it has 'GNOME' hardcoded in many places for example). See links for more of them | #* Most prominent one is [http://l10n.gnome.org/ GNOME's Damned Lies] , because it's written in Python, it's featureful enough to accommodate our needs. Needs tweaking to make it project-agnostic (currently it has 'GNOME' hardcoded in many places for example). See links for more of them | ||
# Set up a xen machine to play with and a MySQL DB for DL and make DL work with our infrastructure (directory structure, SCMs, systems, web servers) | |||
* Needs coordination with the [[Infrastructure| Fedora Infrastructure]] folks | #* Needs coordination with the [[Infrastructure| Fedora Infrastructure]] folks | ||
* Needs work to make it work with our [[DocsProject| Documentation Infrastructure]] | #* Needs work to make it work with our [[DocsProject| Documentation Infrastructure]] | ||
# Research libraries to authenticate against our infrastructure (LDAP?) and wrappers around SCM tools (CVS, SVN for start) | |||
* Could do direct LDAP authentication or through SSH key (all contributors have one). Needs discussion. | #* Could do direct LDAP authentication or through SSH key (all contributors have one). Needs discussion. | ||
* Investigate how a remote admin grants access to Fedora the cvsl10n "entity" (middleman) | #* Investigate how a remote admin grants access to Fedora the cvsl10n "entity" (middleman) | ||
# Code the PO fetcher | |||
* Python command-line tool (update: will implement it as a web app). Basic functionality: list, checkout & checkin of remotely-hosted accessible PO files. | #* Python command-line tool (update: will implement it as a web app). Basic functionality: list, checkout & checkin of remotely-hosted accessible PO files. | ||
* Name idea: Fletcher (update: transifex) | #* Name idea: Fletcher (update: transifex) | ||
# Test with folks from [[L10N| L10N]] team. | |||
* Example remote repos: yum (CVS), <code>fedorahosted.org</code> (git, hg, etc.), GNOME (SVN) | #* Example remote repos: yum (CVS), <code>fedorahosted.org</code> (git, hg, etc.), GNOME (SVN) | ||
# Integrate into DL (not really necessary, but would be good) | |||
{{Anchor|deploy}} | {{Anchor|deploy}} | ||
Line 89: | Line 86: | ||
=== Plan for testing and deployment === | === Plan for testing and deployment === | ||
# (./) Test locally with local repos | |||
# (./) Run transifex on publictest5 and commit to an hg repository which is in this user's home dir. | |||
# (./) Start meddling with <code>~/.ssh/.config</code> | |||
# (./) Enable authentication through FAS. | |||
# (./) Create a user on cvs.fpo and test with a directory like <code>/cvs/l10n/transifex-testing</code>. Finalize <code>~/.ssh/config</code> security options. | |||
# (./) Create a user for each Fedora repo and enable one module from each repo. | |||
# (./) Create an RPM, put it on <code>infrastructure.fedoraproject.org</code>. Deploy on app servers with minimal configuration (one repo, one module). | |||
# (./) Export data and deploy on app servers. | |||
{{Anchor|testing}} | {{Anchor|testing}} | ||
Line 105: | Line 101: | ||
Any help would be greatly appreciated! Please contact [[DimitrisGlezos| Dimitris Glezos]] or <code>fedora-trans-list</code> for helping out. | Any help would be greatly appreciated! Please contact [[DimitrisGlezos| Dimitris Glezos]] or <code>fedora-trans-list</code> for helping out. | ||
{{Anchor|log}} | {{Anchor|log}} | ||
Line 112: | Line 107: | ||
Timeframe: 13 weeks (June, July, August -- weeks 23-35) | Timeframe: 13 weeks (June, July, August -- weeks 23-35) | ||
{{ | {{Admon/note | Note: Surplus features (ones out of the project's scope) are noted with a {{Template:Important}}. See also: [https://fedorahosted.org/transifex/timeline Transifex Trac timeline]}} | ||
}} | |||
=== Weeks 1, 2 (23, 24) === | === Weeks 1, 2 (23, 24) === | ||
Line 137: | Line 131: | ||
* Added i18n support to transifex | * Added i18n support to transifex | ||
* OLPC release not showing up on translate.fpo fixed | * OLPC release not showing up on translate.fpo fixed | ||
* [ | * [[Infrastructure/RFR/ElvisMove|Elvis move happened]] {{Template:Important}} | ||
* Work & discussions on ACLs with mentor, admins. Decided to go on with using <code>ssh-agent</code> for now. | * Work & discussions on ACLs with mentor, admins. Decided to go on with using <code>ssh-agent</code> for now. | ||
* Implemented [http://translate.fedoraproject.org/search/ Search] {{Template:Important}} | * Implemented [http://translate.fedoraproject.org/search/ Search] {{Template:Important}} | ||
{{ | {{Admon/tip | At this point, all goals for this project could be considered fulfilled (unless a ticket gets opened for the [https://fedorahosted.org/transifex/query?status=new&status=assigned&status=reopened&milestone=GSoC+complete&order=priority GSoC-ready milestone] ). Testing and deployment follow, in close collaboration with the [[Infrastructure| Fedora Infrastructure Project]].}} | ||
}} | |||
=== Weeks 7, 8 (29, 30) === | === Weeks 7, 8 (29, 30) === |
Latest revision as of 15:35, 18 September 2016
L10N GSoC '07: The notebook
This page was used to facilitate the organization and communication about our Google Summer of Code project "An upstream-friendly l10n Web UI for Fedora". Basically it's a place where we keep stuff. It is now kept for historical purposes.
Goal
The goal of this application is to give Fedora translators the ability to contribute to more projects than before. Fedora's mantra is *upstream upstream upstream, and this applies to translations as well: committing to upstream projects instead of keeping translations downstream to Fedora means that more projects can benefit from the translators' contributions.
This approach is different from others which host the translations and do not automatically contribute them back to upstream, like Ubuntu's Rosetta for example.
Acronyms used
DL:: Damned Lies -- Software used by the GNOME project to handle web translation statistics L10N:: Localization -- See: Fedora L10N Project RFR:: Request for Resource -- Fedora Infrastrucure term SCM:: Source Control Management -- Revision control systems (CVS, SVN, git, ...) WUI:: Web User Interface
Roadmap
Project milestones | |
---|---|
Date | Wha? |
May | (./) Study DL structure |
28 May | (./) Request from Fedora Infrastructure Project for hosting |
14 June | (./) First prototype of DL for Fedora (announced on fedora-trans-list )
|
28 June | (./) Working WUI for translation statistics (translate.fpo ) |
8 July | (./) Overview of existing Python projects for remote SCM access & auth on our infrastructure |
9 July | (./) Mid-term evaluation |
16 July | (./) Basic config files decided for fetching tool |
30 July | (./) Working prototype with proof-of-concept functionality |
13 August | (./) Working tool for an external repository (ACLs, etc.) |
30 August | (./) Hook-up with WUI & make tweaks |
31 August | (./) Final evaluation |
Milestones
- (./) Port DL to Fedora. Set up modules, theme etc.
- (./) Add support for git and Mercurial to statistics
- (./) Put it into production @ translate.fedoraproject.org
- (./) Build model for submission on top of DL
- (./) Write functionality for checkout/commit for local repos
- (./) Write functionality over password/SSH
- (./) Test and put into production (out of GSoC's coding scope)
Details
First ideas
- Investigate WUI for translation statistics and choose one or two
- Most prominent one is GNOME's Damned Lies , because it's written in Python, it's featureful enough to accommodate our needs. Needs tweaking to make it project-agnostic (currently it has 'GNOME' hardcoded in many places for example). See links for more of them
- Set up a xen machine to play with and a MySQL DB for DL and make DL work with our infrastructure (directory structure, SCMs, systems, web servers)
- Needs coordination with the Fedora Infrastructure folks
- Needs work to make it work with our Documentation Infrastructure
- Research libraries to authenticate against our infrastructure (LDAP?) and wrappers around SCM tools (CVS, SVN for start)
- Could do direct LDAP authentication or through SSH key (all contributors have one). Needs discussion.
- Investigate how a remote admin grants access to Fedora the cvsl10n "entity" (middleman)
- Code the PO fetcher
- Python command-line tool (update: will implement it as a web app). Basic functionality: list, checkout & checkin of remotely-hosted accessible PO files.
- Name idea: Fletcher (update: transifex)
- Test with folks from L10N team.
- Example remote repos: yum (CVS),
fedorahosted.org
(git, hg, etc.), GNOME (SVN)
- Example remote repos: yum (CVS),
- Integrate into DL (not really necessary, but would be good)
Plan for testing and deployment
- (./) Test locally with local repos
- (./) Run transifex on publictest5 and commit to an hg repository which is in this user's home dir.
- (./) Start meddling with
~/.ssh/.config
- (./) Enable authentication through FAS.
- (./) Create a user on cvs.fpo and test with a directory like
/cvs/l10n/transifex-testing
. Finalize~/.ssh/config
security options. - (./) Create a user for each Fedora repo and enable one module from each repo.
- (./) Create an RPM, put it on
infrastructure.fedoraproject.org
. Deploy on app servers with minimal configuration (one repo, one module). - (./) Export data and deploy on app servers.
Testing
A Live transifex instance can be found at [1] , and an instance for purely testing purposes at [2] .
Any help would be greatly appreciated! Please contact Dimitris Glezos or fedora-trans-list
for helping out.
Log
Timeframe: 13 weeks (June, July, August -- weeks 23-35)
Weeks 1, 2 (23, 24)
- Requested and got access to publictest4 (later renamed to publictest5)
- Patched DL for UTF
- Requested and updated fc6 package of python-cheetah
- Created repo /cvs/l10n and added flp-web
- Added HG and GIT support to DL
- Filed bugs for incorrectly configured modules that show up wrong on our stats
- Fixed DL i18n bug
Weeks 3, 4 (25, 26)
- Added OLPC Sugar, sent email to fix i18n for rest of the olpc modules
- Created bugzilla L10N product, owners list, etc.
- Created more configurable and flexible
fetchmodules.py
script - Created transifex hosted space
- checkout function, submit page, filters, logging added
Weeks 5, 6 (27, 28)
- Made code PEP8 compatible
- Sent report to gnome i18n
- Commit support landed to transifex
- Added i18n support to transifex
- OLPC release not showing up on translate.fpo fixed
- Elvis move happened
- Work & discussions on ACLs with mentor, admins. Decided to go on with using
ssh-agent
for now. - Implemented Search
Weeks 7, 8 (29, 30)
- Idle in week 7: Participated in GUADEC '07. Presented transifex in a talk .
- Started testing & deployment
Weeks 9, 10 (31, 32)
- Idle: Away for vacations
Weeks 11, 12 (33, 34)
- Overhaul of the command execution layer
- msgfmt check for PO files
- Removed unnecessary temporary file creation (more secure)
Weeks 13 (35)
- Added more validations, check for binary uploads
- Many fixes, typos
- Added "add module" admin functionality
Resources
Links
- DL
- live.gnome.org page: http://live.gnome.org/TranslationProject/NewStatusPages
- Source: http://svn.gnome.org/viewcvs/damned-lies/trunk/
- Fedora owners
- docs: http://cvs.fedoraproject.org/viewcvs/owners/owners.list?root=docs&rev=1.23&view=markup
- pkgs: http://cvs.fedoraproject.org/viewcvs/owners/owners.list?rev=1.3008&view=markup
- l10n: https://admin.fedoraproject.org/accounts/groupbox.cgi?_editme=Edit&name=cvsl10n&_role_show_all=1
- l10n 2: http://fedoraproject.org/wiki/L10N/Teams
- Bugzilla: http://bugzilla.redhat.com/bugzilla/describecomponents.cgi?product=Fedora%20Documentation, Fedora Core, Fedora Extras
- Development
- CVS structure examples:
- Docs: http://cvs.fedoraproject.org/viewcvs/release-notes/devel/?root=docs
- Elvis: http://docs.fedoraproject.org/translation-quick-start-guide/en/sn_translating_software.html
- External (yum): http://linux.duke.edu/projects/yum/cvs.ptml
- Various
- i18n.redhat.com WUI: http://i18n.redhat.com/cgi-bin/i18n-status?page=status&branch=HEAD&locale=el&essential=1
- Discussion for domain name: http://www.redhat.com/archives/fedora-trans-list/2007-March/msg00078.html
- Example project (last year's, DocBook): http://fedoraproject.org/wiki/MoinDocBookProject/RoadMap
- Blah.
- HelpOnSmileys
- LOLCODE
- SSH
- Config file , example , openssh config
- sample connection with RSA/DSA
- an sftp implementation with probably a nice auth function