Skip to content

Commit

Permalink
Merge branch 'master' into websockets
Browse files Browse the repository at this point in the history
# Conflicts:
#	repository/BaselineOfSeaside3.package/BaselineOfSeaside3.class/instance/baselineadaptors..st
#	repository/Seaside-Zinc-Core.package/ZnZincServerAdaptor.class/instance/websocketResponseFrom..st
  • Loading branch information
Johan Brichau committed Jul 14, 2024
2 parents 9efdaf3 + cb4b8ef commit e34adad
Show file tree
Hide file tree
Showing 1,070 changed files with 12,647 additions and 2,723 deletions.
36 changes: 23 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,29 @@ name: smalltalkCI
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-18.04
test:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
smalltalk: [ Pharo64-10, Pharo64-9.0, Pharo64-8.0, Pharo64-7.0, Pharo-6.1, GemStone64-3.6.5, GemStone64-3.5.5, GemStone64-3.4.5, GemStone64-3.3.9, GemStone64-3.2.17, GemStone64-3.1.0.6 ]
smalltalk: [ Pharo64-12, Pharo64-11, Pharo64-10, Pharo64-9.0, Pharo64-8.0, GemStone64-3.7.1, GemStone64-3.6.8, GemStone64-3.5.8 ]
experimental: [ false ]
include:
- smalltalk: Pharo64-alpha
- smalltalk: Pharo64-13
experimental: true
- smalltalk: Squeak64-5.3
experimental: true
- smalltalk: Squeak-5.2
- smalltalk: Squeak64-6.0
experimental: true
- smalltalk: Squeak-5.1
- smalltalk: Squeak64-5.3
experimental: true
continue-on-error: ${{ matrix.experimental }}
name: ${{ matrix.smalltalk }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.workflow_dispatch.ref }}
- uses: actions/checkout@v4
- uses: hpi-swa/setup-smalltalkCI@v1
with:
smalltalk-image: ${{ matrix.smalltalk }}
# smalltalkCI-branch: 'master'
# smalltalkCI-source: 'jbrichau/smalltalkCI'
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
- name: Install Chrome
Expand All @@ -39,7 +37,19 @@ jobs:
- name: Install selenium
run: npm install selenium-standalone && npx selenium-standalone install && npx selenium-standalone start &
- name: Run tests
id: test_run
run: smalltalkci -s ${{ matrix.smalltalk }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
timeout-minutes: 20
timeout-minutes: 20
- name: Archive production artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: Screenshots Test Failures ${{ matrix.smalltalk }}
path: ${{ env.SMALLTALK_CI_BUILD }}/*.png
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
name: ${{ matrix.smalltalk }}
token: ${{ secrets.CODECOV_TOKEN }}
16 changes: 12 additions & 4 deletions .smalltalk.ston
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SmalltalkCISpec {
#baseline : 'Seaside3',
#directory : 'repository',
#load : [ 'CI' ],
#onConflict : #useLoaded,
#onConflict : #useIncoming,
#useLatestMetacello : false,
#onWarningLog : true,
#platforms : [ #pharo ]
Expand All @@ -13,7 +13,7 @@ SmalltalkCISpec {
#baseline : 'Seaside3',
#directory : 'repository',
#load : [ 'CI' ],
#onConflict : #useLoaded,
#onConflict : #useIncoming,
#useLatestMetacello : true,
#onWarningLog : true,
#platforms : [ #squeak ]
Expand All @@ -22,18 +22,26 @@ SmalltalkCISpec {
#baseline : 'Seaside3',
#directory : 'repository',
#onWarningLog : true,
#onConflict : #useLoaded,
#onConflict : #useIncoming,
#load : [ 'CI' ],
#platforms : [ #gemstone ]
}
],
#preTesting : SCICustomScript {
#path : 'scripts/preTestingPharo.st',
#platforms : [ #pharo ]
},
#testing : {
#defaultTimeout : 30,
#exclude : {
#packages : [ 'Cryptography.*' ]
},
#include : {
#classes : [ #SentButNotImplementedTest , #UndefinedSymbolsTest ]
}
},
#coverage : {
#packages : [ 'Seaside*','JQuery*','Javascript*' ],
#format: #lcov
}
}
}
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Please take the time to add comments and tests and provide a description of the

We have fairly detailed [coding conventions](https://github.com/SeasideSt/Seaside/wiki/Coding-Conventions) to help maintain portability. Please read through them to make the job of porting Seaside to other Smalltalk dialects not unnecessarily complex and to maintain a consistent coding style.

We have set-up automated [Travis-CI tests](https://travis-ci.org/SeasideSt/Seaside), which will be automatically executed when you submit the pull request. You can run them in your own fork before submitting the pull request, and you can even run them locally. See the [Smalltalk-CI](https://github.com/hpi-swa/smalltalkCI) project for all details.
We have set-up GitHub actions for continuous integration testing, which will be automatically executed when you submit the pull request. You can run them in your own fork before submitting the pull request, and you can even run them locally. See the [Smalltalk-CI](https://github.com/hpi-swa/smalltalkCI) project for all details.

All Seaside code is licensed under the MIT License and, by submitting code to the project, you are agreeing to provide your code under this license. Before submitting, please also ensure that you have the legal rights to license the code you are submitting; in many areas, your employer may own the rights to code you create even in your spare time.

Expand Down
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ Seaside also has good support for [CSS and Javascript](https://github.com/Seasid

Seaside is composed of different parts, allowing you to only load the parts you need for your project. If you are new to Seaside, we advise you to load the default set of packages by simply following the load instructions below. If you want to load specific (or additional) parts of Seaside, check out the [list of groups and packages](https://github.com/SeasideSt/Seaside/wiki/Seaside-Load-Groups-and-Packages).

We provide instructions to get started with Seaside in [Pharo](http://www.pharo-project.org), [Gemstone](https://gemtalksystems.com/products/gs64/), [Squeak](http://www.squeak.org) or the [VAST Platform](https://www.instantiations.com/vast-platform/). See the appropriate instructions for your platform below.
We provide instructions to get started with Seaside in [Pharo](https://pharo.org), [Gemstone](https://gemtalksystems.com/products/gs64/), [Squeak](http://www.squeak.org) or the [VAST Platform](https://www.instantiations.com/vast-platform/). See the appropriate instructions for your platform below.

### Instructions for Pharo

#### Load Seaside
To install the latest stable version of Seaside in a [Pharo](http://www.pharo-project.org) image, execute the following code:
To install the latest stable version of Seaside in a [Pharo](https://pharo.org) image, execute the following code:

```Smalltalk
Metacello new
Expand All @@ -39,7 +39,14 @@ Metacello new
```
#### Launch the Welcome page

If you installed Seaside using the instructions above, the `Welcome` package was loaded and a default server adaptor was started on port 8080. Open a webbrowser on (http://localhost:8080) and you should see the Seaside Welcome page. Happy Seasiding!
If you installed Seaside using the instructions above, the `Welcome` package was loaded and a default server adaptor was started on port 8080. Open a webbrowser on (http://localhost:8080) and you should see the Seaside Welcome page.

Also checkout the Seaside Control Panel, in the 'Library' menu of the Pharo top toolbar:

<img width="623" alt="Screenshot 2024-04-20 at 14 02 54" src="https://github.com/SeasideSt/Seaside/assets/933094/79780512-e6f5-49b1-be93-b163eee13825">


Happy Seasiding!

### Instructions for Gemstone

Expand Down Expand Up @@ -92,6 +99,8 @@ To install the latest stable version of Seaside in a [VAST Platform](https://www

### Instructions for Squeak

Seaside for Squeak mostly works but is unmaintained.
If you want to help out keeping Seaside running on Squeak, please contact us via the channels mentioned in the Community section below.
#### Squeak >= 5.2
To install the latest stable version of Seaside in a [Squeak](http://www.squeak.org) image you need to first install [Metacello](https://github.com/Metacello/metacello):
```Smalltalk
Expand Down Expand Up @@ -138,3 +147,5 @@ Please check the [Wiki](https://github.com/SeasideSt/Seaside/wiki) for more info

## Status of automated builds
[![smalltalkCI](https://github.com/SeasideSt/Seaside/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/SeasideSt/Seaside/actions/workflows/ci.yml) See https://github.com/SeasideSt/Seaside/actions/workflows/ci.yml

[![codecov](https://codecov.io/gh/SeasideSt/Seaside/branch/master/graph/badge.svg?token=GLPOkk0Wby)](https://codecov.io/gh/SeasideSt/Seaside)
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
baselines
baseline: spec

"This groups all baselines"
<baseline>
"This groups all baseline"

self baselinecommon: spec.
self baselinegemstone: spec.
self baselinepharo: spec.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
baselines
baselineadaptors: spec

spec
for: #( #squeakCommon #'gs3.0.x' #'gs3.1.x' #'gs3.2.x' #'gs3.3.x' #'gs3.4.x' #'gs3.5.x' )
do: [ spec
Expand Down Expand Up @@ -28,8 +29,8 @@ baselineadaptors: spec
repository: 'http://ss3.gemtalksystems.com/ss/WebClient' ].
spec
package: 'WebClient-Seaside-Adaptor'
with: [
spec
with: [
spec
repository: 'http://ss3.gemtalksystems.com/ss/WebClient';
requires: #('WebClient Project' 'Seaside-Core') ].
spec group: 'WebClient' with: #('WebClient-Seaside-Adaptor') ].
Expand All @@ -51,10 +52,13 @@ baselineadaptors: spec
package: 'Seaside-Adaptors-Comanche' with: [ spec requires: #('KomHttpServerLight' 'Seaside-Core') ];
package: 'KomHttpServerLight' with: [ spec repository: 'http://www.smalltalkhub.com/mc/Seaside/KomHttpServer/main' ];
package: 'Seaside-Tests-Adaptors-Comanche' with: [ spec requires: #('Seaside-Adaptors-Comanche') ];
package: 'Zinc-Seaside' with: [ spec requires: #('Seaside-Core') ].
package: 'Seaside-Zinc-Core' with: [ spec requires: #('Seaside-Core') ];
package: 'Seaside-Zinc-Pharo' with: [ spec requires: #('Seaside-Zinc-Core') ];
package: 'Seaside-Zinc-Tests' with: [ spec requires: #('Seaside-Zinc-Pharo') ].
spec
group: 'Kom' with: #('Seaside-Adaptors-Comanche');
group: 'Zinc' with: #('Zinc-Seaside');
group: 'Zinc' with: #('Seaside-Zinc-Pharo');
group: 'Tests' with: #('Seaside-Zinc-Tests');
group: 'default' with: #('Zinc');
group: 'CI' with: #('Zinc') ].

Expand All @@ -79,22 +83,24 @@ baselineadaptors: spec
repository: 'github://GsDevKit/zinc:gs_master/repository' ].
spec
package: 'Seaside-GemStone-GemServer-Core' with: [ spec requires: #('GsApplicationTools' 'Seaside-Core') ];
package: 'Seaside-GemStone-GemServer-Tests' with: [ spec requires: #('Seaside-GemStone-GemServer-Core' 'Seaside-GemStone-Development' 'Seaside-GemStone-Adaptors-Zinc' 'Seaside-Adaptors-FastCGI') ];
package: 'Zinc-Seaside'
package: 'Seaside-GemStone-GemServer-Tests' with: [ spec requires: #('Seaside-GemStone-GemServer-Core' 'Seaside-GemStone-Development' 'Seaside-GemStone-Adaptors-Zinc' 'Seaside-Adaptors-FastCGI') ];
package: 'Seaside-Zinc-Core'
with: [ spec
requires: #('Zinc Project' 'Seaside-Core');
includes: #('Seaside-GemStone-Adaptors-Zinc') ];
package: 'Seaside-Adaptors-FastCGI' with: [ spec requires: #('Seaside-Core' 'FastCGI Project' 'Seaside-GemStone-GemServer-Core') ];
package: 'Seaside-GemStone-Adaptors-Zinc' with: [ spec requires: #('Zinc-Seaside' 'Seaside-GemStone-GemServer-Core') ].
package: 'Seaside-GemStone-Adaptors-Zinc' with: [ spec requires: #('Seaside-Zinc-Core' 'Seaside-GemStone-GemServer-Core') ];
package: 'Seaside-Zinc-Tests' with: [ spec requires: #('Seaside-Zinc-Core') ].
spec
group: 'FastCGI' with: #('Seaside-Adaptors-FastCGI');
group: 'Tests' with: #('Seaside-GemStone-GemServer-Tests');
group: 'Zinc' with: #('Zinc-Seaside') ].
group: 'Tests' with: #('Seaside-GemStone-GemServer-Tests' 'Seaside-Zinc-Tests');
group: 'Zinc' with: #('Seaside-Zinc-Core') ].

spec
for: #(#'gs3.0.x' #'gs3.1.x' #'gs3.2.x' #'gs3.3.x' #'gs3.4.x' #'gs3.5.x' )
do: [
spec
package: 'Seaside-GemStone-GemServer-Tests' with: [ spec includes: #( 'Seaside-GemStone-GemServer-Swazoo-Tests') ];
package: 'Seaside-GemStone-GemServer-Swazoo-Tests' with: [ spec requires: #('Seaside-GemStone-Adaptors-Swazoo') ];
package: 'Seaside-Adaptors-Swazoo' with: [ spec includes: #('Seaside-GemStone-Adaptors-Swazoo') ];
package: 'Seaside-GemStone-Adaptors-Swazoo' with: [ spec requires: #('Seaside-Adaptors-Swazoo' 'Seaside-GemStone-GemServer-Core') ] ].
package: 'Seaside-GemStone-Adaptors-Swazoo' with: [ spec requires: #('Seaside-Adaptors-Swazoo' 'Seaside-GemStone-GemServer-Core') ] ]
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ baselinecommon: spec
with: [
spec
loads: #('Grease-Core');
repository: 'github://SeasideSt/Grease:master/repository' ].
repository: 'github://SeasideSt/Grease:v1.18.x/repository' ].
spec
project: 'Grease Core Tests' copyFrom: 'Grease' with: [
spec loads: #('Core Tests') ]
].
spec loads: #('Core Tests') ] ].

spec for: #'gemstone' do: [
spec
Expand All @@ -22,8 +21,7 @@ baselinecommon: spec
repository: 'github://GsDevKit/Grease:master/repository' ].
spec
project: 'Grease Core Tests' copyFrom: 'Grease' with: [
spec loads: #('Core Tests') ]
].
spec loads: #('Core Tests') ] ].

spec for: #'common' do: [
spec
Expand Down Expand Up @@ -60,9 +58,17 @@ baselinecommon: spec
package: 'Seaside-Tools-Core' with: [
spec requires: #('Seaside-Core' 'Seaside-Component' 'Seaside-RenderLoop' 'Seaside-Session' ). ];
package: 'Seaside-Tools-Web' with: [
spec requires: #('Seaside-Tools-Core' 'Seaside-RenderLoop' 'Seaside-Widgets' ). ];
spec requires: #('Seaside-Tools-Core' 'Seaside-RenderLoop' 'Seaside-Widgets' ) ];
package: 'Seaside-WebComponents-Core' with: [
spec requires: #('Seaside-Core' 'Seaside-Canvas' 'Seaside-Component' 'Seaside-RenderLoop') ];
package: 'Seaside-WebComponents-Examples' with: [
spec requires: #('Seaside-WebComponents-Core' 'Seaside-Examples') ];
package: 'Seaside-Widgets' with: [
spec requires: #('Seaside-Component' 'Seaside-Canvas' ). ];
spec requires: #('Seaside-Component' 'Seaside-Canvas' ) ];
package: 'Seaside-HotwireTurbo-Core' with: [
spec requires: #('Seaside-Core' 'Seaside-Component' 'Seaside-Canvas' 'Seaside-RenderLoop' ) ];
package: 'Seaside-HotwireTurbo-Examples' with: [
spec requires: #('Seaside-HotwireTurbo-Core' 'Seaside-Examples') ];
package: 'Seaside-Tests-Canvas' with: [
spec requires: #('Seaside-Tests-Core' 'Seaside-Canvas' ). ];
package: 'Seaside-Tests-Component' with: [
Expand Down Expand Up @@ -91,16 +97,20 @@ baselinecommon: spec
spec requires: #('Seaside-Tools-Web' 'Seaside-Tests-Environment' ). ];
package: 'Seaside-Tests-UTF8' with: [
spec requires: #('Seaside-Tests-Core' ) ];
package: 'Seaside-Tests-WebComponents' with: [
spec requires: #('Seaside-WebComponents-Core' 'Seaside-Tests-Core' 'Seaside-Session' 'Seaside-Examples'). ];
package: 'Seaside-Tests-Parasol' with: [
spec requires: #('Parasol' 'Seaside-Tests-Functional' 'Seaside-Tools-Core') ].
spec
spec
group: 'default' with: #('Core' 'JSON' 'Email' 'Javascript' 'JQuery' 'JQueryUI' 'Seaside-Examples' 'Seaside-Welcome');
group: 'OneClick' with: #('Tests' 'Development' 'Zinc');
group: 'CI' with: #('Tests' 'Development Tests');
group: 'Base' with: #('Core');
group: 'CI' with: #('Tests' 'Development Tests' 'Hotwired');
group: 'All' with: #('Tests' 'Development Tests');

group: 'Core' with: #('Seaside-Core' 'Seaside-Continuation' 'Seaside-Canvas' 'Seaside-Session' 'Seaside-Component' 'Seaside-RenderLoop' 'Seaside-Tools-Core' 'Seaside-Flow' 'Seaside-Environment' 'Seaside-Widgets' );
group: 'Tests' with: #('Core' 'Seaside-Tests-Core' 'Seaside-Tests-Canvas' 'Seaside-Tests-Session' 'Seaside-Tests-Component' 'Seaside-Tests-RenderLoop' 'Seaside-Tests-Environment' 'Seaside-Tests-Flow' 'Seaside-Tests-UTF8' 'Seaside-Tests-InternetExplorer' 'Seaside-Tests-Email' 'Seaside-Tests-Examples' 'RSS Tests' 'Welcome Tests' 'REST Tests' 'Swagger Tests' 'Seaside-Tests-Parasol');
group: 'Development' with: #('Core' 'Seaside-Development' );
group: 'Development Tests' with: #('Development' 'Core' 'Seaside-Tests-Development' );
group: 'Tests' with: #('Core' 'Seaside-Tests-Core' 'Seaside-Tests-Canvas' 'Seaside-Tests-Session' 'Seaside-Tests-Component' 'Seaside-Tests-RenderLoop' 'Seaside-Tests-Environment' 'Seaside-Tests-Flow' 'Seaside-Tests-UTF8' 'Seaside-Tests-InternetExplorer' 'Seaside-Tests-Email' 'Seaside-Tests-Examples' 'Seaside-Tests-WebComponents' 'RSS Tests' 'Welcome Tests' 'REST Tests' 'Swagger Tests' 'Seaside-Tests-Parasol');
group: 'Hotwired' with: #('Seaside-HotwireTurbo-Core');
group: 'Development' with: #('Core' 'Seaside-Development');
group: 'Development Tests' with: #('Development' 'Core' 'Seaside-Tests-Development');
group: 'Email' with: #('Seaside-Email');
group: 'Examples' with: #('Core' 'Seaside-Examples' 'Seaside-REST-Examples');
group: 'Base' with: #('Core') ].
group: 'Examples' with: #('Core' 'Seaside-Examples' 'Seaside-REST-Examples' 'Seaside-HotwireTurbo-Examples' 'Seaside-WebComponents-Examples') ].
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
baselines
baselinefilesystem: spec

spec
for: #'common'
do: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
baselines
baselinegemstone: spec

spec
for: #'gemstone'
do: [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
baselines
baselinegettext: spec

spec
for: #(#'pharo8.x' #'pharo9.x' #'pharo10.x' #'gemstone')
for: #(#'pharo8.x' #'pharo9.x' #'pharo10.x' #'pharo11.x' #'pharo12.x' #'pharo13.x' #'gemstone')
do: [
spec
package: 'Seaside-Gettext-Core'
Expand All @@ -16,28 +17,23 @@ baselinegettext: spec
group: 'Seaside-Gettext' with: #('Seaside-Gettext-Core');
group: 'Gettext-Examples' with: #('Seaside-Gettext' 'Seaside-Gettext-Examples');
group: 'Tests' with: #('Seaside-Tests-Gettext-Core' 'Gettext-Examples') ].

spec
for: #(#'pharo8.x' #'pharo9.x' #'pharo10.x')
for: #(#'pharo8.x' #'pharo9.x' #'pharo10.x' #'pharo11.x' #'pharo12.x' #'pharo13.x')
do: [
spec
package: 'Seaside-Pharo-Gettext-Core';
package: 'Seaside-Gettext-Core'
with: [ spec includes: 'Seaside-Pharo-Gettext-Core' ];
package: 'Seaside-Gettext-Slime'
with: [ spec requires: #('Seaside-Gettext-Core' 'Seaside-Pharo-Slime') ];
package: 'Seaside-Tests-Pharo-Gettext'
with: [ spec requires: 'Seaside-Pharo-Gettext-Core' ].
spec
group: 'Gettext-Slime'
with: #('Seaside-Gettext' 'Seaside-Gettext-Slime');
group: 'Tests' with: #('Seaside-Tests-Pharo-Gettext') ].

spec
for: #(#'gemstone')
do: [
spec
package: 'Seaside-GemStone-Gettext-Core';
"package: 'Seaside-GemStone-Gettext-Examples';"
package: 'Seaside-Gettext-Core'
with: [ spec includes: #('Seaside-GemStone-Gettext-Core') ]";
package: 'Seaside-Gettext-Examples'
with: [ spec includes: #('Seaside-GemStone-Gettext-Examples') ]" ]
with: [ spec includes: #('Seaside-GemStone-Gettext-Core') ] ]
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ baselinejavascript: spec
package: 'Javascript-Core'
with: [ spec includes: #('Javascript-GemStone-Core') ];
package: 'Javascript-GemStone-Core'
with: [ spec requires: #('Javascript-Core') ] ].
with: [ spec requires: #('Javascript-Core') ] ].
Loading

0 comments on commit e34adad

Please sign in to comment.