Skip to content

Commit

Permalink
Merge branch 'develop' into chore/course-query-performance
Browse files Browse the repository at this point in the history
  • Loading branch information
Strohgelaender authored Nov 26, 2024
2 parents e5f9363 + 17eb6ce commit 1bf6dca
Show file tree
Hide file tree
Showing 172 changed files with 1,791 additions and 1,835 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.7.2.war
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.7.3.war
```

## Architecture
Expand Down
27 changes: 20 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ plugins {
}

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

java {
Expand Down Expand Up @@ -345,7 +345,6 @@ dependencies {
// use newest version of commons-compress to avoid security issues through outdated dependencies
implementation "org.apache.commons:commons-compress:1.27.1"


// import JHipster dependencies BOM
implementation platform("tech.jhipster:jhipster-dependencies:${jhipster_dependencies_version}")

Expand Down Expand Up @@ -377,7 +376,7 @@ dependencies {
implementation "javax.cache:cache-api:1.1.1"
implementation "org.hibernate.orm:hibernate-core:${hibernate_version}"

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

implementation "org.apache.commons:commons-text:1.12.0"
implementation "org.apache.commons:commons-math3:3.6.1"
Expand Down Expand Up @@ -414,8 +413,13 @@ dependencies {
implementation "org.springframework.cloud:spring-cloud-starter-config:4.1.3"
implementation "org.springframework.cloud:spring-cloud-commons:4.1.4"

implementation "io.netty:netty-all:4.1.115.Final"
implementation "io.projectreactor.netty:reactor-netty:1.2.0"
implementation("io.netty:netty-common") {
version {
strictly netty_version
}
}

implementation "org.springframework:spring-messaging:6.1.14"
implementation "org.springframework.retry:spring-retry:2.0.10"

Expand All @@ -424,6 +428,7 @@ dependencies {
implementation "org.springframework.security:spring-security-core:${spring_security_version}"
implementation "org.springframework.security:spring-security-oauth2-core:${spring_security_version}"
implementation "org.springframework.security:spring-security-oauth2-client:${spring_security_version}"
implementation "org.springframework.security:spring-security-oauth2-resource-server:${spring_security_version}"
// use newest version of nimbus-jose-jwt to avoid security issues through outdated dependencies
implementation "com.nimbusds:nimbus-jose-jwt:9.47"

Expand Down Expand Up @@ -472,7 +477,7 @@ dependencies {
implementation "com.google.code.gson:gson:2.11.0"


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

// NOTE: we want to keep the same unique version for all configurations, implementation and annotationProcessor
implementation("net.bytebuddy:byte-buddy") {
Expand Down Expand Up @@ -539,13 +544,21 @@ dependencies {
testImplementation "io.github.classgraph:classgraph:4.8.179"
testImplementation "org.awaitility:awaitility:4.2.2"
testImplementation "org.apache.maven.shared:maven-invoker:3.3.0"
testImplementation "org.gradle:gradle-tooling-api:8.11"
testImplementation "org.gradle:gradle-tooling-api:8.11.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"
exclude group: "org.testcontainers", module: "mssqlserver"
}
testImplementation "org.testcontainers:testcontainers:${testcontainer_version}"
testImplementation "org.testcontainers:mysql:${testcontainer_version}"
testImplementation "org.testcontainers:postgresql:${testcontainer_version}"
testImplementation "org.testcontainers:testcontainers:${testcontainer_version}"
testImplementation "org.testcontainers:junit-jupiter:${testcontainer_version}"
testImplementation "org.testcontainers:jdbc:${testcontainer_version}"
testImplementation "org.testcontainers:database-commons:${testcontainer_version}"

testImplementation "com.tngtech.archunit:archunit:1.3.0"
testImplementation("org.skyscreamer:jsonassert:1.5.3") {
exclude module: "android-json"
Expand Down Expand Up @@ -597,7 +610,7 @@ tasks.withType(Test).configureEach {

afterTest { descriptor, result ->
if (result.resultType == TestResult.ResultType.FAILURE) {
String failedTest = "${descriptor.className}::${descriptor.name}"
var failedTest = "${descriptor.className}::${descriptor.name}"
logger.debug("Adding " + failedTest + " to failedTests...")
failedTests << [failedTest]
}
Expand Down
11 changes: 5 additions & 6 deletions docs/dev/setup/docker-compose.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Getting Started with Docker Compose
Make sure that Docker Desktop has enough memory (~ 6GB). To adapt it, go to ``Settings -> Resources``.

2. Check that all local network ports used by Docker Compose are free (e.g. you haven't started a local MySQL server
when you would like to start a Docker Compose instance of mysql)
when you would like to start a Docker Compose instance of MySQL).
3. Run ``docker compose pull && docker compose up`` in the directory ``docker/``
4. Open the Artemis instance in your browser at https://localhost
5. Run ``docker compose down`` in the directory ``docker/`` to stop and remove the docker containers
Expand Down Expand Up @@ -62,13 +62,12 @@ Three example commands to run such setups:

.. code:: bash
docker compose -f docker/atlassian.yml up
docker compose -f docker/mysql.yml -f docker/gitlab-jenkins.yml up
docker compose -f docker/artemis-dev-postgres.yml up
.. tip::
There is also a single ``docker-compose.yml`` in the directory ``docker/`` which mirrors the setup of ``artemis-prod-mysql.yml``.
This should provide a quick way, without manual changes necessary, for new contributors to startup an Artemis instance.
This should provide a quick way, without manual changes necessary, for new contributors to start up an Artemis instance.
If the documentation just mentions to run ``docker compose`` without a ``-f <file.yml>`` argument, it's
assumed you are running the command from the ``docker/`` directory.

Expand All @@ -82,7 +81,7 @@ is defined in the following files:
* ``gitlab.yml``: **GitLab Service**
* ``jenkins.yml``: **Jenkins Service**

For testing mails or SAML logins, you can append the following services to any setup with an artemis container:
For testing mails or SAML logins, you can append the following services to any setup with an Artemis container:

* ``mailhog.yml``: **Mailhog Service** (email testing tool)
* ``saml-test.yml``: **Saml-Test Service** (SAML Test Identity Provider for testing SAML features)
Expand Down Expand Up @@ -145,7 +144,7 @@ Get a shell into the containers
``docker compose exec artemis-app bash`` or if the container is not yet running:
``docker compose run --rm artemis-app bash``
- mysql container:
``docker compose exec mysql bash`` or directly into mysql ``docker compose exec mysql mysql``
``docker compose exec mysql bash`` or directly into MySQL ``docker compose exec mysql mysql``

Analog for other services.

Expand All @@ -157,7 +156,7 @@ Other useful commands
- Stop, remove containers and volumes: ``docker compose down -v``
- Remove Artemis-related volumes/state: ``docker volume rm artemis-data artemis-mysql-data``

This is helpful in setups where you just want to delete the state of artemis
This is helpful in setups where you just want to delete the state of Artemis
but not of Jenkins and GitLab for instance.
- Stop a service: ``docker compose stop <name of the service>`` (restart via
``docker compose start <name of the service>``)
Expand Down
3 changes: 2 additions & 1 deletion docs/dev/setup/jenkins-gitlab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,8 @@ and the corresponding Docker image can be found on

.. code:: bash
docker compose -f docker/<Jenkins setup to be launched>.yml up --build -d
docker compose -f docker/<Jenkins setup to be launched>.yml build --no-cache
docker compose -f docker/<Jenkins setup to be launched>.yml up -d
3. Build the new Docker image:

Expand Down
Binary file modified docs/user/exams/student/access_exam.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/exams/student/buttons/exam_hand_in_early.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 added docs/user/exams/student/buttons/save_exercise.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 added docs/user/exams/student/buttons/upload.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/exams/student/exam_bar.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/exams/student/exam_modeling_exercises.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/exams/student/exam_navigation_sidebar.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/exams/student/exam_overview.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/exams/student/exam_programming_exercises.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/exams/student/exam_quiz_exercises.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/exams/student/exam_text_exercises.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions docs/user/exams/students_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,14 @@ Welcome Screen

Welcome Screen, waiting for exam start

This video offers a detailed guide on accessing your exams:

.. raw:: html

<iframe src="https://live.rbg.tum.de/w/artemisintro/52546?video_only=1&t=0" allowfullscreen="1" frameborder="0" width="600" height="350">
Watch this video on TUM-Live.
</iframe>

Exam Conduction
^^^^^^^^^^^^^^^
- Once the exam working time starts and you have confirmed your participation, the *Exercise Overview* screen will appear. This screen lists all exercises that are part of your exam with their respective amount of points, title and exercise type. The status column indicates the status of each exercise and whether you have a submission in them or not.
Expand Down Expand Up @@ -132,6 +140,14 @@ Exam Conduction

Exam Navigation Sidebar

- You have two options to save your changes for an exercise:

1. Click the |save_exercise| button to manually save and submit your changes.
2. Select an exercise in the navigation sidebar (either the current one or a different exercise), which will automatically save and submit your changes.

.. warning::
The |save_exercise| button is only available for text, modeling, and quiz exercises. For file upload exercises, you need to manually click the |upload| button, and for programming exercises, you need to manually click the |submit| button to save and submit your changes.

- On the header, you will find the exam bar that includes the remaining time and the |exam_hand_in_early| button. If you click this button, you will be sent to the exam `End Screen`_.
- The *time left* until the end of the exam is also shown next to the button.

Expand Down Expand Up @@ -373,6 +389,14 @@ Summary

Complaining about the Assessment of a Text Exercise

This video offers a detailed guide on participating in your exams:

.. raw:: html

<iframe src="https://live.rbg.tum.de/w/artemisintro/53405?video_only=1&t=0" allowfullscreen="1" frameborder="0" width="600" height="350">
Watch this video on TUM-Live.
</iframe>

Example Solutions
^^^^^^^^^^^^^^^^^
- If the instructor sets the example solution publication date of the exam, the solutions will be available after that date.
Expand Down Expand Up @@ -470,3 +494,5 @@ Grades
.. |exam_no_results_found| image:: student/buttons/exam_no_results_found.png
.. |exam_hand_in_early| image:: student/buttons/exam_hand_in_early.png
.. |saved_exercises| image:: student/buttons/saved_exercises.png
.. |upload| image:: student/buttons/upload.png
.. |save_exercise| image:: student/buttons/save_exercise.png
10 changes: 6 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ npm_version=10.8.0

# Dependency versions
jhipster_dependencies_version=8.7.2
spring_boot_version=3.3.5
spring_security_version=6.3.4
spring_boot_version=3.3.6
spring_security_version=6.3.5
# TODO: upgrading to 6.6.0 currently leads to issues due to internal changes in Hibernate and potentially wrong use in Artemis server code
hibernate_version=6.4.10.Final
# TODO: can we update to 5.x?
Expand All @@ -25,18 +25,20 @@ jplag_version=5.1.0
# 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.17.0
sentry_version=7.18.0
liquibase_version=4.30.0
docker_java_version=3.4.0
logback_version=1.5.12
java_parser_version=3.26.2
byte_buddy_version=1.15.10
netty_version=4.1.115.Final

# testing
# make sure both versions are compatible
junit_version=5.11.0
junit_version=5.11.3
junit_platform_version=1.11.3
mockito_version=5.14.2
testcontainer_version=1.20.4


# gradle plugin version
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading

0 comments on commit 1bf6dca

Please sign in to comment.