Loading Pier 3.2 into Pharo 6

As of 2017-Nov-1, Pharo 6.1 is the latest Pharo release, and Pier 3.2 is the development version of Pier, unfortunately this combination is not loading, using this script:

0 Johns-MacBook-Pro$ grep -v ^# Pier.ksh
export VERSION=release3.2
export JOB_NAME=$PWD/pier
../MacOS/Pharo Pharo6.1-64.image save $JOB_NAME
REPO=http://smalltalkhub.com/mc/Pier/Pier3/main
../MacOS/Pharo $JOB_NAME.image config $REPO ConfigurationOfPier3 --install=$VERSION --group='default'
../MacOS/Pharo $JOB_NAME.image config $REPO ConfigurationOfPier3 --install=$VERSION --group='Pier-Tests-Model'
../MacOS/Pharo $JOB_NAME.image config $REPO ConfigurationOfPier3 --install=$VERSION --group='Tests'

  1. First error arises as:

    This package depends on the following classes:
      MAElementDescription
      MAVisitor
    You must resolve these dependencies before you will be able to load these definitions:
      MAVisitor>>#visitPathDescription:
      PRMagritteDictionaryReader
      PRMagritteDictionaryReader>>#writeDictionary:for:
      PRMagritteDictionaryReader>>#checkRequired:with:
      PRMagritteDictionaryReader>>#class:
      ...

    Earlier, Pier-Seaside was only dependent on Seaside Zinc, adding:

    • Pier-Model
    • Magritte3 Seaside
    • Seaside Javascript

    as dependencies seems to have resolved this problem for Pier. For Pier3Addons, this is still a problem. Later found that updating the baseline to include the Exporter Pillar helps with this problem:

    			spec
    				project: 'Pillar Core'
    					with: [ spec
    						className: 'ConfigurationOfPillar';
    						versionString: #development;
    						loads: #('Pillar-Model' 'Pillar-PetitPillar' 'Pillar-ExporterPillar');

  2. The next error is:

    #parse: was sent to nil

    This is coming from:

    MAStringReader>>visitDocumentDescription: aDescription
    	self object: (aDescription parserClass parse: self stream)

    It is from PRPillarParser not being loaded. Another image showed it is in Pillar-PetitPillar - this can't be loaded directly because of missing PPCompositeParser. Updating:

    ConfigurationOfPier3>>baseline32:
    ...
    	project: 'Pillar Core'
    		with: [ spec
    			className: 'ConfigurationOfPillar';
    			versionString: #bleedingEdge;
    			loads: #('Pillar-Model' 'Pillar-PetitPillar');

    loaded the parser by adding the PetitPillar in the loads:

    	spec
    		project: 'Pillar Core'
    			with: [ spec
    				className: 'ConfigurationOfPillar';
    				versionString: #bleedingEdge;
    				loads: #('Pillar-Model' 'Pillar-PetitPillar');

    and updating the requires before the post command (see previous error):

    		package: 'Pier-Seaside'
    			with: [ spec
    				requires: #('Seaside Zinc' 'Pier-Model' 'Magritte3 Seaside' 'Seaside Javascript');
    				postLoadDoIt: #startSeasideAndRegisterPier ] ].

    this was all done in baseline32.

  3. Encountered a DNU when opening http://localhost:8080/pier:

    "FileLocator(Object)>>doesNotUnderstand: #ensureDirectory"

    The error is coming from MAFileDatabase>>uniqueLocation, this message isn't defined anywhere - Magritte-FileSystem-topa.2 is from Nov-17 (as is the previous version). Changing this to ensureCreateDirectory seems to resolve the problem.

  4. Aborting and saving the image (also hoping for later code load) brings about this last error:

    No version found for #'release3.1' of ConfigurationOfSeaside3 because: The symbolic version #'release3.1' is EXPLICITLY not defined in ConfigurationOfSeaside3 for the current platform (i.e., symbolic version defined as #notDefined).

  5. Finally, opening the link: http://localhost:8080/pier/ returns the page:

    /pier/ not found

Posted by John Borden at 3 November 2017, 1:52 am link