Buckminster

To make Buckminster available on the command line (at DLS):

Linux
module load java/XXX; module load buckminster/XXX;module load git/2;module load ant;module load dasctools
(gdaXXX=gdamaster/gda97/dawnmaster/dawn2.8/, etc)

Checking Out

Using the command line

Run /dls_sw/dasc/pewma.py with suitable parameters (--help is available):

pewma.py [ --delete ] -w /path/to/workspace materialize [ <alias> [ <version> ] | <component> [ <category> [ <version> ] | <cquery> ] ]

For example:

module load java/gdaxxx         # (gdaxxx=gdamaster, gda97, etc)
module load buckminster/gdaxxx  # (gdaxxx=gdamaster, gda97, etc)
/dls_sw/dasc/pewma.py -w /scratch/gda/example/master/workspace materialize example-config

The --delete option first deletes the workspace (and the workspace_git) at the given path, if it already exists.

Note: If "materialize <alias> <version>" returns a "<version> is neither a category nor a CQuery" error, use "materialize <alias> <category> <version> " instead, where <category> is one of gda, dawn, etc. which matches the <alias>.

Using the IDE

Before starting the IDE, run /dls_sw/dasc/pewma.py or S:\Science\DASC\pewma.py to get the template workspace:

pewma.py [ --delete ] -w /path/to/workspace setup gda

Now launch the Eclipse IDE. You may find the -showlocation option useful. For example:

module load java/gdaxxx         # (gdaxxx=gdamaster, gda97, etc)
module load buckminster/gdaxxx  # (gdaxxx=gdamaster, gda97, etc)
/dls_sw/dasc/pewma.py --delete -w /scratch/gda/example/master/workspace setup
eclipse -showlocation -data /scratch/gda/example/master/workspace &

Materialising in Eclipse:

  • FileOpen a Component Query, enter the full CQuery URL
  • Set the Component Name and Component Type fields to the value for the parent component
    • For example: Component Name: example-config and Component Type: buckminster
  • Click Resolve and Materialize
  IDE Command line Comments
CQuery Component Name Type    
GDA master gda-master.cquery bl-config buckminster materialize bl-config gda Uses components from Dawn master; Oxygen tp
GDA v9.13 gda-v9.13.cquery bl-config buckminster materialize bl-config gda v9.13 Uses components from Dawn 2.14; Oxygen tp
GDA v9.12 gda-v9.12.cquery bl-config buckminster materialize bl-config gda v9.12 Uses components from Dawn 2.13; Oxygen tp
GDA v9.11 gda-v9.11.cquery bl-config buckminster materialize bl-config gda v9.11 Uses components from Dawn 2.12; Oxygen tp
GDA v9.10 gda-v9.10.cquery bl-config buckminster materialize bl-config gda v9.10 Uses components from Dawn 2.11; Oxygen tp
 
Dawn master dawn-master.cquery org.dawnsci.base.site eclipse.feature materialize dawnvanilla Dawn Vanilla; Oxygen tp
uk.ac.diamond.dawn.site materialize dawndiamond Diamond Dawn; Oxygen tp
Dawn v2.14 dawn-v2.14.cquery org.dawnsci.base.site eclipse.feature materialize dawnvanilla dawn v2.14 Dawn Vanilla; Oxygen tp
uk.ac.diamond.dawn.site materialize dawndiamond dawn v2.14 Dawn Diamond; Oxygen tp
Dawn v2.13 dawn-v2.13.cquery org.dawnsci.base.site eclipse.feature materialize dawnvanilla dawn v2.13 Dawn Vanilla; Oxygen tp
uk.ac.diamond.dawn.site materialize dawndiamond dawn v2.13 Dawn Diamond; Oxygen tp
Dawn v2.12 dawn-v2.12.cquery org.dawnsci.base.site eclipse.feature materialize dawnvanilla dawn v2.12 Dawn Vanilla; Oxygen tp
uk.ac.diamond.dawn.site materialize dawndiamond dawn v2.12 Dawn Diamond; Oxygen tp
Dawn v2.11 dawn-v2.11.cquery org.dawnsci.base.site eclipse.feature materialize dawnvanilla dawn v2.11 Dawn Vanilla; Oxygen tp
uk.ac.diamond.dawn.site materialize dawndiamond dawn v2.11 Dawn Diamond; Oxygen tp
 
Documentation master.cquery documentation.gda buckminster    
documentation.diamond buckminster    
 

All CQuery URLs start with https://alfred.diamond.ac.uk/buckminster/base/

Building

Using the command line

Run /dls_sw/dasc/pewma.py with suitable parameters (--help is available):

  • pewma.py [ -w /path/to/workspace ] clean
  • pewma.py [ -w /path/to/workspace ] build    - equivalent to 'build all' in the IDE
  • pewma.py [ -w /path/to/workspace ] product [ <site> [ <platform> ... ] ]     - writes to the location specified in xx.site/buckminster.properties

Note: After materialize or setup, the -w /path/to/workspace may be omitted if you are within the workspace. For example:

/dls_sw/dasc/pewma.py -w /scratch/gda/example/master/workspace clean
cd /scratch/gda/example/master/workspace
/dls_sw/dasc/pewma.py build
/dls_sw/dasc/pewma.py product

Using the IDE

  • Right-click on the xx.site project, and select BuckminsterInvoke Action
  • Set Properties File: to buckminster.properties in the xx.site project
  • Select the create.product action, and click OK

Note: If building using the Buckminster create.product action fails, then make sure that the build succeeds with Eclipse Project menu ‣ Clean..., selecting Clean all projects and Build the entire workspace. Then try the Buckminster create.product action again.

Updating

To execute a pull for all git clones, run /dls_sw/dasc/pewma.py or S:\Science\DASC\pewma.py with the following parameters:

  • pewma.py [ -w /path/to/workspace ] -qp git clean -dfx   (CAUTION: removes all untracked files, including build products such as bin/)
  • pewma.py [ -w /path/to/workspace ] git reset --hard HEAD   (CAUTION: discards any uncommited changes, and restores the working directory to HEAD)
  • pewma.py [ -w /path/to/workspace ] -qp git pull --ff-only --prune

Note: clean and pull can be substituted with other git commands.