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

Improvement: Integrate Eclipse Dash License Tool for license type checking #126

Open
4 of 8 tasks
nradakovic opened this issue Dec 17, 2024 · 4 comments
Open
4 of 8 tasks
Assignees
Labels
enhancement New feature or request infrastructure General Score infrastructure topics

Comments

@nradakovic
Copy link
Contributor

nradakovic commented Dec 17, 2024

Background

Ensuring compliance with licensing requirements for tools and binaries used in the repository is critical to maintaining legal and operational integrity. To address this, we propose introducing the Eclipse Dash License Tool, which will check the license types of tools and binaries. The tool will be integrated with Bazel for ease of use and added to our CI workflows for automated compliance checks.

Objectives

  1. Integrate the dash tool into the Bazel build system.
  2. Automate license compliance checks as part of the CI pipeline.
  3. Provide visibility into the licenses of all dependencies.
  4. Fail builds if non-compliant or unknown licenses are detected.

Acceptance Criteria

  • The dash tool is successfully integrated into Bazel and can scan all dependencies pulled by the build system.
    • Python;
    • Rust;
    • Go;
    • Bazel;
  • A GitHub Actions workflow is set up to run dash on every push and pull request.
  • Non-compliant or unknown licenses cause the CI workflow to fail.
  • Documentation is updated with instructions for running dash manually and interpreting its results.

Proposed Steps

  • Add dash to the Bazel workspace:
    • Include the dash tool as a dependency in the Bazel setup.
    • Configure a Bazel rule to invoke dash and perform license checks.
  • Set up CI workflow:
    • Implement a GitHub Actions workflow that runs the dash tool during CI.
    • Configure the workflow to fail for non-compliant licenses or errors.
  • Update documentation:
    • Provide instructions for running dash manually via Bazel.
    • Add details on interpreting the results and resolving license issues.

Resources

Impact

By integrating the dash tool into Bazel and the CI pipeline:

  • We ensure automated and consistent license compliance checks across the project.
  • Risks associated with introducing non-compliant licenses are minimized.
  • Developers gain visibility into the licensing of dependencies, supporting informed decision-making.
  • The overall quality, maintainability, and legal compliance of the repository are improved.

NOTE: This ticket belong to #36

@ltekieli ltekieli added the infrastructure General Score infrastructure topics label Dec 18, 2024
@ltekieli
Copy link
Member

Possible overlap #82

nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
nradakovic added a commit to nradakovic/score that referenced this issue Jan 13, 2025
This commit adds support for the DASH tool within the S-CORE Bazel build system.
The integration includes:

- Defining custom Bazel rules to handle the DASH tool's setup and execution.
- Adding necessary dependencies in BUILD files to ensure compatibility with
  existing project requirements.
- Validating the integration with the current CI pipeline to maintain a seamless build
  and deployment process.
- Updating documentation (if applicable) to reflect the addition of DASH
  in the Bazel workflow.

This enhancement simplifies the workflow by consolidating tools into the Bazel build system,
improving build automation and traceability.

Issue-ref: see eclipse-score#126
@nradakovic
Copy link
Contributor Author

To support other language (like Bazel/Starlark or Rust) we need to get access right to ClearlyDefinded service. ClearlyDefined and parent organization, the Open Source Initiative, are on a mission to help Open Source projects thrive by being, well, clearly defined. Lack of clarity around licenses and security vulnerabilities reduces engagement -- that means fewer users, fewer contributors and a smaller community.
The ticket needs to be refined.

@AlexanderLanin
Copy link
Member

@nradakovic you wanna split this to sub-issues? Doesn't make sense for me to split it, as I would probably create an unreasonable split.
P.S. Feel free to make them small! We have a lot of new people working here and it would help to have small simple issues :)

Ref: https://github.com/orgs/eclipse-score/discussions/236#discussioncomment-11981703

split OSS (#82, #126) to sub-issues, e.g.:

  • setup dash for python on PR (non blocking) -> dash: Integrate DASH tool in Bazel build #155
    • rename "license check" to something like "license dry run"
  • automation: print problems as comment to pull request, see also bug: pr-preview comment #211
  • create private key for automatic clearance
  • extend automaton with automatic clearance
  • add rust dependencies to dash (via bazel)
  • add C++ dependencies to dash (via bazel)
  • bazel modules
  • change automation (daily / blocking / etc)

@AlexanderLanin
Copy link
Member

AlexanderLanin commented Jan 29, 2025

Update on the token:

A GitLab bot user for the eclipse-score project (username: score-bot) and an API token have been created.
The API token has been added to eclipse-score organization as organization secret (ID: ECLIPSE_GITLAB_API_TOKEN)

Reference: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/5590
Reference: eclipse-score/.eclipsefdn@d4adfcd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request infrastructure General Score infrastructure topics
Projects
Status: In Progress
Development

No branches or pull requests

3 participants