Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V5.4.0-rc1 to master #5272

Open
wants to merge 114 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
c83f16d
test(StorageManager): convert TTE tests to MTE
keturn Jun 11, 2022
03dd618
test: add a subsystem with default naming to make custom test subsyst…
keturn Jun 13, 2022
cb32dad
Merge branch 'develop' into test/5032/storageManagerMTE
keturn Jun 26, 2022
4c595f9
chore: prepare snapshot builds for 5.4.0-SNAPSHOT
jdrueckert Sep 3, 2022
b496df4
Merge branch 'develop' into test/5032/storageManagerMTE
jdrueckert Sep 26, 2022
16993c1
Merge pull request #5045 from MovingBlocks/test/5032/storageManagerMTE
keturn Oct 1, 2022
68ddfff
chore(StorageManager): replace TaskMaster with Reactor
keturn Jun 9, 2022
f8f6f89
Merge pull request #4800 from MovingBlocks/refactor/rework-transactio…
keturn Oct 15, 2022
4ad7b68
ci: add workflow to auto-add issues and PRs to projects (#5070)
jdrueckert Nov 5, 2022
232909c
ci: add workflow autoclosing issues with unresponsive authors (#5071)
jdrueckert Nov 5, 2022
e8380cf
ci: fix syntax errors in project-autoadd workflow
jdrueckert Nov 13, 2022
df98a45
ci: fix project-autoadd github action (#5080)
jdrueckert Nov 26, 2022
f95b815
doc: document restrictions for BindButtonEvent (#5079)
skaldarnar Nov 26, 2022
119dbec
fix: remove Rendering Module Settings screen (#5083)
skaldarnar Dec 17, 2022
2666812
feat: add check for facet provider requirements (#5073)
MrGizmo123 Dec 17, 2022
ecf17d9
test(MTE): new parametrizable IntegrationEnvironment annotation for M…
keturn Dec 18, 2022
2dab9f6
refactor: head bobbing setting title
NikitasMaragkos Jan 28, 2023
a2cdbd5
build(distribution): re-enable SecurityManager in distributions runni…
BenjaminAmos Apr 6, 2023
8943264
doc: replace LGTM badges with code climate (#5095)
sfavello Apr 10, 2023
4c177c6
ci: update autoclose file version and fix github username (#5097)
sfavello Apr 12, 2023
2404f94
fix: disable SecurityManager at runtime when using Java 18 and above
BenjaminAmos Jul 5, 2023
c89f64a
Revert "build(distribution): re-enable SecurityManager in distributio…
BenjaminAmos Jul 5, 2023
324376a
refactor: remove vr support (#5112)
jdrueckert Jul 9, 2023
37f95dc
Merge branch 'develop' into java-18-disable-securitymanager
jdrueckert Jul 11, 2023
9a9bd19
refactor!: remove TeraEd facade (#5115)
skaldarnar Jul 13, 2023
85e64df
ci: configure jenkins to abort builds if new builds are triggered (#5…
jdrueckert Jul 15, 2023
828cd51
refactor(netork)!: rewrite ping logic (#5106)
skaldarnar Jul 15, 2023
1d831ea
test(TypeHandler): More tests for empty collections (#5117)
skaldarnar Jul 16, 2023
26d5b52
refactor!: remove multi-world support (#5116)
skaldarnar Jul 17, 2023
9cca631
Merge branch 'develop' into java-18-disable-securitymanager
jdrueckert Jul 17, 2023
9b863dd
refactor: merge StartPlaying (spawn preview) screen into WorldPreGene…
jdrueckert Jul 20, 2023
e33518e
doc(facade/PC): add README (#5123)
skaldarnar Jul 31, 2023
36591e1
feat: fix ExecutorCompletionService workaround in ChunkProcessingPipe…
BenjaminAmos Aug 13, 2023
e710b36
chore: consume CrashReporter v5.0.0 (#5131)
jdrueckert Sep 3, 2023
43a7e05
build(gradle): upgrade gradle 6.4.2 >>> 8.2.1 (#5109)
DarkWeird Sep 3, 2023
1ce6368
build: Add Gradle task to assemble module build harness (#5137)
skaldarnar Sep 10, 2023
aa43873
Merge branch 'develop' into java-18-disable-securitymanager
jdrueckert Sep 24, 2023
55f30ff
Merge pull request #5107 from BenjaminAmos/java-18-disable-securityma…
BenjaminAmos Sep 24, 2023
5957641
build: update groovy wrapper (#5141)
jdrueckert Sep 25, 2023
f907533
New Artifactory URL (#5142)
Cervator Sep 26, 2023
c7d9a37
gradle 8.3, supporting java-20 via its kotlin dependency
soloturn Sep 17, 2023
983bba1
Merge pull request #5138 from soloturn/gradle-8.3
BenjaminAmos Oct 1, 2023
bef4757
gradle-8.4, fix pmd warnings
soloturn Oct 7, 2023
1494c02
Merge pull request #5146 from soloturn/develop
BenjaminAmos Oct 16, 2023
254db60
fix: make entity dump filename windows compatible (#5145)
jdrueckert Oct 18, 2023
4d79e5e
convert settings.gradle to kotlin (#5147)
soloturn Oct 21, 2023
c3e2466
Update build files to remove deprecation warnings
PurityLake Aug 21, 2023
5938af4
Fixed a build deprecation warning
PurityLake Aug 21, 2023
ec81b2b
gradle warnings, integrate review comments from BenjaminAmos
soloturn Oct 26, 2023
07176f7
Merge pull request #5153 from soloturn/gradle-deprecations
BenjaminAmos Oct 26, 2023
3433696
Fix crash when system locale is complex
rzats Oct 31, 2023
2d8ef61
doc: move wiki content to docsify page (#5155)
skaldarnar Oct 31, 2023
21b7279
i18n: update Ukrainian locale with current strings (#5156)
rzats Oct 31, 2023
d5643c3
Create CNAME
skaldarnar Nov 4, 2023
13a5fa7
Delete CNAME
skaldarnar Nov 4, 2023
d3bbd77
perf(rendering): use MONO rendering stage (#5160)
skaldarnar Nov 5, 2023
6b55dc1
Merge branch 'develop' into fix/invalid-locale
jdrueckert Nov 6, 2023
dc4cb4c
Fix after review
rzats Nov 7, 2023
e679a98
Merge pull request #5158 from rzats/fix/invalid-locale
rzats Nov 7, 2023
0342fad
chore: init metrics only if monitoring enabled (#5165)
jdrueckert Nov 7, 2023
7d66366
fix: move readme images back into docs folder (#5163)
jdrueckert Nov 8, 2023
478d579
doc: add link to docsified engine wiki (#5164)
jdrueckert Nov 8, 2023
8545be0
qa: logger qa, use parameterized logger (#5170)
soloturn Nov 11, 2023
1cef7c1
refactor: address IntelliJ QAPlug plugin findings (#5149)
jdrueckert Nov 11, 2023
1b286a6
test: split and improve ObjectFieldMapTypeHandlerFactoryTests (#5168)
jdrueckert Nov 13, 2023
c237660
refactor: merge universe setup into world pregen screen (#5122)
jdrueckert Nov 13, 2023
84228c1
refactor: remove unused local var for artifactview (#5175)
jdrueckert Nov 17, 2023
3aa68c0
Compile against Java 17 (#5162)
BenjaminAmos Nov 17, 2023
8b4b6b9
qa: fix typehandlerlibrary spotbugs findings (#5154)
soloturn Nov 18, 2023
432bcb5
doc: fix broken links (#5172)
jdrueckert Nov 18, 2023
317154b
qa: consume TeraConfig v2.2.0 (#5179)
jdrueckert Nov 19, 2023
c56c4dd
qa: parametrize logger usages (#5173)
jdrueckert Nov 19, 2023
4f42a8f
revert: "qa: parametrize logger usages (#5173)" (#5180)
jdrueckert Nov 19, 2023
48b5034
doc: Contributor Quick Start JDK 17 (#5184)
jdrueckert Nov 22, 2023
1f3e359
qa: improve code quality in engine tests (#5178)
soloturn Dec 3, 2023
1b57c1b
build: update dependencies (#5189)
soloturn Dec 5, 2023
d81cc97
refactor: component field visibility public (#5191)
jdrueckert Dec 6, 2023
0c2b722
qa: parametrize logger usages (#5181)
jdrueckert Dec 6, 2023
bf78a58
prepare switch over to kotlin, "new" java date formatting (#5195)
soloturn Dec 23, 2023
14937d2
Terasology engine (#5192)
soloturn Dec 24, 2023
2f6b32c
remove double javadoc, static is uppercase (#5199)
soloturn Jan 3, 2024
f3140ef
build: prepare subprojects.settings.gradle for kotlin (#5204)
soloturn Jan 6, 2024
8f37f92
build: migrate subprojects.settings.gradle to kotlin (#5203)
soloturn Jan 8, 2024
1363a5d
convert main build.gradle to kotlin (#5197)
soloturn Jan 20, 2024
3e9b5b6
remove logback RegexFilterAction, not supported any more (#5193)
soloturn Jan 20, 2024
dbb0dae
refactor: use logger instead of `System.out.println` (#5188)
soloturn Jan 21, 2024
20da7f2
chore: upgrade slf4j to 2.0.11 (#5207)
soloturn Jan 21, 2024
285ba2f
build: convert engine-tests build.gradle to kotlin (#5202)
soloturn Jan 27, 2024
397652e
chore: consume gestalt v7.2.0 (#5210)
jdrueckert Feb 4, 2024
ae83461
fix(arm64): lwjgl for macOS-arm64, protoc 3.17.0 -> 3.22.0
priya4991 Feb 18, 2024
23b83d6
feat: prevent serialisation of private component fields (#5208)
BenjaminAmos Mar 3, 2024
ed7a3d6
test: add private serialisation cases to type serialiser tests (#5217)
BenjaminAmos Mar 8, 2024
10857c5
doc: remove gooey tour link (#5218)
jdrueckert Mar 8, 2024
b3edb2c
chore: remove year from idea copyright template (#5221)
jdrueckert Mar 10, 2024
bcae39f
doc: guidance on PMD guard log statement warning (#5220)
jdrueckert Mar 10, 2024
1b48033
doc: link TypeHandlerLibrary readme (#5222)
jdrueckert Mar 13, 2024
d0c6e86
introduce JUnit tag "flaky", to exclude tests from running. (#5231)
soloturn Apr 5, 2024
82fd5c4
chore: update gradle to 8.7 (#5230)
soloturn Apr 6, 2024
215e968
feat: make WorldConfigurator subscribable (#5233)
jdrueckert Apr 14, 2024
5eceac7
chore: update JNBullet to 1.0.4 (#5225)
skaldarnar Apr 20, 2024
84dd22e
refactor: merge world config in setup screen (#5226)
jdrueckert Apr 21, 2024
1c52f5e
feat: throttle chunk processing based on deadline (#5238)
BenjaminAmos Apr 26, 2024
33dabf5
feat: make number of chunk processing threads configurable (#5237)
BenjaminAmos Apr 28, 2024
072d207
update sonar version for qa (#5194)
soloturn May 4, 2024
81b53f4
fix: fix windowed fullscreen overlapping taskbar on Windows (#5243)
Khaled-Dridi May 7, 2024
66d62f5
fix(facades): fix command line args not working
Imitater967 May 9, 2024
6077f50
Merge pull request #5245 from Imitater967/fix-broken-parameter
Cervator May 10, 2024
13c07b8
convert engine build to kotlin (#5196)
soloturn May 14, 2024
30bc83a
chore: screen merge follow-ups (#5241)
jdrueckert May 16, 2024
0c00a08
qa: address PMD GuardLogStatement warnings (#5209)
soloturn May 17, 2024
304d7be
ui: reduce button height to text field height (#5248)
jdrueckert May 30, 2024
6fd4cc9
doc: fix broken forum links (#5249)
jdrueckert May 30, 2024
9b498fa
fix: fix server crash when executing console commands (#5250)
BenjaminAmos Jun 2, 2024
05373e9
fix(Movement): water super jump bug (#5252)
engiValk Jun 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
File renamed without changes.
24 changes: 24 additions & 0 deletions .github/workflows/autoclose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Close issues due to author inactivity
on:
schedule:
- cron: "30 15 * * 6"

jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v8
with:
only-labels: "Status: Needs Author Input"
days-before-issue-stale: 30
days-before-issue-close: 90
stale-issue-label: "Status: Stale"
stale-issue-message: "Hey there @ ${{ github.event.issue.user.login }} , we want to express our appreciation for your initial contribution to this issue. However, we now mark it as stale since we haven't received any response from you in the past 30 days. If you're still available, we would greatly appreciate it if you could provide answers to any open questions and/or share the requested feedback/input. Thank you for your consideration, we hope to hear from you soon!"
close-issue-message: "Hey there @ ${{ github.event.issue.user.login }} , we want to express our appreciation for your initial contribution to this issue. However, we now mark it as closed since we haven't received any response from you in the past 90 days. If you're still available, we would greatly appreciate it if you could provide answers to any open questions and/or share the requested feedback/input. Thank you for your consideration, we hope to hear from you soon!"
close-issue-reason: "not_planned"
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}
61 changes: 61 additions & 0 deletions .github/workflows/project-autoadd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Auto Assign to Projects

on:
issues:
types: [opened, labeled]
pull_request:
types: [opened, labeled]

jobs:
add_opened_to_inbox_board:
name: Add New Issue/PR to Terasology Inbox Board
if: github.event.action == 'opened'
runs-on: ubuntu-latest
steps:
- name: Add to inbox board
uses: actions/add-to-project@v0.3.0
with:
project-url: 'https://github.com/orgs/MovingBlocks/projects/26'
github-token: ${{ secrets.PROJECT_GITHUB_TOKEN }}
add_bug_labeled_to_bug_board:
name: Assign bug report issues and pull requests to bug board backlog
if: |
contains(github.event.issue.labels.*.name, 'Type: Bug') ||
contains(github.event.pull_request.labels.*.name, 'Type: Bug')
runs-on: ubuntu-latest
steps:
- name: Add to bug board
uses: actions/add-to-project@v0.3.0
with:
project-url: 'https://github.com/orgs/MovingBlocks/projects/29'
github-token: ${{ secrets.PROJECT_GITHUB_TOKEN }}
add_maintenance_to_stabilization_board:
name: Assign stabilization / refactoring / chore issues and pull requests to stabilization board backlog
if: |
github.event.action != 'opened' &&
( contains(github.event.issue.labels.*.name, 'Type: Refactoring') ||
contains(github.event.pull_request.labels.*.name, 'Type: Refactoring') ||
contains(github.event.issue.labels.*.name, 'Type: Chore') ||
contains(github.event.pull_request.labels.*.name, 'Type: Chore') ||
contains(github.event.issue.labels.*.name, 'Topic: Stabilization') && !contains(github.event.issue.labels.*.name, 'Type: Bug') ||
contains(github.event.pull_request.labels.*.name, 'Topic: Stabilization') && !contains(github.event.pull_request.labels.*.name, 'Type: Bug') )
runs-on: ubuntu-latest
steps:
- name: Add to stabilization board
uses: actions/add-to-project@v0.3.0
with:
project-url: 'https://github.com/orgs/MovingBlocks/projects/25'
github-token: ${{ secrets.PROJECT_GITHUB_TOKEN }}
add_features_to_feature_board:
name: Assign improvement issues and pull requests to feature board backlog
if: |
github.event.action != 'opened' &&
contains(github.event.issue.labels.*.name, 'Type: Improvement') && !contains(github.event.issue.labels.*.name, 'Topic: Stabilization') ||
contains(github.event.pull_request.labels.*.name, 'Type: Improvement') && !contains(github.event.pull_request.labels.*.name, 'Topic: Stabilization')
runs-on: ubuntu-latest
steps:
- name: Add to feature board
uses: actions/add-to-project@v0.3.0
with:
project-url: 'https://github.com/orgs/MovingBlocks/projects/27'
github-token: ${{ secrets.PROJECT_GITHUB_TOKEN }}
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
extensions
/facades/*
!/facades/PC
!/facades/TeraEd
!/facades/subprojects.gradle
/modules/*
!/modules/subprojects.gradle
Expand Down
4 changes: 2 additions & 2 deletions .idea/copyright/Terasology_Foundation.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 0 additions & 27 deletions .idea/runConfigurations/TeraEd__rendering_editor_.xml

This file was deleted.

34 changes: 28 additions & 6 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ properties([
// that can't simply be turned off
copyArtifactPermission('*'),
// Flag for Jenkins to discard attached artifacts after x builds
buildDiscarder(logRotator(artifactNumToKeepStr: artifactBuildsToKeep))
buildDiscarder(logRotator(artifactNumToKeepStr: artifactBuildsToKeep)),
// configure Jenkins to abort a build if a new one is triggered for the same branch
disableConcurrentBuilds(abortPrevious: true)
])

/**
Expand All @@ -34,7 +36,7 @@ properties([

pipeline {
agent {
label 'ts-engine && heavy && java11'
label 'ts-engine && heavy && java17'
}
stages {
// declarative pipeline does `checkout scm` automatically when hitting first stage
Expand Down Expand Up @@ -119,7 +121,7 @@ pipeline {

stage('Analytics') {
steps {
sh './gradlew --console=plain check -x test'
sh './gradlew --console=plain check -x test -x pmdMain -x pmdTest -x pmdJmh' // TODO: Probably more cleanly remove PMD overall if no use?
}
post {
always {
Expand All @@ -138,8 +140,7 @@ pipeline {

recordIssues(skipBlames: true, enabledForFailure: true,
tools: [
spotBugs(pattern: '**/build/reports/spotbugs/*.xml', useRankAsPriority: true),
pmdParser(pattern: '**/build/reports/pmd/*.xml')
spotBugs(pattern: '**/build/reports/spotbugs/*.xml', useRankAsPriority: true)
])

recordIssues(skipBlames: true, enabledForFailure: true,
Expand All @@ -157,7 +158,7 @@ pipeline {
}
}

stage('Integration Tests') {
stage('Integration Tests (without flaky tests)') {
steps {
sh './gradlew --console=plain integrationTest'
}
Expand All @@ -175,5 +176,26 @@ pipeline {
}
}
}

stage('Integration Tests (flaky tests only)') {
steps {
warnError("Integration Tests Failed") { // if this errs, mark the build unstable, not failed.
sh './gradlew --console=plain integrationTestFlaky'
}
}
post {
always {
// Gradle generates both a HTML report of the unit tests to `build/reports/tests/*`
// and XML reports to `build/test-results/*`.
// We need to upload the XML reports for visualization in Jenkins.
//
// See https://docs.gradle.org/current/userguide/java_testing.html#test_reporting
junit testResults: '**/build/test-results/integrationTestFlaky/*.xml', allowEmptyResults: true
// Jenkins truncates large test outputs, so archive it as well.
tar file: 'build/integrationTestFlaky-results.tgz', archive: true, compress: true, overwrite: true,
glob: '**/build/test-results/integrationTestFlaky/*.xml'
}
}
}
}
}
48 changes: 25 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,34 @@
<a href="https://github.com/MovingBlocks/Terasology/releases/latest">
<img src="https://img.shields.io/github/release/MovingBlocks/Terasology.svg" alt="Release" />
</a>
<a href="http://www.apache.org/licenses/LICENSE-2.0">
<a href="https://www.apache.org/licenses/LICENSE-2.0">
<img src="https://img.shields.io/badge/license(code)-Apache%202.0-blue.svg" alt="License (Code)" />
</a>
<a href="http://creativecommons.org/licenses/by/4.0/">
<a href="https://creativecommons.org/licenses/by/4.0/">
<img src="https://img.shields.io/badge/license(art)-CC%20BY%204.0-blue.svg" alt="License (Art)" />
</a>
<a href="https://lgtm.com/projects/g/MovingBlocks/Terasology/alerts/">
<img src="https://img.shields.io/lgtm/alerts/g/MovingBlocks/Terasology.svg?logo=lgtm&logoWidth=18" alt="LGTM Alerts" />
<a href="https://codeclimate.com/" target="_blank" alt="Code climate">
<img src="https://img.shields.io/codeclimate/maintainability/MovingBlocks/Terasology" alt="Code climate maintainability" />
</a>
<a href="https://lgtm.com/projects/g/MovingBlocks/Terasology/context:java">
<img src="https://img.shields.io/lgtm/grade/java/g/MovingBlocks/Terasology.svg?logo=lgtm&logoWidth=18" alt="Java Grade" />
<a href="https://codeclimate.com/" target="_blank" alt="Code climate" >
<img src="https://img.shields.io/codeclimate/tech-debt/MovingBlocks/Terasology" alt="Code climate tech debt" />
</a>
<a href="https://codeclimate.com/" target="_blank" alt="Code climate">
<img src="https://img.shields.io/codeclimate/issues/MovingBlocks/Terasology" alt="Code climate issues" />
</a>
</div>

<h3 align="center"><b>
<a href="#community">Community</a> |
<a href="#installation">Installation</a> |
<a href="#development">Development</a> |
<a href="#license">License</a>
<a href="#license">License</a> |
<a href="https://terasology.org/Terasology/#/">Knowledge Base</a>
</b></h3>

The _Terasology_ project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gameplay settings in a voxel world.
The [creators and maintainers](https://github.com/MovingBlocks/Terasology/blob/develop/docs/Credits.md) are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage others to join!
We encourage contributions from anybody and try to keep a warm and friendly community and maintain a [code of conduct](docs/CODE_OF_CONDUCT.md).
The [creators and maintainers](https://github.com/MovingBlocks/Terasology/graphs/contributors) are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage others to join!
We encourage contributions from anybody and try to keep a warm and friendly community and maintain a [code of conduct](.github/CODE_OF_CONDUCT.md).

## Community

Expand All @@ -48,7 +52,7 @@ We are present in nearly the complete round-up of social networks. Follow/friend
<img src="./docs/images/facebook.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Reddit" href="http://www.reddit.com/r/Terasology">
<a title="Reddit" href="https://www.reddit.com/r/Terasology">
<img src="./docs/images/reddit.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
Expand All @@ -65,7 +69,6 @@ We are present in nearly the complete round-up of social networks. Follow/friend
</a>
</p>


## Installation

<table>
Expand Down Expand Up @@ -104,16 +107,16 @@ We are present in nearly the complete round-up of social networks. Follow/friend

Internet connectivity is required for downloading Terasology via the Launcher, afterwards playing offline is possible.

For easy game setup (recommended) you can use our launcher - [download it here](https://terasology.org/download.html).
For easy game setup (recommended) you can use our launcher - [download it here](https://terasology.org/downloads/).

For more information about playing, like hot keys or server hosting, see the [dedicated page](docs/Playing.md) or check out the [modules](docs/Modules.md).


### Alternative Installation Methods

If you already have a Java Development Kit (JDK) installed, you may use a direct download release as an alternative to using the [launcher](https://github.com/MovingBlocks/TerasologyLauncher/releases). Java version 11 is required.
If you already have a Java Development Kit (JDK) installed, you may use a direct download release as an alternative to using the [launcher](https://github.com/MovingBlocks/TerasologyLauncher/releases). Java version 17 is required.

Direct download stable builds are uploaded to [our release section here on GitHub](https://github.com/MovingBlocks/Terasology/releases) while the cutting-edge develop version can be downloaded direct [here from our Jenkins](https://jenkins.terasology.io/teraorg/job/Terasology/job/Omega/job/master/lastSuccessfulBuild/artifact/distros/omega/build/distributions/TerasologyOmega.zip).
ßDirect download stable builds are uploaded to [our release section here on GitHub](https://github.com/MovingBlocks/Terasology/releases) while the cutting-edge develop version can be downloaded direct [here from our Jenkins](https://jenkins.terasology.io/job/Terasology/job/Omega/job/develop/lastSuccessfulBuild/artifact/distros/omega/build/distributions/TerasologyOmega.zip).


## Development
Expand All @@ -123,7 +126,7 @@ Development is possible on all common platforms (Windows, Linux, MacOS) as long
### Requirements

Technical Requirements:
- Java SE Development Kit (JDK) 11. The CI will verify against this baseline version.
- Java SE Development Kit (JDK) 17. The CI will verify against this baseline version.
<br>Using newer Java versions may cause issues (see [#3976](https://github.com/MovingBlocks/Terasology/issues/3976)).
- Git to clone the repo and commit changes.

Expand All @@ -134,8 +137,8 @@ Non-Technical Requirements:
### Workspace Setup

To be able to run **Terasology** from source, you'll need to setup your workspace.
Follow the [Contributor Quick Start Guide](https://github.com/MovingBlocks/Terasology/wiki/Contributor-Quick-Start).
This guide is designed for [IntelliJ IDEA](http://www.jetbrains.com/idea/) (you can use the free community edition), but alternative setups are possible.
Follow the [Contributor Quick Start Guide](https://terasology.org/Terasology/#/Contributor-Quick-Start).
This guide is designed for [IntelliJ IDEA](https://www.jetbrains.com/idea/) (you can use the free community edition), but alternative setups are possible.

> :warning: _Note, that a Terasology workspace is a **multi-repo workspace**._

Expand All @@ -144,17 +147,16 @@ While your workspace itself is a clone of [MovingBlocks/Terasology](https://gith
Accordingly, if you want to contribute to modules, you'll need to navigate into the respective subdirectory and work with Git from in there.
Any Git commands executed in your workspace root will target [MovingBlocks/Terasology](https://github.com/MovingBlocks/Terasology).

For more information, see our wiki entry on [Understanding Terasology's Git Setup](https://github.com/MovingBlocks/Terasology/wiki/Developing-Modules#understanding-terasologys-git-setup).
For more information, see our wiki entry on [Understanding Terasology's Git Setup](https://terasology.org/Terasology/#/Developing-Modules?id=understanding-terasology39s-git-setup).


### Contributing

Detailed information on how to contribute can be found in [CONTRIBUTING.md](./.github/CONTRIBUTING.md). Remember, that all submissions must be licensed under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
Detailed information on how to contribute can be found in [CONTRIBUTING.md](.github/CONTRIBUTING.md). Remember, that all submissions must be licensed under [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).

Terasology has a rather steep learning curve in the beginning.
To help you with the learning process, our [Adventure Site](https://terasology.org/AdventureSite/#/) helps you find the resources you need according to the field of contribution you're interested in.

Additional learning resources can be found in our [wiki](https://github.com/MovingBlocks/Terasology/wiki) and our [tutorial modules](https://github.com/Terasology?q=Tutorial&type=all&language=&sort=).
To help you with the learning process, our [Terasology Knowledge Base](https://terasology.org/Terasology/#/), formerly known as the Terasology Engine wiki, helps you find the resources you need according to the field of contribution you're interested in.
Additional learning resources can be found in our [tutorial modules](https://github.com/Terasology?q=Tutorial&type=all&language=&sort=).

If you find errors or issues in any of our resources, please report them using GitHub issues and help fix them.

Expand All @@ -164,4 +166,4 @@ Developers with previous experience in rendering, physics and other less trivial

## License

Terasology is fully open source and licensed [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) for code and [Creative Commons Attribution License, Version 4.0](http://creativecommons.org/licenses/by/4.0/) for artwork (unless indicated otherwise - see credits for minor exceptions).
Terasology is fully open source and licensed [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) for code and [Creative Commons Attribution License, Version 4.0](https://creativecommons.org/licenses/by/4.0/) for artwork (unless indicated otherwise - see credits for minor exceptions).
Loading
Loading