[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:
--------------
trunk/Documentation/Release-HowTo.txt
-------------- 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
http://svnbook.red-bean.com/
-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
+important.
+
+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
+and
+ 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