From 5642d387607b29c144aa0b1fc3c4a61bd2894c52 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Wed, 22 Feb 2023 11:25:08 +0100 Subject: [PATCH 01/25] Pharo 7 and 8 includes iceberg already and could benefit from the new option --- .../instance/preLoad.st | 0 .../SmalltalkCIPharo78.class/methodProperties.json | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) rename repository/SmalltalkCI-Pharo-Core.package/{SmalltalkCIPharo9.class => SmalltalkCIPharo78.class}/instance/preLoad.st (100%) diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/instance/preLoad.st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/instance/preLoad.st similarity index 100% rename from repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/instance/preLoad.st rename to repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/instance/preLoad.st diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/methodProperties.json index f9612da2..f811795a 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/methodProperties.json +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo78.class/methodProperties.json @@ -3,6 +3,7 @@ "forceNewFileNamed:do:" : "maxmattone 4/14/2021 17:14:21", "getEnv:" : "fn 12/22/2018 14:20", "isPlatformCompatible" : "fn 4/24/2019 22:00", - "stdout" : "GuillermoPolito 10/4/2017 17:56" }, + "stdout" : "GuillermoPolito 10/4/2017 17:56", + "preLoad" : "CyrilFerlicot 02/22/2023 11:23" }, "instance" : { } } From a84db3fce21126997392a9be2fe6cbae91c166a0 Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 11 Apr 2023 10:34:20 +0200 Subject: [PATCH 02/25] Make coverage and metrics reporting more robust by ensuring that subshells do not fail. --- helpers.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/helpers.sh b/helpers.sh index ca4edd23..6f8910d6 100644 --- a/helpers.sh +++ b/helpers.sh @@ -519,11 +519,13 @@ upload_coveralls_results() { if is_file "${coverage_results}"; then print_info "Uploading coverage results to Coveralls..." - http_status=$(curl -s -F json_file="@${coverage_results}" "${COVERALLS_API}" -o "${coveralls_response}" -w "%{http_code}") + http_status=$(curl -s -F json_file="@${coverage_results}" "${COVERALLS_API}" -o "${coveralls_response}" -w "%{http_code}" || echo $?) if [[ "${http_status}" != "200" ]]; then print_error "Failed to upload coverage results (HTTP status code #${http_status}):" fi - cat "${coveralls_response}" + if is_file "${coveralls_response}"; then + cat "${coveralls_response}" + fi fi } @@ -552,7 +554,7 @@ report_build_metrics() { project_slug="${TRAVIS_REPO_SLUG:-${APPVEYOR_REPO_NAME:-${GITHUB_REPOSITORY:-}}}" api_url="${GITHUB_API}/repos/${project_slug}" - status_code=$(curl -w %{http_code} -s -o /dev/null "${api_url}") + status_code=$(curl -w %{http_code} -s -o /dev/null "${api_url}" || echo $?) if [[ "${status_code}" != "200" ]]; then return 0 # Not a public repository fi From cd5945b072128ec415325845f26972680dd9a73b Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 11 Apr 2023 11:16:06 +0200 Subject: [PATCH 03/25] Disable GemStone build `ubuntu-18.04` is no longer available. --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dff6dced..d88d8481 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,10 +62,10 @@ jobs: smalltalk: Pharo64-10 - os: windows-2019 smalltalk: Pharo64-6.0 - include: - - os: ubuntu-18.04 - smalltalk: GemStone64-3.5.0 - timeout-minutes: 30 + # include: + # - os: ubuntu-18.04 + # smalltalk: GemStone64-3.5.0 + # timeout-minutes: 30 runs-on: ${{ matrix.os }} name: ${{ matrix.smalltalk }} on ${{ matrix.os }} steps: From f0dbb2e1df885e6afa5a9a03f6ff154d83082400 Mon Sep 17 00:00:00 2001 From: Sean DeNigris Date: Tue, 11 Apr 2023 06:41:38 -0400 Subject: [PATCH 04/25] GToolkit - Add as Supported Platform (#589) * GToolkit Platform Spike - Not Ready to Merge - first pass that downloads GT, loads a project, and runs its tests - several hardcoded values - needs cleaning * GT Support: Seemingly Reasonable First Pass - Supports latest release only * Add GToolkit to build matrix and docs * Rename to `GToolkit64-release` * Skip `testPromptToProceed` on GToolkit --------- Co-authored-by: Fabio Niephaus --- .github/workflows/main.yml | 1 + README.md | 49 ++-- gtoolkit/run.sh | 227 ++++++++++++++++++ helpers.sh | 12 + .../instance/testPromptToProceed.st | 4 + run.sh | 7 +- 6 files changed, 275 insertions(+), 25 deletions(-) create mode 100644 gtoolkit/run.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d88d8481..46f706ea 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,6 +44,7 @@ jobs: - Moose64-10 - Moose64-9.0 - Moose64-8.0 + - GToolkit64-release timeout-minutes: [ 15 ] exclude: # exclude 32bit builds on macOS - os: macos-latest diff --git a/README.md b/README.md index c348a06e..8a6d9570 100644 --- a/README.md +++ b/README.md @@ -72,30 +72,30 @@ they can take up a lot of space on your drive.* ## List of Supported Images -| [Squeak][squeak] | [Pharo][pharo] | [GemStone][gemstone] | [Moose][moose] | -| ---------------- | ---------------- | -------------------- | --------------- | -| `Squeak64-trunk` | `Pharo64-alpha` | `GemStone64-3.5.x` | `Moose64-trunk` | -| `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` | -| `Squeak32-5.3` | `Pharo64-6.1` | | `Moose32-6.0` | -| `Squeak32-5.2` | `Pharo32-6.0` | | | -| `Squeak32-5.1` | `Pharo32-alpha` | | | -| `Squeak32-5.0` | `Pharo32-stable` | | | -| `Squeak32-4.6` | `Pharo32-11` | | | -| `Squeak32-4.5` | `Pharo32-10` | | | -| | `Pharo32-9.0` | | | -| | `Pharo32-8.0` | | | -| | `Pharo32-7.0` | | | -| | `Pharo32-6.1` | | | -| | `Pharo32-6.0` | | | -| | `Pharo32-5.0` | | | -| | `Pharo32-4.0` | | | -| | `Pharo32-3.0` | | | -| | | | | +| [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` | | +| `Squeak32-5.3` | `Pharo64-6.1` | | `Moose32-6.0` | | +| `Squeak32-5.2` | `Pharo32-6.0` | | | | +| `Squeak32-5.1` | `Pharo32-alpha` | | | | +| `Squeak32-5.0` | `Pharo32-stable` | | | | +| `Squeak32-4.6` | `Pharo32-11` | | | | +| `Squeak32-4.5` | `Pharo32-10` | | | | +| | `Pharo32-9.0` | | | | +| | `Pharo32-8.0` | | | | +| | `Pharo32-7.0` | | | | +| | `Pharo32-6.1` | | | | +| | `Pharo32-6.0` | | | | +| | `Pharo32-5.0` | | | | +| | `Pharo32-4.0` | | | | +| | `Pharo32-3.0` | | | | +| | | | | | ## Templates @@ -739,6 +739,7 @@ list. Please add [`[ci skip]`][ci_skip] to your commit message.* [gitlab_ci_cd]: https://about.gitlab.com/features/gitlab-ci-cd/ [gofer]: http://www.lukas-renggli.ch/blog/gofer [gs]: https://github.com/hpi-swa/smalltalkCI/issues/28 +[gtoolkit]: https://gtoolkit.com [issues]: https://github.com/hpi-swa/smalltalkCI/issues [mc_baseline]: https://github.com/dalehenrich/metacello-work/blob/master/docs/GettingStartedWithGitHub.md#create-baseline [mc_configuration]: https://github.com/dalehenrich/metacello-work/blob/master/docs/GettingStartedWithGitHub.md#create-configuration diff --git a/gtoolkit/run.sh b/gtoolkit/run.sh new file mode 100644 index 00000000..9d5646c1 --- /dev/null +++ b/gtoolkit/run.sh @@ -0,0 +1,227 @@ +################################################################################ +# This file provides GToolkit support for smalltalkCI. It is used in the context +# of a smalltalkCI build and it is not meant to be executed by itself. +################################################################################ + +gtoolkit::latest_release_version() { + + # Get release JSON from GH API (via https://fabianlee.org/2021/02/16/bash-determining-latest-github-release-tag-and-version/) + local url=https://api.github.com/repos/feenkcom/gtoolkit/releases/latest + local json=$(curl -sL $url) + + # Find the tag name line in the JSON + local versionLine=$(echo "$json" | grep tag_name) + + # Scrape the value (adapted from https://stackoverflow.com/a/19394523) + local version=$(echo "$versionLine" | awk -F ': ' '/tag_name/ {gsub("\",?","");print $2}') + + echo "$version" +} + +gtoolkit::architecture() { + local gt_architecture + + case "$(hardware_platform)" in + "arm64") + gt_architecture="aarch64" + ;; + "x86_64") + gt_architecture="x86_64" + ;; + esac + + echo "$gt_architecture" +} + +gtoolkit::archive_basename() { + local gt_architecture=$(gtoolkit::architecture) + local gt_platform + local gt_release=$(gtoolkit::latest_release_version) + + if is_linux_build; then + gt_platform="Linux" + elif is_windows_build; then + if [[ "$gt_architecture" == "aarch64" ]]; then + print_error_and_exit "unsupported build platform '$(uname -s)'." + fi + gt_platform="Windows" + elif is_mac_build; then + gt_platform="MacOS" + else + print_error_and_exit "unsupported build platform '$(uname -s)'." + fi + + echo "GlamorousToolkit-${gt_platform}-${gt_architecture}-${gt_release}" +} + +gtoolkit::archive_url() { + local gt_release=$(gtoolkit::latest_release_version) + local url_base="https://github.com/feenkcom/gtoolkit/releases/download" + + echo "${url_base}/${gt_release}/$(gtoolkit::archive_basename).zip" +} + +gtoolkit::vm_path() { + local result + + if is_linux_build; then + result="bin/GlamorousToolkit-cli" + elif is_windows_build; then + result="bin/GlamorousToolkit-cli.exe" + elif is_mac_build; then + result="GlamorousToolkit.app/Contents/MacOS/GlamorousToolkit-cli" + else + print_error_and_exit "unsupported build platform '$(uname -s)'." + fi + + echo "${result}" +} + +################################################################################ +# Download and move vm if necessary. +# Globals: +# SMALLTALK_CI_VM +################################################################################ + +gtoolkit::prepare_vm() { + local vm_path="$(gtoolkit::vm_path)" + + # Skip in case vm is already set up + if is_file "${SMALLTALK_CI_VM}"; then + return 0 + fi + + export SMALLTALK_CI_VM="${SMALLTALK_CI_BUILD}/${vm_path}" + + chmod +x "${SMALLTALK_CI_VM}" + + if ! is_file "${SMALLTALK_CI_VM}"; then + print_error_and_exit "Unable to set vm up at '${SMALLTALK_CI_VM}'." + fi +} + +################################################################################ +# Download GT (image and VM) if necessary and copy it to build folder. +# Globals: +# SMALLTALK_CI_BUILD +# SMALLTALK_CI_CACHE +# Arguments: +# smalltalk_name +################################################################################ + +gtoolkit::prepare_gt() { + local smalltalk_name=$1 #Ignore currently because we are only supporting `release` + local gtoolkit_image_url="$(gtoolkit::archive_url)" + local download_name="$(gtoolkit::archive_basename)" + local target="${SMALLTALK_CI_CACHE}/${download_name}.zip" + + if ! is_file "${target}"; then + fold_start download_image "Downloading ${smalltalk_name} image..." + download_file "${gtoolkit_image_url}" "${target}" + fold_end download_image + fi + + print_info "Extracting GT..." + extract_file "${target}" "${SMALLTALK_CI_BUILD}" + echo "${download_name}" > "${SMALLTALK_CI_BUILD}"/version + + print_info "Preparing GToolkit image..." + if ! is_file "${SMALLTALK_CI_IMAGE}"; then + mv "${SMALLTALK_CI_BUILD}"/*.image "${SMALLTALK_CI_IMAGE}" + mv "${SMALLTALK_CI_BUILD}"/*.changes "${SMALLTALK_CI_CHANGES}" + fi + + if ! vm_is_user_provided; then + gtoolkit::prepare_vm + fi + + if ! is_file "${SMALLTALK_CI_IMAGE}"; then + print_error_and_exit "Failed to prepare image at '${SMALLTALK_CI_IMAGE}'." + fi +} + + +################################################################################ +# Run a Smalltalk script. +# NB. copy/pasted from Pharo +################################################################################ +gtoolkit::run_script() { + local script=$1 + local vm_flags="" + local resolved_vm="${config_vm:-${SMALLTALK_CI_VM}}" + local resolved_image="$(resolve_path "${config_image:-${SMALLTALK_CI_IMAGE}}")" + + if ! is_travis_build && ! is_headless; then + vm_flags="--no-quit" + fi + + run_script "${resolved_vm}" "${resolved_image}" eval ${vm_flags} "${script}" +} + +################################################################################ +# Load project into GToolkit image. +# NB. copy/pasted from Pharo +################################################################################ +gtoolkit::load_project() { + gtoolkit::run_script " + | smalltalkCI | + $(conditional_debug_halt) + [ | metacello | + metacello := Metacello new + baseline: 'SmalltalkCI'; + repository: 'filetree://$(resolve_path "${SMALLTALK_CI_HOME}/repository")'; + onUpgrade: [ :ex | ex useIncoming ]. + (Metacello canUnderstand: #onConflictUseIncoming) + ifTrue: [ metacello onConflictUseIncoming ] + ifFalse: [ metacello onConflict: [ :ex | ex useIncoming ] ]. + metacello load ] + on: Warning + do: [ :w | w resume ]. + smalltalkCI := Smalltalk at: #SmalltalkCI. + smalltalkCI load: '$(resolve_path "${config_ston}")'. + (smalltalkCI isHeadless or: [ smalltalkCI promptToProceed ]) + ifTrue: [ smalltalkCI saveAndQuitImage ] + " +} + +################################################################################ +# Run tests for project. +# NB. copy/pasted from Pharo +################################################################################ +gtoolkit::test_project() { + gtoolkit::run_script " + | smalltalkCI | + $(conditional_debug_halt) + smalltalkCI := Smalltalk + at: #SmalltalkCI + ifAbsent: [ + [ | metacello | + metacello := Metacello new + baseline: 'SmalltalkCI'; + repository: 'filetree://$(resolve_path "${SMALLTALK_CI_HOME}/repository")'; + onUpgrade: [ :ex | ex useIncoming ]. + (Metacello canUnderstand: #onConflictUseIncoming) + ifTrue: [ metacello onConflictUseIncoming ] + ifFalse: [ metacello onConflict: [ :ex | ex useIncoming ] ]. + metacello load ] + on: Warning + do: [ :w | w resume ]. + Smalltalk at: #SmalltalkCI ]. + smalltalkCI test: '$(resolve_path "${config_ston}")' + " +} + +################################################################################ +# Main entry point for GToolkit builds. +################################################################################ +run_build() { + if ! image_is_user_provided; then + gtoolkit::prepare_gt "${config_smalltalk}" + fi + + if ston_includes_loading; then + gtoolkit::load_project + check_and_consume_build_status_file + fi + gtoolkit::test_project +} diff --git a/helpers.sh b/helpers.sh index 6f8910d6..ead68a64 100644 --- a/helpers.sh +++ b/helpers.sh @@ -193,6 +193,18 @@ is_msys2_build() { [[ $(uname -s) = "MSYS_NT-"* ]] } +is_mac_build() { + [[ $(uname -s) = "Darwin" ]] +} + +is_windows_build() { + is_cygwin_build ] || is_mingw64_build || is_msys2_build +} + +hardware_platform() { + echo "$(uname -m)" +} + is_sudo_enabled() { $(sudo -n true > /dev/null 2>&1) } diff --git a/repository/SmalltalkCI-Pharo-Tests.package/SmalltalkCIPharoTest.class/instance/testPromptToProceed.st b/repository/SmalltalkCI-Pharo-Tests.package/SmalltalkCIPharoTest.class/instance/testPromptToProceed.st index 705205f5..4880bbcc 100644 --- a/repository/SmalltalkCI-Pharo-Tests.package/SmalltalkCIPharoTest.class/instance/testPromptToProceed.st +++ b/repository/SmalltalkCI-Pharo-Tests.package/SmalltalkCIPharoTest.class/instance/testPromptToProceed.st @@ -5,6 +5,10 @@ testPromptToProceed requests like confirm: . As promptToProceed only really makes sense in an interactive context, always test with the MorphicUIManager" |oldUIManager| + + "Skip this test on GToolkit" + (Smalltalk hasClassNamed: 'GtImageSetup') ifTrue: [ ^ self ]. + oldUIManager := UIManager default. UIManager default: MorphicUIManager new. diff --git a/run.sh b/run.sh index 3e1eef2f..8481343a 100755 --- a/run.sh +++ b/run.sh @@ -229,6 +229,7 @@ select_smalltalk() { 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 + 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" @@ -247,7 +248,7 @@ select_smalltalk() { set -o posix # fixes SIGINT during select select selection in $images; do case "${selection}" in - Squeak*|Pharo*|GemStone*|Moose*) + Squeak*|Pharo*|GemStone*|GToolkit*|Moose*) config_smalltalk="${selection}" break ;; @@ -501,6 +502,10 @@ run() { print_info "Starting GemStone build..." source "${SMALLTALK_CI_HOME}/gemstone/run.sh" ;; + GToolkit*) + print_info "Starting GToolkit build..." + source "${SMALLTALK_CI_HOME}/gtoolkit/run.sh" + ;; *) print_error_and_exit "Unknown Smalltalk image '${config_smalltalk}'." ;; From d0a91794bf613adc6fc02bd7eda59b16741ba170 Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 11 Apr 2023 17:30:42 +0200 Subject: [PATCH 05/25] Reduce number of API requests for GToolkit --- gtoolkit/run.sh | 59 +++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/gtoolkit/run.sh b/gtoolkit/run.sh index 9d5646c1..76eaebdb 100644 --- a/gtoolkit/run.sh +++ b/gtoolkit/run.sh @@ -3,20 +3,8 @@ # of a smalltalkCI build and it is not meant to be executed by itself. ################################################################################ -gtoolkit::latest_release_version() { - - # Get release JSON from GH API (via https://fabianlee.org/2021/02/16/bash-determining-latest-github-release-tag-and-version/) - local url=https://api.github.com/repos/feenkcom/gtoolkit/releases/latest - local json=$(curl -sL $url) - - # Find the tag name line in the JSON - local versionLine=$(echo "$json" | grep tag_name) - - # Scrape the value (adapted from https://stackoverflow.com/a/19394523) - local version=$(echo "$versionLine" | awk -F ': ' '/tag_name/ {gsub("\",?","");print $2}') - - echo "$version" -} +readonly GTOOLKIT_API_LATEST="https://api.github.com/repos/feenkcom/gtoolkit/releases/latest" +readonly GTOOLKIT_BASE_DL="https://github.com/feenkcom/gtoolkit/releases/download" gtoolkit::architecture() { local gt_architecture @@ -33,15 +21,25 @@ gtoolkit::architecture() { echo "$gt_architecture" } -gtoolkit::archive_basename() { - local gt_architecture=$(gtoolkit::architecture) +gtoolkit::archive_url() { + local filename + local gt_architecture local gt_platform - local gt_release=$(gtoolkit::latest_release_version) + local gt_release + local response + + gt_architecture=$(gtoolkit::architecture) + + response=$(curl -sL "${GTOOLKIT_API_LATEST}" || echo "Error: $?") + gt_release=$(echo "${response}" | grep -o '"tag_name": "[^"]*' | grep -o '[^"]*$') + if is_empty "${gt_release}"; then + print_error_and_exit "Unable to determine latest version of GToolkit:\n${response}" + fi if is_linux_build; then gt_platform="Linux" elif is_windows_build; then - if [[ "$gt_architecture" == "aarch64" ]]; then + if [[ "${gt_architecture}" == "aarch64" ]]; then print_error_and_exit "unsupported build platform '$(uname -s)'." fi gt_platform="Windows" @@ -51,14 +49,8 @@ gtoolkit::archive_basename() { print_error_and_exit "unsupported build platform '$(uname -s)'." fi - echo "GlamorousToolkit-${gt_platform}-${gt_architecture}-${gt_release}" -} - -gtoolkit::archive_url() { - local gt_release=$(gtoolkit::latest_release_version) - local url_base="https://github.com/feenkcom/gtoolkit/releases/download" - - echo "${url_base}/${gt_release}/$(gtoolkit::archive_basename).zip" + filename="GlamorousToolkit-${gt_platform}-${gt_architecture}-${gt_release}.zip" + echo "${GTOOLKIT_BASE_DL}/${gt_release}/${filename}" } gtoolkit::vm_path() { @@ -84,7 +76,8 @@ gtoolkit::vm_path() { ################################################################################ gtoolkit::prepare_vm() { - local vm_path="$(gtoolkit::vm_path)" + local vm_path + vm_path="$(gtoolkit::vm_path)" # Skip in case vm is already set up if is_file "${SMALLTALK_CI_VM}"; then @@ -111,9 +104,12 @@ gtoolkit::prepare_vm() { gtoolkit::prepare_gt() { local smalltalk_name=$1 #Ignore currently because we are only supporting `release` - local gtoolkit_image_url="$(gtoolkit::archive_url)" - local download_name="$(gtoolkit::archive_basename)" - local target="${SMALLTALK_CI_CACHE}/${download_name}.zip" + local gtoolkit_image_url + local download_name + local target + gtoolkit_image_url="$(gtoolkit::archive_url)" + download_name="$(basename "${gtoolkit_image_url}")" + target="${SMALLTALK_CI_CACHE}/${download_name}" if ! is_file "${target}"; then fold_start download_image "Downloading ${smalltalk_name} image..." @@ -149,7 +145,8 @@ gtoolkit::run_script() { local script=$1 local vm_flags="" local resolved_vm="${config_vm:-${SMALLTALK_CI_VM}}" - local resolved_image="$(resolve_path "${config_image:-${SMALLTALK_CI_IMAGE}}")" + local resolved_image + resolved_image="$(resolve_path "${config_image:-${SMALLTALK_CI_IMAGE}}")" if ! is_travis_build && ! is_headless; then vm_flags="--no-quit" From a370792dd18fbc1f873079fda011f5dccd9dd2ca Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 11 Apr 2023 18:42:42 +0200 Subject: [PATCH 06/25] Always print errors to stderr --- helpers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers.sh b/helpers.sh index ead68a64..66d0a02f 100644 --- a/helpers.sh +++ b/helpers.sh @@ -47,7 +47,7 @@ print_error() { if is_colorful; then printf "${ANSI_BOLD}${ANSI_RED}%s${ANSI_RESET}\n" "$1" 1>&2 else - echo "$1" + echo "$1" 1>&2 fi } From 060ffb90305f512dbd5c168088bb39a9ae01b13b Mon Sep 17 00:00:00 2001 From: Dale Henrichs Date: Thu, 13 Apr 2023 23:35:27 -0700 Subject: [PATCH 07/25] update GemStone builds to run on Ubuntu 20.04 and macos-latest (#593) * dalehenrich/superDoit#63: checkpoint ... begin converting gemstone/run/sh to use superDoit and GsDevKit_stones * dalehenrich/superDoit#63: checkpoint ...superDoit and GsDevKit_stones installed ... create smalltalk CI stone is next up along with clone default projects * dalehenrich/superDoit#63: checkpoint ... stone directory created ... a bit of cleanup and start stone is next up * dalehenrich/superDoit#63: checkpoint ... superDoit and GsDevKit_stones should be in the repos dir * dalehenrich/superDoit#63: can't use ssh urls for git repositories on github without magic ssh keys * dalehenrich/superDoit#63: add superDoit/examples/utility to PATH, so versionReport.solo will run * dalehenrich/superDoit#63: run test for 3.5.0 on 20.04 * dalehenrich/superDoit#63: run test for 3.6.5 only on 20.04 * dalehenrich/superDoit#63: successfully starting stone running run.sh locally * dalehenrich/superDoit#63: without GsDevKit_home, need to setup system for running GemStone * dalehenrich/superDoit#63: tweak gemstone/run.sh ... pare down the lineup (cross fingers) * dalehenrich/superDoit#63 pare down lineup even further * dalehenrich/superDoit#63: eliminate duplication * dalehenrich/superDoit#63: force build * dalehenrich/superDoit#63: force build .. be more devious * dalehenrich/superDoit#63: looks like macos-11 is the latest version for GemStone * dalehenrich/superDoit#63: just run macos-11 * dalehenrich/superDoit#63: remove the --debugGem from run.sh * dalehenrich/superDoit#63: back to running with ubuntu 20.04 and latest mac * dalehenrich/superDoit#63: a little bit of logging ... is realpath really needed? * dalehenrich/superDoit#63: need to fabricate a local variable with the name of the product that is corrected for the current PLATFORM * dalehenrich/superDoit#63: isolate the mac * dalehenrich/superDoit#63: macos-latest and ubuntu-20.04 fail at the same spot ... on equal footing now * dalehenrich/superDoit#63: add use new registerProductDirectory.solo and downloadGemStone.solo scripts * dalehenrich/superDoit#63: fix shell syntax error * dalehenrich/superDoit#63: macos-latest test * dalehenrich/superDoit#63: macos-11 test ... where I tested things * dalehenrich/superDoit#63: create devkit project set ... prep for cloning projects and project load [ci skip] * dalehenrich/superDoit#63: now cloning devkit projects [ci skip] * dalehenrich/superDoit#63: use loadTode.stone script to (successfully load tODE into stone) ... next up run the tests ... * dalehenrich/superDoit#63: implement gemstone::load_project and gemstone::test_project run.sh functions; SmalltalkCI project loaded and tests run ... sent but not implemented test failures from superDoit * dalehenrich/superDoit#63: remove some debugging; shut down stone; expect to see 'Executed 53 Tests with 1 Failures and 0 Errors in 0.85s.' * dalehenrich/superDoit#63: add --gs-DEBUG option for interactive debugging of .solo/.stone scripts ... all tests passing on 20.04 and 3.6.5 * dalehenrich/superDoit#63: run test on macos runners * smalltalkCI tests pass interactively on OX X 10.15.6 * dalehenrich/superDoit#63: host name and shared memory logging * dalehenrich/superDoit#63: shared memory fiddling * dalehenrich/superDoit#63: shared memory fiddling * dalehenrich/superDoit#63: shared memory fiddling * dalehenrich/superDoit#63: shared memory fiddling * dalehenrich/superDoit#63: bash fiddling * dalehenrich/superDoit#63: bash fiddling * dalehenrich/superDoit#63: bash fiddling * dalehenrich/superDoit#63: bash fiddling * dalehenrich/superDoit#63: bash fiddling * dalehenrich/superDoit#63: ubuntu-20.04 and macos-10.15, now passing ... check status of macos-12 and macos-11 * dalehenrich/superDoit#63: GemStone64-3.6.5 and GemStone64-3.5.8 don't run on windows and we'll see about GemStone64-3.5.8 on macos-latest * pare back the lineup to gemstone only * dalehenrich/superDoit#63: pare back the lineup to gemstone ranges that run on 20.04 and macos * dalehenrich/superDoit#63: now use dalehenrich-setup-smalltalkCI, so I can test independent repos * dalehenrich/superDoit#63: pare back lineup for testing * dalehenrich/superDoit#63: adjust cloneProjectsFromProjectSet.solo call for changes to options * dalehenrich/superDoit#63: make a pass adjusting GsDevKit_stone .solo script arguments to make more sense and eliminate use of smalltalkCI specific environment variables in said scripts * dalehenrich/superDoit#63: update GemStone-specific options help [ci skip] * dalehenrich/superDoit#63: add SCIGemStoneTestReporterFile for generating file-based reports * dalehenrich/superDoit#63: checkpoint ... control flow logging * dalehenrich/superDoit#63: only write report to stdout, if a report file is NOT specified * dalehenrich/superDoit#63: eliminate double file write ... logging * dalehenrich/superDoit#63: use GsFile class>>stdout * dalehenrich/superDoit#63: debugging ...drat * dalehenrich/superDoit#63: remove waitForDebug call * dalehenrich/superDoit#63: add --gs-STONE_DIR option to designate an alternate stone directory to use * dalehenrich/superDoit#63: if stone not started by gemstone/run.sh, don't stop it * dalehenrich/superDoit#63: use alternate expression to determine if $GEMSTONE has been set for github actions * dalehenrich/superDoit#63: restore pharo/squeak/windows builds * address 'line 535: config_tracking: unbound variable' error that popped up * fix typo * update README and help for GemStone ... remove Moose since they seem to consistently fail * pare lineup to just GemStone jobs ... isolate this config_smalltalk: unbound variable error * issue #591: update main.yml for hpi-swa-smalltalkCI * issue #591: comment out GToolKit ... it seems to randomly fail on windows and mac before GemStone jobs can finish * issue #591: restore GToolkit64-release to lineup * Issue #591: revert the +set patch, since other changes should obviate the need for the hack * Issue #591: add GToolKit to allowed failures list * List GemStone images in descending order [ci skip] --------- Co-authored-by: Fabio Niephaus --- .github/workflows/main.yml | 22 +- README.md | 21 +- gemstone/doc.txt | 16 + gemstone/run.sh | 503 ++++++++---------- helpers.sh | 40 +- .../README.md | 0 .../instance/filePath..st | 3 + .../instance/filePath.st | 3 + .../instance/newLine.st | 3 + .../methodProperties.json | 7 + .../properties.json | 14 + .../SmalltalkCIGemstone.class/class/stdout.st | 2 +- .../instance/reportFilePath..st | 3 + .../instance/reportFilePath.st | 3 + .../instance/reportResults..st | 22 +- .../methodProperties.json | 6 +- .../SmalltalkCIGemstone.class/properties.json | 3 +- .../monticello.meta/version | 2 +- run.sh | 4 +- 19 files changed, 359 insertions(+), 318 deletions(-) create mode 100644 gemstone/doc.txt create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/README.md create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath..st create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/filePath.st create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/instance/newLine.st create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/methodProperties.json create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SCIGemStoneTestReporterFile.class/properties.json create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath..st create mode 100644 repository/SmalltalkCI-GemStone-Core.package/SmalltalkCIGemstone.class/instance/reportFilePath.st 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" From ffc555184d6033ad5f942cc899a41bcb445e7abe Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Tue, 18 Apr 2023 13:42:08 +0200 Subject: [PATCH 08/25] Enable Pharo 12 (#596) --- .github/workflows/main.yml | 1 + README.md | 24 ++++++++++--------- pharo/run.sh | 6 +++++ .../setUpPharo5AndGreaterPackages..st | 2 +- .../SmalltalkCIPharo12.class/README.md | 0 .../class/isPlatformCompatible.st | 4 ++++ .../methodProperties.json | 5 ++++ .../SmalltalkCIPharo12.class/properties.json | 14 +++++++++++ .../class/packageNameForMethod..st | 4 +++- run.sh | 4 ++-- 10 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/README.md create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/isPlatformCompatible.st create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/methodProperties.json create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/properties.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 11ceb35d..f67d3f79 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -31,6 +31,7 @@ jobs: - Squeak32-4.5 - Pharo64-stable - Pharo64-alpha + - Pharo64-12 - Pharo64-11 - Pharo64-10 - Pharo64-9.0 diff --git a/README.md b/README.md index dff71bfd..8f59cb96 100644 --- a/README.md +++ b/README.md @@ -76,17 +76,19 @@ they can take up a lot of space on your drive.* | ---------------- | ---------------- | -------------------- | --------------- | -------------------- | | `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` | | | | -| `Squeak32-5.0` | `Pharo32-stable` | | | | -| `Squeak32-4.6` | `Pharo32-11` | | | | -| `Squeak32-4.5` | `Pharo32-10` | | | | +| `Squeak64-5.3` | `Pharo64-12` | `GemStone64-3.5.7` | `Moose64-9.0` | | +| `Squeak64-5.2` | `Pharo64-11` | `GemStone64-3.5.6` | `Moose64-8.0` | | +| `Squeak64-5.1` | `Pharo64-10` | `GemStone64-3.5.5` | `Moose64-7.0` | | +| `Squeak32-trunk` | `Pharo64-9.0` | `Gemstone64-3.5.4` | `Moose32-trunk` | | +| `Squeak32-6.0` | `Pharo64-8.0` | `GemStone64-3.5.3` | `Moose32-6.1` | | +| `Squeak32-5.3` | `Pharo64-7.0` | | `Moose32-6.0` | | +| `Squeak32-5.2` | `Pharo64-6.1` | | | | +| `Squeak32-5.1` | `Pharo64-6.0` | | | | +| `Squeak32-5.0` | `Pharo32-alpha` | | | | +| `Squeak32-4.6` | `Pharo32-stable` | | | | +| `Squeak32-4.5` | `Pharo32-12` | | | | +| | `Pharo32-11` | | | | +| | `Pharo32-10` | | | | | | `Pharo32-9.0` | | | | | | `Pharo32-8.0` | | | | | | `Pharo32-7.0` | | | | diff --git a/pharo/run.sh b/pharo/run.sh index d3c9816a..1753982b 100644 --- a/pharo/run.sh +++ b/pharo/run.sh @@ -21,6 +21,9 @@ pharo::get_image_url() { "Pharo64-stable") echo "get.pharo.org/64/stable" ;; + "Pharo64-12") + echo "get.pharo.org/64/120" + ;; "Pharo64-11") echo "get.pharo.org/64/110" ;; @@ -145,6 +148,9 @@ pharo::get_vm_url() { "Pharo64-stable") echo "get.pharo.org/64/vm100" ;; + "Pharo64-12") + echo "get.pharo.org/64/vm120" + ;; "Pharo64-11") echo "get.pharo.org/64/vm110" ;; diff --git a/repository/BaselineOfSmalltalkCI.package/BaselineOfSmalltalkCI.class/instance/setUpPharo5AndGreaterPackages..st b/repository/BaselineOfSmalltalkCI.package/BaselineOfSmalltalkCI.class/instance/setUpPharo5AndGreaterPackages..st index f5d5945e..2beb2ab8 100644 --- a/repository/BaselineOfSmalltalkCI.package/BaselineOfSmalltalkCI.class/instance/setUpPharo5AndGreaterPackages..st +++ b/repository/BaselineOfSmalltalkCI.package/BaselineOfSmalltalkCI.class/instance/setUpPharo5AndGreaterPackages..st @@ -2,7 +2,7 @@ baseline setUpPharo5AndGreaterPackages: spec spec - for: #(#'pharo5.x' #'pharo6.x' #'pharo7.x' #'pharo8.x' #'pharo9.x' #'pharo10.x' #'pharo11.x') + for: #(#'pharo5.x' #'pharo6.x' #'pharo7.x' #'pharo8.x' #'pharo9.x' #'pharo10.x' #'pharo11.x' #'pharo12.x') do: [ spec package: 'SmalltalkCI-Core' with: [ spec includes: #('SmalltalkCI-Pharo-Core') ]; package: 'SmalltalkCI-Pharo-Core' with: [ spec requires: 'SmalltalkCI-Core' ]; diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/README.md b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/isPlatformCompatible.st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/isPlatformCompatible.st new file mode 100644 index 00000000..3154d1cc --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/isPlatformCompatible.st @@ -0,0 +1,4 @@ +compatibility +isPlatformCompatible + + ^ self platformNameBeginsWith: 'Pharo12' \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/methodProperties.json new file mode 100644 index 00000000..6101aa51 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + "isPlatformCompatible" : "CyrilFerlicot 4/17/2023 13:59" }, + "instance" : { + } } diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/properties.json b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/properties.json new file mode 100644 index 00000000..73f9b4a0 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "SmalltalkCI-Pharo-Core", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "SmalltalkCIPharo12", + "pools" : [ + ], + "super" : "SmalltalkCIPharo11", + "type" : "normal" } diff --git a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharoCodeCoverage.class/class/packageNameForMethod..st b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharoCodeCoverage.class/class/packageNameForMethod..st index 9b5e114e..af6c5852 100644 --- a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharoCodeCoverage.class/class/packageNameForMethod..st +++ b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharoCodeCoverage.class/class/packageNameForMethod..st @@ -1,3 +1,5 @@ compatibility packageNameForMethod: aMethodReference - ^ ((Smalltalk at: #RPackageOrganizer) default packageDefiningOrExtendingMethod: aMethodReference compiledMethod) packageName \ No newline at end of file + | aClass | + aClass := aMethodReference compiledMethod methodClass. + ^ (aClass packages detect: [:each | each includesSelector: aMethodReference compiledMethod selector ofClass: aClass ]) packageName \ No newline at end of file diff --git a/run.sh b/run.sh index cd0834e0..1c933d16 100755 --- a/run.sh +++ b/run.sh @@ -223,8 +223,8 @@ select_smalltalk() { local images="Squeak64-trunk Squeak64-6.0 Squeak64-5.3 Squeak64-5.2 Squeak64-5.1 Squeak32-trunk Squeak32-6.0 Squeak32-5.3 Squeak32-5.2 Squeak32-5.1 Squeak32-5.0 Squeak32-4.6 Squeak32-4.5 - 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 + Pharo64-stable Pharo64-alpha Pharo64-12 Pharo64-11 Pharo64-10 Pharo64-9.0 Pharo64-8.0 Pharo64-7.0 Pharo64-6.1 Pharo64-6.0 + Pharo32-stable Pharo32-alpha Pharo32-12 Pharo32-9.0 Pharo32-8.0 Pharo32-7.0 Pharo32-6.0 Pharo32-5.0 Pharo32-4.0 Pharo32-3.0 GemStone64-3.6.5 GemStone64-3.6.0 GemStone64-3.5.8 GemStone64-3.5.3 GToolkit64-release From d947c11f7169da2ebb0bec808c998e87357b6618 Mon Sep 17 00:00:00 2001 From: Jonathan van Alteren Date: Fri, 5 May 2023 16:17:53 +0200 Subject: [PATCH 09/25] Override isHeadless as mentioned in issue #561. --- .../SmalltalkCIPharo9.class/class/isHeadless.st | 3 +++ .../SmalltalkCIPharo9.class/methodProperties.json | 1 + 2 files changed, 4 insertions(+) create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/class/isHeadless.st diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/class/isHeadless.st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/class/isHeadless.st new file mode 100644 index 00000000..a6dc6011 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/class/isHeadless.st @@ -0,0 +1,3 @@ +helpers +isHeadless + ^ Smalltalk isInteractiveGraphic not \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/methodProperties.json index 32daa4d2..f52d2610 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/methodProperties.json +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo9.class/methodProperties.json @@ -1,6 +1,7 @@ { "class" : { + "isHeadless" : "JonathanVanAlteren 5/5/2023 16:16", "isPlatformCompatible" : "BenoitVerhaeghe 12/15/2020 10:00", "testRunnerClass" : "BenoitVerhaeghe 12/15/2020 10:00" }, "instance" : { From 7e2f2aafc6c8066d64630082aa417556ecc17ecb Mon Sep 17 00:00:00 2001 From: Gabriel Omar Cotelli Date: Tue, 23 May 2023 08:30:35 -0300 Subject: [PATCH 10/25] Fix deprecation warnings for Pharo 10/11 --- .../instance/selectorIn..st | 4 +++ .../instance/serializeError.of..st | 14 +++++---- .../instance/stackTraceString.of..st | 30 ++++++++++++------- .../methodProperties.json | 14 +++++---- .../instance/selectorIn..st | 4 +++ .../methodProperties.json | 7 +++-- .../instance/stackTraceString.of..st | 28 ++++++++++------- .../methodProperties.json | 10 ++++--- .../monticello.meta/version | 5 ++-- 9 files changed, 74 insertions(+), 42 deletions(-) create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/selectorIn..st create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/instance/selectorIn..st diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/selectorIn..st b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/selectorIn..st new file mode 100644 index 00000000..7e3fb1f6 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/selectorIn..st @@ -0,0 +1,4 @@ +private +selectorIn: context + + ^ context methodSelector \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/serializeError.of..st b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/serializeError.of..st index b53703ca..d5050105 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/serializeError.of..st +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/serializeError.of..st @@ -1,14 +1,18 @@ private serializeError: error of: aTestCase "We got an error from a test, let's serialize it so we can properly debug it later on..." - | context testCaseMethodContext | + | context testCaseMethodContext | context := error signalerContext. testCaseMethodContext := context findContextSuchThat: [ :ctx | - ctx receiver == aTestCase and: [ ctx methodSelector == #performTest ]]. + ctx receiver == aTestCase and: [ + (self selectorIn: ctx) == #performTest ] ]. context := context copyTo: testCaseMethodContext. - [ Smalltalk at: #FuelOutStackDebugAction ifPresent: [ :fosda | + [ + Smalltalk + at: #FuelOutStackDebugAction + ifPresent: [ :fosda | fosda serializeStackFromContext: context sender ] ] - on: Error - do: [ :err | "simply continue..." ] \ No newline at end of file + on: Error + do: [ :err | "simply continue..." ] \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/stackTraceString.of..st b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/stackTraceString.of..st index ab81bba3..ffdb256a 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/stackTraceString.of..st +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/instance/stackTraceString.of..st @@ -1,14 +1,22 @@ private stackTraceString: err of: aTestCase + ^ String streamContents: [ :str | - | context | - context := err signalerContext. - [ context isNil or: [ context receiver == aTestCase and: [ context methodSelector == #runCase ] ] ] whileFalse: [ - str print: context. - (self class isTestMethod: context method) - ifTrue: [ | pcRange code | - pcRange := context debuggerMap rangeForPC: context pc contextIsActiveContext: false. - code := context method sourceCode asString copyFrom: pcRange first to: pcRange last. - str nextPutAll: ' ...', code ]. - str cr. - context := context sender ] ] \ No newline at end of file + | context | + context := err signalerContext. + [ + context isNil or: [ + context receiver == aTestCase and: [ + (self selectorIn: context) == #runCase ] ] ] whileFalse: [ + str print: context. + (self class isTestMethod: context method) ifTrue: [ + | pcRange code | + pcRange := context debuggerMap + rangeForPC: context pc + contextIsActiveContext: false. + code := context method sourceCode asString + copyFrom: pcRange first + to: pcRange last. + str nextPutAll: ' ...' , code ]. + str cr. + context := context sender ] ] \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/methodProperties.json index 68d87efa..2ef503f5 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/methodProperties.json +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunner.class/methodProperties.json @@ -1,9 +1,13 @@ { - "class" : { - "runClasses:spec:" : "maxmattone 4/14/2021 17:11", - "skipExceptions" : "EstebanLorenzano 5/27/2021 21:51" }, "instance" : { + "selectorIn:" : "GOC 5/22/2023 17:51", "basicRunCase:" : "7/17/2017 19:03:43", + "serializeError:of:" : "GOC 5/22/2023 17:51", "runAll" : "MaxLeske 7/17/2017 19:05", - "serializeError:of:" : "MaxLeske 5/17/2021 14:06", - "stackTraceString:of:" : "smalltalkCI 7/4/2017 09:58" } } + "stackTraceString:of:" : "GOC 5/22/2023 17:51" + }, + "class" : { + "runClasses:spec:" : "maxmattone 4/14/2021 17:11", + "skipExceptions" : "EstebanLorenzano 5/27/2021 21:51" + } +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/instance/selectorIn..st b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/instance/selectorIn..st new file mode 100644 index 00000000..e2197b1e --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/instance/selectorIn..st @@ -0,0 +1,4 @@ +private +selectorIn: context + + ^ context selector \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/methodProperties.json index 0e4a6622..19939230 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/methodProperties.json +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo10.class/methodProperties.json @@ -1,5 +1,6 @@ { - "class" : { - }, "instance" : { - } } + "selectorIn:" : "GOC 5/22/2023 17:52" + }, + "class" : { } +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/instance/stackTraceString.of..st b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/instance/stackTraceString.of..st index a484888d..c78831e3 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/instance/stackTraceString.of..st +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/instance/stackTraceString.of..st @@ -1,14 +1,20 @@ private stackTraceString: err of: aTestCase + ^ String streamContents: [ :str | - | context | - context := err signalerContext. - [ context isNil or: [ context receiver == aTestCase and: [ context methodSelector == #runCase ] ] ] whileFalse: [ - str print: context. - (self class isTestMethod: context method) - ifTrue: [ | pcRange code | - pcRange := context pcRangeContextIsActive: false. - code := context method sourceCode asString copyFrom: pcRange first to: pcRange last. - str nextPutAll: ' ...', code ]. - str cr. - context := context sender ] ] \ No newline at end of file + | context | + context := err signalerContext. + [ + context isNil or: [ + context receiver == aTestCase and: [ + (self selectorIn: context) == #runCase ] ] ] whileFalse: [ + str print: context. + (self class isTestMethod: context method) ifTrue: [ + | pcRange code | + pcRange := context pcRangeContextIsActive: false. + code := context method sourceCode asString + copyFrom: pcRange first + to: pcRange last. + str nextPutAll: ' ...' , code ]. + str cr. + context := context sender ] ] \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/methodProperties.json b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/methodProperties.json index 91d850da..7351022c 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/methodProperties.json +++ b/repository/SmalltalkCI-Pharo-Core.package/SCIPharoTestRunnerPharo9.class/methodProperties.json @@ -1,6 +1,8 @@ { - "class" : { - "skipExceptions:" : "BenoitVerhaeghe 12/15/2020 10:00" }, "instance" : { - "stackTraceString:of:" : "MaxLeske 5/17/2021 14:06" - } } + "stackTraceString:of:" : "GOC 5/22/2023 17:51" + }, + "class" : { + "skipExceptions" : "CompatibleUserName 5/12/2023 06:02:08" + } +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/monticello.meta/version b/repository/SmalltalkCI-Pharo-Core.package/monticello.meta/version index ffa09315..4e1ad245 100644 --- a/repository/SmalltalkCI-Pharo-Core.package/monticello.meta/version +++ b/repository/SmalltalkCI-Pharo-Core.package/monticello.meta/version @@ -1,3 +1,2 @@ -(name 'SmalltalkCI-Pharo-Core-ct.1665761777' message 'Fixes gathering of extension methods for coverage testing. Closes #576. Thanks to Gabriel (GOC) for the recommendation!' id '156c0960-bcc8-654a-abaf-692693ce1a73' date '14 October 2022' time '5:41:23.395223 pm' author 'ct' ancestors ((name 'SmalltalkCI-Pharo-Core-ct.1664463567' message 'Complements SmalltalkCI-Coverage-Core-ct.34 (extension methods for coverage testing).' id '7873ac8e-944d-1141-ac61-026e8d1c4b2a' date '29 September 2022' time '5:00:50.401693 pm' author 'ct' ancestors ((name 'SmalltalkCI-Pharo-Core-ct.1664439708' message 'Complements SmalltalkCI-Coverage-Core-ct.33 (fixes file paths for coverage reports).' id '8d989861-7688-d545-9792-c6a3f58be21f' date '29 September 2022' time '12:22:39.826693 pm' author 'ct' ancestors ((name 'SmalltalkCI-Pharo-Core-fn.1570035225' message 'Add classes for Pharo 10 support.' id '8e8da347-2fb2-41fc-b05c-0f2226ec6dd3' date '22 July 2021' time '12:12:55.712035 pm' author 'fn' ancestors ((name 'SmalltalkCI-Pharo-Core-EstebanLorenzano.1570035224' message '- use Smalltalk dictionary to access classes that may not be in the system -- remove shadowed variables -' id '5c2ffc1d-b77f-0d00-9501-5f3600cb1d42' date '27 May 2021' time '10:12:36.047886 pm' author 'EstebanLorenzano' ancestors ((name 'SmalltalkCI-Pharo-Core-maxmattone.1570035223' message 'update json meta data' id '84bd31f0-517c-0d00-9176-f72709b43601' date '14 April 2021' time '5:14:21.225527 pm' author 'maxmattone' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file +(name 'SmalltalkCI-Pharo-Core-GOC.1683882129' message 'Fix deprecated messages in Pharo 10/11' id 'b9ca235c-bcb8-0d00-8a02-52740b2d30c2' date '23 May 2023' time '8:23:56.450782 am' author 'GOC' ancestors ((name 'SmalltalkCI-Pharo-Core-CompatibleUserName.1683882128' message 'Override isHeadless as mentioned in issue #561. +' id '61a4d773-e6dd-5997-b177-27b70e42f224' date '12 May 2023' time '6:02:08 am' author 'CompatibleUserName' ancestors () stepChildren ())) stepChildren ()) \ No newline at end of file From 23912b32b42c32c123b0b2b91c058226ea35946e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Verhaeghe?= Date: Tue, 30 May 2023 18:09:57 +0200 Subject: [PATCH 11/25] Add Moose 11 --- .github/workflows/main.yml | 1 + README.md | 16 ++++++++-------- pharo/run.sh | 9 ++++++--- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f67d3f79..d08fc619 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,6 +42,7 @@ jobs: - Pharo32-stable - Pharo32-alpha - Pharo32-3.0 + - Moose64-11 - Moose64-10 - Moose64-9.0 - Moose64-8.0 diff --git a/README.md b/README.md index 8f59cb96..d82a6e75 100644 --- a/README.md +++ b/README.md @@ -75,14 +75,14 @@ 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.6.x` | `Moose64-trunk` | `GToolkit64-release` | -| `Squeak64-6.0` | `Pharo64-stable` | `GemStone64-3.5.8` | `Moose64-10` | | -| `Squeak64-5.3` | `Pharo64-12` | `GemStone64-3.5.7` | `Moose64-9.0` | | -| `Squeak64-5.2` | `Pharo64-11` | `GemStone64-3.5.6` | `Moose64-8.0` | | -| `Squeak64-5.1` | `Pharo64-10` | `GemStone64-3.5.5` | `Moose64-7.0` | | -| `Squeak32-trunk` | `Pharo64-9.0` | `Gemstone64-3.5.4` | `Moose32-trunk` | | -| `Squeak32-6.0` | `Pharo64-8.0` | `GemStone64-3.5.3` | `Moose32-6.1` | | -| `Squeak32-5.3` | `Pharo64-7.0` | | `Moose32-6.0` | | -| `Squeak32-5.2` | `Pharo64-6.1` | | | | +| `Squeak64-6.0` | `Pharo64-stable` | `GemStone64-3.5.8` | `Moose64-11` | | +| `Squeak64-5.3` | `Pharo64-12` | `GemStone64-3.5.7` | `Moose64-10` | | +| `Squeak64-5.2` | `Pharo64-11` | `GemStone64-3.5.6` | `Moose64-9.0` | | +| `Squeak64-5.1` | `Pharo64-10` | `GemStone64-3.5.5` | `Moose64-8.0` | | +| `Squeak32-trunk` | `Pharo64-9.0` | `Gemstone64-3.5.4` | `Moose64-7.0` | | +| `Squeak32-6.0` | `Pharo64-8.0` | `GemStone64-3.5.3` | `Moose32-trunk` | | +| `Squeak32-5.3` | `Pharo64-7.0` | | `Moose32-6.1` | | +| `Squeak32-5.2` | `Pharo64-6.1` | | `Moose32-6.0` | | | `Squeak32-5.1` | `Pharo64-6.0` | | | | | `Squeak32-5.0` | `Pharo32-alpha` | | | | | `Squeak32-4.6` | `Pharo32-stable` | | | | diff --git a/pharo/run.sh b/pharo/run.sh index 1753982b..d853d674 100644 --- a/pharo/run.sh +++ b/pharo/run.sh @@ -100,7 +100,7 @@ moose::get_image_url() { case "${smalltalk_name}" in "Moose64-trunk"|"Moose-trunk") - echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose10-development-Pharo64-10.zip" + echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose11-development-Pharo64-11.zip" ;; "Moose32-trunk") moose_name="moose-7.0" @@ -123,6 +123,9 @@ moose::get_image_url() { "Moose64-10"*) echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose10-development-Pharo64-10.zip" ;; + "Moose64-11"*) + echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose11-development-Pharo64-11.zip" + ;; *) print_error_and_exit "Unsupported Moose version '${smalltalk_name}'." ;; @@ -151,10 +154,10 @@ pharo::get_vm_url() { "Pharo64-12") echo "get.pharo.org/64/vm120" ;; - "Pharo64-11") + "Pharo64-11"|"Moose64-11"|"Moose64-trunk") echo "get.pharo.org/64/vm110" ;; - "Pharo64-10"|"Moose64-10"|"Moose64-trunk") + "Pharo64-10"|"Moose64-10") echo "get.pharo.org/64/vm100" ;; "Pharo64-9.0"|"Moose64-9.0") From 854de5a464e52beec357a959538cd37de4c3e965 Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Tue, 20 Jun 2023 11:43:14 +0200 Subject: [PATCH 12/25] Upgrade Squeak trunk images to 22664 --- squeak/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/squeak/run.sh b/squeak/run.sh index c0ea36b0..e0bcd114 100755 --- a/squeak/run.sh +++ b/squeak/run.sh @@ -99,8 +99,8 @@ squeak::download_prepared_image() { squeak::download_trunk_image() { local target local download_name - local git_tag="v2.9.8" # 32bit/64bit are kept in sync - local update_level="21469" # 32bit/64bit are kept in sync + local git_tag="v3.0.3" # 32bit/64bit are kept in sync + local update_level="22664" # 32bit/64bit are kept in sync if is_64bit; then download_name="Squeak64-trunk-${update_level}.tar.gz" From b077ba2f015a39671b681ad6d1560d15b63b0741 Mon Sep 17 00:00:00 2001 From: Christoph Thiede <38782922+LinqLover@users.noreply.github.com> Date: Sun, 9 Jul 2023 21:07:07 +0200 Subject: [PATCH 13/25] Update README.md: add new SWA projects [ci skip] --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index d82a6e75..f977b324 100644 --- a/README.md +++ b/README.md @@ -649,12 +649,20 @@ problem. [animations](https://github.com/hpi-swa/animations), [Ohm-S](https://github.com/hpi-swa/Ohm-S), [signals](https://github.com/hpi-swa/signals), + [Sandblocks](https://github.com/hpi-swa/sandblocks), [Squot](https://github.com/hpi-swa/Squot), [vivide](https://github.com/hpi-swa/vivide), [widgets](https://github.com/hpi-swa/widgets). +- [@hpi-swa-lab](https://github.com/hpi-swa-lab): + [Babylonian Programming/Smalltalk](https://github.com/hpi-swa-lab/babylonian-programming-smalltalk), + [Squeak by Example](https://github.com/hpi-swa-lab/SqueakByExample-english), + [Squeak Inbox Talk](https://github.com/hpi-swa-lab/squeak-inbox-talk). - [@HPI-SWA-Teaching](https://github.com/HPI-SWA-Teaching): [Algernon-Launcher](https://github.com/HPI-SWA-Teaching/Algernon-Launcher), [AutoTDD](https://github.com/hpi-swa-teaching/AutoTDD), + [Koans](https://github.com/hpi-swa-teaching/Koans), + [Morphic Testing Framework](https://github.com/hpi-swa-teaching/Morphic-Testing-Framework), + [Poppy Print](https://github.com/hpi-swa-teaching/poppy-print), [SpreadSheetTool](https://github.com/hpi-swa-teaching/SpreadSheetTool), [TelegramClient](https://github.com/hpi-swa-teaching/TelegramClient), [SwaLint](https://github.com/hpi-swa-teaching/SwaLint). From c4883705d1112487986245352140f3d7b1ab4f96 Mon Sep 17 00:00:00 2001 From: Christoph Thiede <38782922+LinqLover@users.noreply.github.com> Date: Sun, 9 Jul 2023 21:14:02 +0200 Subject: [PATCH 14/25] Update README.md: add LinqLover projects [ci skip] --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f977b324..95ffb6b7 100644 --- a/README.md +++ b/README.md @@ -666,6 +666,11 @@ problem. [SpreadSheetTool](https://github.com/hpi-swa-teaching/SpreadSheetTool), [TelegramClient](https://github.com/hpi-swa-teaching/TelegramClient), [SwaLint](https://github.com/hpi-swa-teaching/SwaLint). +- [@LinqLover](https://github.com/LinqLover): + [create-image](https://github.com/LinqLover/create-image), + [SimulationStudio](https://github.com/LinqLover/SimulationStudio), + [TelegramBot](https://github.com/LinqLover/TelegramBot), + [XmasDecorations](https://github.com/LinqLover/XmasDecorations). - [@marianopeck](https://github.com/marianopeck): [OSSubprocess](https://github.com/marianopeck/OSSubprocess), [FFICHeaderExtractor](https://github.com/marianopeck/FFICHeaderExtractor). From a6079d6f24be5e7bcdc864b095628dffc839a461 Mon Sep 17 00:00:00 2001 From: Kris <1611248+Rinzwind@users.noreply.github.com> Date: Sun, 6 Aug 2023 12:00:53 +0200 Subject: [PATCH 15/25] =?UTF-8?q?Fixed=20bug=20in=20=E2=80=98pharo::prepar?= =?UTF-8?q?e=5Fimage=E2=80=99=20where=20the=20image=20was=20always=20downl?= =?UTF-8?q?oaded=20again=20due=20to=20=E2=80=98is=5Ffile=E2=80=99=20being?= =?UTF-8?q?=20used=20instead=20of=20=E2=80=98is=5Fdir=E2=80=99=20to=20test?= =?UTF-8?q?=20the=20existence=20of=20the=20=E2=80=98target=E2=80=99=20dire?= =?UTF-8?q?ctory.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pharo/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pharo/run.sh b/pharo/run.sh index d853d674..855bae5f 100644 --- a/pharo/run.sh +++ b/pharo/run.sh @@ -270,8 +270,8 @@ pharo::prepare_image() { local target="${SMALLTALK_CI_CACHE}/${smalltalk_name}" local pharo_zeroconf="${target}/zeroconfig" - if ! is_file "${target}"; then - is_dir "${target}" || mkdir "${target}" + if ! is_dir "${target}"; then + mkdir "${target}" pushd "${target}" > /dev/null fold_start download_image "Downloading ${smalltalk_name} image..." download_file "${pharo_image_url}" "${pharo_zeroconf}" From d3a45fed245194363720accc47f0655ee9805f4a Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Thu, 21 Sep 2023 21:11:24 +0200 Subject: [PATCH 16/25] Propose to change the directory comment (#605) [ci skip] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 95ffb6b7..16f1bf39 100644 --- a/README.md +++ b/README.md @@ -410,7 +410,7 @@ Otherwise, it will be loaded from the specified `#repository`. SCIMetacelloLoadSpec { #baseline : 'MyProject', // Define MC Baseline #configuration : 'MyProject', // Alternatively, define MC Configuration - #directory : 'packages', // Path to packages if FileTree is used + #directory : 'src', // Path to source-code directory were are packages (i.e. 'packages' or 'src'), in case of packages are not on root #failOn : [ #OCUndeclaredVariableWarning ], // Fail build on provided list of Warnings #ignoreImage : true, // If true, Metacello will force a load of a package, overriding a previously existing one #load : [ 'default' ], // Define MC load attributes From 88c7d9a6761e1b6c93f10f876890df0347f138e9 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sat, 23 Sep 2023 10:06:27 +0200 Subject: [PATCH 17/25] fix: #listAtCategoryNamed: has been deprecated in Pharo 12 --- .../SmalltalkCIPharo12.class/class/classesInCategory..st | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/classesInCategory..st diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/classesInCategory..st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/classesInCategory..st new file mode 100644 index 00000000..f220e0ee --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/classesInCategory..st @@ -0,0 +1,6 @@ +class organization +classesInCategory: aCategory + ^ (Smalltalk organization tagForCategory: aCategory) + ifNotNil: [ :tag | + tag classNames collect: [ :className | Smalltalk at: className ] ] + ifNil: [ #() ] From ca2b5c02d8091fca68802ed2d57e268d3089fab4 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sat, 23 Sep 2023 11:38:23 +0200 Subject: [PATCH 18/25] fix: fix Pharo 12 deprecations in tests --- .../instance/addLoadedClassesFrom..st | 4 ++-- .../instance/testAddLoadedClassesFrom.st | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/repository/SmalltalkCI-Core.package/SCIMonticelloLoadSpec.class/instance/addLoadedClassesFrom..st b/repository/SmalltalkCI-Core.package/SCIMonticelloLoadSpec.class/instance/addLoadedClassesFrom..st index 46f20892..97603fb0 100644 --- a/repository/SmalltalkCI-Core.package/SCIMonticelloLoadSpec.class/instance/addLoadedClassesFrom..st +++ b/repository/SmalltalkCI-Core.package/SCIMonticelloLoadSpec.class/instance/addLoadedClassesFrom..st @@ -3,5 +3,5 @@ addLoadedClassesFrom: aDefinitionsCollection | mcOrganization classes | mcOrganization := aDefinitionsCollection detect: [ :def | def isOrganizationDefinition ]. mcOrganization ifNil: [ self error: 'Could not find MCOrganizationDefinition' ]. - classes := SmalltalkCI classesWithCategoryNames: mcOrganization categories. - self loadedClasses addAll: classes \ No newline at end of file + classes := SmalltalkCI platformClass classesWithCategoryNames: mcOrganization categories. + self loadedClasses addAll: classes diff --git a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st index 9a6f319b..9fbe062c 100644 --- a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st +++ b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -3,8 +3,16 @@ testAddLoadedClassesFrom | mcOrganization | self assert: true equals: (self spec loadedClasses isEmpty). - mcOrganization := MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests'). + mcOrganization := (MCOrganizationDefinition canUnderstand: #categories:) + ifTrue: [ + "Squeak, Pharo < 12" + MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests') ] + ifFalse: [ + MCOrganizationDefinition + packageName: 'SmalltalkCI' + tagNames: #(Core Tests) ]. + self spec addLoadedClassesFrom: {mcOrganization}. self deny: (self spec loadedClasses isEmpty). self assert: (self spec loadedClasses includes: SmalltalkCI). - self assert: (self spec loadedClasses includes: SmalltalkCITest). \ No newline at end of file + self assert: (self spec loadedClasses includes: SmalltalkCITest). From c6550605f7ac1d13c508c98fa591ed10e349dacd Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sun, 24 Sep 2023 15:26:35 +0200 Subject: [PATCH 19/25] feat: make SCIMonticelloLoadSpecTest platform dependent --- .../README.md | 0 .../instance/testAddLoadedClassesFrom.st | 11 +++++++++++ .../properties.json | 11 +++++++++++ .../README.md | 0 .../instance/testAddLoadedClassesFrom.st | 13 +++++++++++++ .../properties.json | 11 +++++++++++ .../README.md | 0 .../instance/testAddLoadedClassesFrom.st | 11 +++++++++++ .../properties.json | 11 +++++++++++ .../instance/testAddLoadedClassesFrom.st | 17 +---------------- 10 files changed, 69 insertions(+), 16 deletions(-) create mode 100644 repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/README.md create mode 100644 repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st create mode 100644 repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/properties.json create mode 100644 repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/README.md create mode 100644 repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st create mode 100644 repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/properties.json create mode 100644 repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/README.md create mode 100644 repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st create mode 100644 repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/properties.json diff --git a/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/README.md b/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st new file mode 100644 index 00000000..26490414 --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -0,0 +1,11 @@ +testing +testAddLoadedClassesFrom + | mcOrganization | + self assert: true equals: (self spec loadedClasses isEmpty). + + mcOrganization := MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests'). + + self spec addLoadedClassesFrom: {mcOrganization}. + self deny: (self spec loadedClasses isEmpty). + self assert: (self spec loadedClasses includes: SmalltalkCI). + self assert: (self spec loadedClasses includes: SmalltalkCITest) diff --git a/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/properties.json b/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/properties.json new file mode 100644 index 00000000..0201b37e --- /dev/null +++ b/repository/SmalltalkCI-GemStone-Tests.package/SCIGemStoneMonticelloLoadSpecTest.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "SCIMonticelloLoadSpecTest", + "category" : "SmalltalkCI-GemStone-Tests", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SCIGemStoneMonticelloLoadSpecTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/README.md b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st new file mode 100644 index 00000000..4ee4b344 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -0,0 +1,13 @@ +testing +testAddLoadedClassesFrom + | mcOrganization | + self assert: true equals: (self spec loadedClasses isEmpty). + + mcOrganization := MCOrganizationDefinition + packageName: 'SmalltalkCI' + tagNames: #(Core Tests). + + self spec addLoadedClassesFrom: {mcOrganization}. + self deny: (self spec loadedClasses isEmpty). + self assert: (self spec loadedClasses includes: SmalltalkCI). + self assert: (self spec loadedClasses includes: SmalltalkCITest) diff --git a/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/properties.json b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/properties.json new file mode 100644 index 00000000..cec2eed9 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "SCIMonticelloLoadSpecTest", + "category" : "SmalltalkCI-Pharo-Tests", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SCIPharoMonticelloLoadSpecTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/README.md b/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st new file mode 100644 index 00000000..26490414 --- /dev/null +++ b/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -0,0 +1,11 @@ +testing +testAddLoadedClassesFrom + | mcOrganization | + self assert: true equals: (self spec loadedClasses isEmpty). + + mcOrganization := MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests'). + + self spec addLoadedClassesFrom: {mcOrganization}. + self deny: (self spec loadedClasses isEmpty). + self assert: (self spec loadedClasses includes: SmalltalkCI). + self assert: (self spec loadedClasses includes: SmalltalkCITest) diff --git a/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/properties.json b/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/properties.json new file mode 100644 index 00000000..24aa4cc5 --- /dev/null +++ b/repository/SmalltalkCI-Squeak-Tests.package/SCISqueakMonticelloLoadSpecTest.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "SCIMonticelloLoadSpecTest", + "category" : "SmalltalkCI-Squeak-Tests", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SCISqueakMonticelloLoadSpecTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st index 9fbe062c..7896d9bc 100644 --- a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st +++ b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -1,18 +1,3 @@ testing testAddLoadedClassesFrom - | mcOrganization | - self assert: true equals: (self spec loadedClasses isEmpty). - - mcOrganization := (MCOrganizationDefinition canUnderstand: #categories:) - ifTrue: [ - "Squeak, Pharo < 12" - MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests') ] - ifFalse: [ - MCOrganizationDefinition - packageName: 'SmalltalkCI' - tagNames: #(Core Tests) ]. - - self spec addLoadedClassesFrom: {mcOrganization}. - self deny: (self spec loadedClasses isEmpty). - self assert: (self spec loadedClasses includes: SmalltalkCI). - self assert: (self spec loadedClasses includes: SmalltalkCITest). + self subclassResponsibility \ No newline at end of file From 036c3a2e369f2c2c58f8bcc2bc6557c77d9b7a24 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sun, 24 Sep 2023 15:48:17 +0200 Subject: [PATCH 20/25] fix: remove "abstract" test, as test case is not abstract --- .../instance/testAddLoadedClassesFrom.st | 3 --- .../SCIMonticelloLoadSpecTest.class/methodProperties.json | 1 - 2 files changed, 4 deletions(-) delete mode 100644 repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st diff --git a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st deleted file mode 100644 index 7896d9bc..00000000 --- a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st +++ /dev/null @@ -1,3 +0,0 @@ -testing -testAddLoadedClassesFrom - self subclassResponsibility \ No newline at end of file diff --git a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/methodProperties.json b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/methodProperties.json index da5bfadc..6c1c86ec 100644 --- a/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/methodProperties.json +++ b/repository/SmalltalkCI-Tests.package/SCIMonticelloLoadSpecTest.class/methodProperties.json @@ -3,7 +3,6 @@ }, "instance" : { "setUp" : "fn 6/9/2016 09:53", - "testAddLoadedClassesFrom" : "fn 6/22/2016 10:50", "testIsComplete" : "fn 6/9/2016 10:00", "testRepository" : "fn 6/9/2016 15:23", "testSimple" : "ct 5/15/2021 18:17" } } From 086b14ee03d76806a779ed397a76fc84c310a6a8 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sun, 24 Sep 2023 16:03:41 +0200 Subject: [PATCH 21/25] fix: update Pharo test --- .../instance/testAddLoadedClassesFrom.st | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st index 4ee4b344..b9c3936d 100644 --- a/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st +++ b/repository/SmalltalkCI-Pharo-Tests.package/SCIPharoMonticelloLoadSpecTest.class/instance/testAddLoadedClassesFrom.st @@ -3,11 +3,15 @@ testAddLoadedClassesFrom | mcOrganization | self assert: true equals: (self spec loadedClasses isEmpty). - mcOrganization := MCOrganizationDefinition - packageName: 'SmalltalkCI' - tagNames: #(Core Tests). + mcOrganization := (MCOrganizationDefinition canUnderstand: #categories:) + ifTrue: [ + "Squeak, Pharo < 12" + MCOrganizationDefinition categories: #('SmalltalkCI-Core' 'SmalltalkCI-Tests') ] + ifFalse: [ + MCOrganizationDefinition + packageName: 'SmalltalkCI' + tagNames: #(Core Tests) ]. self spec addLoadedClassesFrom: {mcOrganization}. self deny: (self spec loadedClasses isEmpty). - self assert: (self spec loadedClasses includes: SmalltalkCI). - self assert: (self spec loadedClasses includes: SmalltalkCITest) + self assert: (self spec loadedClasses includes: SmalltalkCI) \ No newline at end of file From d680cfb8df7078e8c223e30892117dca71017b86 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sun, 24 Sep 2023 15:02:46 +0200 Subject: [PATCH 22/25] feat: update Pharo VM and image urls Note: This commit also changes `Pharo-stable` and `Pharo-alpha` to be synonyms of `Pharo64-stable` and `Pharo64-alpha`, respectively. Previously, these aliases referred to the 32-bit versions. --- pharo/run.sh | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/pharo/run.sh b/pharo/run.sh index 855bae5f..a89139da 100644 --- a/pharo/run.sh +++ b/pharo/run.sh @@ -15,10 +15,10 @@ pharo::get_image_url() { local smalltalk_name=$1 case "${smalltalk_name}" in - "Pharo64-alpha") + "Pharo64-alpha"|"Pharo-alpha") echo "get.pharo.org/64/alpha" ;; - "Pharo64-stable") + "Pharo64-stable"|"Pharo-stable") echo "get.pharo.org/64/stable" ;; "Pharo64-12") @@ -45,12 +45,15 @@ pharo::get_image_url() { "Pharo64-6.0") echo "get.pharo.org/64/60" ;; - "Pharo32-alpha"|"Pharo-alpha") + "Pharo32-alpha") echo "get.pharo.org/alpha" ;; - "Pharo32-stable"|"Pharo-stable") + "Pharo32-stable") echo "get.pharo.org/stable" ;; + "Pharo32-12") + echo "get.pharo.org/32/120" + ;; "Pharo32-11") echo "get.pharo.org/32/110" ;; @@ -142,14 +145,16 @@ moose::get_image_url() { ################################################################################ pharo::get_vm_url() { local smalltalk_name=$1 + local stable_version=11 + local alpha_version=12 case "${smalltalk_name}" in # NOTE: vmLatestXX should be updated every time new Pharo is released - "Pharo64-alpha") - echo "get.pharo.org/64/vmLatest110" + "Pharo64-alpha"|"Pharo-alpha") + echo "get.pharo.org/64/vmLatest${alpha_version}0" ;; - "Pharo64-stable") - echo "get.pharo.org/64/vm100" + "Pharo64-stable"|"Pharo-stable") + echo "get.pharo.org/64/vm${stable_version}0" ;; "Pharo64-12") echo "get.pharo.org/64/vm120" @@ -175,11 +180,14 @@ pharo::get_vm_url() { "Pharo64-6.0") echo "get.pharo.org/64/vm60" ;; - "Pharo32-alpha"|"Pharo-alpha") - echo "get.pharo.org/vmLatest110" + "Pharo32-alpha") + echo "get.pharo.org/vmLatest${alpha_version}0" ;; - "Pharo-stable"|"Pharo32-stable") - echo "get.pharo.org/vm100" + "Pharo32-stable") + echo "get.pharo.org/vm${stable_version}0" + ;; + "Pharo32-12") + echo "get.pharo.org/vm120" ;; "Pharo32-11") echo "get.pharo.org/vm110" From 7376bb85168780fad7dddcf8fefb76f9653b3d25 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sun, 24 Sep 2023 15:11:42 +0200 Subject: [PATCH 23/25] chore: update url tests for Pharo --- tests/pharo_tests.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/pharo_tests.sh b/tests/pharo_tests.sh index e2d4cebf..64ffbf2f 100755 --- a/tests/pharo_tests.sh +++ b/tests/pharo_tests.sh @@ -13,6 +13,15 @@ test_get_image_url() { image_url="$(pharo::get_image_url "Pharo32-stable")" assertEquals "get.pharo.org/stable" "${image_url}" + image_url="$(pharo::get_image_url "Pharo64-alpha")" + assertEquals "get.pharo.org/64/alpha" "${image_url}" + + image_url="$(pharo::get_image_url "Pharo64-stable")" + assertEquals "get.pharo.org/64/stable" "${image_url}" + + image_url="$(pharo::get_image_url "Pharo64-12")" + assertEquals "get.pharo.org/64/120" "${image_url}" + image_url="$(pharo::get_image_url "Pharo64-11")" assertEquals "get.pharo.org/64/110" "${image_url}" @@ -54,16 +63,19 @@ test_get_vm_url() { local vm_url vm_url="$(pharo::get_vm_url "Pharo32-alpha")" - assertEquals "get.pharo.org/vmLatest110" "${vm_url}" + assertEquals "get.pharo.org/vmLatest120" "${vm_url}" vm_url="$(pharo::get_vm_url "Pharo64-alpha")" - assertEquals "get.pharo.org/64/vmLatest110" "${vm_url}" + assertEquals "get.pharo.org/64/vmLatest120" "${vm_url}" vm_url="$(pharo::get_vm_url "Pharo32-stable")" - assertEquals "get.pharo.org/vm100" "${vm_url}" + assertEquals "get.pharo.org/vm110" "${vm_url}" vm_url="$(pharo::get_vm_url "Pharo64-stable")" - assertEquals "get.pharo.org/64/vm100" "${vm_url}" + assertEquals "get.pharo.org/64/vm110" "${vm_url}" + + vm_url="$(pharo::get_vm_url "Pharo32-12")" + assertEquals "get.pharo.org/vm120" "${vm_url}" vm_url="$(pharo::get_vm_url "Pharo32-11")" assertEquals "get.pharo.org/vm110" "${vm_url}" From 88cdea78b07b0d1d0dd745bca4a38fcd3b4f1ca3 Mon Sep 17 00:00:00 2001 From: Benoit Verhaeghe Date: Fri, 6 Oct 2023 09:06:25 +0200 Subject: [PATCH 24/25] Update the URL to Moose10 stable version --- pharo/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pharo/run.sh b/pharo/run.sh index a89139da..8be54224 100644 --- a/pharo/run.sh +++ b/pharo/run.sh @@ -124,7 +124,7 @@ moose::get_image_url() { echo "https://github.com/moosetechnology/Moose/releases/download/v9.x.x/Moose9-stable-Pharo64-9.0.zip" ;; "Moose64-10"*) - echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose10-development-Pharo64-10.zip" + echo "https://github.com/moosetechnology/Moose/releases/download/v10.x.x/Moose10-stable-Pharo64-10.zip" ;; "Moose64-11"*) echo "https://github.com/moosetechnology/Moose/releases/download/continuous/Moose11-development-Pharo64-11.zip" From fe128291dba008d58a9e6cd0ce8db093462ec4e0 Mon Sep 17 00:00:00 2001 From: Max Leske Date: Sat, 30 Sep 2023 09:20:19 +0200 Subject: [PATCH 25/25] fix: replace deprecations in Pharo 12 --- .../SmalltalkCISpec.class/instance/classesToTest.st | 2 +- .../instance/classesToCoverForCategories.st | 2 +- .../class/allCategoryNames.st | 11 +++++++++++ .../class/codeCoverageClass.st | 4 ++++ .../SCIPharo12CodeCoverage.class/README.md | 0 .../class/packageNameForClass..st | 3 +++ .../class/packageNameForMethod..st | 5 +++++ .../SCIPharo12CodeCoverage.class/properties.json | 11 +++++++++++ 8 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/allCategoryNames.st create mode 100644 repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/codeCoverageClass.st create mode 100644 repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/README.md create mode 100644 repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForClass..st create mode 100644 repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForMethod..st create mode 100644 repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/properties.json diff --git a/repository/SmalltalkCI-Core.package/SmalltalkCISpec.class/instance/classesToTest.st b/repository/SmalltalkCI-Core.package/SmalltalkCISpec.class/instance/classesToTest.st index 352f0555..f45fe4bc 100644 --- a/repository/SmalltalkCI-Core.package/SmalltalkCISpec.class/instance/classesToTest.st +++ b/repository/SmalltalkCI-Core.package/SmalltalkCISpec.class/instance/classesToTest.st @@ -4,7 +4,7 @@ classesToTest SmalltalkCI explicitTestKeys do: [ :key | (self testing includesKey: key) - ifTrue: [ ^ SmalltalkCI classesFrom: self testing ] ]. + ifTrue: [ ^ SmalltalkCI platformClass classesFrom: self testing ] ]. classes := OrderedCollection new. (self testing at: #'allTestCases' ifAbsent: [ false ]) = true ifTrue: [ classes addAll: TestCase allSubclasses ] diff --git a/repository/SmalltalkCI-Coverage-Core.package/SCICodeCoverage.class/instance/classesToCoverForCategories.st b/repository/SmalltalkCI-Coverage-Core.package/SCICodeCoverage.class/instance/classesToCoverForCategories.st index b013965b..e16ab23d 100644 --- a/repository/SmalltalkCI-Coverage-Core.package/SCICodeCoverage.class/instance/classesToCoverForCategories.st +++ b/repository/SmalltalkCI-Coverage-Core.package/SCICodeCoverage.class/instance/classesToCoverForCategories.st @@ -1,4 +1,4 @@ helpers classesToCoverForCategories ^ self coverageAt: #categories - do: [ :categoryNames | SmalltalkCI classesForCategories: categoryNames ] \ No newline at end of file + do: [ :categoryNames | SmalltalkCI platformClass classesForCategories: categoryNames ] \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/allCategoryNames.st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/allCategoryNames.st new file mode 100644 index 00000000..7cc3450b --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/allCategoryNames.st @@ -0,0 +1,11 @@ +class organization +allCategoryNames + | packages | + packages := Smalltalk organization packages. + ^ (OrderedCollection + new: packages size + streamContents: [ :stream | + packages do: [ :package | + stream nextPut: package name asString. + package classTags do: [ :tag | + stream nextPut: tag categoryName asString ] ] ]) asSet asArray \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/codeCoverageClass.st b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/codeCoverageClass.st new file mode 100644 index 00000000..4fc677aa --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Core.package/SmalltalkCIPharo12.class/class/codeCoverageClass.st @@ -0,0 +1,4 @@ +compatibility +codeCoverageClass + + ^ Smalltalk at: #SCIPharo12CodeCoverage \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/README.md b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForClass..st b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForClass..st new file mode 100644 index 00000000..d20608d7 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForClass..st @@ -0,0 +1,3 @@ +compatibility +packageNameForClass: aClass + ^ ((Smalltalk at: #RPackageOrganizer) default packageOf: aClass) name \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForMethod..st b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForMethod..st new file mode 100644 index 00000000..c62a6c55 --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/class/packageNameForMethod..st @@ -0,0 +1,5 @@ +compatibility +packageNameForMethod: aMethodReference + | aClass | + aClass := aMethodReference compiledMethod methodClass. + ^ (aClass packages detect: [:each | each includesSelector: aMethodReference compiledMethod selector ofClass: aClass ]) name \ No newline at end of file diff --git a/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/properties.json b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/properties.json new file mode 100644 index 00000000..e1681fbf --- /dev/null +++ b/repository/SmalltalkCI-Pharo-Coverage-Core.package/SCIPharo12CodeCoverage.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "SCIPharoCodeCoverage", + "category" : "SmalltalkCI-Pharo-Coverage-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SCIPharo12CodeCoverage", + "type" : "normal" +} \ No newline at end of file