[etoys-dev] [SVN][748] Release-HowTo: add section on translations and building Etoys-To-Go

commits at etoys.squeak.org commits at etoys.squeak.org
Sun May 29 19:00:31 EDT 2011

Repository: http://etoys.squeak.org/svn

Revision: 748
Author:   bf
Date:     2011-05-29 23:00:28 +0000 (Sun, 29 May 2011)
Log Message:
Release-HowTo: add section on translations and building Etoys-To-Go

Modified Paths:

-------------- next part --------------
Modified: trunk/Documentation/Release-HowTo.txt
--- trunk/Documentation/Release-HowTo.txt	2011-05-29 22:22:20 UTC (rev 747)
+++ trunk/Documentation/Release-HowTo.txt	2011-05-29 23:00:28 UTC (rev 748)
@@ -4,6 +4,8 @@
 0. Code, Test, Debug, Commit
+### Code ###
 During regular development time, code is committed as Monticello
 packages to our main repository at
@@ -16,6 +18,13 @@
 server" menu item in the "help" menu. First official updates are
 loaded, then it is offered to download the latest package versions.
+### Non-code files ###
+Everything in the release that is not Smalltalk code is managed in our
+subversion repository, see the section below. Also see the section
+called "Miscellaneous files" at the end of this document which gives
+details on some particular files like example projects and QuickGuides.
 1. Prepare an update 
@@ -79,9 +88,12 @@
     cd EtoysRepo
     svn update
-This will download the latest versions of committed files. After
-updating, you should find these directories in EtoysRepo:
+This will download the latest versions of committed files.
+### Directories ###
+After updating, you should find these directories in EtoysRepo:
 * _Artwork_: icon files etc. in their "source" format
 * _Documentation_: this file
 * _Etoys_: the cross-platform files, e.g image, sources/changes,
@@ -92,8 +104,9 @@
 * _installers_: the installer files and build scripts for each platform
 * _po_: the sources of translation files. The translation server pootle
   at http://translate.sugarlabs.org/ commits directly into this
-  directory. Do **not** commit po files here, this will confuse pootle
-  and require the pootle admins to manually resolve the conflicts.
+  directory. Do **not** commit translated po files here, this will
+  confuse pootle and require the pootle admins to manually resolve the
+  conflicts. Only commit pot files to the po/templates directory.
 __Every change you want to be in the release needs to be committed to
 this repository!__ In particular, the "Etoys" directory will be
@@ -102,14 +115,16 @@
 When committing changed files, please check carefully you are not
 accidentally uploading files that should not be in the release. Always
-check the list of files about to be committed.
+check the list of files about to be committed!
+### Subversion Help ###
 A excellent free manual for operating subversion is at
-3. Create the release image
+3. Create the release image and POT files
 * Update your copy of the Etoys SVN repository as described above. Make
   sure the "Etoys" directory is clean using "svn status".
@@ -119,12 +134,12 @@
   repo. E.g., even just running the image and quitting will modify the
   etoys.changes file:
-        host:Etoys user$ svn status
+        host:EtoysRepo user$ svn status
         M       etoys.changes
-        host:Etoys user$ svn revert etoys.changes 
+        host:EtoysRepo user$ svn revert etoys.changes 
         Reverted 'etoys.changes'
-        host:Etoys user$ svn status
-        host:Etoys user$ 
+        host:EtoysRepo user$ svn status
+        host:EtoysRepo user$ 
 * In the image, switch to the hidden empty top-level project
 * Load updates. Answer *no* when asked to load the latest packages. We
@@ -146,20 +161,158 @@
 * for testing, do _not_ run the image from here, because this will
   modify at least the changes file. Better to build a new Etoys-To-Go
   (see "installers" section below) or make a copy elsewhere.
-* commit image to svn
+* The release builder generated new translation template files (*.pot)
+  in the Etoys project directory. Move them to po/templates 
+* commit image, changes, and pot files to svn, mention the version and
+  update number in the commit message
 4. Update other release files
-_to be written_
+### Translations ###
+Translators commit their translated po files. For the release, they
+must be compiled into mo files using the "gettext" utilities. A script
+for this is provided in the installers directory, it uses the "msgfmt"
+command for compilation. The script assumes a unix-like environment:
+    host:EtoysRepo user$ ./installers/buildTranslations.sh
+    de/BroomMorphs.po 7 translated messages.
+    de/Collections.po 11 translated messages.
+    de/Compression.po 13 translated messages.
+    de/Connectors.po 282 translated messages.
+    ...
+    ru/BroomMorphs.po 7 translated messages.
+    ru/Collections.po 11 translated messages.
+    ru/Compression.po 13 translated messages.
+    ru/Connectors.po 281 translated messages, 1 untranslated message.
+    ...
+The script outputs for each po file in each language the number of
+translated and untranslated messages.
+Commit the Etoys/locale directory which has the new .mo files. List the
+updated languages in the commit message.
+There are languages in Pootle that we do not ship yet, usually because
+too few of Etoys' more than 3000 messages are untranslated. The
+buildTranslations script generates mo files for these languages too. As
+a convenience, the deleteTranslations script removes the mo files and
+directories for unshipped languages. As a reminder, it lists the total
+number of translated messages per language it is going to delete:
+    host:EtoysRepo user$ ./installers/deleteTranslations.sh
+    fa       1
+    en_GB     395
+    fil       6
+    pl      52
+    th       0
+    ...
+    About to delete: fa en_GB fil pl th pap zh_TW am gl mk km is gu
+    Press ^C to abort, Return to continue ...
+### NEWS ###
+To keep track of what changed, updating the Etoys/NEWS file is
+Follow the format you already find. Leave out unimportant detail. If
+possible, add the tracker ticket number (e.g. SQ-123).
+To find out what changed, consult the changesets at
+    http://etoys.squeak.org/updates/
+as well as the subversion changelog
+    host:EtoysRepo user$ svn log -v | less
 5. Build installers
+### Etoys-To-Go
+You need to edit the version numbers in 
+    VM/os-x/app/Contents/Info.plist
+    VM/to-go/Contents/Info.plist
+They should match, but one uses "Etoys" and the other "Etoys-To-Go".
+These XML files provide meta data for the Mac. The CFBundleIdentifier
+needs to only change for larger releases. CFBundleVersion should be
+incremented for each bundle build. CFBundleShortVersionString is shown
+in the Finder, CFBundleGetInfoString in the Finder's info dialog. The
+CFBundleName is shown in the Mac's menu bar as application name when
+Etoys is running. All other items should not need to change for each
+release build.
+	<key>CFBundleGetInfoString</key>
+	<string>Etoys-To-Go 4.1.2 alpha 3 (2393), VM 4.2.4b1</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.squeakland.EtoysToGo41</string>
+	<key>CFBundleName</key>
+	<string>Etoys-To-Go 4.1.2 alpha 3</string>
+	<key>CFBundleShortVersionString</key>
+	<string>4.1.2 alpha 3</string>
+	<key>CFBundleVersion</key>
+	<string>7</string>
+There is a script to build Etoys-To-Go. It parses the Info.plist files
+to extract the version name, and makes sure they match. It builds a
+version of Etoys-To-Go in the current directory, and also creates a
+zip fail ready for uploading:
+    host:EtoysRepo user$ cd installers/to-go/
+    host:to-go user$ ./makeEtoysToGo 
+    Version 4.1.2 alpha 3
+    Adding Mac VM ... Export complete.
+    Adding Windows VM ... Export complete.
+    Adding Linux VM ... Export complete.
+    Adding Etoys ... Export complete.
+    Adding To-Go ... Export complete.
+    Creating Etoys-To-Go-4.1.2-alpha3.zip ... Done.
+    host:EtoysRepo user$ 
+Alpha releases should only be uploaded to etoys.squeak.org:
+    host:to-go user$ scp Etoys-To-Go-4.1.2-alpha3.zip etoys at squeak.org:html/download/4.1/
+Releases go to the official squeakland.org download page:
+    host:to-go user$ scp Etoys-To-Go-4.1.2.zip squeakland at squeakland.org:installers/
 ### Windows
 ### Mac
 ### Linux
-### Etoys-To-Go
+6. Miscellaneous files
+The following files typically do not need to be touched while doing a
+release. Instead, they will be changed in the SVN repository during
+regular development.
+### QuickGuides ###
+QuickGuides are stored for each language in the QuickGuides-Projects
+directory as .pr files. When they changed or new guides were added,
+they need to be converted to .sexp.gz files.
+_to be written_ (there may be a howto on http://wiki.squeakland.org/)
+### Example projects ###
+Example projects simply need to be copied to the Etoys/ExampleEtoys
+projects. If there is an updated example, remove the old one and add
+the new:
+    host:EtoysRepo user$ cd Etoys/ExampleEtoys/
+    host:ExampleEtoys user$ svn rm EtoysCastle.006.pr
+    host:ExampleEtoys user$ svn add EtoysCastle.007.pr
+NOTE: the Home, Gallery, and Tutorials projects in the Etoys directory
+      (not Etoys/ExampleEtoys) need to be updated _before_ building the
+      image, since they are preloaded into the image itself.

More information about the etoys-dev mailing list