Skip to content

[Discussion]: Incorperating GEWIS-specific code into the source #468

Open
0 of 1 issue completed
Open
@JustSamuel

Description

Back in the day, when SudoSOS was still driven by hopes and dreams, there was an idea to deploy SudoSOS outside of a GEWIS context. This idea is the reason why all GEWIS-specific code is under /src/gewis, and SudoSOS is expected to survive even if you remove the entire folder.

This idea—that you can remove the GEWIS folder—holds up pretty well:

  • The code is tested without the GEWIS code.
  • The source code is agnostic to most GEWIS-specific logic.

The biggest downside is that, to facilitate this, a lot of code is injected at runtime:

Gewis.overwriteBindings();

This is highly nontransparent and annoying. I already created an issue to slightly improve this (#341), but that doesn't really address the root cause:

Creating software personalized to GEWIS while remaining GEWIS-agnostic is difficult.

Another example is that we are unable to return GEWIS IDs for most "regular" endpoints. In some cases, we inject code that does return GEWIS IDs, but we can never include this in the Swagger documentation. Being unable to include it in Swagger automatically means that our responses do not match the spec—by design—which, in my opinion, is a code smell.

The discussion, therefore, is: Do we let go of the dream that SudoSOS will ever be deployed outside of GEWIS and simply merge the GEWIS code into the main source? This would streamline the code and improve compatibility.

Sub-issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions