contributor-assistant/contributor-assistant

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.