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:
Line 156 in 9d229d3
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.
Activity