ls1intum / Athena

A system to support (semi-)automated assessment of exercises, built on ls1intum/Athena
https://ls1intum.github.io/Athena/
6 stars 1 forks source link

More flexible build process for Athena #325

Closed dmytropolityka closed 3 months ago

dmytropolityka commented 4 months ago

Motivation and Context

Athena was initially designed as a modular application with a common module (Athena) that is integral to every other module. With multiple students working asynchronously on different modules, stability issues can arise due to database changes, version upgrades, or feature enhancements. This PR leverages Poetry to enable dynamic importing of the common module, Athena, which eliminates the need for a monolithic structure and enhances modularity.

Description

  1. Each module imports the common Athena module dynamically from either a GitHub repository or a local version.
  2. Modules are assembled independently using the provided lint all, lock all, and build all scripts.
  3. Developers can specify the required version of the middleware for their module.
  4. This PR lays the groundwork for pytest integration.

Steps for Testing

Deploy the changes to a test server. Verify that all modules function correctly and that the integration with the common Athena module is stable.

Resolves

This PR resolves the following issues: https://github.com/ls1intum/Athena/issues/321, https://github.com/ls1intum/Athena/issues/298, https://github.com/ls1intum/Athena/issues/297

FelixTJDietrich commented 4 months ago

Enea currently updated the env files for the text llm module on the test server so that module might not work with this PR right now because of this

FelixTJDietrich commented 3 months ago

Can you also resolve the conflicts?

FelixTJDietrich commented 3 months ago

module_example is also a programming module

FelixTJDietrich commented 3 months ago

@undernagruzez ping me on Slack once this is ready, we should merge this ASAP since it causes a lot of merge conflicts

FelixTJDietrich commented 3 months ago

Also works on TS1 except for programming llm, idk what's up with that.