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

Changing open-source license to Apache 2.0 #111

Closed
NBickford-NV opened this issue Jan 26, 2021 · 2 comments
Closed

Changing open-source license to Apache 2.0 #111

NBickford-NV opened this issue Jan 26, 2021 · 2 comments

Comments

@NBickford-NV
Copy link
Collaborator

Hi all,

I'm happy to announce that hopefully this Friday, we'll be changing GVDB's license from 3-clause BSD to Apache 2.0 (which is also open-source and can be used for commercial applications), making it easier for GVDB to accept pull requests (such as #104).

This is because when we accept a pull request, we need to know that we have permission to use the code as part of GVDB (e.g. that it doesn't include code from a place we don't have permission, and that it doesn't infringe patents).

Previously, this would require signing NVIDIA's Contributor License Agreement or another method, which has historically made accepting pull requests a bit awkward.

With Apache 2, though, we can use the Linux Foundation's Developer Certificate of Origin (https://developercertificate.org/), which is built into Git (more information below!), and is generally considered to be easier to use.

As a result, we'll be able to accept more pull requests faster, and more people will be able to appear as contributors to GVDB on GitHub.

Licensing Changes

(Please note that this does not constitute legal advice.)

Apache 2 is an open-source, non-viral license like 3-clause BSD. If you're using GVDB with BSD-3 on GitHub (which lists changes), you should also be able to use it with Apache 2.

The main difference is that section 4(b) of Apache 2 requires modified files to include notices that they were changed. To help forks manage this change if they'd like to merge from the most recent versions of NVIDIA/gvdb, I'll be adding a license header to the top of each of GVDB's source files. After merging, running git log -m --name-only should list all the files that were merged; or, git diff SHA1 SHA2 will list all the changes as well. This should make it easier for fork maintainers to determine which files changed in the fork.

(If you have a fork of GVDB but don't plan on merging with any versions after the change to Apache 2, you don't need to do anything, since the fork still uses the BSD-3 version.)

Making a Pull Request with Apache 2

I'll be adding some systems and instructions that help with the following, so more information below!

To sign off on a commit (saying that it meets the Developer Certificate of Origin), add the --signoff flag, e.g.

git commit -m "Test commit" --signoff

This will add a line to the commit like this:

Signed-off-by: Contributor Name <email>

To sign off on the previous commit, use

git commit --amend --signoff

Or, to sign off on the previous N commits, use

git rebase HEAD~N --signoff followed by git push --force-with-lease.

To make this easier to use, I'll hopefully be adding a bot that will check pull requests to see if they've been signed off, and will include the command line to sign off on commits.

I'll also make it so that pull requests automatically include instructions for signing off on commits - but you can create a pull request without doing so, and then the DCO bot will let you know what you need to do.

Updated License Text

The new license text will be:

   Copyright 2016-2021 NVIDIA Corporation
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
 
     https://www.apache.org/licenses/LICENSE-2.0
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Thanks -- hopefully this will make contributing to and modifying GVDB a bit easier and faster! Please let me know if you have any questions.

@NBickford-NV NBickford-NV pinned this issue Jan 26, 2021
@NBickford-NV
Copy link
Collaborator Author

Quick update: This has been moved to Monday, February 1st.

@NBickford-NV
Copy link
Collaborator Author

License has now been changed to Apache 2.0! This issue will remain pinned for a while to let people know and to answer questions.

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

No branches or pull requests

1 participant