Project structure
SteelAlloy opened this issue · 0 comments
Motivation
Since the purpose of the project is to broaden the scope of this repository, it is essential to break down the features into individual components.
As it stands, keeping things as they are now would mean adding every new option / feature to the current github action workflow.
This is far from ideal and would add a lot of unnecessary content since all features would be loaded regardless of usage.
jobs:
Contributor_Assistant:
runs-on: ubuntu-latest
steps:
- name: "Contributor Assistant"
uses: cla-assistant/contributor-assistant@v1.0.0
with:
[CLA - option 1]
[Rewards - option 1]
[Rewards - option 2]
[Code Quality Checks - option 1]
[ ... ]
Idea
Github offers the possibility to create actions in subdirectories and this is the approach I suggest.
jobs:
Contributor_Assistant:
runs-on: ubuntu-latest
steps:
- name: "Rewards"
uses: cla-assistant/contributor-assistant/rewards@v1.0.0
with:
[option 1]
[option 2]
[ ... ]
- name: "Code quality checks"
uses: cla-assistant/contributor-assistant/code-quality-checks@v1.0.0
with:
[option 1]
[option 2]
[ ... ]
Thus, each functionality would be isolated in a specific step.
However, this requires having all working folders in the root.
EDIT: We'll keep the src
folder to keep the project structure clean.
/
┣━ license-agreement
┣━ rewards
┣━ code-quality-checks
┣━ ...
instead of
/
┣━ src
┃ ┣━ license-agreement
┃ ┣━ rewards
┃ ┗━ code-quality-checks
┣━ ...
Final note
We could always have a github action at the root that bundles all the features, but I think the modular approach is better in terms of user experience, in order to choose precisely the features one wants.