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

Use ASF 3rd Party License Policy for module evaluation #79

Merged
merged 6 commits into from
Feb 3, 2025

Conversation

julianladisch
Copy link
Contributor

@julianladisch julianladisch commented Oct 7, 2024

The current third party dependency criterium is not actionable:

Third party dependencies use an Apache 2.0 compatible license

The missing list of allowed licenses creates some difficulties for module developers and module evaluators and requires verbose explanations that can easily been avoided.

Change the criterium to what we usually use:

Inclusion of third party dependencies complies with ASF 3rd Party License Policy

  • org.z3950.zing:cql-java is allowed if appropriately labelled, even if it is LGPL-2.1-only
  • org.marc4j:marc4j is allowed if appropriately labelled, even if it is LGPL-2.1-or-later
  • org.hibernate.* is allowed if appropriately labelled, even if it is LGPL-2.1-or-later

The exemption of cql-java is needed because Spring Way modules frequently use folio-spring-cql that uses cql2pgjson that uses cql-java:

The exemption of marc4j is needed because several modules already use it:

The exemption of hibernate is needed because most Spring way modules already use it, it's a Spring Framework dependency.

This criterium can be changed as soon as better third party requirements get proposed.

Automation of the license compliance check is out of scope of this pull request.

To current third party dependency criterium is not actionable:

> Third party dependencies use an Apache 2.0 compatible license

This creates some difficulties for module developers and module evaluators
and requires verbose explanations that can easily been avoided.

Change to what we usually use:

> Inclusion of third party dependencies complies with [ASF 3rd Party License Policy](https://apache.org/legal/resolved.html)
> * org.z3950.zing:cql-java is allowed, even if it is LGPL-2.1-only

The exemption of cql-java is needed because Spring Way modules frequently use
folio-spring-cql that uses cql2pgjson that uses cql-java:

* https://github.com/search?q=org%3Afolio-org+folio-spring-cql+language%3A%22Maven+POM%22&type=code&l=Maven+POM
* https://github.com/folio-org/folio-spring-support/blob/v8.1.2/folio-spring-cql/pom.xml#L35
* https://github.com/folio-org/raml-module-builder/blob/v35.2.2/cql2pgjson/pom.xml#L58

This criterium can be changed as soon as better third party requirements
get proposed.
@julianladisch julianladisch requested a review from a team as a code owner October 7, 2024 22:13
Copy link
Member

@maccabeelevine maccabeelevine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @julianladisch, IMHO what you did with Category B looks great.

If TC agrees, we should discuss how to communicate that to dev teams, as it would be a change.

MODULE_ACCEPTANCE_CRITERIA.MD Outdated Show resolved Hide resolved
@julianladisch julianladisch requested a review from a team November 19, 2024 09:18
@craigmcnally
Copy link
Contributor

As discussed at the TC meeting, we should create a follow-on PR with additional information/links to relevant tools evaluators can use for this.

@craigmcnally
Copy link
Contributor

We should also investigate how open source projects typically handle attribution, and follow suit

Copy link

@jgreben jgreben left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See inline comments.

@@ -45,7 +45,11 @@ Please see [Before Development](MODULE_EVALUATION_TEMPLATE#before-development) f
* _This is not applicable to libraries_
* Module descriptor MUST include interface requirements for all consumed APIs (3, 5)
* _This is not applicable to libraries_
* Third party dependencies use an Apache 2.0 compatible license (2)
* Inclusion of third party dependencies complies with [ASF 3rd Party License Policy](https://apache.org/legal/resolved.html) (2)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good because it provides a resource to describe the compatible licensing.

@@ -45,7 +45,11 @@ Please see [Before Development](MODULE_EVALUATION_TEMPLATE#before-development) f
* _This is not applicable to libraries_
* Module descriptor MUST include interface requirements for all consumed APIs (3, 5)
* _This is not applicable to libraries_
* Third party dependencies use an Apache 2.0 compatible license (2)
* Inclusion of third party dependencies complies with [ASF 3rd Party License Policy](https://apache.org/legal/resolved.html) (2)
* Uses README for [Category B Appropriately Labelled Condition](https://apache.org/legal/resolved.html#appropriately-labelled-condition)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am fine with using the README for the appropriately labeled conditions (since ASF uses the README location as the "example" location for that). I assume we can later add other libraries to this list as needed.

@julianladisch julianladisch merged commit 52f54b0 into master Feb 3, 2025
1 check passed
@julianladisch julianladisch deleted the asf-3rd-party-license-policy branch February 3, 2025 11:57
julianladisch added a commit that referenced this pull request Feb 7, 2025
The removal had been approved in #75 and the removal had been done when merging #75.

However, the criterium has unintentionally been re-added when resolving merge conflicts during the #79 merge.

This PR fixes the error.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants