-
Notifications
You must be signed in to change notification settings - Fork 15
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
Set up licensing #211
Set up licensing #211
Conversation
This folder contains the licenses that are relevant for the different parts of this project. Apache will be used for almost everything, as this project is not part of the core business for Camunda. However, exceptions exist. Some of the modules are depending on the Zeebe engine. This is part of the core business of Camunda. Because of this, these modules are licens under the Zeebe license.
Different parts of this project will fall under different licenses. Because of this we can no longer mention a single license in the root of the project, but instead need to rely on the licenses folder containing the different licenses.
c01cef0
to
d867c01
Compare
In the README and CONTRIBUTING guide we should explain which parts of this project are licensed by which license. The 3 exceptions are the modules that have dependencies on the Zeebe engine. Because the Zeebe engine is licensed under the Zeebe license, we cannot override this license here with the regular Apache license.
Add license plugin. This will automatically add the correct license headers to our java files. By default it will add the Apache 2 license. For the exceptions we will add the Zeebe license.
We should explicitly mention the license in our pom files. By default this will be the Apache 2 license. The exceptions will override this with the Zeebe license.
If new files are created that do not define the license header we will fail the workflow. These headers can then be added automatically by running mvn license:format
Only changes made by running mvn license:format
These IntelliJ settings will automatically add the copyright header when a new java file is created. By default this will be the apache header. For the modules engine, engine-agent and extension, this will be the zeebe header.
d867c01
to
fb74e5d
Compare
@pihme I recommend reviewing by commit, as copyright headers were added to every java file we have. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Several questions. Most notably I wonder that the NOTICE
file is referring to.
If you make changes in this PR, I would like to see it again.
If everything is sound, feel free to merge it right away.
@@ -0,0 +1,5 @@ | |||
Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under | |||
one or more contributor license agreements. See the NOTICE file distributed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ What is the NOTICE file? Is this generated by Maven and shipped in the JAR or should this live in the repo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. It seems like something I'd have to add to the repo. I'm not quite sure what this is supposed to contain though. The one in Zeebe says:
Camunda
Copyright 2017-2019 Camunda Services GmbH
Which seems a bit outdated 😅
.idea/copyright/zeebe_copyright.xml
Outdated
<component name="CopyrightManager"> | ||
<copyright> | ||
<option name="notice" value="Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. Licensed under the Zeebe Community License 1.1. You may not use this file except in compliance with the Zeebe Community License 1.1. " /> | ||
<option name="myName" value="zeebe-copyright" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔧 Maybe rename file and shorthand to Zeebe Community License which seems more precise
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If by shorthand you mean myName
then unfortunately there is no option to change it. I can rename it manually, but IntelliJ will override it when any changes are made to the copyright settings.
One thing that I wonder is whether we should also have a clarification like this: https://github.com/camunda-cloud/zeebe#clarification-on-grpc-code-generation This repo also defines a GRPC protocol. And if anybody wanted to use it with a different language, they could use the InMemory engine in the container and would need to write their own way to interact with the container. So in that context, I assume the same clarification would apply. |
I think a big difference in our case is that our protocol is licensed with Apache 2, whereas the gateway-protocol is licensed with Zeebe Community 1.1. The InMemoryEngine is also licensed with Apache 2, so anyone that wants to implement this to use it with a different language is free to do so. They won't need to do anything with the actual implementation of the InMemoryEngine. |
Changed from zeebe_copyright to zeebe_community_license for clarity.
Add a NOTICE file as is required by the Apache license, and because of this als by the Zeebe Community License. In this file we credit other authors for code that we have used. I thought about crediting EZE and Camunda Bpmn Assert in this file. However, this is a bit strange considering both these projects are also owned by Camunda Services GmbH.
@pihme I've added some minor changes. Please have another look 🙂 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me
Description
This PR set ups the licensing for this project. None of this project is part of the core-business of Camunda. Therefore the project can be licensed under the regular Apache 2 license.
There are 3 exceptions. These are the modules that depend on the zeebe broker, which is part of the core-business. Because of this these modules have to follow the same license as the broker, which is the Zeebe Community License V1.1. These modules are:
I've also set IntelliJ up to automatically add the correct copyright headers when a new class is created.
Related issues
closes #171
Definition of Done
Not all items need to be done depending on the issue and the pull request.
Code changes:
Testing:
Documentation: