Overview
Bloom is a desktop computer software application. It aims to encourage a low-training, high-output system where mother tongue speakers and their advocates work together to foster both community authorship and access to external material in the vernacular.
Users¶
You're in the wrong place. Head over to http://bloom.palaso.org.
Testers¶
Please see Tips for Testing Palaso Software
You will also want to follow the Bloom User List
Developers¶
RoadMap / Day-to-day progress¶
See the Bloom Trello Board.
Bug Reports¶
Reports can be entered in http://jira.palaso.org/issues/browse/BL. They can be entered there via email by sending to issues@bloom.palaso.org.
Continuous Build System¶
Each time code is checked in, an automatic build begins on our TeamCity build server, running all the unit tests. Similarly, when there is a new version of some Bloom dependency (e.g. Palaso, PdfDroplet, our fork of GeckoFX), that server automatically rebuilds Bloom. This automatic build doesn't publish a new installer, however. That kind of build is launched manually, by pressing a button on the TeamCity page. This "publish" process builds Bloom, makes and installer, rsyncs it to the distribution server, and writes out a little bit of html which the Bloom download page then displays to the user.
Source Code¶
To get the source code, you'll need Mercurial. Windows users, install TortoiseHg. Then from a command line, go to where you keep your development projects, and give this command:
hg clone http://hg.palaso.org/bloom
You should now have a solution which you can build using any 2010 edition of Visual Studio 2010, including the free Express version. We could help you do it in VS 2008, if necessary.
Now, what revision should you be on? If you're not familiar with DVCS (Distributed version control), this could be a big stumbling block. I hesitate to give advice in this document in case I forget to update it. But a reasonable start is to update to the tip revision, which is the most recent one that anyone has checked in, regardless of which branch it is on. To update to the tip, do:
hg update tip
It will avoid some complications if you do that now, before adding the dependencies which follow.
Coding Standards¶
Getting up-to-date libraries¶
Some of the dependencies are very large, and others are updated frequently. For both of those reasons, you can't just pull the code and expect it to compile. First, you will have to do some extra work to get Bloom's library dependencies up to date.
1) Palaso Libraries
Get binaries of Palaso libraries from http://build.palaso.org/repository/downloadAll/bt32/.lastSuccessful/artifacts.zip. This is really the latest, so don't be disheartened if there's some API change which Bloom hasn't updated to yet. We keep them in sync generally, but a few times a year they may be out of sync by a day or so.
Where do they all go? exiftool.exe goes in bloom's "distfiles" directory. The palaso libraries that bloom uses can be found in lib/dotnet. You'll be replacing old ones.
2) PdfDroplet
Get binaries of PdfDroplet from the palaso build server: http://build.palaso.org/repository/downloadAll/bt54/.lastSuccessful/artifacts.zip. Place pdfdroplet in lib/dotnet.
3) GeckoFX
Get binaries of GeckoFX from http://build.palaso.org/repository/downloadAll/bt143/.lastSuccessful/artifacts.zip. Place the files in that zip at in lib/dotnet.
4) XulRunner
The easiest way to get this just install Bloom, and drag the XulRunner folder from the installation into /lib. It's always possible that the shipping version is older than what the latest code is expecting. If you need some other version, they come from here: http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases. You want a "runtime", not an "sdk". Note, in addition to the generic "lib/xulrunner", the code will also work if it finds "lib/xulrunner8" (or 9, or 10, or whatever the current version is). I prefer to append that number so that I'm clear what the version of xulrunner is that I have sitting there.
More information on XulRunner and GeckoFX is here: http://projects.palaso.org/projects/bloom/wiki.
- Homepage: http://bloom.palaso.org
Members
Manager: john hatton
Developer: Cambell Prince, jim albright, Randy Regnier, Tom Hindle