Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Babel / Server Tool Development Process

Babel Team Development Strategy

Prioritizing Strategy

The Babel team's strategy to processing bugs and feature requests is (in order):

  1. Bugs that cause incorrect translations to be saved or prevent people from enter translations
  2. Finishing the version zero issues (deployment, documentation)
  3. Bugs preventing project teams from adding their projects to Babel
  4. Server performance issues
  5. Bugs preventing users from consuming the output of Babel
  6. New features

Setting up a Development Environment

The Babel server environment is a typical LAMP environment. Apache 2.x, PHP 5.x, MySQL 5.x and a CVS client are likely the only prerequisites.

Steps to setting up a Babel Development Environment on Linux:

Create a directory alias in Apache

   Alias /babel "/var/www/babel/server/html/"
   <Directory "/var/www/babel/server/html/">
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>

Apache may need to be reloaded or restarted for the alias to take effect.


Obtain the code from CVS

   cd /var/www/babel/
   cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology co -d server/ org.eclipse.babel/server


Set up the MySQL database

Configure the classes/base.conf file with the MySQL database information.

   db_read_host=localhost
   db_read_user=babel
   db_read_pass=babelpassword
   db_read_name=babel
   context=dev

Using your favourite MySQL administration tool, create a database for Babel. It is also recommended to create a MySQL user for Babel.

   mysql> create database babel;
   mysql> grant SELECT, INSERT, UPDATE, DELETE on babel.* to babel@'localhost' identified by 'babelpassword';
   mysql> flush privileges;
   

Replace the username, hostname and password according to your specific environment. Load the babel tables and sample data (the root account is used here, as the 'babel' account doesn't have CREATE/DROP privileges):

   mysql -u root -p babel < /var/www/babel/server/babel-setup.sql

Install Phoenix

Currently, Eclipse Phoenix code is required for Babel Server to run. There are plans to fix this (bug 217488). The Phoenix code must be installed in html/ with a symbolic link to it in your Apache DocumentRoot

   cd /var/www/babel/server/html/
   cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/org.eclipse co -d eclipse.org-common www/eclipse.org-common
   cd /var/www/html/  # or whatever your DocumentRoot is
   ln -s /var/www/babel/server/html/eclipse.org-common eclipse.org-common

Logging in, load strings from dev.eclipse.org CVS

Log into Babel at http://localhost/babel/login.php.

   username: babel@eclipse.org
   password: password

Launch the maps processor: http://localhost/babel/process_map_files.php


You're done!


Submitting code patches

Server code patches must be attached to Bugzilla bugs and enhancement requests. Please ensure patches are submitted against a recently updated HEAD stream.


Release process

Babel Server code in CVS is published to http://babel.eclipse.org/staging automatically every minute. To deploy the code to the live site:

  1. Tag the CVS code with a release tag: R_x_YYYYMMDDHHMM, where x is the release number and YYYYMMDDHHMM is the local time of the tag.
  2. Send an email to babel-dev@eclipse.org to announce the request for a deployment, specifying the release tag.

The Designated Deployment Drone (currently Denis) then establishes an SSH connection to the Babel server, and as the deployment user 'genie', runs the ./deployBabelLive.sh <rtag> to deploy the release.


Data Bridges

The Babel server has two data bridges:

  • Eclipse Bugzilla: this brigde is used to maintain a mapping of the Bugzilla user accounts on the Babel server. A process on the Bugzilla server and on the Babel server monitors this URL for changes, triggering an export (and an import) of the data.
  • Eclipse Project/Version info: When the Bugzilla bridge is run, the Project/Version info is pulled from this URL.

Back to the top