Skip to content

Commit 1959ef9

Browse files
committed
deploy: 1af3cc8
1 parent a0057c5 commit 1959ef9

22 files changed

+194
-30
lines changed

.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 48598a07f590d33a2b787bcc264e6134
3+
config: 0a8f9857513648715b3f9d143d4ec0cd
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.

.doctrees/environment.pickle

4.54 KB
Binary file not shown.

_sources/documentation/repository-files/license-files.md.txt

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
---
2+
bibliography:
3+
- ../../bibliography.bib
4+
---
5+
16
# License files for scientific Python open source software
27

38
:::{button-link} https://www.pyopensci.org/about-peer-review/
@@ -41,6 +46,17 @@ We generally suggest that you use a permissive, license that is [Open Software I
4146
[submitting your package to pyOpenSci for peer review](https://www.pyopensci.org/about-peer-review/index.html), then we require an OSI approved
4247
license.
4348

49+
:::{admonition} Copyleft licenses
50+
The other major category of licenses are ["copyleft" licenses](https://en.wikipedia.org/wiki/Copyleft).
51+
Copyleft licenses require people that use your work to redistribute it with the same (or greater) rights to modify, copy, share, and redistribute it.
52+
In other words, copyleft licenses prohibit someone taking your work, making a proprietary version of it, and redistributing it without providing the source code so others can do the same.
53+
Copyleft licenses are "sticky" in that they are designed to ensure that more free software is created.
54+
55+
The difference between copyleft and permissive licenses is an important cultural divide in free and open source software (e.g., see {footcite}`hunterReclaimingComputingCommons2016`, {footcite}`gnuprojectWhatFreeSoftware2019`, {footcite}`gnuprojectWhatCopyleft2022`).
56+
It is important to understand this difference when choosing your license. Copyleft licenses represents the "free" part of "free and open source software".
57+
Free and open source software is intrinsically political, and it is important to be aware of power dynamics in computing as well as the practical problems of license compatibility (discussed below).
58+
:::
59+
4460
### How to choose a license
4561

4662
To select your license, we suggest that you use GitHub's
@@ -52,20 +68,19 @@ in some cases the license that you want is not available through that online
5268
process.
5369

5470
:::{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
71+
[The SciPy documentation has an excellent overview of licenses.](https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#licensing). One of the key elements
5672
that these docs recommend is ensuring that the license that you select is
57-
complementary to license used in the core scientific Python ecosystem.
73+
compatible with licenses used in many parts of the scientific Python ecosystem.
5874
Below is a highlight of this text which outlines license that are compatible
5975
with the modified BSD license that SciPy uses.
6076

6177
> 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.
6278

63-
To coordinate with other packages in our scientific ecosystem, we also recommend
79+
If your primary goal is for your code to be used by other, major packages in the scientific ecosystem, we also recommend
6480
that you consider using either BSD or MIT as your
6581
license. If you are unsure, the MIT license tends to be a simpler easier-to-understand option.
6682
:::
6783

68-
6984
## Important: make sure that you closely follow the guidelines outlines by the License that you chose
7085

7186
Every license has different guidelines in terms of what code
@@ -75,14 +90,40 @@ If you borrow code from other tools or online sources, make
7590
sure that the license for the code that you are using also complies
7691
with the license that you selected for your package.
7792

93+
A useful way to think about license compatibility is the distinction between **"inbound"** and **"outbound"** compatibility.
94+
"Inbound" licenses are those that cover the software you plan to include in your package.
95+
Your package is protected by an "outbound" license.
96+
97+
**Permissive licenses** like BSD and MIT have few **outbound** restrictions - they can be used in any way by downstream consumers, including making them proprietary.
98+
This is why they are favored by many businesses and large packages that want to be adopted by businesses.
99+
Permissive licenses have more **inbound** restrictions - they can't use software that requires more freedoms to be preserved than they do, like copyleft licenses.
100+
A package licensed under MIT needs to take special care when including or modifying a package licensed under the GPL-3.
101+
102+
**Copyleft licenses** like GPL-3 have more **outbound** restrictions - they require more of packages that include, use, modify, and reproduce them.
103+
This is the purpose of copyleft licenses, to ensure that derivative works remain free and open source.
104+
They have fewer **inbound** restrictions - a GPL-3 licensed package can include any other permissively licensed and most copyleft licensed packages.
105+
106+
| Compatible | Dependency <br> ("Inbound") | Your Package | Downstream Package <br> ("Outbound") |
107+
|----------------------------------------------------------------:|-----------------------------|--------------|--------------------------------------|
108+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | Permissive | Permissive | |
109+
| <i class="fa-solid fa-x" style="color: Crimson"></i> | Copyleft | Permissive | |
110+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | | Permissive | Permissive |
111+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | | Permissive | Copyleft |
112+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | Permissive | Copyleft | |
113+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | Copyleft | Copyleft | |
114+
| <i class="fa-solid fa-x" style="color: Crimson"></i> | | Copyleft | Permissive |
115+
| <i class="fa-solid fa-check" style="color: MediumSeaGreen"></i> | | Copyleft | Copyleft |
116+
117+
78118
:::{admonition} An example of how a license determine how code can be reused
79119
:class: note
80120

81121
Let's use StackOverflow as an example that highlights how a license determines how code can or can not be used.
82122

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.
123+
[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 Stack Overflow.
84124

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!
125+
This means that from a legal perspective, if you copy code from the Stack Overflow website and use it in your package that is licensed differently, say with a MIT license, you are violating Stack Overflow's license requirements!
126+
This would not be true with a GPL licensed package. `GPL-3` packages can include code licensed by `CC-BY-SA` {footcite}`creativecommonsShareAlikeCompatibilityGPLv32015`.
86127

87128
🚨 Proceed with caution! 🚨
88129
:::
@@ -98,3 +139,8 @@ These files - we need to understand if that date releases auto populates or forc
98139

99140

100141
-->
142+
143+
# References
144+
145+
```{footbibliography}
146+
```

documentation/hosting-tools/intro.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="../repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="../repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="current nav bd-sidenav">

documentation/hosting-tools/myst-markdown-rst-doc-syntax.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="../repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="../repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="current nav bd-sidenav">

documentation/hosting-tools/publish-documentation-online.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="../repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="../repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="current nav bd-sidenav">

documentation/hosting-tools/sphinx-python-package-documentation-tools.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="../repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="../repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="current nav bd-sidenav">

documentation/hosting-tools/website-hosting-optimizing-your-docs.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="../repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="../repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="../repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="current nav bd-sidenav">

documentation/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="repository-files/readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="repository-files/code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="repository-files/license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="repository-files/license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

documentation/repository-files/changelog-file.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

documentation/repository-files/code-of-conduct-file.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="current nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1 current active"><a class="current reference internal" href="#">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

documentation/repository-files/contributing-file.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

documentation/repository-files/development-guide.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

documentation/repository-files/intro.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,8 @@
458458
<ul class="nav bd-sidenav">
459459
<li class="toctree-l1"><a class="reference internal" href="readme-file-best-practices.html">README file</a></li>
460460
<li class="toctree-l1"><a class="reference internal" href="code-of-conduct-file.html">Code of Conduct File</a></li>
461-
<li class="toctree-l1"><a class="reference internal" href="license-files.html">LICENSE files</a></li>
461+
<li class="toctree-l1"><a class="reference internal" href="license-files.html">License files for scientific Python open source software</a></li>
462+
462463
</ul>
463464
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Publication tools for your docs</span></p>
464465
<ul class="nav bd-sidenav">

0 commit comments

Comments
 (0)