Field

Towards a binary release

This page tracks the changes (some quite significant) to the insides of Field as we move towards a standalone "binary release". Our goal is to make a "distributable" version of Field that:

  • doesn't require building in Eclipse & Xcode in order to actually run.
  • has minimal dependancies outside of it's .app Application bundle — specifically the user's workspace directory and Mercurial.
  • is installable by just dragging the .app bundle out of a .dmg file.
  • comes with a Mercurial installation if the user doesn't have one.
  • this "buildability" can peacefully coexist with the "development" version — one where .class files hang out wherever Eclipse puts them, un-jar'ed, un-ant'ed. This keeps the development iteration time close to the length of time it takes Eclipse to incrementally build (i.e. typically nothing).

Things which have changed in the development version, (post-cs 220)

(The 'development' version is what you get if you clone the development repository)

From big changes to small:

  • The extensions directory has moved inside the bundle. It's now field.app/Contents/extensions. The hyperlink inside the Plugin Manager takes you there all the same. Note, any plugins that you had that have relative paths will need to have a couple of ../../ stuck on them.
  • The workspace directory is now in a variable location. For the release version it really wants to be in ~/Documents/FieldWorkspace, but you can happily point it at your existing workspace dir if you've grown attached to it. You'll be prompted the first time you open Field. If you regularly run with the -versioning.dir option set, you'll never see a change.
  • The release version of Field carries around with it a Mercurial installation and will attempt to install one if it can't find an existing one. Obviously, if you disagree with Field's idea of whether Mercurial is already installed, then that's a bug right there.
  • the extras build directory 'bin' has gone from being a single directory where eclipse sticks everything built from the various source folders to a folder arranged by sub-project.
  • there's now an ant .xml file at the top level that generates the contents of a release folder.

And then the very small changes and bug fixes that have piled up behind this commit so fast they don't have numbers:

  • The Text Editor's output window now "folds" the output of things.
  • The alignment guides are off by default — caps lock toggles this. This gives a much more fluid out of the box experience.
  • Issues with LazyFunctionalHelpers that developed with Jython25a3 have been resolved.
  • The Processing Plugin now remembers if you like to inject the Applet namespace into the global one.

People who just download a binary release will never need to worry about this; nor will new developers that clone the repository; it's just the people who have been using previous versions of Field that will need to be careful.