diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 46f706ea..11ceb35d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,9 +44,13 @@ jobs: - Moose64-10 - Moose64-9.0 - Moose64-8.0 + - GemStone64-3.5.3 + - GemStone64-3.5.8 + - GemStone64-3.6.0 + - GemStone64-3.6.5 - GToolkit64-release timeout-minutes: [ 15 ] - exclude: # exclude 32bit builds on macOS + exclude: # exclude 32bit builds on macOS and GemStone builds on windows - os: macos-latest smalltalk: Squeak32-trunk - os: macos-latest @@ -63,10 +67,14 @@ jobs: smalltalk: Pharo64-10 - os: windows-2019 smalltalk: Pharo64-6.0 - # include: - # - os: ubuntu-18.04 - # smalltalk: GemStone64-3.5.0 - # timeout-minutes: 30 + - os: windows-2019 + smalltalk: GemStone64-3.5.3 + - os: windows-2019 + smalltalk: GemStone64-3.5.8 + - os: windows-2019 + smalltalk: GemStone64-3.6.0 + - os: windows-2019 + smalltalk: GemStone64-3.6.5 runs-on: ${{ matrix.os }} name: ${{ matrix.smalltalk }} on ${{ matrix.os }} steps: @@ -80,14 +88,14 @@ jobs: tests/all_tests.sh bin/smalltalkci -s ${{ matrix.smalltalk }} --self-test shell: bash - if: contains(matrix.smalltalk, 'trunk') == false && contains(matrix.smalltalk, 'alpha') == false && contains(matrix.smalltalk, 'Squeak32-6.0') == false + if: contains(matrix.smalltalk, 'trunk') == false && contains(matrix.smalltalk, 'alpha') == false && contains(matrix.smalltalk, 'Squeak32-6.0') == false && contains(matrix.smalltalk, 'GToolkit64') == false timeout-minutes: ${{ matrix.timeout-minutes }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run smalltalkCI self test and ignore failures run: bin/smalltalkci -s ${{ matrix.smalltalk }} --self-test || true shell: bash - if: contains(matrix.smalltalk, 'trunk') || contains(matrix.smalltalk, 'alpha') || contains(matrix.smalltalk, 'Squeak32-6.0') + if: contains(matrix.smalltalk, 'trunk') || contains(matrix.smalltalk, 'alpha') || contains(matrix.smalltalk, 'Squeak32-6.0') || contains(matrix.smalltalk, 'GToolkit64') timeout-minutes: ${{ matrix.timeout-minutes }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 8a6d9570..dff71bfd 100644 --- a/README.md +++ b/README.md @@ -74,13 +74,13 @@ they can take up a lot of space on your drive.* | [Squeak][squeak] | [Pharo][pharo] | [GemStone][gemstone] | [Moose][moose] | [GToolkit][gtoolkit] | | ---------------- | ---------------- | -------------------- | --------------- | -------------------- | -| `Squeak64-trunk` | `Pharo64-alpha` | `GemStone64-3.5.x` | `Moose64-trunk` | `GToolkit64-release` | -| `Squeak64-6.0` | `Pharo64-stable` | `GemStone64-3.4.x` | `Moose64-10` | | -| `Squeak64-5.3` | `Pharo64-11` | `GemStone64-3.3.x` | `Moose64-9.0` | | -| `Squeak64-5.2` | `Pharo64-10` | `GemStone64-3.2.x` | `Moose64-8.0` | | -| `Squeak64-5.1` | `Pharo64-9.0` | `GemStone64-3.1.0.x` | `Moose64-7.0` | | -| `Squeak32-trunk` | `Pharo64-8.0` | `Gemstone64-2.4.x` | `Moose32-trunk` | | -| `Squeak32-6.0` | `Pharo64-7.0` | | `Moose32-6.1` | | +| `Squeak64-trunk` | `Pharo64-alpha` | `GemStone64-3.6.x` | `Moose64-trunk` | `GToolkit64-release` | +| `Squeak64-6.0` | `Pharo64-stable` | `GemStone64-3.5.8` | `Moose64-10` | | +| `Squeak64-5.3` | `Pharo64-11` | `GemStone64-3.5.7` | `Moose64-9.0` | | +| `Squeak64-5.2` | `Pharo64-10` | `GemStone64-3.5.6` | `Moose64-8.0` | | +| `Squeak64-5.1` | `Pharo64-9.0` | `GemStone64-3.5.5` | `Moose64-7.0` | | +| `Squeak32-trunk` | `Pharo64-8.0` | `Gemstone64-3.5.4` | `Moose32-trunk` | | +| `Squeak32-6.0` | `Pharo64-7.0` | `GemStone64-3.5.3` | `Moose32-6.1` | | | `Squeak32-5.3` | `Pharo64-6.1` | | `Moose32-6.0` | | | `Squeak32-5.2` | `Pharo32-6.0` | | | | | `Squeak32-5.1` | `Pharo32-alpha` | | | | @@ -95,7 +95,6 @@ they can take up a lot of space on your drive.* | | `Pharo32-5.0` | | | | | | `Pharo32-4.0` | | | | | | `Pharo32-3.0` | | | | -| | | | | | ## Templates @@ -178,9 +177,9 @@ smalltalk: - Pharo32-stable - Pharo32-6.1 # ... - - GemStone64-3.3.2 - - GemStone64-3.2.12 - - GemStone64-3.1.0.6 + - GemStone64-3.5.3 + - GemStone64-3.6.0 + - GemStone64-3.6.5 # ... # Override `script` to customize smalltalkCI invocation, e.g.: diff --git a/gemstone/doc.txt b/gemstone/doc.txt new file mode 100644 index 00000000..aca990c1 --- /dev/null +++ b/gemstone/doc.txt @@ -0,0 +1,16 @@ +cp $GEMSTONE/bin/extent0.seaside.dbf extent0.dbf; chmod +w extent0.dbf + +cp extent0_step_2.dbf extent0.dbf. +cp extent0_step_3.dbf extent0.dbf. +cp extent0_step_4.dbf extent0.dbf. + +cp extent0_step_1.dbf extent0.dbf. +rm -rf tranlog*.* + +startstone -e system.conf -z system.conf -l logs/smalltalkci.log smalltalkci +loadTode.stone -D + +startnetldi -g -a dhenrich smalltalkci_ldi -P 36083 -l logs/netldi.log + +stopstone smalltalkci DataCurator swordfish + diff --git a/gemstone/run.sh b/gemstone/run.sh index 30b21317..117b6a34 100755 --- a/gemstone/run.sh +++ b/gemstone/run.sh @@ -3,51 +3,105 @@ # of a smalltalkCI build and it is not meant to be executed by itself. ################################################################################ -local CLIENT_NAME="travisClient" -local DEFAULT_DEVKIT_BRANCH="master" -local DEFAULT_GS_HOME="${SMALLTALK_CI_BUILD}/GsDevKit_home" -local DEVKIT_BRANCH="${DEFAULT_DEVKIT_BRANCH}" -local DEVKIT_CLIENT_NAMES=() -local DEVKIT_CLIENTS=() -local DEVKIT_DOWNLOAD="https://github.com/GsDevKit/GsDevKit_home.git" -local PHARO_CHANGES_FILE="Pharo-3.0.changes" -local PHARO_IMAGE_FILE="Pharo-3.0.image" -local STONE_NAME="travis" -local USE_DEFAULT_HOME="true" +# set -x +local STONE_NAME="smalltalkci" +local SUPERDOIT_BRANCH=v3.1 +local SUPERDOIT_DOWNLOAD=git@github.com:dalehenrich/superDoit.git +local SUPERDOIT_DOWNLOAD=https://github.com/dalehenrich/superDoit.git +local GSDEVKIT_STONES_BRANCH=v1.1 +local GSDEVKIT_STONES_DOWNLOAD=git@github.com:GsDevKit/GsDevKit_stones.git +local GSDEVKIT_STONES_DOWNLOAD=https://github.com/GsDevKit/GsDevKit_stones.git +local STONES_REGISTRY_NAME=smalltalkCI_run +local STONE_STARTED="" +local STONE_DIRECTORY="" +local STONES_STONES_HOME=$SMALLTALK_CI_BUILD/stones +local STONES_PROJECTS_HOME=$SMALLTALK_CI_BUILD/repos +local STONES_PRODUCTS=$SMALLTALK_CI_BUILD/products +local STONES_PROJECT_SET_NAME=devkit +local GEMSTONE_DEBUG="" + +vers=`echo "${config_smalltalk}" | sed 's/GemStone64-//'` + +local PLATFORM="`uname -sm | tr ' ' '-'`" +case "$PLATFORM" in + Darwin-arm64) + local GEMSTONE_PRODUCT_NAME="GemStone64Bit${vers}-arm64.Darwin" + ;; + Darwin-x86_64) + local GEMSTONE_PRODUCT_NAME="GemStone64Bit${vers}-i386.Darwin" + ;; + Linux-x86_64) + local GEMSTONE_PRODUCT_NAME="GemStone64Bit${vers}-x86_64.Linux" + ;; + *) + echo "This script should only be run on Mac (Darwin-i386 or Darwin-arm64), or Linux (Linux-x86_64) ). The result from \"uname -sm\" is \"`uname -sm`\"" + exit 1 + ;; +esac + +echo "GEMSTONE_PRODUCT_NAME=$GEMSTONE_PRODUCT_NAME" ################################################################################ -# Clone the GsDevKit_home project. +# Clone the superDoit project, install GemStone ################################################################################ -gemstone::prepare_gsdevkit_home() { - if [[ "${USE_DEFAULT_HOME}" = "true" ]]; then - fold_start clone_gsdevkit "Cloning GsDevKit..." - pushd "${SMALLTALK_CI_BUILD}" - git clone -b "${DEVKIT_BRANCH}" --depth 1 "${DEVKIT_DOWNLOAD}" - cd "${GS_HOME}" - # pre-clone /sys/local, so that travis can skip backups - ${GS_HOME}/bin/private/clone_sys_local - # arrange to skip backups - cp ${GS_HOME}/tests/sys/local/client/tode-scripts/* ${GS_HOME}/sys/local/client/tode-scripts - - cp ${GS_HOME}/tests/sys/local/gsdevkit_bin/* ${GS_HOME}/sys/local/gsdevkit_bin - - if is_travis_build; then - # Operating system setup already performed on Travis CI - touch ${GS_HOME}/bin/.gsdevkitSysSetup - fi - - # Make sure the GsDevKit_home is using $SMALLTALK_CI_HOME in $GS_HOME/shared/repos - ln -s ${SMALLTALK_CI_HOME} ${GS_HOME}/shared/repos/smalltalkCI - - popd - fold_end clone_gsdevkit - - export GS_TRAVIS=true # install special key files for running GemStone on Travis hosts +gemstone::prepare_superDoit() { + pushd $STONES_PROJECTS_HOME + if [ -d "$STONES_PROJECTS_HOME/superDoit" ] ; then + echo "Reusing existing superDoit project directory: $STONES_PROJECTS_HOME/superDoit" + else + fold_start clone_superDoit "Cloning superDoit..." + git clone -b "${SUPERDOIT_BRANCH}" --depth 1 "${SUPERDOIT_DOWNLOAD}" + export PATH="`pwd`/superDoit/bin:`pwd`/superDoit/examples/utility:$PATH" + fold_start install_superDoit_gemstone "Downloading GemStone for superDoit..." + install.sh $GS_ALTERNATE_PRODUCTS + fold_end install_superDoit_gemstone + fold_end clone_superDoit + fi + export PATH="`pwd`/superDoit/bin:`pwd`/superDoit/examples/utility:$PATH" + fold_start versionreport_superDoit "superDoit versionReport.solo..." + versionReport.solo + fold_end versionreport_superDoit + popd +} +################################################################################ +# Prepare environment for running GemStone +################################################################################ +gemstone::prepare_gemstone() { +echo "[Info] Creating /opt/gemstone directory" + if [ ! -e /opt/gemstone ] + then + sudo mkdir -p /opt/gemstone /opt/gemstone/log /opt/gemstone/locks + sudo chown $USER:${GROUPS[0]} /opt/gemstone /opt/gemstone/log /opt/gemstone/locks + sudo chmod 770 /opt/gemstone /opt/gemstone/log /opt/gemstone/locks else - print_info "Using existing GsDevKit_home clone: \${GS_HOME}=${GS_HOME}" + echo "[Warning] /opt/gemstone directory already exists" + echo "to replace it, remove or rename it and rerun this script" fi } +################################################################################ +# Clone the GsDevKit_stones project +################################################################################ +gemstone::prepare_gsdevkit_stones() { + fold_start clone_gsdevkit_stones "Cloning GsDevKit_stones..." + pushd "$STONES_PROJECTS_HOME" + if [ ! -d "$STONES_PROJECTS_HOME/GsDevKit_stones" ] ; then + git clone -b "${GSDEVKIT_STONES_BRANCH}" --depth 1 "${GSDEVKIT_STONES_DOWNLOAD}" + fi + export PATH="`pwd`/GsDevKit_stones/bin:$PATH" + popd + export STONES_DATA_HOME="$SMALLTALK_CI_BUILD/.stones_data_home" + if [ ! -d "$STONES_DATA_HOME" ] ; then + createRegistry.solo $STONES_REGISTRY_NAME $GEMSTONE_DEBUG + createProjectSet.solo --registry=$STONES_REGISTRY_NAME --projectSet=$STONES_PROJECT_SET_NAME \ + --from=$STONES_PROJECTS_HOME/GsDevKit_stones/bin/gsdevkitProjectSpecs.ston \ + --key=server --https $GEMSTONE_DEBUG + cloneProjectsFromProjectSet.solo --registry=$STONES_REGISTRY_NAME --projectSet=$STONES_PROJECT_SET_NAME \ + --projectDirectory=$STONES_PROJECTS_HOME $GEMSTONE_DEBUG + fi + registryReport.solo + fold_end clone_gsdevkit_stones +} ################################################################################ # Create a GemStone stone. @@ -57,143 +111,38 @@ gemstone::prepare_stone() { gemstone_version="$(echo $1 | cut -f2 -d-)" - local gemstone_cached_extent_file="${SMALLTALK_CI_CACHE}/gemstone/extents/${gemstone_version}_extent0.tode.dbf" - - if [[ "${USE_DEFAULT_HOME}" = "true" ]]; then - fold_start install_server "Installing server..." - ${GS_HOME}/bin/installServer - fold_end install_server - fi - - if ! is_dir "${SMALLTALK_CI_CACHE}/gemstone"; then - print_info "Creating GemStone extent cache..." - mkdir "${SMALLTALK_CI_CACHE}/gemstone" - if ! is_dir "${SMALLTALK_CI_CACHE}/gemstone/extents"; then - mkdir "${SMALLTALK_CI_CACHE}/gemstone/extents" - fi - if ! is_dir "${SMALLTALK_CI_CACHE}/gemstone/pharo"; then - mkdir "${SMALLTALK_CI_CACHE}/gemstone/pharo" - fi - fi - - if [[ "${TRAVIS_CACHE_ENABLED:-}" = "false" ]] || - [[ "${GS_HOME}" != "${DEFAULT_GS_HOME}" ]]; then - print_info "Travis dependency cache not being used" - else - fold_start prepare_cache "Preparing Travis caches..." - if ! is_dir "${SMALLTALK_CI_VMS}/Pharo-3.0"; then - mkdir -p "${SMALLTALK_CI_VMS}/Pharo-3.0" - print_info "Downloading Pharo-3.0 vm to cache" - pushd "${SMALLTALK_CI_VMS}/Pharo-3.0" > /dev/null - download_file "get.pharo.org/vm30" "$(pwd)/zeroconfig" - bash "$(pwd)/zeroconfig" - popd > /dev/null - fi - - if ! is_file "${SMALLTALK_CI_CACHE}/${PHARO_IMAGE_FILE}"; then - print_info "Downloading Pharo-3.0 image to cache..." - pushd ${SMALLTALK_CI_CACHE} > /dev/null - download_file "get.pharo.org/30" "$(pwd)/pharo30_zeroconfig" - bash "$(pwd)/pharo30_zeroconfig" - mv "Pharo.image" "${PHARO_IMAGE_FILE}" - mv "Pharo.changes" "${PHARO_CHANGES_FILE}" - popd > /dev/null - fi - - if is_file "${SMALLTALK_CI_CACHE}/${PHARO_IMAGE_FILE}"; then - if is_file "${SMALLTALK_CI_CACHE}/gemstone/pharo/gsDevKitCommandLine.image"; then - print_info "Utilizing cached gsDevKitCommandLine image..." - cp "${SMALLTALK_CI_CACHE}/${PHARO_IMAGE_FILE}" ${GS_HOME}/shared/pharo/Pharo.image - cp "${SMALLTALK_CI_CACHE}/${PHARO_CHANGES_FILE}" ${GS_HOME}/shared/pharo/Pharo.changes - ln -s "${SMALLTALK_CI_VMS}/Pharo-3.0/pharo" ${GS_HOME}/shared/pharo/pharo - ln -s "${SMALLTALK_CI_VMS}/Pharo-3.0/pharo-ui" ${GS_HOME}/shared/pharo/pharo-ui - ln -s "${SMALLTALK_CI_VMS}/Pharo-3.0/pharo-vm" ${GS_HOME}/shared/pharo/pharo-vm - cp "${SMALLTALK_CI_CACHE}/gemstone/pharo/gsDevKitCommandLine.image" ${GS_HOME}/shared/pharo/ - cp "${SMALLTALK_CI_CACHE}/gemstone/pharo/gsDevKitCommandLine.changes" ${GS_HOME}/shared/pharo/ - fi - fi - fold_end prepare_cache - fi - fold_start create_stone "Creating stone..." - if is_file "${GS_HOME}/bin/.smalltalkCI_create_arg_supported"; then - config_stone_create_arg="-z ${config_ston}" - fi - - if [[ "${TRAVIS_CACHE_ENABLED:-}" = "false" ]]; then - ${GS_HOME}/bin/createStone ${config_stone_create_arg:-} "${STONE_NAME}" "${gemstone_version}" - else - if ! is_file "${gemstone_cached_extent_file}"; then - ${GS_HOME}/bin/createStone ${config_stone_create_arg:-} "${STONE_NAME}" "${gemstone_version}" - cp "${GS_HOME}/server/stones/${STONE_NAME}/snapshots/extent0.tode.dbf" ${gemstone_cached_extent_file} - else - ${GS_HOME}/bin/createStone -t "${gemstone_cached_extent_file}" ${config_stone_create_arg:-} "${STONE_NAME}" "${gemstone_version}" - fi - - if ! is_file "${SMALLTALK_CI_CACHE}/gemstone/pharo/gsDevKitCommandLine.image"; then - cp ${GS_HOME}/shared/pharo/gsDevKitCommandLine.* "${SMALLTALK_CI_CACHE}/gemstone/pharo/" - fi - fi + registerProductDirectory.solo --registry=$STONES_REGISTRY_NAME --productDirectory=$STONES_PRODUCTS $GEMSTONE_DEBUG + if [ "$GS_ALTERNATE_PRODUCTS"x != "x" ] ; then + # matches superDoit gemstone version, so reuse the download + registerProduct.solo --registry=$STONES_REGISTRY_NAME --fromDirectory=$GS_ALTERNATE_PRODUCTS ${gemstone_version} $GEMSTONE_DEBUG + else + downloadGemStone.solo --directory=$STONES_PRODUCTS --registry=$STONES_REGISTRY_NAME ${gemstone_version} $GEMSTONE_DEBUG + fi + if [ "$STONE_DIRECTORY"x = "x" ] ; then + createStone.solo --force --registry=$STONES_REGISTRY_NAME --template=minimal_seaside \ + --start --root=$STONES_STONES_HOME/$STONE_NAME "${gemstone_version}" $GEMSTONE_DEBUG + STONE_DIRECTORY=$STONES_STONES_HOME/$STONE_NAME + STONE_STARTED="TRUE" + else + STONE_STARTED="FALSE" + if [ ! -d "$STONE_DIRECTORY" ] ; then + print_error_and_exit "The directory named by --gs-STONE_DIR option ($STONE_DIRECTORY) is expected to exist" + fi + fi + pushd $STONE_DIRECTORY + if [ "${GEMSTONE+set}" ] ; then + echo "GEMSTONE = $GEMSTONE (PREDEFINED)" + else + export GEMSTONE="`pwd`/product" + echo "GEMSTONE = $GEMSTONE (DEFAULT VALUE)" + fi + export PATH=$GEMSTONE/bin:$PATH + loadTode.stone --projectDirectory=$STONES_PROJECTS_HOME $GEMSTONE_DEBUG + popd fold_end create_stone } -################################################################################ -# Optionally create GemStone clients. -################################################################################ -gemstone::prepare_optional_clients() { - local client_version - local client_extension - local client_name - - if is_empty "${DEVKIT_CLIENTS:-}"; then - return - fi - - for version in "${DEVKIT_CLIENTS[@]}" - do - case "${version}" in - "Pharo32-6.0"|"Pharo-6.0") - client_version="Pharo6.0" - client_extension="Pharo6.0" - ;; - "Pharo32-6.1"|"Pharo-6.1") - client_version="Pharo6.1" - client_extension="Pharo6.1" - ;; - "Pharo32-5.0"|"Pharo-5.0") - client_version="Pharo5.0" - client_extension="Pharo5.0" - ;; - "Pharo32-4.0"|"Pharo-4.0") - client_version="Pharo4.0" - client_extension="Pharo4.0" - ;; - "Pharo32-3.0"|"Pharo-3.0") - client_version="Pharo3.0" - client_extension="Pharo3.0" - ;; - *) - print_error_and_exit "Unsupported client version '${version}'." - ;; - esac - - client_name="${CLIENT_NAME}_${client_extension}" - DEVKIT_CLIENT_NAMES+=( "${client_name}" ) - - gemstone::prepare_client "${client_version}" "${client_name}" - done -} - -gemstone::prepare_client() { - local client_version=$1 - local client_name=$2 - - fold_start "create_${client_name}" "Creating client ${client_name}..." - ${GS_HOME}/bin/createClient -t pharo "${client_name}" -v ${client_version} -s "${STONE_NAME}" -z "${config_ston}" - fold_end "create_${client_name}" - check_and_consume_build_status_file -} - ################################################################################ # Load project into GemStone stone. # Locals: @@ -206,25 +155,15 @@ gemstone::load_project() { local status=0 fold_start load_server_project "Loading server project..." - run_script ${GS_HOME}/bin/startTopaz "${STONE_NAME}" -l -T ${GSCI_TOC:-100000} << EOF || status=$? - iferr 1 stk - iferr 2 stack - iferr 3 exit 1 - login - run - GsDeployer bulkMigrate: [ - Metacello new - baseline: 'SmalltalkCI'; - repository: 'filetree://${SMALLTALK_CI_HOME}/repository'; - load: 'Core'. - System commitTransaction. - (Smalltalk at: #SmalltalkCI) load: '${config_ston}'. - ]. -% - logout - exit 0 -EOF - fold_end load_server_project + pushd $STONE_DIRECTORY + if [ "$GEMSTONE"x = "x" ] ; then + export GEMSTONE="`pwd`/product" + fi + export PATH=$GEMSTONE/bin:$PATH + loadSmalltalkCIProject.stone --projectRoot=$SMALLTALK_CI_HOME --config_ston=${config_ston} $GEMSTONE_DEBUG + status=$? + popd + fold_end load_server_project if is_nonzero "${status}"; then print_error_and_exit "Failed to load project." @@ -243,51 +182,81 @@ EOF ################################################################################ gemstone::test_project() { local status=0 - local failing_clients=() - - run_script ${GS_HOME}/bin/startTopaz "${STONE_NAME}" -l -T ${GSCI_TOC:-100000} << EOF || status=$? - iferr 1 stk - iferr 2 stack - iferr 3 exit 1 - login - run - (Smalltalk at: #SmalltalkCI) test: '${config_ston}' named: '${config_smalltalk} Server (${STONE_NAME})'. -% - logout - exit 0 -EOF + fold_start run_tests "Running project tests..." + pushd $STONE_DIRECTORY + if [ "$GEMSTONE"x = "x" ] ; then + export GEMSTONE="`pwd`/product" + fi + export PATH=$GEMSTONE/bin:$PATH + testSmalltalkCIProject.stone --buildDirectory=$SMALLTALK_CI_BUILD --config_ston=${config_ston} --named='${config_smalltalk} Server (${STONE_NAME})' $GEMSTONE_DEBUG + status=$? + popd + + if [ "$STONE_STARTED" = "TRUE" ] ; then + fold_start stop_stone "Stopping stone..." + stopstone "${STONE_NAME}" DataCurator swordfish + fold_end stop_stone + fi + + fold_end run_tests if is_nonzero "${status}"; then print_error_and_exit "Error while testing server project." fi check_and_consume_build_status_file - if is_not_empty "${DEVKIT_CLIENT_NAMES:-}"; then - for client_name in "${DEVKIT_CLIENT_NAMES[@]}" - do - run_script ${GS_HOME}/bin/startClient ${client_name} -t "${client_name}" -s ${STONE_NAME} -z "${config_ston}" || status=$? - - if is_nonzero "${status}"; then - print_error_and_exit "Error while testing client project ${client_name}." - fi - # Check and consume intermediate build status and keep going - if current_build_status_signals_error; then - failing_clients+=("${client_name}") - fi - consume_build_status_file - done - fi - - # Create build status file for `finalize` step - if is_nonzero "${#failing_clients[@]}"; then - echo "Error in the following client(s): ${failing_clients[*]}." > "${build_status_file}" - else - echo "[success]" > "${BUILD_STATUS_FILE}" - fi + echo "[success]" > "${BUILD_STATUS_FILE}" +} - fold_start stop_stone "Stopping stone..." - ${GS_HOME}/bin/stopStone -b "${STONE_NAME}" - fold_end stop_stone +################################################################################ +# Handle GemStone-specific shared memory needs for Darwin on GitHub. +################################################################################ +gemstone::darwin_shared_mem_setup() { + + if is_github_build && is_sudo_enabled; then + # Update shared memory, for github/Darwin builds, since default Darwin shared memory is too small t run GemStone + case "$PLATFORM" in + Darwin-arm64 | Darwin-x86_64) + echo "============" + totalMem="`sudo sysctl hw.memsize | cut -f2 -d' '`" + totalMemMB=$(($totalMem / 1048576)) + shmmax="`sudo sysctl kern.sysv.shmmax | cut -f2 -d' '`" + shmall="`sysctl kern.sysv.shmall | cut -f2 -d' '`" + + shmmaxMB=$(($shmmax / 1048576)) + shmallMB=$(($shmall / 256)) + + # Print current values + echo " Total memory available is $totalMemMB MB" + echo " Max shared memory segment size is $shmmaxMB MB" + echo " Max shared memory allowed is $shmallMB MB" + + # Figure out the max shared memory segment size (shmmax) we want + # Use 75% of available memory but not more than 2GB + shmmaxNew=$(($totalMem * 3/4)) + [[ $shmmaxNew -gt 2147483648 ]] && shmmaxNew=2147483648 + shmmaxNewMB=$(($shmmaxNew / 1048576)) + # Figure out the max shared memory allowed (shmall) we want + # The MacOSX default is 4MB, way too small + shmallNew=$(($shmmaxNew / 4096)) + [[ $shmallNew -lt $shmall ]] && shmallNew=$shmall + shmallNewMB=$(($shmallNew / 256)) + echo "shmmaxNew=$shmmaxNew" + if [[ $shmmaxNew -gt $shmmax ]]; then + echo "[Info] Increasing max shared memory segment size to $shmmaxNewMB MB" + sudo sysctl -w kern.sysv.shmmax=$shmmaxNew + fi + echo "shmallNew=$shmallNew" + if [ $shmallNew -gt $shmall ]; then + echo "[Info] Increasing max shared memory allowed to $shmallNewMB MB" + sudo sysctl -w kern.sysv.shmall=$shmallNew + fi + echo "============" + ;; + *) + ;; + esac + fi } ################################################################################ @@ -296,30 +265,38 @@ EOF run_build() { gemstone::parse_options "$@" - # To bypass cached behavior for local build, export TRAVIS_CACHE_ENABLED - # before calling run.sh - if is_empty "${TRAVIS_CACHE_ENABLED:-}"; then - TRAVIS_CACHE_ENABLED="true" - if is_empty "${CASHER_DIR:-}"; then - if is_travis_build; then - TRAVIS_CACHE_ENABLED="false" - fi - fi - fi - export TRAVIS_CACHE_ENABLED + case "$(uname -s)" in + "Linux"|"Darwin") + ;; + *) + print_error_and_exit "GemStone is not supported on '$(uname -s)'" + ;; + esac - gemstone::prepare_gsdevkit_home + if [ ! -d "$STONES_PRODUCTS" ] ; then + mkdir $STONES_PRODUCTS + fi + if [ ! -d "$STONES_PROJECTS_HOME" ] ; then + mkdir $STONES_PROJECTS_HOME + fi + if [ "$STONE_DIRECTORY"x = "x" ] ; then + if [ ! -d "$STONES_STONES_HOME" ] ; then + mkdir $STONES_STONES_HOME + fi + fi + + gemstone::darwin_shared_mem_setup + gemstone::prepare_gemstone + gemstone::prepare_superDoit + gemstone::prepare_gsdevkit_stones gemstone::prepare_stone "${config_smalltalk}" - gemstone::prepare_optional_clients gemstone::load_project gemstone::test_project } - ################################################################################ # Handle GemStone-specific options. ################################################################################ gemstone::parse_options() { - local devkit_client_args case "$(uname -s)" in "Linux"|"Darwin") @@ -329,27 +306,26 @@ gemstone::parse_options() { ;; esac - GS_HOME="${DEFAULT_GS_HOME}" - - if is_not_empty "${GSCI_DEVKIT_BRANCH:-}"; then - DEVKIT_BRANCH="${GSCI_DEVKIT_BRANCH}" - fi + GS_ALTERNATE_PRODUCTS="" while : do case "${1:-}" in - --gs-HOME=*) - GS_HOME="${1#*=}" - shift - USE_DEFAULT_HOME="false" + --gs-DEBUG) + GEMSTONE_DEBUG=" --debug" + shift ;; - --gs-BRANCH=*) - DEVKIT_BRANCH="${1#*=}" - shift + --gs-PRODUCTS=*) + GS_ALTERNATE_PRODUCTS="${1#*=}" + shift ;; - --gs-CLIENTS=*) - devkit_client_args="${1#*=}" - shift + --gs-REPOS=*) + STONES_PROJECTS_HOME="${1#*=}" + shift + ;; + --gs-STONE_DIR=*) + STONE_DIRECTORY="${1#*=}" + shift ;; --gs-*) print_error_and_exit "Unknown GemStone-specific option: $1" @@ -363,13 +339,6 @@ gemstone::parse_options() { esac done - if is_empty "${devkit_client_args:-}" && is_not_empty "${GSCI_CLIENTS:-}"; then - devkit_client_args=${GSCI_CLIENTS} - fi - - if is_not_empty "${devkit_client_args:-}"; then - IFS=' '; read -ra DEVKIT_CLIENTS <<< "${devkit_client_args}" - fi - - export GS_HOME + export GS_ALTERNATE_PRODUCTS } + diff --git a/helpers.sh b/helpers.sh index 66d0a02f..fcf90aa4 100644 --- a/helpers.sh +++ b/helpers.sh @@ -78,28 +78,24 @@ print_help() { --vm Custom VM for build (Squeak/Pharo). GEMSTONE OPTIONS: - --gs-BRANCH= - Name of GsDevKit_home branch, SHA, or tag. Default is 'master'. - - Environment variable GSCI_DEVKIT_BRANCH may be used to - specify . Command line option overrides - value of environment variable. - - --gs-HOME= - Path to an existing GsDevKit_home clone to be used - instead of creating a fresh clone. - - --gs-DEVKIT_BRANCH option is ignored. - - --gs-CLIENTS="..." - List of Smalltalk client versions to use as a GemStone client. - - Environment variable GSCI_CLIENTS may also be used to - specify a list of client versions. - Command line option overrides value of environment variable. - - If a client is specified, tests are run for both the client - and server based using the project .smalltalk.ston file. + --gs-DEBUG Enable remote debugging of GsDevKit_stones .solo scripts + via topaz DEBUGGEM command. + + --gs-PRODUCTS= + Specify directory containing GemStone product downloads + to be used instead of downloading products from + https://ftp.gemtalksystems.com for each run. + + --gs-REPOS= + Specify directory containing existing server projects to be + used instead of cloning projects from GitHub for each run. + + --gs-STONE_DIR= + Specify directory of an existing stone. A symbolic link named + product is expected to exist in the + and point to the GEMSTONE product tree for the stone. The name + stone is expected to be managed independently of the run.sh + script. EXAMPLE: $(basename -- $0) -s "Squeak64-trunk" --headfull /path/to/project/.smalltalk.ston diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/README.md b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath..st b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath..st new file mode 100644 index 00000000..93b4f438 --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath..st @@ -0,0 +1,3 @@ +accessing +filePath: aPath + filePath := aPath \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath.st b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath.st new file mode 100644 index 00000000..72b3f1e8 --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath.st @@ -0,0 +1,3 @@ +accessing +filePath + ^ filePath \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/newLine.st b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/newLine.st new file mode 100644 index 00000000..5cc933aa --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/newLine.st @@ -0,0 +1,3 @@ +helpers +newLine + stream lf \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/methodProperties.json b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/methodProperties.json new file mode 100644 index 00000000..21d2d18c --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/methodProperties.json @@ -0,0 +1,7 @@ +{ + "class" : { + }, + "instance" : { + "filePath" : "dkh 03/24/2023 11:00", + "filePath:" : "dkh 03/24/2023 11:00", + "newLine" : "dkh 03/24/2023 10:54" } } diff --git a/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/properties.json b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/properties.json new file mode 100644 index 00000000..63006827 --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "SmalltalkCI-GemStone-Core", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "filePath" ], + "name" : "SCIGemStoneTestReporterFile", + "pools" : [ + ], + "super" : "SCITestReporterStdout", + "type" : "normal" } diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/class/stdout.st b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/class/stdout.st index f26c86bc..688a506a 100644 --- a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/class/stdout.st +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/class/stdout.st @@ -1,3 +1,3 @@ compatibility stdout - ^ (Smalltalk at: #GsFile) stdoutServer \ No newline at end of file + ^ (Smalltalk at: #'GsFile') stdout \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath..st b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath..st new file mode 100644 index 00000000..3889d561 --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath..st @@ -0,0 +1,3 @@ +accessing +reportFilePath: filePath + reportFilePath := filePath \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath.st b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath.st new file mode 100644 index 00000000..ad43be3e --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath.st @@ -0,0 +1,3 @@ +accessing +reportFilePath + ^ reportFilePath \ No newline at end of file diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportResults..st b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportResults..st index 1519509e..d1cc6d4a 100644 --- a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportResults..st +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportResults..st @@ -1,5 +1,21 @@ executing reportResults: aTestRunner - SCIGemStoneTestReporterStdout report: aTestRunner spec: self spec. - produceXMLLog ifTrue: [ - SCIGemStoneTestReporterXML report: aTestRunner spec: self spec xmlLogDirPath: xmlLogDirPath ] \ No newline at end of file + self reportFilePath + ifNil: [ SCIGemStoneTestReporterStdout report: aTestRunner spec: self spec ] + ifNotNil: [ :filePath | + | stream | + stream := GsFile openWriteOnServer: filePath. + GsFile stdout nextPutAll: '===== opened file ' , filePath printString. + stream + nextPutAll: '--- opened file'; + flush. + SCIGemStoneTestReporterFile report: aTestRunner spec: self spec on: stream. + stream + flush; + close ]. + produceXMLLog + ifTrue: [ + SCIGemStoneTestReporterXML + report: aTestRunner + spec: self spec + xmlLogDirPath: xmlLogDirPath ] diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/methodProperties.json b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/methodProperties.json index 01c88aa5..9d2905c5 100644 --- a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/methodProperties.json +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/methodProperties.json @@ -28,7 +28,7 @@ "quitImage" : "fn 10/11/2016 18:44", "readOnlyFileNamed:do:" : "fn 11/20/2017 14:19", "saveImage" : "dkh 12/07/2016 16:20", - "stdout" : "fn 9/27/2016 20:25", + "stdout" : "dkh 03/24/2023 13:15", "stringFor:maxDecimalPlaces:" : "fn 9/28/2016 12:52", "test:xmlLogDirPath:" : "fn 11/20/2017 13:47", "testRunnerClass" : "fn 9/27/2016 15:15", @@ -39,5 +39,7 @@ "performMetacelloLoad:" : "dkh 04/11/2016 09:56", "produceXMLLog:" : "fn 10/4/2016 13:59", "readSTONSpec:" : "fn 11/20/2017 13:49", - "reportResults:" : "fn 11/21/2017 12:16", + "reportFilePath" : "dkh 03/24/2023 11:03", + "reportFilePath:" : "dkh 03/24/2023 11:03", + "reportResults:" : "dkh 03/24/2023 13:45", "xmlLogDirPath:" : "fn 10/4/2016 13:26" } } diff --git a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/properties.json b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/properties.json index 8b082137..3e07f787 100644 --- a/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/properties.json +++ b/repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/properties.json @@ -7,7 +7,8 @@ "commentStamp" : "", "instvars" : [ "produceXMLLog", - "xmlLogDirPath" ], + "xmlLogDirPath", + "reportFilePath" ], "name" : "SmalltalkCIGemstone", "pools" : [ ], diff --git a/repository/SmalltalkCI-GemStone-Core.package/monticello.meta/version b/repository/SmalltalkCI-GemStone-Core.package/monticello.meta/version index 9f016475..a53c6235 100644 --- a/repository/SmalltalkCI-GemStone-Core.package/monticello.meta/version +++ b/repository/SmalltalkCI-GemStone-Core.package/monticello.meta/version @@ -1 +1 @@ -(name 'SmalltalkCI-GemStone-Core-fn.74' message 'Override repositorySchemeIn: in SCIGemStoneMetacelloLoadSpec' id '3a20cb1b-7578-4a0d-9d45-97229d928041' date '12 January 2021' time '2:31:05.38607 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.73' message 'Remove nonImplementedSelectorsSmalltalkCI' id 'c744d159-05ea-4cb0-a8f1-c6baf81d17d5' date '30 November 2017' time '1:54:55.132 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.72' message 'Ignore run:spec:in: in SentButNotImplementedTest' id '05d97507-d279-4ab2-b043-0ce0f8d073d3' date '22 November 2017' time '7:02:36.895 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.71' message 'Use forceNewFileNamed:do: in favor of forceNewFileNamed: and update reporter subclasses.' id 'a71feebc-4a1a-4d0b-bfac-b82921ae5995' date '21 November 2017' time '12:33:16.54 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.70' message 'Improve SmalltalkCISpec loading.' id '5720ff38-12b3-40f0-8845-bbc6ee202fd1' date '20 November 2017' time '2:23:17.35 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.69' message 'Restore side effect on which GsDevKit_home still depends on.' id 'cd3af1bd-9322-4611-9475-2480037fd736' date '10 November 2017' time '7:14:48.236 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.68' message 'Adjust for #failOnDeprecationWarnings option' id 'a7b5d027-90a5-47f9-9e58-e38b0f84390b' date '10 November 2017' time '2:57:38.16 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.67' message 'Implement SmalltalkCI class>>deprecated in a platform-specific way.' id '2a3159cd-5840-427a-830a-29ced9c8fbc4' date '7 November 2017' time '4:12:48.305 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.66' message 'Make project directory globally available (e.g. for custom scripts).' id '0e67d951-5b96-47c8-ab4a-0d6726c3bfaa' date '4 November 2017' time '8:45:53.387 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.65' message 'Implement missing file operation helpers.' id '6c4faa87-cdd6-487b-a073-97c17a46f927' date '1 November 2017' time '3:36:09.006 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.64' message 'Add support for pre/post loading/testing scripts (#259).' id '715dea09-f734-4791-a0fa-eb8b26906085' date '1 November 2017' time '2:54:49.053 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-MaxLeske.63' message '* added platform specific subclasses of SCIMetacelloLoadSpec' id 'b08d2a34-7210-0d00-a065-42460b1cb8d4' date '11 July 2017' time '10:23:04.759022 pm' author 'MaxLeske' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.62' message '#237 ... commit error message should be red' id '76bd80fc-292b-4728-88e7-9a0af36bca7d' date '7 December 2016' time '5:13:07 pm' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.61' message '#237 proposed fix. Handle Errors when doing commits and don''t serialize stack when running on Travis --- committed continuations not accessible to developer' id 'd0ab5a49-2468-4678-87bb-f4b48b848063' date '7 December 2016' time '4:50:38 pm' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.60' message 'Move explicitTestKeys to class side' id 'f70a63f9-bb7c-4a7c-a92a-466572c6b019' date '13 November 2016' time '10:45:25 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.59' message 'Add SmalltalkCIGemstone>>imageInfo' id 'ada6c9d1-bc18-4741-a765-163d1cef373b' date '21 October 2016' time '4:31:06 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.58' message 'Use truncateTo: instead of first: to avoid out of bounds errors.' id 'e364ce7a-cce9-4f4f-b32c-23c7b410b22a' date '16 October 2016' time '5:29 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.57' message 'Add SmalltalkCIGemstone class>>workingDirectory' id 'de900542-3c3b-4410-8e76-402713266bd0' date '16 October 2016' time '4:56:11 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.56' message 'Remove platform-specific platformClass implementation again' id '62a2e08a-23f5-4042-a08a-601b3893792b' date '14 October 2016' time '9:14:20 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.55' message 'Overwride SmalltalkCI class>>platformClass in platform-specific subclasses to avoid lookup problems.' id '31a014d2-72a7-4b84-8375-39a01d96b42b' date '14 October 2016' time '11:00:47 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.54' message 'Implement platform-specific hash:length' id '6264cfd7-df70-4f19-b21f-186d6f828e4b' date '11 October 2016' time '11:06:57 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.53' message 'Move test:projectDirectory: back to Core package' id '58f02646-f530-4dba-9198-803f111c4bab' date '11 October 2016' time '8:57:44 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.52' message 'Clean up image operations' id '64e1971f-66e4-414d-88b2-d83d882d8c14' date '11 October 2016' time '6:48:33 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.51' message 'Use SCITestRunner>>suiteName' id '5893ad09-e39b-404f-b57c-72feb46cf4a1' date '10 October 2016' time '12:51:24 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.50' message 'Add getEnv: and update public-api' id '31f2eb3d-f6fa-4692-ab2a-305efef1c573' date '9 October 2016' time '9:48:28 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.49' message 'Add load:env:projectDirectory:' id '5c6caf16-ef0d-4542-a838-bf1e9ecf7676' date '9 October 2016' time '7:26 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.48' message 'Add GemStone-specific entry points' id '22435836-4de9-42d6-95bf-73953b379002' date '9 October 2016' time '6:36:20 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.47' message 'Add codeCoverageClass again' id 'f8f06ba3-1660-4353-8cb2-01120f4b42dd' date '8 October 2016' time '6:21:12 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.46' message 'Remove codeCoverageClass (not implemented)' id '95207b0c-dd37-4daa-8cfa-2085477ec383' date '8 October 2016' time '6:08:45 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.45' message 'Add dummy codeCoverageClass' id '4838b73f-4253-4208-b43d-c7d615bb2671' date '8 October 2016' time '4:54:15 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.44' message 'Add platform-specific forceNewFileNamed:' id 'baa548fa-36d1-474e-9ee9-9323961ff546' date '4 October 2016' time '6:04:27 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.43' message 'Fixes for SentButNotImplementedTest' id '4d40f728-0913-4d67-8df5-119e967207e8' date '4 October 2016' time '5:28:30 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.42' message 'Bugfix' id '8480489d-1231-44e1-8279-16469184ca3b' date '4 October 2016' time '4:53:10 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.41' message 'Do not close image when resuming' id '551c8558-59a4-4238-b02f-b2488f908908' date '4 October 2016' time '4:43:50 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.40' message 'Clean up entry methods for GemStone' id 'ec22412f-9f07-463f-b885-4ed07d026248' date '4 October 2016' time '2:52:53 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.39' message 'Make xml log optional again' id '0e63864c-113f-48e1-be73-c8ea519c4035' date '4 October 2016' time '2:05:04 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.38' message 'Restore and use xmlFilePath' id 'd481b139-af75-4a3d-a52a-12563752b5eb' date '4 October 2016' time '1:47:38 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.37' message 'Restore GemStone-specific executing methods' id '4bd15dc3-ebe2-407f-9a47-7c2bb2352726' date '4 October 2016' time '1:32:26 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.36' message 'Use crlfs for Travis folds in GemStone' id 'd7eb63b9-e1c6-4a61-812e-b53ef9d8e5ce' date '29 September 2016' time '4:35:28 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.35' message 'Use crlf in stdout reporter in GemStone' id '3afba75e-6613-415f-a145-ae5f2a48217d' date '29 September 2016' time '4:27:15 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.34' message 'Utf-8 fixes for GemStone' id '0525dbc4-7010-447c-a066-24467b7b9523' date '29 September 2016' time '4:14:47 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.33' message 'Add and use SCIGemStoneTestReporterStdout' id '72fec242-a556-48ab-9446-dbe150971c06' date '28 September 2016' time '2:13:28 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.32' message 'Remove SCIGemStoneTestReport in favor of SCIGemStoneTestRunner' id 'aab6fe46-0561-430b-b05c-568b8271875c' date '28 September 2016' time '1:09:59 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.31' message 'Bugfix' id '3682e13b-ff60-4f5d-970a-52c680ac9808' date '28 September 2016' time '12:52:13 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.30' message 'Make sure the aNumber is a float' id '99c24dfd-da8e-477d-a640-57a1e1a032af' date '28 September 2016' time '12:08:09 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.29' message 'Add platform-specific stringFor:maxDecimalPlaces:' id '400babf4-3618-4392-85c2-c53b3b862b7e' date '28 September 2016' time '11:58:40 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.28' message 'stdout-related cleanup' id 'ffe915c3-a8c2-4a07-ad0c-aebd8e3ad11b' date '27 September 2016' time '8:40:55 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.27' message 'Use stdoutServer' id '4b402dd4-4719-4659-882c-73df467b2097' date '27 September 2016' time '8:25:51 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.26' message 'Add platform-specific imagePath' id '42d2dc65-b4ac-4429-a045-94ad87354912' date '27 September 2016' time '8:14:38 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.25' message 'Implement closeImageWithExitCode:' id '3e5c55c1-3c75-40c4-a6eb-b5d1afc28538' date '27 September 2016' time '4:58:13 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.24' message 'Add missing methods' id '6bf67ea4-df26-4b9b-93ae-1696f90dc3d4' date '27 September 2016' time '4:24:25 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.23' message 'Another fix' id '7dc13ac9-916c-4ece-8f41-64f39e6d9126' date '27 September 2016' time '4:03:04 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.22' message 'Another bugfix' id 'f38e358a-fea7-4200-a4c3-4a4ab04cf892' date '27 September 2016' time '3:49:35 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.21' message 'Another bugfix for GemStone' id '60f55b49-eaf9-4ed4-9938-f6b9a4e462cb' date '27 September 2016' time '3:41:59 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.20' message 'Another bugfix' id '5111c15e-02d6-4a62-81dc-db7b731e9301' date '27 September 2016' time '3:35:51 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.19' message 'Bugfixes' id 'e6577af9-62c0-4ef4-bd6e-a6c4d975f05b' date '27 September 2016' time '3:29:14 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.18' message 'Use platform-specific SCIGemStoneTestRunner' id '07146cb2-b120-4968-9d55-e5d46b92910c' date '27 September 2016' time '3:17:11 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.17' message 'Use new SCITestRunner' id '5a6eb4e8-e000-43a0-bfc9-af28807a576c' date '26 September 2016' time '9:43:44 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.16' message 'Update for Windows compatibility' id '13fb406a-2781-43f0-b8fc-6f919d7c9a82' date '24 June 2016' time '11:11:24 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.15' message 'Project support now available for all platforms' id '58c1fe20-798b-4775-a243-8d0bd725ff76' date '24 June 2016' time '7:41:21 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.14' message 'Use GsFile stdout' id '05517038-515c-484e-8ebd-acecb9748000' date '24 June 2016' time '4:00:13 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.13' message 'Add SmalltalkCIGemstone class>>stdout' id '1a0faee2-a9dc-4b56-a820-532daad33684' date '24 June 2016' time '3:08:09 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.12' message 'Remove #''*'' option (support for allTestCases has been added for all platforms).' id '7d6b6589-acd2-4f25-92ae-4da1f6fb3665' date '22 June 2016' time '1:22:45 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.11' message 'classesToTest is supposed to return all classes rather than just TestCases' id 'acf69024-cee4-4ced-b096-8138015608fb' date '22 June 2016' time '11:49:48 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.10' message 'Add GemStone-specific classesInPackage:' id '02a2db82-f0bd-437c-90fe-c6e5690fa90d' date '22 June 2016' time '9:28:20 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.9' message 'Update classFrom logic' id '29ce2ead-0ff2-42e0-b72a-9e62a072e390' date '22 June 2016' time '12:49:30 pm' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.8' message 'Clean up SCIGemStoneTestReport and extension methods #163' id '9bcb475c-dfd3-4ec6-89ac-2188ec364210' date '14 June 2016' time '10:35:57 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.7' message 'Add convenience methods to SmalltalkCIGemstone' id '1702bbae-fd8d-4386-bfe1-a021d36f7f2f' date '14 June 2016' time '7:40:38 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.6' message 'Move deprecated SmalltalkCI>>testCI to SmalltalkCI-Core package' id '621171de-708f-4fa8-b46c-357ee1b84dad' date '13 June 2016' time '6:00:37 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.5' message 'Move methods back' id 'd98989d5-a853-4aa5-aa60-a300326028fd' date '13 June 2016' time '4:57:56 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.4' message 'Move runCIFor:projectDirectory: to SmalltalkCI-GemStone-Core (it is now deprecated)' id '5f433fb4-ec6e-4655-9313-6320da9dd5ef' date '13 June 2016' time '2:52:39 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.3' message 'Re-add deprecated methods for compatibility' id '947f4ee7-5175-431a-8ef1-f7d7b7891c4e' date '13 June 2016' time '2:32:22 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.2' message 'Cleanup GemStone extensions' id 'e7020cc2-c804-41c6-b04b-fe3c2ca20c50' date '13 June 2016' time '1:58:47 am' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.1' message 'Merge GemStone-specific packages into -Core, so that it is similar organized than others' id 'de98bae3-eba2-4ae7-9a8e-bec75f8c4c67' date '13 June 2016' time '9:55:33 am' author 'fn' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'SmalltalkCI-GemStone-Core-dkh.80' message 'dalehenrich/superDoit#63: debugging ...drat' id '35d8c7a0-671b-40cf-955a-43a162830734' date '03/24/2023' time '13:46:52' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.79' message 'dalehenrich/superDoit#63: use GsFile class>>stdout' id '4ed0e58c-e2bf-49fb-94d2-a678a9333106' date '03/24/2023' time '13:16:13' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.78' message 'dalehenrich/superDoit#63: eliminate double file write ... logging' id 'b7827148-bf52-4b6d-96e6-a3802d6aadd2' date '03/24/2023' time '12:57:45' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.77' message 'dalehenrich/superDoit#63: only write report to stdout, if a report file is NOT specified' id 'a3f2b834-30cd-4cea-8c8d-7067d40d68fc' date '03/24/2023' time '12:33:33' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.76' message 'dalehenrich/superDoit#63: checkpoint ... control flow logging' id 'b3f6be0c-a39a-46d3-9518-8bcea8256059' date '03/24/2023' time '12:28:21' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.75' message 'dalehenrich/superDoit#63: add SCIGemStoneTestReporterFile for generating file-based reports' id '5cfbae05-fde1-4aad-9f3f-6be608bfd271' date '03/24/2023' time '11:07:47' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.74' message 'Override repositorySchemeIn: in SCIGemStoneMetacelloLoadSpec' id '3a20cb1b-7578-4a0d-9d45-97229d928041' date '01/12/2021' time '02:31:05' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.73' message 'Remove nonImplementedSelectorsSmalltalkCI' id 'c744d159-05ea-4cb0-a8f1-c6baf81d17d5' date '11/30/2017' time '01:54:55' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.72' message 'Ignore run:spec:in: in SentButNotImplementedTest' id '05d97507-d279-4ab2-b043-0ce0f8d073d3' date '11/22/2017' time '07:02:36' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.71' message 'Use forceNewFileNamed:do: in favor of forceNewFileNamed: and update reporter subclasses.' id 'a71feebc-4a1a-4d0b-bfac-b82921ae5995' date '11/21/2017' time '12:33:16' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.70' message 'Improve SmalltalkCISpec loading.' id '5720ff38-12b3-40f0-8845-bbc6ee202fd1' date '11/20/2017' time '02:23:17' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.69' message 'Restore side effect on which GsDevKit_home still depends on.' id 'cd3af1bd-9322-4611-9475-2480037fd736' date '11/10/2017' time '07:14:48' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.68' message 'Adjust for #failOnDeprecationWarnings option' id 'a7b5d027-90a5-47f9-9e58-e38b0f84390b' date '11/10/2017' time '02:57:38' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.67' message 'Implement SmalltalkCI class>>deprecated in a platform-specific way.' id '2a3159cd-5840-427a-830a-29ced9c8fbc4' date '11/07/2017' time '04:12:48' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.66' message 'Make project directory globally available (e.g. for custom scripts).' id '0e67d951-5b96-47c8-ab4a-0d6726c3bfaa' date '11/04/2017' time '08:45:53' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.65' message 'Implement missing file operation helpers.' id '6c4faa87-cdd6-487b-a073-97c17a46f927' date '11/01/2017' time '03:36:09' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.64' message 'Add support for pre/post loading/testing scripts (#259).' id '715dea09-f734-4791-a0fa-eb8b26906085' date '11/01/2017' time '02:54:49' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-MaxLeske.63' message '* added platform specific subclasses of SCIMetacelloLoadSpec' id 'b08d2a34-7210-0d00-a065-42460b1cb8d4' date '07/11/2017' time '10:23:04' author 'MaxLeske' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.62' message '#237 ... commit error message should be red' id '76bd80fc-292b-4728-88e7-9a0af36bca7d' date '12/07/2016' time '17:13:07' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-dkh.61' message '#237 proposed fix. Handle Errors when doing commits and don''t serialize stack when running on Travis --- committed continuations not accessible to developer' id 'd0ab5a49-2468-4678-87bb-f4b48b848063' date '12/07/2016' time '16:50:38' author 'dkh' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.60' message 'Move explicitTestKeys to class side' id 'f70a63f9-bb7c-4a7c-a92a-466572c6b019' date '11/13/2016' time '10:45:25' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.59' message 'Add SmalltalkCIGemstone>>imageInfo' id 'ada6c9d1-bc18-4741-a765-163d1cef373b' date '10/21/2016' time '04:31:06' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.58' message 'Use truncateTo: instead of first: to avoid out of bounds errors.' id 'e364ce7a-cce9-4f4f-b32c-23c7b410b22a' date '10/16/2016' time '05:29:00' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.57' message 'Add SmalltalkCIGemstone class>>workingDirectory' id 'de900542-3c3b-4410-8e76-402713266bd0' date '10/16/2016' time '04:56:11' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.56' message 'Remove platform-specific platformClass implementation again' id '62a2e08a-23f5-4042-a08a-601b3893792b' date '10/14/2016' time '09:14:20' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.55' message 'Overwride SmalltalkCI class>>platformClass in platform-specific subclasses to avoid lookup problems.' id '31a014d2-72a7-4b84-8375-39a01d96b42b' date '10/14/2016' time '11:00:47' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.54' message 'Implement platform-specific hash:length' id '6264cfd7-df70-4f19-b21f-186d6f828e4b' date '10/11/2016' time '11:06:57' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.53' message 'Move test:projectDirectory: back to Core package' id '58f02646-f530-4dba-9198-803f111c4bab' date '10/11/2016' time '08:57:44' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.52' message 'Clean up image operations' id '64e1971f-66e4-414d-88b2-d83d882d8c14' date '10/11/2016' time '06:48:33' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.51' message 'Use SCITestRunner>>suiteName' id '5893ad09-e39b-404f-b57c-72feb46cf4a1' date '10/10/2016' time '12:51:24' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.50' message 'Add getEnv: and update public-api' id '31f2eb3d-f6fa-4692-ab2a-305efef1c573' date '10/09/2016' time '09:48:28' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.49' message 'Add load:env:projectDirectory:' id '5c6caf16-ef0d-4542-a838-bf1e9ecf7676' date '10/09/2016' time '07:26:00' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.48' message 'Add GemStone-specific entry points' id '22435836-4de9-42d6-95bf-73953b379002' date '10/09/2016' time '06:36:20' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.47' message 'Add codeCoverageClass again' id 'f8f06ba3-1660-4353-8cb2-01120f4b42dd' date '10/08/2016' time '06:21:12' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.46' message 'Remove codeCoverageClass (not implemented)' id '95207b0c-dd37-4daa-8cfa-2085477ec383' date '10/08/2016' time '06:08:45' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.45' message 'Add dummy codeCoverageClass' id '4838b73f-4253-4208-b43d-c7d615bb2671' date '10/08/2016' time '04:54:15' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.44' message 'Add platform-specific forceNewFileNamed:' id 'baa548fa-36d1-474e-9ee9-9323961ff546' date '10/04/2016' time '06:04:27' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.43' message 'Fixes for SentButNotImplementedTest' id '4d40f728-0913-4d67-8df5-119e967207e8' date '10/04/2016' time '05:28:30' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.42' message 'Bugfix' id '8480489d-1231-44e1-8279-16469184ca3b' date '10/04/2016' time '04:53:10' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.41' message 'Do not close image when resuming' id '551c8558-59a4-4238-b02f-b2488f908908' date '10/04/2016' time '04:43:50' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.40' message 'Clean up entry methods for GemStone' id 'ec22412f-9f07-463f-b885-4ed07d026248' date '10/04/2016' time '02:52:53' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.39' message 'Make xml log optional again' id '0e63864c-113f-48e1-be73-c8ea519c4035' date '10/04/2016' time '02:05:04' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.38' message 'Restore and use xmlFilePath' id 'd481b139-af75-4a3d-a52a-12563752b5eb' date '10/04/2016' time '01:47:38' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.37' message 'Restore GemStone-specific executing methods' id '4bd15dc3-ebe2-407f-9a47-7c2bb2352726' date '10/04/2016' time '01:32:26' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.36' message 'Use crlfs for Travis folds in GemStone' id 'd7eb63b9-e1c6-4a61-812e-b53ef9d8e5ce' date '09/29/2016' time '04:35:28' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.35' message 'Use crlf in stdout reporter in GemStone' id '3afba75e-6613-415f-a145-ae5f2a48217d' date '09/29/2016' time '04:27:15' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.34' message 'Utf-8 fixes for GemStone' id '0525dbc4-7010-447c-a066-24467b7b9523' date '09/29/2016' time '04:14:47' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.33' message 'Add and use SCIGemStoneTestReporterStdout' id '72fec242-a556-48ab-9446-dbe150971c06' date '09/28/2016' time '02:13:28' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.32' message 'Remove SCIGemStoneTestReport in favor of SCIGemStoneTestRunner' id 'aab6fe46-0561-430b-b05c-568b8271875c' date '09/28/2016' time '01:09:59' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.31' message 'Bugfix' id '3682e13b-ff60-4f5d-970a-52c680ac9808' date '09/28/2016' time '12:52:13' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.30' message 'Make sure the aNumber is a float' id '99c24dfd-da8e-477d-a640-57a1e1a032af' date '09/28/2016' time '12:08:09' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.29' message 'Add platform-specific stringFor:maxDecimalPlaces:' id '400babf4-3618-4392-85c2-c53b3b862b7e' date '09/28/2016' time '11:58:40' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.28' message 'stdout-related cleanup' id 'ffe915c3-a8c2-4a07-ad0c-aebd8e3ad11b' date '09/27/2016' time '08:40:55' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.27' message 'Use stdoutServer' id '4b402dd4-4719-4659-882c-73df467b2097' date '09/27/2016' time '08:25:51' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.26' message 'Add platform-specific imagePath' id '42d2dc65-b4ac-4429-a045-94ad87354912' date '09/27/2016' time '08:14:38' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.25' message 'Implement closeImageWithExitCode:' id '3e5c55c1-3c75-40c4-a6eb-b5d1afc28538' date '09/27/2016' time '04:58:13' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.24' message 'Add missing methods' id '6bf67ea4-df26-4b9b-93ae-1696f90dc3d4' date '09/27/2016' time '04:24:25' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.23' message 'Another fix' id '7dc13ac9-916c-4ece-8f41-64f39e6d9126' date '09/27/2016' time '04:03:04' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.22' message 'Another bugfix' id 'f38e358a-fea7-4200-a4c3-4a4ab04cf892' date '09/27/2016' time '03:49:35' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.21' message 'Another bugfix for GemStone' id '60f55b49-eaf9-4ed4-9938-f6b9a4e462cb' date '09/27/2016' time '03:41:59' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.20' message 'Another bugfix' id '5111c15e-02d6-4a62-81dc-db7b731e9301' date '09/27/2016' time '03:35:51' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.19' message 'Bugfixes' id 'e6577af9-62c0-4ef4-bd6e-a6c4d975f05b' date '09/27/2016' time '03:29:14' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.18' message 'Use platform-specific SCIGemStoneTestRunner' id '07146cb2-b120-4968-9d55-e5d46b92910c' date '09/27/2016' time '03:17:11' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.17' message 'Use new SCITestRunner' id '5a6eb4e8-e000-43a0-bfc9-af28807a576c' date '09/26/2016' time '09:43:44' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.16' message 'Update for Windows compatibility' id '13fb406a-2781-43f0-b8fc-6f919d7c9a82' date '06/24/2016' time '11:11:24' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.15' message 'Project support now available for all platforms' id '58c1fe20-798b-4775-a243-8d0bd725ff76' date '06/24/2016' time '07:41:21' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.14' message 'Use GsFile stdout' id '05517038-515c-484e-8ebd-acecb9748000' date '06/24/2016' time '04:00:13' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.13' message 'Add SmalltalkCIGemstone class>>stdout' id '1a0faee2-a9dc-4b56-a820-532daad33684' date '06/24/2016' time '03:08:09' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.12' message 'Remove #''*'' option (support for allTestCases has been added for all platforms).' id '7d6b6589-acd2-4f25-92ae-4da1f6fb3665' date '06/22/2016' time '01:22:45' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.11' message 'classesToTest is supposed to return all classes rather than just TestCases' id 'acf69024-cee4-4ced-b096-8138015608fb' date '06/22/2016' time '11:49:48' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.10' message 'Add GemStone-specific classesInPackage:' id '02a2db82-f0bd-437c-90fe-c6e5690fa90d' date '06/22/2016' time '09:28:20' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.9' message 'Update classFrom logic' id '29ce2ead-0ff2-42e0-b72a-9e62a072e390' date '06/22/2016' time '12:49:30' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.8' message 'Clean up SCIGemStoneTestReport and extension methods #163' id '9bcb475c-dfd3-4ec6-89ac-2188ec364210' date '06/14/2016' time '10:35:57' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.7' message 'Add convenience methods to SmalltalkCIGemstone' id '1702bbae-fd8d-4386-bfe1-a021d36f7f2f' date '06/14/2016' time '07:40:38' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.6' message 'Move deprecated SmalltalkCI>>testCI to SmalltalkCI-Core package' id '621171de-708f-4fa8-b46c-357ee1b84dad' date '06/13/2016' time '06:00:37' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.5' message 'Move methods back' id 'd98989d5-a853-4aa5-aa60-a300326028fd' date '06/13/2016' time '04:57:56' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.4' message 'Move runCIFor:projectDirectory: to SmalltalkCI-GemStone-Core (it is now deprecated)' id '5f433fb4-ec6e-4655-9313-6320da9dd5ef' date '06/13/2016' time '02:52:39' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.3' message 'Re-add deprecated methods for compatibility' id '947f4ee7-5175-431a-8ef1-f7d7b7891c4e' date '06/13/2016' time '02:32:22' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.2' message 'Cleanup GemStone extensions' id 'e7020cc2-c804-41c6-b04b-fe3c2ca20c50' date '06/13/2016' time '01:58:47' author 'fn' ancestors ((name 'SmalltalkCI-GemStone-Core-fn.1' message 'Merge GemStone-specific packages into -Core, so that it is similar organized than others' id 'de98bae3-eba2-4ae7-9a8e-bec75f8c4c67' date '06/13/2016' time '09:55:33' author 'fn' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/run.sh b/run.sh index 8481343a..cd0834e0 100755 --- a/run.sh +++ b/run.sh @@ -226,9 +226,7 @@ select_smalltalk() { Pharo64-stable Pharo64-alpha Pharo64-11 Pharo64-10 Pharo64-9.0 Pharo64-8.0 Pharo64-7.0 Pharo64-6.1 Pharo64-6.0 Pharo32-stable Pharo32-alpha Pharo32-9.0 Pharo32-8.0 Pharo32-7.0 Pharo32-6.0 Pharo32-5.0 Pharo32-4.0 Pharo32-3.0 - GemStone64-3.5.0 GemStone64-3.4.3 GemStone64-3.3.9 - GemStone64-3.3.2 GemStone64-3.3.0 GemStone64-3.2.12 - GemStone64-3.1.0.6 + GemStone64-3.6.5 GemStone64-3.6.0 GemStone64-3.5.8 GemStone64-3.5.3 GToolkit64-release Moose64-trunk Moose64-10 Moose64-9.0 Moose64-8.0 Moose64-7.0 Moose32-trunk Moose32-8.0 Moose32-7.0 Moose32-6.1 Moose32-6.0"