Skip to content

Commit 6772ed2

Browse files
committed
Merge branch 'main' into url-syntax
2 parents 2435bfa + 682e7cc commit 6772ed2

1,108 files changed

Lines changed: 123393 additions & 40803 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.git-blame-ignore-revs‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# List of commits that shouldn't be included in `git blame`.
2+
# Github and other tools already support it if it's this exact filename
3+
# But you have to teach your own git about this by running this command (in this repo)
4+
# git config blame.ignoreRevsFile .git-blame-ignore-revs
5+
6+
# indent fix for JSON
7+
31b1031ade5d84f9c60e30d17da3b55e78d291fb
8+
9+
# fixing tabs & spaces mixed
10+
0d048e15683740b5c944be5333ec0680df825e47
11+
23ec4b622bbe503ef013be5a458e45ae6fd89b97
12+
200b0352084be9435c64aa60c550edd24a59131b

‎.gitattributes‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.dot diff=-astextplain

‎.github/ISSUE_TEMPLATE/stable-release-manual-testing-template.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ First a "pre-release" of the supporting compiler/typechecker tools must be done,
5151
- [ ] jump-to-definition also works to library modules and inside library modules
5252
- [ ] clicking in outline jumps to editor to right position
5353
- [ ] syntax highlighting in editor works
54-
- [ ] add dependency on another project by editing `RASCAL.MF`: `Required-Libraries: |lib://otherProject|`, import a module and test the type-checker as well as the interpreter for correct resolution
54+
- [ ] add dependency on another project by editing `pom.xml` `<dependencies> tag, import a module and test the type-checker as well as the interpreter for correct resolution
5555
- [ ] `import demo::lang::Pico::Plugin; registerPico();` and test the editor of the example pico files (syntax highlighting, menu options)
5656
- [ ] `import demo::lang::Pico::Plugin; rascal>:edit demo::lang::Pico::Plugin`
5757
- [ ] use util::IDEServices:

‎.github/workflows/build.yaml‎

Lines changed: 108 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,38 @@ on:
88
pull_request:
99
branches:
1010
- main
11+
- 'feat/*'
1112
env:
12-
MAVEN_OPTS: "-Xmx4G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
13+
MAVEN_OPTS: "-Xmx4G -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
14+
IS_OWN_PR: "${{ secrets.MAVEN_MIRROR_URL }}"
1315

1416
jobs:
1517
test-linux:
1618
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
17-
runs-on: buildjet-4vcpu-ubuntu-2204
19+
runs-on: ubicloud-standard-4
1820
steps:
19-
- uses: actions/checkout@v3
20-
- uses: actions/setup-java@v3
21+
- uses: actions/checkout@v4
22+
23+
- uses: s4u/maven-settings-action@v3.1.0
24+
if: ${{ env.IS_OWN_PR != '' }}
25+
with:
26+
servers: '[{"id": "usethesource-gh", "username":"github", "password": "${{ secrets.MAVEN_MIRROR_PASSWORD }}"}]'
27+
mirrors: '[{"id": "usethesource-gh", "name": "uts mirror", "mirrorOf": "usethesource", "url": "${{ secrets.MAVEN_MIRROR_URL }}"}]'
28+
- uses: actions/setup-java@v4
2129
with:
2230
java-version: 11
2331
distribution: 'temurin'
2432
cache: 'maven'
25-
33+
overwrite-settings: false
2634
- name: Run Tests
2735
run: mvn -B -Drascal.compile.skip -Drascal.tutor.skip -Drascal.test.memory=14 test
2836

29-
- uses: codecov/codecov-action@v3
37+
- uses: codecov/codecov-action@v4
3038
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
3139
with:
32-
token: e8b4481a-d178-4148-a4ff-502906390512
40+
fail_ci_if_error: false
41+
verbose: true
42+
token: ${{ secrets.CODECOV_TOKEN }}
3343

3444
- name: Publish Test Report on github action
3545
if: ${{ always() && github.event_name != 'pull_request' }} # to bad this doesn't work nicely with external pull requests
@@ -43,32 +53,42 @@ jobs:
4353
needs: [test-linux]
4454
permissions:
4555
contents: write
46-
runs-on: buildjet-4vcpu-ubuntu-2204
56+
runs-on: ubicloud-standard-4
57+
environment: ${{ startsWith(github.ref, 'refs/tags/v') && 'deployment' || '' }}
4758
steps:
4859
- uses: browser-actions/setup-chrome@latest
4960
with:
5061
chrome-version: 1047731 # v107
5162
- run: which chrome
52-
- uses: nanasess/setup-chromedriver@v1
63+
- uses: nanasess/setup-chromedriver@v2
5364
with:
5465
chromedriver-version: '107.0.5304.62'
5566
- run: which chromedriver
67+
68+
- uses: s4u/maven-settings-action@v3.1.0
69+
if: ${{ env.IS_OWN_PR != '' }}
70+
with:
71+
servers: '[{"id": "usethesource-gh", "username":"github", "password": "${{ secrets.MAVEN_MIRROR_PASSWORD }}"}]'
72+
mirrors: '[{"id": "usethesource-gh", "name": "uts mirror", "mirrorOf": "usethesource", "url": "${{ secrets.MAVEN_MIRROR_URL }}"}]'
5673

57-
- uses: actions/checkout@v3
58-
- uses: actions/setup-java@v3
74+
- uses: actions/checkout@v4
75+
76+
- uses: actions/setup-java@v4
5977
with:
6078
java-version: 11
6179
distribution: 'temurin'
6280
cache: 'maven'
81+
overwrite-settings: false
82+
6383

6484
- name: Compile & Bootstrap
6585
run: mvn -B compile -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -Dwebdriver.chrome.browser=`which chrome`
6686
env:
67-
MAVEN_OPTS: "-Xmx14G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
87+
MAVEN_OPTS: "-Xmx14G -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
6888

6989
- name: Test if release # just to be extra sure for a release
7090
if: startsWith(github.ref, 'refs/tags/v')
71-
run: mvn -Drascal.test.memory=10 -Drascal.compile.skip -Drascal.tutor.skip test
91+
run: mvn -Drascal.test.memory=14 -Drascal.compile.skip -Drascal.tutor.skip test
7292

7393
- name: Attach artifact
7494
id: build-artifact
@@ -78,6 +98,7 @@ jobs:
7898
-Drascal.compile.skip
7999
-Drascal.tutor.skip
80100
-DskipTests
101+
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
81102
82103
- name: Making sure test have succeeded in the parallel jobs
83104
if: startsWith(github.ref, 'refs/tags/')
@@ -87,7 +108,6 @@ jobs:
87108
jobs: |
88109
tests (macos-latest)
89110
tests (windows-latest)
90-
tests (buildjet-4vcpu-ubuntu-2204-arm)
91111
ttl: 15
92112

93113
- name: Deploy
@@ -103,37 +123,60 @@ jobs:
103123
ssh-private-key: ${{ secrets.RELEASE_SSH_PRIVATE_KEY }}
104124

105125
- name: Prepare Draft Release
106-
uses: softprops/action-gh-release@v1
126+
uses: softprops/action-gh-release@v2
107127
if: startsWith(github.ref, 'refs/tags/')
108128
with:
109129
draft: true
110130
files: ${{ steps.build-artifact.outputs.artifact-root-dir}}/**/*
111131
env:
112132
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
113133

114-
134+
# - name: prepare-unshaded
135+
# if: startsWith(github.ref, 'refs/tags/')
136+
# run: sed -i 's#<artifactId>rascal</artifactId>#<artifactId>rascal-unshaded</artifactId>#' pom.xml
137+
#
138+
# - name: Deploy unshaded jar
139+
# if: startsWith(github.ref, 'refs/tags/v')
140+
# uses: usethesource/releases-maven-action@v1
141+
# with:
142+
# maven-username: ${{ secrets.RELEASE_MAVEN_USERNAME }}
143+
# maven-password: ${{ secrets.RELEASE_MAVEN_PASSWORD }}
144+
# maven-local-port: ${{ secrets.RELEASE_MAVEN_LOCAL_PORT }}
145+
# ssh-hostname: ${{ secrets.RELEASE_SSH_SERVER }}
146+
# ssh-known-host: ${{ secrets.RELEASE_SSH_KNOWN_HOSTS }}
147+
# ssh-username: ${{ secrets.RELEASE_SSH_USERNAME }}
148+
# ssh-private-key: ${{ secrets.RELEASE_SSH_PRIVATE_KEY }}
149+
# maven-options: -Punshaded -Drascal.compile.skip -Drascal.tutor.skip -DskipTests
150+
#
115151
tests:
116152
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
117153
needs: [test-linux]
118154
runs-on: ${{matrix.os}}
119155
strategy:
120156
matrix:
121-
os: [windows-latest, macos-latest, buildjet-4vcpu-ubuntu-2204-arm]
157+
os: [windows-latest, macos-latest]
122158
env:
123-
MAVEN_OPTS: "-Xmx1G -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
159+
MAVEN_OPTS: "-Xmx512M -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
124160
steps:
125-
- uses: actions/checkout@v3
126-
- uses: actions/setup-java@v3
161+
- uses: actions/checkout@v4
162+
163+
- uses: s4u/maven-settings-action@v3.1.0
164+
if: ${{ env.IS_OWN_PR != '' }}
165+
with:
166+
servers: '[{"id": "usethesource-gh", "username":"github", "password": "${{ secrets.MAVEN_MIRROR_PASSWORD }}"}]'
167+
mirrors: '[{"id": "usethesource-gh", "name": "uts mirror", "mirrorOf": "usethesource", "url": "${{ secrets.MAVEN_MIRROR_URL }}"}]'
168+
- uses: actions/setup-java@v4
127169
with:
128170
java-version: 11
129171
distribution: 'temurin'
130172
cache: 'maven'
173+
overwrite-settings: false
131174

132175
- name: Run Tests
133176
# single quotes to help windows deal with argument splitting
134-
run: mvn -B '-Drascal.compile.skip' '-Drascal.tutor.skip' '-Drascal.test.memory=3' test
177+
run: mvn -B '-Drascal.compile.skip' '-Drascal.tutor.skip' '-Drascal.test.memory=2' test
135178

136-
- uses: codecov/codecov-action@v3
179+
- uses: codecov/codecov-action@v4
137180
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
138181
with:
139182
token: e8b4481a-d178-4148-a4ff-502906390512
@@ -145,3 +188,46 @@ jobs:
145188
with:
146189
check_name: "Test Report - ${{ runner.os }}"
147190

191+
compiler-tests:
192+
if: ${{ !(github.ref == 'refs/heads/main' && contains(github.event.head_commit.message, '[maven-release-plugin]')) }}
193+
needs: [test-linux]
194+
runs-on: ubicloud-standard-4
195+
env:
196+
MAVEN_OPTS: "-Xmx512M -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
197+
steps:
198+
- uses: actions/checkout@v4
199+
200+
- uses: s4u/maven-settings-action@v3.1.0
201+
if: ${{ env.IS_OWN_PR != '' }}
202+
with:
203+
servers: '[{"id": "usethesource-gh", "username":"github", "password": "${{ secrets.MAVEN_MIRROR_PASSWORD }}"}]'
204+
mirrors: '[{"id": "usethesource-gh", "name": "uts mirror", "mirrorOf": "usethesource", "url": "${{ secrets.MAVEN_MIRROR_URL }}"}]'
205+
- uses: actions/setup-java@v4
206+
with:
207+
java-version: 11
208+
distribution: 'temurin'
209+
cache: 'maven'
210+
overwrite-settings: false
211+
212+
- name: Retrieve dependencies for integration tests
213+
run: bash src/org/rascalmpl/compiler/lang/rascalcore/check/tests/download-test-jars.sh
214+
215+
- name: Run Tests
216+
run: mvn -B -Pcompiler-tests -Drascal.compile.skip -Drascal.tutor.skip -Drascal.test.memory=10 test
217+
218+
- uses: codecov/codecov-action@v4
219+
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
220+
with:
221+
fail_ci_if_error: false
222+
verbose: true
223+
token: ${{ secrets.CODECOV_TOKEN }}
224+
225+
- name: Publish Test Report on github action
226+
if: ${{ always() && github.event_name != 'pull_request' }} # to bad this doesn't work nicely with external pull requests
227+
continue-on-error: true # sometimes this one fails, that shouldn't stop a build
228+
uses: scacap/action-surefire-report@v1
229+
with:
230+
check_name: "Compiler Test Report"
231+
232+
233+

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ rascal-DEPENDENCIES.txt
2828

2929
dependency-reduced-pom.xml
3030
.ipynb_checkpoints
31+
__pycache__
3132
.vscode/settings.json
3233

3334
*.iml

‎.vscode/launch.json‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
55
"version": "0.2.0",
66
"configurations": [
7+
{
8+
"type": "java",
9+
"name": "RascalCheck",
10+
"request": "launch",
11+
"mainClass": "org.rascalmpl.shell.RascalCheck",
12+
"projectName": "rascal"
13+
},
714
{
815
"type": "java",
916
"name": "Launch DocRunner",
@@ -30,15 +37,16 @@
3037
"request": "launch",
3138
"mainClass": "org.rascalmpl.shell.RascalShell",
3239
"projectName": "rascal",
33-
"vmArgs": "-Xss80m -Xmx2g -ea"
40+
"vmArgs": "-Xss80m -Xmx2g -ea",
41+
"console": "integratedTerminal"
3442
},
3543
{
3644
"type": "java",
3745
"name": "Launch RascalShell Tutor",
3846
"request": "launch",
3947
"mainClass": "org.rascalmpl.shell.RascalShell",
4048
"projectName": "rascal",
41-
"cwd" : "${workspaceFolder}/../rascal-tutor",
49+
"cwd": "${workspaceFolder}/../rascal-tutor",
4250
"vmArgs": "-Xss80m -Xmx2g -ea"
4351
},
4452
{
@@ -63,7 +71,7 @@
6371
"request": "attach",
6472
"projectName": "rascal-lsp",
6573
"hostName": "localhost",
66-
"port": 9001
74+
"port": 9871
6775
},
6876
{
6977
"type": "java",

‎AUTHORS.md‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
The main authors of the Rascal project are:
2+
* Jurgen J. Vinju
3+
* Paul Klint
4+
* Tijs van der Storm
5+
* Davy Landman
6+
* Arnold Lankamp
7+
8+
And this is a complete list of contributors ordered by the amount of commits:
9+
* Anastasia Izmaylova
10+
* Pieter Olivier
11+
* Mark Hills
12+
* Tijs van der Storm
13+
* Atze van der Ploeg
14+
* Rodin Aarssen
15+
* Bert Lisser
16+
* Ashim Shahi
17+
* Michael Steindorfer
18+
* Ali Afroozeh
19+
* Ferry Rietveld
20+
* Emilie Balland
21+
* Bert Lisser
22+
* Anya Helene Bagge
23+
* Mauricio Verano Merino
24+
* Jouke Stoel
25+
* Lina Maria Ochoa Venegas
26+
* Jasper Timmer
27+
* Bas Basten
28+
* Riemer van Rozen
29+
* Sung-Shik Jongmans
30+
* Wietse Venema
31+
* Vadim Zaytsev
32+
* Jeroen van den Bos
33+
* Pieter Olivier
34+
* Linus Wagner
35+
* Joppe Kroon
36+
* Pablo Inostroza Valdera
37+
* Thomas Degueule
38+
* Aiko Yamashita
39+
* Toine Hartman
40+
* Cindy Berghuizen
41+
* Michael Godfrey
42+
* Jeroen Peeters
43+
* Athanasios Anastasiou
44+
* Davy Meers
45+
* Kevin van der Vlist
46+
* Yoan-Alexander Grigorov
47+
* Romain Briand
48+
* Cleverton Hentz
49+
* Magiel Bruntink
50+
* Mike Bierlee
51+
* Pieter Hijma
52+
* Simon Baars
53+
* Tim Soethout
54+
* Waruzjan Shahbazian
55+
* Yi Dai
56+
* Arjo Bruijnes
57+
* Auke Roorda
58+
* Diego Marcílio
59+
* Jimi van der Woning
60+
* Jonathan Leitschuh
61+
* Markus Klinik
62+
* Mary Gouseti
63+
* Mathijs Schuts
64+
* Mats Stijlaart
65+
* Nick Lodewijks
66+
* Rodrigo Bonifácio
67+
* Todd Hooper

‎CODEOWNERS‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/.github/ @DavyLandman

‎CODE_OF_CONDUCT.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ We are committed to making participation in this community a harassment-free exp
3636

3737
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
3838

39-
[Project Owners](/about/processes.html) have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Contributors who do not follow the Code of Conduct may be removed from the project team.
39+
[Project Owners](http://www.usethesource.io/about/processes.html) have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Contributors who do not follow the Code of Conduct may be removed from the project team.
4040

4141
This code of conduct applies both within project spaces and in public spaces when an individual is representing the UseTheSource community or one of its projects.
4242

43-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by [opening an issue](https://github.com/usethesource/usethesource.github.io/issues) or contacting one or more of the [Project Owners](/projects/).
43+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by [opening an issue](https://github.com/usethesource/usethesource.github.io/issues) or contacting one or more of the [Project Owners](http://www.usethesource.io/projects/).
4444

4545
This Code of Conduct is adapted from the Contributor Covenant, version 1.1.0, available from <http://contributor-covenant.org/version/1/1/0/>
4646

‎META-INF/RASCAL.MF‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
Project-Name: rascal
2-
Source: src/org/rascalmpl/library,test/org/rascalmpl/benchmark,test//org/rascalmpl/test/data
3-
Courses: src/org/rascalmpl/courses
4-
5-
2+
Source: src/org/rascalmpl/library,src/org/rascalmpl/compiler,src/org/rascalmpl/library,src/org/rascalmpl/tutor,test/org/rascalmpl/benchmark,test/org/rascalmpl/test/data

0 commit comments

Comments
 (0)