Skip to content

Commit

Permalink
Merge branch 'develop' into feature/ssh/show-ssh-fingerprints
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonEntholzer authored Nov 9, 2024
2 parents 9c5cc4d + 64f95cd commit 83d2d3f
Show file tree
Hide file tree
Showing 332 changed files with 7,939 additions and 9,419 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Refer to [Using JHipster in production](http://www.jhipster.tech/production) for
The following command can automate the deployment to a server. The example shows the deployment to the main Artemis test server (which runs a virtual machine):

```shell
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.6.5.war
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.7.0.war
```

## Architecture
Expand Down
25 changes: 13 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ plugins {
id "com.github.ben-manes.versions" version "0.51.0"
id "com.github.andygoossens.modernizer" version "${modernizer_plugin_version}"
id "com.gorylenko.gradle-git-properties" version "2.4.2"
id "org.owasp.dependencycheck" version "11.0.0"
id "org.owasp.dependencycheck" version "11.1.0"
id "com.adarshr.test-logger" version "4.0.0"
}

group = "de.tum.cit.aet.artemis"
version = "7.6.5"
version = "7.7.0"
description = "Interactive Learning with Individual Feedback"

java {
Expand Down Expand Up @@ -177,7 +177,7 @@ jacocoTestCoverageVerification {
counter = "INSTRUCTION"
value = "COVEREDRATIO"
// TODO: in the future the following value should become higher than 0.92
minimum = 0.894
minimum = 0.892
}
limit {
counter = "CLASS"
Expand Down Expand Up @@ -249,6 +249,7 @@ dependencies {

implementation "de.jplag:c:${jplag_version}"
implementation "de.jplag:cpp:${jplag_version}"
implementation "de.jplag:csharp:${jplag_version}"
implementation "de.jplag:java:${jplag_version}"
implementation "de.jplag:javascript:${jplag_version}"
implementation "de.jplag:kotlin:${jplag_version}"
Expand Down Expand Up @@ -313,15 +314,15 @@ dependencies {
implementation "ch.qos.logback:logback-classic:${logback_version}"
implementation "ch.qos.logback:logback-core:${logback_version}"
// required by eureka client
implementation "com.thoughtworks.xstream:xstream:1.4.20"
implementation "com.thoughtworks.xstream:xstream:1.4.21"
// required by JPlag
implementation "xerces:xercesImpl:2.12.2"
// required by JPlag
implementation "xalan:xalan:2.7.3"
// required by JPlag
implementation "xalan:serializer:2.7.3"
// required by Saml2
implementation "org.apache.santuario:xmlsec:4.0.2"
implementation "org.apache.santuario:xmlsec:4.0.3"

implementation "org.jsoup:jsoup:1.18.1"
implementation "commons-codec:commons-codec:1.17.1" // needed for spring security saml2
Expand Down Expand Up @@ -373,7 +374,7 @@ dependencies {
implementation "javax.cache:cache-api:1.1.1"
implementation "org.hibernate.orm:hibernate-core:${hibernate_version}"

implementation "com.zaxxer:HikariCP:6.0.0"
implementation "com.zaxxer:HikariCP:6.1.0"

implementation "org.apache.commons:commons-text:1.12.0"
implementation "org.apache.commons:commons-math3:3.6.1"
Expand Down Expand Up @@ -421,7 +422,7 @@ dependencies {
implementation "org.springframework.security:spring-security-oauth2-core:${spring_security_version}"
implementation "org.springframework.security:spring-security-oauth2-client:${spring_security_version}"
// use newest version of nimbus-jose-jwt to avoid security issues through outdated dependencies
implementation "com.nimbusds:nimbus-jose-jwt:9.41.2"
implementation "com.nimbusds:nimbus-jose-jwt:9.46"

implementation "org.springframework.security:spring-security-oauth2-jose:${spring_security_version}"
implementation "org.springframework.security:spring-security-crypto:${spring_security_version}"
Expand All @@ -439,15 +440,15 @@ dependencies {
runtimeOnly "io.jsonwebtoken:jjwt-impl:${jwt_version}"
runtimeOnly "io.jsonwebtoken:jjwt-jackson:${jwt_version}"

implementation "org.bouncycastle:bcpkix-jdk18on:1.78.1"
implementation "org.bouncycastle:bcprov-jdk18on:1.78.1"
implementation "org.bouncycastle:bcpkix-jdk18on:1.79"
implementation "org.bouncycastle:bcprov-jdk18on:1.79"

implementation "com.mysql:mysql-connector-j:9.1.0"
implementation "org.postgresql:postgresql:42.7.4"

implementation "org.zalando:problem-spring-web:0.29.1"
implementation "org.zalando:jackson-datatype-problem:0.27.1"
implementation "com.ibm.icu:icu4j-charset:75.1"
implementation "com.ibm.icu:icu4j-charset:76.1"
implementation "com.github.seancfoley:ipaddress:5.5.1"
implementation "org.apache.maven:maven-model:3.9.9"
implementation "org.apache.pdfbox:pdfbox:3.0.3"
Expand All @@ -468,7 +469,7 @@ dependencies {
implementation "com.google.code.gson:gson:2.11.0"


implementation "com.google.errorprone:error_prone_annotations:2.34.0"
implementation "com.google.errorprone:error_prone_annotations:2.35.1"

// NOTE: we want to keep the same unique version for all configurations, implementation and annotationProcessor
implementation("net.bytebuddy:byte-buddy") {
Expand Down Expand Up @@ -536,7 +537,7 @@ dependencies {
testImplementation "org.awaitility:awaitility:4.2.2"
testImplementation "org.apache.maven.shared:maven-invoker:3.3.0"
testImplementation "org.gradle:gradle-tooling-api:8.10.2"
testImplementation "org.apache.maven.surefire:surefire-report-parser:3.5.1"
testImplementation "org.apache.maven.surefire:surefire-report-parser:3.5.2"
testImplementation "com.opencsv:opencsv:5.9"
testImplementation("io.zonky.test:embedded-database-spring-test:2.5.1") {
exclude group: "org.testcontainers", module: "mariadb"
Expand Down
3 changes: 2 additions & 1 deletion docs/admin/setup/distributed.rst
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,6 @@ These credentials are used to clone repositories via HTTPS. You must also add th
specify-concurrent-builds: true # Set to false, if the number of concurrent build jobs should be chosen automatically based on system resources
concurrent-build-size: 1 # If previous value is true: Set to desired value but keep available system resources in mind
asynchronous: true
timeout-seconds: 240 # Time limit of a build before it will be cancelled
build-container-prefix: local-ci-
image-cleanup:
enabled: true # If set to true (recommended), old Docker images will be deleted on a schedule.
Expand All @@ -620,6 +619,8 @@ These credentials are used to clone repositories via HTTPS. You must also add th
build-agent:
short-name: "artemis-build-agent-X" # Short name of the build agent. This should be unique for each build agent. Only lowercase letters, numbers and hyphens are allowed.
display-name: "Artemis Build Agent X" # This value is optional. If omitted, the short name will be used as display name. Display name of the build agent. This is shown in the Artemis UI.
build-timeout-seconds:
max: 240 # (Optional, default 240) Maximum time in seconds a build job is allowed to run. If a build job exceeds this time, it will be cancelled.
Please note that ``artemis.continuous-integration.build-agent.short-name`` must be provided. Otherwise, the build agent will not start.
Expand Down
21 changes: 21 additions & 0 deletions docs/admin/setup/programming-exercises.rst
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,24 @@ Adjust ``dockerFlags`` and ``mavenFlags`` only for student submissions, like thi
dockerFlags += ' --network none'
mavenFlags += ' --offline'
}
Timeout Options
^^^^^^^^^^^^^^^

You can adjust possible :ref:`timeout options<edit_build_duration>` for the build process in :ref:`Integrated Code Lifecycle Setup <Integrated Code Lifecycle Setup>`.
These values will determine what is the minimum, maximum, and default value for the build timeout in seconds that can be set in the Artemis UI.
The max value is the upper limit for the timeout, if the value is set higher than the max value, the max value will be used.

If you want to change these values, you need to change them in ``localci`` and ``buildagent`` nodes.
The corresponding configuration files are ``application-localci.yml`` and ``application-buildagent.yml``.


.. code-block:: yaml
artemis:
continuous-integration:
build-timeout-seconds:
min: <value>
max: <value>
default: <value>
2 changes: 1 addition & 1 deletion docs/dev/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ following dependencies/tools on your machine:
2. `MySQL Database Server 9 <https://dev.mysql.com/downloads/mysql>`__, or `PostgreSQL 17 <https://www.postgresql.org/>`_:
Artemis uses Hibernate to store entities in an SQL database and Liquibase to
automatically apply schema transformations when updating Artemis.
3. `Node.js <https://nodejs.org/en/download>`__: We use Node LTS (>=20.16.0 < 21) to compile
3. `Node.js <https://nodejs.org/en/download>`__: We use Node LTS (>=22.10.0 < 23) to compile
and run the client Angular application. Depending on your system, you
can install Node either from source or as a pre-packaged bundle.
4. `Npm <https://nodejs.org/en/download>`__: We use Npm (>=10.8.0) to
Expand Down
3 changes: 1 addition & 2 deletions docs/user/adaptive-learning/adaptive-learning-instructor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,10 @@ Create/Edit Competencies
Besides a title and description, they can set a `taxonomy <https://en.wikipedia.org/wiki/Bloom%27s_taxonomy>`_.
| The mastery threshold describes the minimum mastery required for a student to consider the competency as mastered.
The current average mastery shown on this page can be used as a basis for defining a reasonable threshold value.
| Instructors can link competencies to lecture units on this page by first choosing a lecture and then selecting desired lecture units.
|instructor-competency-edit|

Alternatively, instructors can also link competencies to an exercise or lecture unit on the respective management page using the selection box shown below.
Instructors can link competencies to an exercise or lecture unit on the respective management page using the selection box shown below.

|instructor-competency-link|

Expand Down
Binary file modified docs/user/adaptive-learning/instructor/competency-edit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exams/instructor/programming_assessment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/modeling/create-modeling-exercise-form-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/user/exercises/programming-exercise-features.inc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ Instructors can still use those templates to generate programming exercises and
+----------------------+----------+---------+
| TypeScript | yes | yes |
+----------------------+----------+---------+
| C# | yes | yes |
+----------------------+----------+---------+

- Not all ``templates`` support the same feature set and supported features can also change depending on the continuous integration system setup.
Depending on the feature set, some options might not be available during the creation of the programming exercise.
Expand Down Expand Up @@ -83,6 +85,8 @@ Instructors can still use those templates to generate programming exercises and
+----------------------+----------------------+----------------------+---------------------+--------------+------------------------------------------+------------------------------+----------------------------+------------------------+
| TypeScript | no | no | yes | no | n/a | no | no | L: yes, J: no |
+----------------------+----------------------+----------------------+---------------------+--------------+------------------------------------------+------------------------------+----------------------------+------------------------+
| C# | no | no | yes | no | n/a | no | no | L: yes, J: no |
+----------------------+----------------------+----------------------+---------------------+--------------+------------------------------------------+------------------------------+----------------------------+------------------------+

- *Sequential Test Runs*: ``Artemis`` can generate a build plan which first executes structural and then behavioral tests. This feature can help students to better concentrate on the immediate challenge at hand.
- *Static Code Analysis*: ``Artemis`` can generate a build plan which additionally executes static code analysis tools.
Expand Down
4 changes: 3 additions & 1 deletion docs/user/exercises/programming-exercise-setup.inc
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ You must then change the paths in the build script if necessary. Please refer to
- Changing the checkout paths can lead to build errors if the build script is not adapted accordingly.
- For C programming exercises, if used with the default docker image, changing the checkout paths will lead to build errors. The default docker image is configured to work with the default checkout paths.

.. _configure_static_code_analysis_tools:
.. _edit_build_duration:

Edit Maximum Build Duration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand All @@ -412,6 +412,8 @@ You can change the maximum build duration by using the slider.
.. figure:: programming/timeout-slider.png
:align: center

.. _configure_static_code_analysis_tools:

Configure static code analysis
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down
Binary file modified docs/user/exercises/programming/CodeEditor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/programming/instructor-editor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/programming/online-editor-assessment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/programming/online-editor-feedback.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/programming/programming-edit-status.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/quiz/drag-and-drop-question.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/quiz/multiple-choice-question.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/quiz/short-answer-question.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/exercises/text/create-text-exercise-form-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/icl/local-vc/commit-diff-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/icl/local-vc/current-repository-content-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 15 additions & 15 deletions docs/user/lectures.rst
Original file line number Diff line number Diff line change
Expand Up @@ -154,44 +154,44 @@ See :ref:`Adaptive Learning <adaptive-learning>` for more information.


.. |lectures-overview| image:: lectures/lectures-overview.png
:width: 800
:width: 1000
.. |lecture-details| image:: lectures/lecture-details.png
:width: 800
:width: 1000
.. |lectures-management| image:: lectures/lectures-management.png
:width: 800
:width: 1000
.. |lectures-management-btn| image:: lectures/lectures-management-button.png
:width: 80
.. |create-lecture| image:: lectures/create-lecture.png
:width: 800
:width: 1000
.. |create-lecture-btn| image:: lectures/create-lecture-button.png
:width: 120
.. |switch-to-guided-mode-btn| image:: lectures/switch-to-guided-mode-button.png
:width: 160
.. |create-attachment| image:: lectures/create-attachment.png
:width: 800
:width: 1000
.. |import-lecture| image:: lectures/import-lecture.png
:width: 800
:width: 1000
.. |import-lecture-btn| image:: lectures/import-lecture-button.png
:width: 120
.. |units-management-empty| image:: lectures/units-management-empty.png
:width: 800
:width: 1000
.. |units-management| image:: lectures/units-management.png
:width: 800
:width: 1000
.. |create-online-unit| image:: lectures/create-online-unit.png
:width: 800
:width: 1000
.. |create-text-unit| image:: lectures/create-text-unit.png
:width: 800
:width: 1000
.. |create-video-unit| image:: lectures/create-video-unit.png
:width: 800
:width: 1000
.. |create-attachment-unit| image:: lectures/create-attachment-unit.png
:width: 800
:width: 1000
.. |create-exercise-unit| image:: lectures/create-exercise-unit.png
:width: 800
:width: 1000
.. |process-units-checkbox| image:: lectures/process-units-checkbox.png
:width: 120
.. |process-units-btn| image:: lectures/process-units-btn.png
:width: 120
.. |processed-lecture-units| image:: lectures/processed-lecture-units.png
:width: 800
:width: 1000
.. |automatic-unit-processing| image:: lectures/automatic-unit-processing.png
:width: 800
:width: 1000
Binary file modified docs/user/lectures/automatic-unit-processing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-attachment-unit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-exercise-unit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-lecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-online-unit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-text-unit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/lectures/create-video-unit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/markdown-support/markdown-lecture-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/user/markdown-support/markdown-lecture-preview.png
Binary file modified docs/user/markdown-support/markdown-post-extensions-preview.png
Binary file modified docs/user/markdown-support/markdown-post-extensions.png
Binary file modified docs/user/tutorialgroups/instructors-tutorial-group-form.png
16 changes: 8 additions & 8 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ rootProject.name=Artemis
profile=dev

# Build properties
node_version=20.16.0
node_version=22.10.0
npm_version=10.8.0

# Dependency versions
jhipster_dependencies_version=8.7.1
jhipster_dependencies_version=8.7.2
spring_boot_version=3.3.5
spring_security_version=6.3.4
# TODO: upgrading to 6.6.0 currently leads to issues due to internal changes in Hibernate and potentially wrong use in Artemis server code
Expand All @@ -16,21 +16,21 @@ opensaml_version=4.3.2
jwt_version=0.12.6
jaxb_runtime_version=4.0.5
hazelcast_version=5.5.0
fasterxml_version=2.18.0
fasterxml_version=2.18.1
jgit_version=7.0.0.202409031743-r
sshd_version=2.14.0
checkstyle_version=10.18.2
checkstyle_version=10.20.1
jplag_version=5.1.0
# not really used in Artemis, nor Jplag, nor the used version of Stanford CoreNLP, but we use the latest to avoid security vulnerabilities
# NOTE: we do not need to use the latest version 9.x here as long as Stanford CoreNLP does not reference it
lucene_version=8.11.4
slf4j_version=2.0.16
sentry_version=7.16.0
liquibase_version=4.29.2
liquibase_version=4.30.0
docker_java_version=3.4.0
logback_version=1.5.11
logback_version=1.5.12
java_parser_version=3.26.2
byte_buddy_version=1.15.7
byte_buddy_version=1.15.10

# testing
# make sure both versions are compatible
Expand All @@ -43,7 +43,7 @@ mockito_version=5.14.2
gradle_node_plugin_version=7.1.0
apt_plugin_version=0.21
liquibase_plugin_version=2.1.1
modernizer_plugin_version=1.9.3
modernizer_plugin_version=1.10.0

org.gradle.jvmargs=-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en \
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
Expand Down
9 changes: 6 additions & 3 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ const esModules = [
'd3-array',
'd3-brush',
'd3-color',
'd3-dispatch',
'd3-drag',
'd3-ease',
'd3-force',
'd3-format',
'd3-hierarchy',
'd3-interpolate',
'd3-path',
'd3-quadtree',
'd3-scale',
'd3-selection',
'd3-shape',
Expand Down Expand Up @@ -102,10 +105,10 @@ module.exports = {
coverageThreshold: {
global: {
// TODO: in the future, the following values should increase to at least 90%
statements: 87.52,
branches: 73.62,
statements: 87.55,
branches: 73.68,
functions: 82.12,
lines: 87.57,
lines: 87.61,
},
},
coverageReporters: ['clover', 'json', 'lcov', 'text-summary'],
Expand Down
Loading

0 comments on commit 83d2d3f

Please sign in to comment.