You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Your package should have a **CODE_OF_CONDUCT.md** file located
10
+
Your package should have a `CODE_OF_CONDUCT.md` file located
11
11
the root of the repository. Once you have people using your
12
12
package, you can consider the package itself as having a community
13
13
around it. Some of this community uses your tool. These users
@@ -17,20 +17,20 @@ Others in the community might want to contribute to your tool.
17
17
They might fix bugs, update documentation and engage with the
18
18
maintainer team.
19
19
20
-
## Why you need a code of conduct
20
+
## Why you need a CODE_OF_CONDUCT
21
21
22
22
In order to keep this community healthy and to protect yourself,
23
-
your mainatianer team and your users from unhealthy behavior,
24
-
it is important to have a [code of conduct](https://opensource.guide/code-of-conduct/).
23
+
your maintainer team and your users from unhealthy behavior,
24
+
it is important to have a [`CODE_OF_CONDUCT`](https://opensource.guide/code-of-conduct/).
25
25
26
-
The code of conduct is important
26
+
The `CODE_OF_CONDUCT` is important
27
27
as it establishes what you expect in terms of how users and
28
28
contributors interact with maintainers and each other. It also
29
29
establishes rules and expectations which can then be enforced
30
-
if need be to protect others from harmful and/or negative behaviors.
30
+
if need be to protect others from harmful and/or negative behaviors.
31
31
32
32
If you are not comfortable
33
-
with creating your own code of conduct text, we encourage you to adopt the
34
-
code of conduct language used in the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
35
-
[Many other communities](https://www.contributor-covenant.org/adopters/) have adopted this code of conduct as
33
+
with creating your own `CODE_OF_CONDUCT` text, we encourage you to adopt the
34
+
`CODE_OF_CONDUCT` language used in the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
35
+
[Many other communities](https://www.contributor-covenant.org/adopters/) have adopted this `CODE_OF_CONDUCT` as
36
36
their own. See the [Fatiando a Terra Geoscience Python community's example here.](https://github.com/fatiando/community/blob/main/CODE_OF_CONDUCT.md)
To be reviewed by pyOpenSci your project should use an open source
6
-
software license that is approved
7
-
by the Open Software Initiative (OSI). OSI's website has a
8
-
[list of popular licenses](https://opensource.org/licenses). GitHub also has a
9
-
[handy tool](https://choosealicense.com/) for choosing a license.
7
+
Want to learn how to add a license file to your GitHub repository? Check out this lesson.
8
+
:::
9
+
10
+
## What is a Open Source License file?
11
+
12
+
When we talk about LICENSE files, we are referring to a file in your
13
+
GitHub or GitLab repository that contains legally binding language
14
+
that describes to your users how they can legally use (and not use) your package.
15
+
16
+
## Why licenses are important
17
+
18
+
A license file is important for all open source projects because it protects both you as a maintainer and your users. The license file helps your users and the community understand:
19
+
20
+
1. How they can use your software
21
+
2. Whether the software can be reused or adapted for other purposes
22
+
3. How people can contribute to your project
23
+
24
+
and more.
25
+
26
+
[Read more about why license files are critical in protecting both you as a maintainer and your users of your scientific Python open source package.](https://opensource.guide/legal/#just-give-me-the-tldr-on-what-i-need-to-protect-my-project)
27
+
28
+
29
+
## Where to store your license
30
+
31
+
Your `LICENSE` file should be stored at root of your GitHub / GitLab repository.
32
+
33
+
Some maintainers customize the language in their license files for specific reasons. However, if you are just getting started, we suggest that you select a
34
+
permissive license and then use the legal language templates provided both by GitHub and/or the [choosealicense.com](https://choosealicense.com/) website.
35
+
36
+
Licenses are legally binding, as such you should avoid trying to create your own license unless you have the guidance of legal council.
37
+
38
+
### Use open permissive licenses when possible
39
+
40
+
We generally suggest that you use a permissive, license that is [Open Software Initiative (OSI) approved](https://opensource.org/licenses). If you are
41
+
[submitting your package to pyOpenSci for peer review](https://www.pyopensci.org/about-peer-review/index.html), then we require an OSI approved
42
+
license.
43
+
44
+
### How to choose a license
45
+
46
+
To select your license, we suggest that you use GitHub's
47
+
[Choose a License tool ](https://choosealicense.com/).
48
+
49
+
If you choose your license when creating a new GitHub repository, you can also
50
+
automatically get a text copy of the license file to add to your repo. However
51
+
in some cases the license that you want is not available through that online
52
+
process.
53
+
54
+
:::{admonition} License recommendations from the SciPy package
55
+
[The SciPy documentation has an excellent overview of licenses.](https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#licensing). Once of the key elements
56
+
that these docs recommend is ensuring that the license that you select is
57
+
complementary to license used in the core scientific Python ecosystem.
58
+
Below is a highlight of this text which outlines license that are compatible
59
+
with the modified BSD license that SciPy uses.
60
+
61
+
> Other licenses that are compatible with the modified BSD license that SciPy uses are 2-clause BSD, MIT and PSF. Incompatible licenses are GPL, Apache and custom licenses that require attribution/citation or prohibit use for commercial purposes.
62
+
63
+
To coordinate with other packages in our scientific ecosystem, we also recommend
64
+
that you consider using either BSD or MIT as your
65
+
license. If you are unsure, the MIT license tends to be a simpler easier-to-understand option.
66
+
:::
10
67
11
-
If you choose your license through GitHub, you can also automatically get a copy of the license file to add to your repository.
12
68
13
69
## Important: make sure that you closely follow the guidelines outlines by the License that you chose
14
70
@@ -19,18 +75,26 @@ If you borrow code from other tools or online sources, make
19
75
sure that the license for the code that you are using also complies
20
76
with the license that you selected for your package.
21
77
22
-
```{note}
23
-
An example of code that would not comply with a BSD or MIT license would be any code copied from StackOverflow website.
24
-
[Stack overflow users a Creative Commons Share Alike license.](https://stackoverflow.com/help/licensing) The sharealike license requires you to use the same sharealike license when you reuse any code from stackoverflow. Thus, if you use code from stack overflow in your package and have a MIT license applied to your package, you are violating stack overflow's license requirements! Proceed with caution here!
25
-
```
78
+
:::{admonition} An example of how a license determine how code can be reused
79
+
:class: note
80
+
81
+
Let's use stackOverflow as an example that highlights how a license determines how code can or can not be used.
82
+
83
+
[Stack overflow uses a Creative Commons Share Alike license.](https://stackoverflow.com/help/licensing). The sharealike license requires you to use the same sharealike license when you reuse any code from stackoverflow.
26
84
27
-
[The SciPy documentation has an excellent license discussion that is worth reading and considering for your project's development guide.](https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#licensing)
85
+
This means that technically, if you copy code from the Stack Overflow website, and use it in your package. And your packages uses a different license such as a MIT license, you are violating Stack Overflow's license requirements!
28
86
87
+
🚨 Proceed with caution! 🚨
88
+
:::
29
89
30
-
<!-- TODO: Add discussion of GitHub citation.cff files ??
31
-
i think we need to better understand how this works before adding it...
32
90
91
+
## What about software citation?
92
+
93
+
While many permissive licenses do not require citation we STRONG encourage that you cite all software that you use in papers, blogs and other publications. You tell your users how to cite your package by using a [citation.cff file](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files). We will cover this topic when we talk about creating DOI's for your package using zenodo.
94
+
95
+
<!-- TODO: add link when lesson is created - but also we don't yet know how citation.cff files work with zenodo (do they work??) will the citation info update with a new zenodo link
33
96
34
97
These files - we need to understand if that date releases auto populates or forces zenodo to modify it's citation. if it's not dynamic it could be problematic
0 commit comments