Skip to content
This repository has been archived by the owner on May 28, 2024. It is now read-only.

Make it clear that code outside plugins/ can have other free software licenses as well #212

Merged
merged 10 commits into from
Oct 11, 2022

Conversation

felixfontein
Copy link
Contributor

@felixfontein felixfontein commented Jul 31, 2022

SUMMARY

Right now, the rules state that "[a]ll other code must be under the GPL-3.0-or-later". From the explanation it is clear that this sentence is about all other code in plugins/, but it is not formulated that way.

The current formulation implies for example that all unit tests, helper scripts, or code files included in roles, playbooks, or integration tests must be licensed under GPLv3+. Especially for unit tests this can be problematic; for example community.docker now vendors some code from Docker SDK for Python (Apache 2.0 licensed) including unit tests for that code. The unit tests are also licensed under Apache 2.0, but this would violate a strict interpretation of the inclusion requirements.

This PR proposes an improved formulation that makes it clear that other code outside plugins/ can also use other licenses.

(Ref: ansible-collections/community.docker#433 (comment))

ISSUE TYPE
  • Bugfix Pull Request
  • Docs Pull Request
COMPONENT NAME

inclusion requirements

@gotmax23
Copy link
Contributor

I agree with the premise of this change. Thank you for proposing it, @felixfontein! I think All other code should be clarified to something like All other plugins and then the order of rows 3 and 4 should be switched.

@felixfontein
Copy link
Contributor Author

I agree with the premise of this change. Thank you for proposing it, @felixfontein! I think All other code should be clarified to something like All other plugins and then the order of rows 3 and 4 should be switched.

I implemented that in 3c36d09.

@gotmax23
Copy link
Contributor

What is the process for getting this approved? Can the SC just vote on it or does it have to go through legal?

@felixfontein
Copy link
Contributor Author

What is the process for getting this approved? Can the SC just vote on it or does it have to go through legal?

I think a SC vote suffices, since this doesn't really change much. (Assuming nobody from SC disagrees and asks for a review by RH legal... I really don't think that will happen though.)

@gotmax23
Copy link
Contributor

Besides that one other change, this looks good to me.

@mattclay
Copy link

Since unit tests import modules, plugins or ansible-core code, it's probably worth clarifying that.

[repeating since my original statement was attached to a now hidden comment]

Copy link
Contributor

@samccann samccann left a comment

Choose a reason for hiding this comment

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

LGTM

@felixfontein
Copy link
Contributor Author

Any more comments? Or should we start voting on the current state?

@felixfontein
Copy link
Contributor Author

There is now an active vote on this topic: ansible-community/community-topics#142

@felixfontein
Copy link
Contributor Author

(I rebased after #216 was merged, no content changes.)

Copy link
Contributor

@Andersson007 Andersson007 left a comment

Choose a reason for hiding this comment

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

@felixfontein thanks for the clarifications!
I have 2 questions:

  1. Do i understand correctly that if a collection is fully licensed with a GPL compatible license and contains, say, plugins/actions/.. or anything else besides modules and module_utils in the plugins directory, the maintainers must re-license it with GPLv3+, otherwise we can't include/have such a collection included?
  2. Should we use uppercase modal verbs as we do in other paragraphs?

Thanks

@felixfontein
Copy link
Contributor Author

1. Do i understand correctly that if a collection is fully licensed with a GPL compatible license and contains, say, `plugins/actions/..` or anything else besides `modules` and `module_utils` in the `plugins` directory, the maintainers must re-license it with GPLv3+, otherwise we can't include/have such a collection included?

Yes. But that's not related to including the collection into Ansible, it's a result of the GPL already. Action plugins (and other plugin types, except a few of them) import code from ansible-core, and thus these plugins must be licensed under GPLv3 as well.

@felixfontein
Copy link
Contributor Author

Should we use uppercase modal verbs as we do in other paragraphs?

Hmmm, I'm not sure whether this is a good idea to change since the vote already started.

@Andersson007
Copy link
Contributor

Should we use uppercase modal verbs as we do in other paragraphs?

Hmmm, I'm not sure whether this is a good idea to change since the vote already started.

It doesn't change the meaning, just makes it a bit more recognizable (anyway it's not an obstacle to merge it as-is and we can do it later in another PR). Let's continue without changing it here

@felixfontein felixfontein changed the title [WIP] Make it clear that code outside plugins/ can have other free software licenses as well Make it clear that code outside plugins/ can have other free software licenses as well Oct 11, 2022
@felixfontein
Copy link
Contributor Author

This PR has been approved, see ansible-community/community-topics#123 (comment).

@felixfontein felixfontein merged commit 99f84a4 into main Oct 11, 2022
@felixfontein felixfontein deleted the licensing branch October 11, 2022 17:29
@felixfontein
Copy link
Contributor Author

Thanks everyone! :)

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

Successfully merging this pull request may close these issues.

6 participants