Skip to content

Commit

Permalink
Merge branch 'develop' into feature/learning-analytics-dashboard
Browse files Browse the repository at this point in the history
  • Loading branch information
MaximilianAnzinger committed Oct 31, 2024
2 parents ea6703f + 998d6c0 commit 546a5de
Show file tree
Hide file tree
Showing 644 changed files with 13,294 additions and 5,775 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,9 @@ The following members of the project management team are responsible for specifi
| Exercises | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Programming exercises | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Build agents | Robert Jandow ([@robertjndw](https://github.com/robertjndw)) |
| Quiz exercises | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| Quiz exercises | Timor Morrien ([@Hialus](https://github.com/Hialus)) |
| Modeling exercises | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| Text exercises | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
| Text exercises | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| File upload exercises | Elisabeth Friesinger ([@easy-lisi](https://github.com/easy-lisi)) |
| Exam mode | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Assessment | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
Expand Down 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.2.war
./artemis-server-cli deploy [email protected] -w build/libs/Artemis-7.6.5.war
```

## Architecture
Expand Down
67 changes: 34 additions & 33 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,39 +20,40 @@
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
"allowedCommonJsDependencies": [
"clone-deep",
"crypto-js",
"crypto",
"dagre",
"dayjs/locale/de",
"dompurify",
"export-to-csv",
"hoist-non-react-statics",
"interactjs",
"is-mobile",
"js-video-url-parser",
"jszip",
"localforage",
"mobile-drag-drop",
"papaparse",
"pepjs",
"prop-types",
"react",
"react-dom",
"react-dom/client",
"react-is",
"rfdc",
"shallowequal",
"showdown-highlight",
"showdown-katex",
"showdown",
"smoothscroll-polyfill",
"sockjs-client",
"use-sync-external-store/shim",
"use-sync-external-store/shim/with-selector",
"webcola",
"webstomp-client"
"allowedCommonJsDependencies": [
"@vscode/markdown-it-katex",
"clone-deep",
"crypto-js",
"crypto",
"dagre",
"dayjs/locale/de",
"dompurify",
"emoji-js",
"export-to-csv",
"hoist-non-react-statics",
"interactjs",
"is-mobile",
"js-video-url-parser",
"jszip",
"localforage",
"markdown-it-highlightjs",
"mobile-drag-drop",
"papaparse",
"pepjs",
"prop-types",
"react",
"react-dom",
"react-dom/client",
"react-is",
"rfdc",
"shallowequal",
"markdown-it-class",
"smoothscroll-polyfill",
"sockjs-client",
"use-sync-external-store/shim",
"use-sync-external-store/shim/with-selector",
"webcola",
"webstomp-client"
],
"outputPath": {
"base": "build/resources/main/static/",
Expand Down
14 changes: 7 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ plugins {
id "jacoco"
id "org.springframework.boot" version "${spring_boot_version}"
id "io.spring.dependency-management" version "1.1.6"
id "com.google.cloud.tools.jib" version "3.4.3"
id "com.google.cloud.tools.jib" version "3.4.4"
id "com.github.node-gradle.node" version "${gradle_node_plugin_version}"
id "com.diffplug.spotless" version "6.25.0"
// this allows us to find outdated dependencies via ./gradlew dependencyUpdates
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 "10.0.4"
id "org.owasp.dependencycheck" version "11.0.0"
id "com.adarshr.test-logger" version "4.0.0"
}

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

java {
Expand Down Expand Up @@ -264,7 +264,7 @@ dependencies {
implementation "org.apache.lucene:lucene-queryparser:${lucene_version}"
implementation "org.apache.lucene:lucene-core:${lucene_version}"
implementation "org.apache.lucene:lucene-analyzers-common:${lucene_version}"
implementation "com.google.protobuf:protobuf-java:4.28.2"
implementation "com.google.protobuf:protobuf-java:4.28.3"

// we have to override those values to use the latest version
implementation "org.slf4j:jcl-over-slf4j:${slf4j_version}"
Expand Down Expand Up @@ -413,7 +413,7 @@ dependencies {
implementation "io.netty:netty-all:4.1.114.Final"
implementation "io.projectreactor.netty:reactor-netty:1.1.23"
implementation "org.springframework:spring-messaging:6.1.14"
implementation "org.springframework.retry:spring-retry:2.0.9"
implementation "org.springframework.retry:spring-retry:2.0.10"

implementation "org.springframework.security:spring-security-config:${spring_security_version}"
implementation "org.springframework.security:spring-security-data:${spring_security_version}"
Expand Down Expand Up @@ -452,7 +452,7 @@ dependencies {
implementation "org.apache.maven:maven-model:3.9.9"
implementation "org.apache.pdfbox:pdfbox:3.0.3"
implementation "org.apache.commons:commons-csv:1.12.0"
implementation "org.commonmark:commonmark:0.23.0"
implementation "org.commonmark:commonmark:0.24.0"
implementation "commons-fileupload:commons-fileupload:1.5"
implementation "net.lingala.zip4j:zip4j:2.11.5"

Expand All @@ -468,7 +468,7 @@ dependencies {
implementation "com.google.code.gson:gson:2.11.0"


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

// NOTE: we want to keep the same unique version for all configurations, implementation and annotationProcessor
implementation("net.bytebuddy:byte-buddy") {
Expand Down
4 changes: 4 additions & 0 deletions docs/admin/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ This section describes some additional steps that are of interest for production
For information on how to set up extension services to activate additional functionality in your Artemis instance, see
:ref:`their respective documentation <extensions_setup>`.

We recommend using the `Artemis Ansible Collection <https://github.com/ls1intum/artemis-ansible-collection>`_ for
setting up Artemis in production. The collection provides a set of Ansible roles that automate the setup of Artemis,
including the required external system with sane configuration defaults.

.. toctree::
:includehidden:
:maxdepth: 2
Expand Down
5 changes: 5 additions & 0 deletions docs/admin/setup/distributed.rst
Original file line number Diff line number Diff line change
Expand Up @@ -617,8 +617,13 @@ These credentials are used to clone repositories via HTTPS. You must also add th
container-cleanup:
expiry-minutes: 5 # Time after a hanging container will automatically be removed
cleanup-schedule-minutes: 60 # Schedule for container cleanup
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.
Please note that ``artemis.continuous-integration.build-agent.short-name`` must be provided. Otherwise, the build agent will not start.

Build agents run as `Hazelcast Lite Members <https://docs.hazelcast.com/hazelcast/5.3/maintain-cluster/lite-members>`__ and require a full member, in our case a core node, to be running.
Thus, before starting a build agent make sure that at least the primary node is running. You can then add and remove build agents to the cluster as desired.

Expand Down
52 changes: 24 additions & 28 deletions docs/admin/setup/security.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,45 +126,41 @@ For Artemis to find the key set `artemis.version-control.ssh-host-key-path` to t
Adapting Nginx to Enable SSH Routing
""""""""""""""""""""""""""""""""""""

To enable SSH routing through Nginx, you can set up an SSH proxy. However, Nginx by itself does
not support SSH, but you can use Nginx to reverse proxy an SSH service (e.g., using sslh to multiplex SSH and HTTPS).
To enable SSH routing through Nginx, you can set up an SSH proxy.

Configure sslh to listen on port 443 (to handle both HTTPS and SSH), by editing the sslh configuration
file (e.g., /etc/default/sslh):

.. code-block:: text
RUN=yes
DAEMON=/usr/sbin/sslh
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:8443"
Configure Nginx to proxy HTTPS traffic, by adapting the configuration file to listen on port 8443 for HTTPS:
Configure Nginx to proxy HTTPS traffic on port 443 and SSH traffic on port 7921.

.. code-block:: nginx
server {
listen 8443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
http {
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
stream {
server {
listen 7921;
proxy_pass 127.0.0.1:7921;
}
}
Restart sslh and Nginx:
Restart Nginx:

.. code-block:: bash
sudo systemctl restart sslh
sudo systemctl restart nginx
By following these steps, you ensure that your key pairs are properly generated and distributed across all
Expand Down
10 changes: 5 additions & 5 deletions docs/user/markdown-support.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Markdown Support

`Markdown <https://daringfireball.net/projects/markdown/>`__ is an easy-to-read, easy-to-write syntax for formatting plain text.

A markdown playground can be found `here <http://demo.showdownjs.com/>`__.
A markdown playground can be found `here <https://markdown-it.github.io/>`__.

Artemis extends the basic `Markdown <https://daringfireball.net/projects/markdown/>`__ syntax to support Artemis-specific features. This Artemis flavored Markdown is used to format text content across the platform using an integrated markdown editor.

Expand Down Expand Up @@ -52,9 +52,9 @@ Markdown is also supported in the context of :ref:`communicating<communication>`
Supported Syntax
^^^^^^^^^^^^^^^^

The integrated markdown editor uses `Showdown <https://github.com/showdownjs/showdown>`__. A quick description of the supported syntax can be found `here <https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax>`__.
The integrated markdown editor uses `MarkdownIt <https://github.com/markdown-it/markdown-it>`__. A quick description of the supported syntax can be found `here <https://www.markdownguide.org/basic-syntax/>`__.

The following Showdown extensions are activated:
The following Plugins are activated:

- `Showdown Katex <https://obedm503.github.io/showdown-katex>`__ to render LaTeX math and AsciiMath using KaTeX.
- `Showdown Highlight <https://github.com/Bloggify/showdown-highlight>`__ for syntax highlighting in code blocks.
- `MarkdownIt Katex <https://github.com/microsoft/vscode-markdown-it-katex>`__ to render LaTeX math and AsciiMath using KaTeX.
- `MarkdownIt HighlightJS <https://github.com/valeriangalliat/markdown-it-highlightjs>`__ for syntax highlighting in code blocks.
10 changes: 5 additions & 5 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.1
spring_boot_version=3.3.4
spring_security_version=6.3.3
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
hibernate_version=6.4.10.Final
# TODO: can we update to 5.x?
Expand All @@ -25,17 +25,17 @@ 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.15.0
sentry_version=7.16.0
liquibase_version=4.29.2
docker_java_version=3.4.0
logback_version=1.5.11
java_parser_version=3.26.2
byte_buddy_version=1.15.5
byte_buddy_version=1.15.7

# testing
# make sure both versions are compatible
junit_version=5.11.0
junit_platform_version=1.11.2
junit_platform_version=1.11.3
mockito_version=5.14.2


Expand Down
8 changes: 4 additions & 4 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ module.exports = {
coverageThreshold: {
global: {
// TODO: in the future, the following values should increase to at least 90%
statements: 87.39,
branches: 73.60,
functions: 81.97,
lines: 87.45,
statements: 87.52,
branches: 73.62,
functions: 82.12,
lines: 87.57,
},
},
coverageReporters: ['clover', 'json', 'lcov', 'text-summary'],
Expand Down
Loading

0 comments on commit 546a5de

Please sign in to comment.