Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discussion: Forking modules with extensive dependencies to separate repos #873

Open
M4LuZ opened this issue Jan 24, 2024 · 1 comment
Open
Labels

Comments

@M4LuZ
Copy link
Collaborator

M4LuZ commented Jan 24, 2024

Expected Behavior

Setup of LanSuite should require whatever it needs to function and should contain the code for the required functionality

Context

Ongoing rework of modules (e..g. Discord, Teamspeak, PayPal) requires both additional frameworks or even PHP modules to be included that have no usage otherwise unless these modules are used.
This leads to e.g. php-snmp being required by default even though almost no-one uses the NOC-module.
This will only increase with the approach of replacing custom code with standard libraries, blowing up both size of default installation and dependencies needed to fulfill

Possible Solution

That's the point for discussion
In theory we could:

  • Leave everything as-is
  • set dependencies and libraries as optional, risking unfulfilled requirements on module activation
  • define composer-files per module and e.g. use makefile build targets for build or composer script calls
  • fork code to separate repos and define non-essential modules as recommended packages
  • Implement custom functionality to pull & implement modules and dependencies in LanSuite
@M4LuZ M4LuZ added the question label Jan 24, 2024
@andygrunwald
Copy link
Collaborator

Usage of modules

This leads to e.g. php-snmp being required by default even though almost no-one uses the NOC-module.

As far as I can tell, we don't have data on the actual usage of a single module.

Libraries vs. PHP Modules

Libraries are installed via composer and shipped as an installable package. I don't consider this a problem. I also never heard arguments that the LanSuite package is too big and doesn't fit on a single web server. Hence, I am not confident that package size is an issue.

I do agree with you about PHP Modules. Using modules that are not installed by default makes the installation a bit harder. Here, I would run it on a case-by-case situation. Which LanSuite module requires which PHP module?
There, I would look into the details and see if we can move LanSuite back to a standard PHP installation.

Extracting the modules into own repositories

I like the idea, but it will create more work to put everything together and test everything together. This project doesn't have the required engineering power to do this.

Furthermore, the plugin installation would require a lot more development effort to install external modules.

Suggestion

I would look into details on which LanSuite module requires which PHP module and look for solutions to move LanSuite towards a runnable state on a standard PHP installation.

I would not suggest moving the modules out of the main repository, mainly due to the required engineering power.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants