Skip to content

Commit

Permalink
License: add custom CLA (#82)
Browse files Browse the repository at this point in the history
Add contributor license agreement for free to use
but with restrictions license.
  • Loading branch information
bastonero authored Feb 17, 2025
1 parent 13b3337 commit 188d97e
Show file tree
Hide file tree
Showing 4 changed files with 255 additions and 22 deletions.
102 changes: 102 additions & 0 deletions .cla/version1/CLA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Contributor License Agreement

> Adapted from the [Apache Software Foundation Individual Contributor License Agreement (ICLA)](https://www.apache.org/licenses/contributor-agreements.html) [version 2.2](https://www.apache.org/licenses/icla.pdf)
You accept and agree to the following terms and conditions for Your
Contributions (present and future) that you submit to the copyright
holders (hereafter "HOLDERS", see the [`LICENSE.txt`](../../LICENSE.txt)
bundled with this software). In return, the HOLDERS shall not use
Your Contributions in a way that is contrary to the public benefit or
inconsistent with its nonprofit status and bylaws in effect at the
time of the Contribution. Except for the license granted herein to
the HOLDERS and recipients of software distributed by the HOLDERS,
You reserve all right, title, and interest in and to Your Contributions.

1. Definitions.

"You" (or "Your") shall mean the copyright owner or legal entity
authorized by the copyright owner that is making this Agreement
with the HOLDERS. For legal entities, the entity making a
Contribution and all other entities that control, are controlled
by, or are under common control with that entity are considered to
be a single Contributor. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"Contribution" shall mean any original work of authorship,
including any modifications or additions to an existing work, that
is intentionally submitted by You to the HOLDERS for inclusion
in, or documentation of, any of the products owned or managed by
the HOLDERS (the "Work"). For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written
communication sent to the HOLDERS or its representatives,
including but not limited to communication on electronic mailing
lists, source code control systems, and issue tracking systems that
are managed by, or on behalf of, the HOLDERS for the purpose of
discussing and improving the Work, but excluding communication that
is conspicuously marked or otherwise designated in writing by You
as "Not a Contribution."

2. Grant of Copyright License. Subject to the terms and conditions of
this Agreement, You hereby grant to the HOLDERS and to
recipients of software distributed by the HOLDERS a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare derivative works of,
publicly display, publicly perform, sublicense, and distribute Your
Contributions and such derivative works.

3. Grant of Patent License. Subject to the terms and conditions of
this Agreement, You hereby grant to the HOLDERS and to
recipients of software distributed by the HOLDERS a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the
Work, where such license applies only to those patent claims
licensable by You that are necessarily infringed by Your
Contribution(s) alone or by combination of Your Contribution(s)
with the Work to which such Contribution(s) was submitted. If any
entity institutes patent litigation against You or any other entity
(including a cross-claim or counterclaim in a lawsuit) alleging
that your Contribution, or the Work to which you have contributed,
constitutes direct or contributory patent infringement, then any
patent licenses granted to that entity under this Agreement for
that Contribution or Work shall terminate as of the date such
litigation is filed.

4. You represent that you are legally entitled to grant the above
license. If your employer(s) has rights to intellectual property
that you create that includes your Contributions, you represent
that you have received permission to make Contributions on behalf
of that employer, that your employer has waived such rights for
your Contributions to the HOLDERS, or that your employer has
executed a separate Corporate CLA with the HOLDERS.

5. You represent that each of Your Contributions is Your original
creation (see section 7 for submissions on behalf of others). You
represent that Your Contribution submissions include complete
details of any third-party license or other restriction (including,
but not limited to, related patents and trademarks) of which you
are personally aware and which are associated with any part of Your
Contributions.

6. You are not expected to provide support for Your Contributions,
except to the extent You desire to provide support. You may provide
support for free, for a fee, or not at all. Unless required by
applicable law or agreed to in writing, You provide Your
Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied, including, without
limitation, any warranties or conditions of TITLE, NON-
INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.

7. Should You wish to submit work that is not Your original creation,
You may submit it to the HOLDERS separately from any
Contribution, identifying the complete details of its source and of
any license or other restriction (including, but not limited to,
related patents, trademarks, and license agreements) of which you
are personally aware, and conspicuously marking the work as
"Submitted on behalf of a third-party: [named here]".

8. You agree to notify the HOLDERS of any facts or circumstances of
which you become aware that would make these representations
inaccurate in any respect.
55 changes: 55 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, closed, synchronize]

# explicitly configure permissions, in case your GITHUB_TOKEN workflow permissions are set to read-only in repository settings
permissions:
actions: write
contents: write
pull-requests: write
statuses: write

jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}

- uses: contributor-assistant/github-action@v2.4.0
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby accept the CLA') || github.event_name == 'pull_request_target'
env:
# the default github token does not allow github action to create & push commit,
# instead, we need to use a github app to generate a token
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
# the below token should have repo scope and must be manually added by you in the repository's secret
# This token is required only if you have configured to store the signatures in a remote repository/organization
# PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
with:
path-to-signatures: ".cla/version1/signatures.json"
path-to-document: "https://github.com/aiidateam/aiida-hubbard/blob/main/.cla/version1/CLA.md"
# branch should not be protected
branch: "main"
allowlist: bot*

# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
#remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)
#remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)
#create-file-commit-message: 'For example: Creating file for storing CLA Signatures'
#signed-commit-message: 'For example: $contributorName has signed the CLA in $owner/$repo#$pullRequestNo'
custom-notsigned-prcomment: 'Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you accept our [Contributor License Agreement](https://github.com/bastonero/aiida-vibroscopy/blob/main/.cla/version1/CLA.md) before we can merge your contribution. You can accept the CLA by just copying the sentence below and posting it as a Pull Request Comment.'
custom-pr-sign-comment: 'I have read the CLA Document and I hereby accept the CLA'
custom-allsigned-prcomment: |
All contributors have accepted the CLA ✅
---
<sub>You might need to click the "Update/Rebase branch" button to update the pull request and rerun the GitHub actions to pass the CLA check.</sub>
#lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true)
#use-dco-flag: true - If you are using DCO instead of CLA
118 changes: 97 additions & 21 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,97 @@
MIT License

Copyright (c) 2022 Sebastiaan P. Huber

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Non-Commercial, End-User Software License Agreement for AiiDA-Hubbard

Copyright (c), 2021-2025, University of Bremen, Germany (U Bremen Excellence Chair),
École Polytechnique Fédérale de Lausanne (Theory and Simulation of Materials (THEOS)
and National Centre for Computational Design and Discovery of Novel Materials
(NCCR MARVEL)), Switzerland and Paul Scherrer Institut (Laboratory for Materials
Simulations (LMS)), Switzerland. All rights reserved.

INTRODUCTION

- This license agreement sets forth the terms and conditions under which the
Authors and their Institutions (hereafter "LICENSORS") of the program
"AiiDA-Hubbard" (hereafter "PROGRAM"), will grant you (hereafter
"LICENSEE") a fully-paid, non-exclusive, and non-transferable license for
academic, non-commercial purposes only (hereafter "LICENSE") to use the PROGRAM
computer software and associated documentation furnished hereunder.

- LICENSEE acknowledges that the PROGRAM is a research tool still in the
development stage, that is being supplied "as is", without any related
services, improvements or warranties from LICENSORS and that this license is
entered into in order to enable others to utilize the PROGRAM in their academic
activities.

TERMS AND CONDITIONS OF THE LICENSE

1. LICENSORS grant to LICENSEE a fully-paid up, non-exclusive, and
non-transferable license to use the PROGRAM for academic, non-commercial
purposes, upon the terms and conditions hereinafter set out and until
termination of this license as set forth below.

2. LICENSEE acknowledges that the PROGRAM is a research tool still in the
development stage. The PROGRAM is provided "as is", without any related
services or improvements from LICENSORS and that the LICENSE is entered into in
order to enable others to utilize the PROGRAM in their academic activities.

3. LICENSORS MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING WITHOUT LIMITATION ANY REPRESENTATIONS OR WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR PARTICULAR PURPOSE OR THAT THE USE OF THE
PROGRAM WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
LICENSORS shall not be liable for any direct, indirect or consequential damages
with respect to any claim by LICENSEE or any third party arising from this
Agreement or use of the PROGRAM.

4. LICENSEE agrees that it will use the PROGRAM, and any modifications,
improvements, or derivatives to PROGRAM that LICENSEE may create (collectively,
"IMPROVEMENTS") solely for academic, non-commercial purposes and shall not
distribute or transfer the PROGRAM or any IMPROVEMENTS to any person without
prior written permission from LICENSORS. The terms "academic, non-commercial",
as used in this Agreement, mean academic or other scholarly research which (a)
is not undertaken for profit, or (b) is not intended to produce works,
services, or data for commercial use, or (c) is neither conducted, nor funded,
by a person or an entity engaged in the commercial use, application or
exploitation of works similar to the PROGRAM.

5. LICENSEE agrees that he/she shall make the following acknowledgement in
publications resulting from the use of the PROGRAM: "Lorenzo Bastonero,
Cristiano Malica, Eric Macke, Marnik Bercx, Sebastiaan Huber, Iurii Timrov
and Nicola Marzari, Hubbard corrections from first-principles made easy via
automated and reproducible workflows; "Sebastiaan. P. Huber, Spyros Zoupanos,
Martin Uhrin, Leopold Talirz, Leonid Kahle, Rico Häuselmann, Dominik Gresch,
Tiziano Müller, Aliaksandr V. Yakutovich, Casper W. Andersen, Francisco F.
Ramirez, Carl S. Adorf, Fernando Gargiulo, Snehal Kumbhar, Elsa Passaro,
Conrad Johnston, Andrius Merkys, Andrea Cepellotti, Nicolas Mounet, Nicola
Marzari, Boris Kozinsky, and Giovanni Pizzi, AiiDA 1.0, a scalable computational
infrastructure for automated reproducible workflows and data provenance,
Scientific Data 7, 300 (2020), DOI: 10.1038/s41597-020-00638-4"
(http://www.aiida.net), plus any additional reference explicitly mentioned in
the custom workflow used. Except for the above-mentioned acknowledgment,
LICENSEE shall not use the PROGRAM title or the names or logos of LICENSORS,
nor any adaptation thereof, nor the names of any of its employees or
laboratories, in any advertising, promotional or sales material without prior
written consent obtained from LICENSORS in each case.

6. Ownership of all rights, including copyright in the PROGRAM and in any
material associated therewith, shall at all times remain with LICENSORS, and
LICENSEE agrees to preserve the same. LICENSEE agrees not to use any portion of
the PROGRAM or of any IMPROVEMENTS in any machine-readable form outside the
PROGRAM, nor to make any copies except for its internal use, without prior
written consent of LICENSORS. LICENSEE agrees to place the following copyright
notice on any such copies: © All rights reserved. University of Bremen, Germany,
U Bremen Excellence Chair, 2025; Authors: Lorenzo Bastonero and Nicola Marzari.
École Polytechnique Fédérale de Lausanne, Switzerland, Laboratory of Theory
and Simulation of Materials (THEOS), 2025; Authors: Sebastiaan Huber and Nicola Marzari.
Paul Scherrer Institut, Switzerland, Laboratory for Materials Simulations
(LMS), 2025; Authors: Giovanni Pizzi and Nicola Marzari.

7. The LICENSE shall not be construed to confer any rights upon LICENSEE by
implication or otherwise except as specifically set forth herein.

8. This Agreement shall be governed by the material laws of Switzerland and any
dispute arising out of this Agreement or use of the PROGRAM shall be brought
before the courts of Lausanne, Switzerland.

9. This Agreement and the LICENSE shall remain effective until expiration of
the copyrights of the PROGRAM except that upon any breach of this Agreement by
LICENSEE, LICENSORS shall have the right to terminate the LICENSE immediately
upon notice to LICENSEE.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ license = {file = 'LICENSE.txt'}
classifiers = [
'Development Status :: 4 - Beta',
'Framework :: AiiDA',
'License :: OSI Approved :: MIT License',
'License :: Free To Use But Restricted',
'Operating System :: POSIX :: Linux',
'Operating System :: MacOS :: MacOS X',
'Programming Language :: Python',
Expand Down

0 comments on commit 188d97e

Please sign in to comment.