From f2fef07300295e161bcf578435b1507d92a41680 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Wed, 15 Nov 2017 22:21:46 -0500 Subject: [PATCH 01/23] Add partial draft of PLEP 2 on Coordinating Committee --- PLEP-0002.md | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 PLEP-0002.md diff --git a/PLEP-0002.md b/PLEP-0002.md new file mode 100644 index 0000000..389dcdc --- /dev/null +++ b/PLEP-0002.md @@ -0,0 +1,120 @@ +# PLEP-0002 -- Coordinating Committee + +| PLEP | 2 | +|-------------------|-----------------------------------| +| title | Coordinating Committee | +| author(s) | Nick Murphy | +| contact email | namurphy@cfa.harvard.edu | +| date created | 2017-11-15 | +| date last revised | 2017-11-15 | +| type | process | +| status | in preparation | + +# Abstract + +PlasmaPy's **Coordinating Committee** (CC) shall oversee the PlasmaPy +project and code development. + +# Detailed Description + +## Membership of Coordinating Committee + +### Limits on number of members + +The CC shall consist of at least 5 members and no more than 10 +members. Within these limits, the CC may increase or decrease the +number of directors serving on the CC, including for the purposes of +staggering the terms of members. + +### Term of office + +All members shall be elected to serve a maximum of a two-year term; +however, the term may be extended by the CC until a successor has been +elected. A member may be re-elected at the end of their term. + +The term of a CC member shall begin on January 1 of the first year in +office and end on December 31 of the second year of office, unless the +term is extended until such time as a successor has been elected. + +### Vacancies + +The CC may fill vacancies or may appoint new members to fill a +previously unfilled CC position, subject to the maximum number of +allowed members specified in this document. Known upcoming vacancies +shall be advertised no less than 3 months before the vacancy becomes +available. Unanticipated vacancies shall be advertised as soon as +possible. All vacancies shall be advertised to the PlasmaPy community +through channels of communication such as email lists, newsletters, +and webpages. The CC should fill vacancies as soon as is reasonable. + +### Removal + +A member may be removed by a two-thirds majority vote of the full CC +if (a) the member is absent and unexcused from 50% or more meetings of +the CC in a twelve month period; or (b) for cause or for no cause, if +before any meeting of the CC at which a vote on removal will be made +the member of the CC in question is given electronic or written +notification of the CC's intention to discuss their case and is given +the opportunity to be heard at a meeting of the CC. + +## Decision-making procedure + +### Quorum + +A strict majority (>50%) of CC members shall constitute a quorum for a +meeting of the CC. No official decisions shall be made by the CC at +any meeting at which a quorum is not present. + +### Compromise and consensus + +The CC should try to find compromises and reach a general consensus +(i.e., the agreement of most CC members) so that the concerns raised +by a minority of CC members can be addressed. + +### Majority vote + +Except as otherwise specified, an act of the majority of the members +of the CC present at a meeting at which a quorum is present shall be +an act of the CC. However, the CC should make a reasonable effort to +reach a general consensus and/or find a compromise that address +concerns raised by a minority of votres. + +### Absentee voting + +Voting by proxy is not allowed. An act of the CC may allow for a vote +to take place by correspondence (e.g., email). A time window of at +least a week must be provided for votes to be cast and a quorum will +be defined by the number of votes cast. + +### Meetings + +The CC shall have at least one regular meeting each quarter at times +and places fixed by the CC. At least seven days notice of each +meeting must be provided to each member of the CC with information on +the time and place of the meeting. + +Special meetings of the CC may be called by any two members of the CC. +A special meeting must be preceded by at least seven days notice of +each meeting with information on the time and place of the meeting. +The CC members calling the meeting should put reasonable effort into +finding a time that works for most or all CC members. + +The CC may decide to hold meetings in-person or through conference +calls, video chats, or text-based chats. In-person meetings should +allow for remote participation. + +It is recommended but not required that the purpose and agenda of each +meeting be sent out in advance of the meeting. + +## Responsibilities of the Coordinating Committee + + + +# References + +* Some of this document has been adapted from the [SunPy Organization + Definition](https://github.com/sunpy/sunpy-SEP/blob/master/SEP-0002.md), + which is released under a [CC BY 4.0 + license](https://github.com/sunpy/sunpy-SEP/blob/master/LICENSE.md). + +# Decision Rationale From 4a53f9a8c97880c9a34e6e261d1ac824ba9545ba Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 17 Nov 2017 22:17:45 -0500 Subject: [PATCH 02/23] Revise PLEP 2 on Coordinating Committee --- PLEP-0002.md | 63 +++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/PLEP-0002.md b/PLEP-0002.md index 389dcdc..d26db4f 100644 --- a/PLEP-0002.md +++ b/PLEP-0002.md @@ -21,20 +21,20 @@ project and code development. ### Limits on number of members -The CC shall consist of at least 5 members and no more than 10 +The CC shall consist of at least 4 members and no more than 10 members. Within these limits, the CC may increase or decrease the number of directors serving on the CC, including for the purposes of staggering the terms of members. ### Term of office -All members shall be elected to serve a maximum of a two-year term; -however, the term may be extended by the CC until a successor has been -elected. A member may be re-elected at the end of their term. - -The term of a CC member shall begin on January 1 of the first year in -office and end on December 31 of the second year of office, unless the -term is extended until such time as a successor has been elected. +All members shall be elected to serve terms of up to two years. +However, the CC may extend the term until a successor has been +elected. A member may be re-elected at the end of their term. The +term of a CC member shall begin on January 1 of the first year in +office and end on December 31 of the second year in office, unless the +CC chooses different dates. The terms should be staggered so that +roughly half of the terms expire each year. ### Vacancies @@ -44,8 +44,8 @@ allowed members specified in this document. Known upcoming vacancies shall be advertised no less than 3 months before the vacancy becomes available. Unanticipated vacancies shall be advertised as soon as possible. All vacancies shall be advertised to the PlasmaPy community -through channels of communication such as email lists, newsletters, -and webpages. The CC should fill vacancies as soon as is reasonable. +through normal channels of communication such as email lists, +newsletters, and webpages. ### Removal @@ -71,40 +71,45 @@ The CC should try to find compromises and reach a general consensus (i.e., the agreement of most CC members) so that the concerns raised by a minority of CC members can be addressed. -### Majority vote +### Voting -Except as otherwise specified, an act of the majority of the members -of the CC present at a meeting at which a quorum is present shall be -an act of the CC. However, the CC should make a reasonable effort to -reach a general consensus and/or find a compromise that address -concerns raised by a minority of votres. +An act of the majority of the members of the CC present at a meeting +at which a quorum is present shall be an act of the CC, except as +follows. -### Absentee voting +A PlasmaPy Enhancement Proposal (PLEP) shall be accepted only if +two-thirds of members of the CC vote to accept it. Voting by proxy is not allowed. An act of the CC may allow for a vote to take place by correspondence (e.g., email). A time window of at least a week must be provided for votes to be cast and a quorum will be defined by the number of votes cast. +*Add a procedure for voting by email or by Matrix or on GitHub maybe?* + ### Meetings The CC shall have at least one regular meeting each quarter at times -and places fixed by the CC. At least seven days notice of each -meeting must be provided to each member of the CC with information on -the time and place of the meeting. +and places fixed by the CC. At each meeting, the time of the +subsequent meeting should be decided or one or more CC members should +be delegated to be responsible for scheduling and organizing the next +meeting. Special meetings of the CC may be called by any two members of the CC. -A special meeting must be preceded by at least seven days notice of -each meeting with information on the time and place of the meeting. -The CC members calling the meeting should put reasonable effort into -finding a time that works for most or all CC members. -The CC may decide to hold meetings in-person or through conference -calls, video chats, or text-based chats. In-person meetings should -allow for remote participation. +Meetings should generally be held remotely through conference calls, +video chats, or text-based chats as decided by the CC. The CC may +decide to have an in-person meeting as long as there is an option for +remote participation. The people scheduling a meeting should + +At least seven days notice of a meeting of the CC must be provided to +each member of the CC. This notice must include the time of the +meeting and either the location of the meeting or information on how +to join a remote meeting. It is recommended but not required that the purpose and agenda of each -meeting be sent out in advance of the meeting. +meeting be sent out in advance of the meeting. Every CC member may +add items to the agenda of a meeting. ## Responsibilities of the Coordinating Committee @@ -116,5 +121,3 @@ meeting be sent out in advance of the meeting. Definition](https://github.com/sunpy/sunpy-SEP/blob/master/SEP-0002.md), which is released under a [CC BY 4.0 license](https://github.com/sunpy/sunpy-SEP/blob/master/LICENSE.md). - -# Decision Rationale From d38d2da427892b3a95bfc6bfa511ba261c94aadb Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 1 Dec 2017 20:54:45 -0500 Subject: [PATCH 03/23] List responsibilities of coordinating committee in PLEP 2 --- PLEP-0002.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/PLEP-0002.md b/PLEP-0002.md index d26db4f..ffc3d43 100644 --- a/PLEP-0002.md +++ b/PLEP-0002.md @@ -6,7 +6,7 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-11-15 | -| date last revised | 2017-11-15 | +| date last revised | 2017-12-01 | | type | process | | status | in preparation | @@ -24,7 +24,9 @@ project and code development. The CC shall consist of at least 4 members and no more than 10 members. Within these limits, the CC may increase or decrease the number of directors serving on the CC, including for the purposes of -staggering the terms of members. +staggering the terms of members. The members of the Coordinating +Committee shall be listed in [PLEP +3](https://github.com/PlasmaPy/PlasmaPy-PLEPs/blob/master/PLEP-0003.md). ### Term of office @@ -113,7 +115,20 @@ add items to the agenda of a meeting. ## Responsibilities of the Coordinating Committee - +The responsibilities of the Coordinating Committee are to: + +* Oversee the PlasmaPy project; +* Ensure that necessary roles are being filled; +* Coordinate and delegate tasks; +* Facilitate community-wide communication; +* Oversee code development; +* Manage the PlasmaPy repositories; +* Regulate intercompatibility between subpackages and affiliated packages; +* Seek funding mechanisms and coordinate grant proposals; +* Facilitate compromises and cooperation; +* Enforce the code of conduct; +* Foster a culture of appreciation; and +* Protect the universe from being invaded by evil robots from beyond the Moon. # References From 5be936e06354726d2dade7be6b8a194259a0821c Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Mon, 5 Feb 2018 00:32:26 -0500 Subject: [PATCH 04/23] Update PLEP 2 on governance --- PLEP-0002.md | 86 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/PLEP-0002.md b/PLEP-0002.md index ffc3d43..ded97dd 100644 --- a/PLEP-0002.md +++ b/PLEP-0002.md @@ -2,11 +2,11 @@ | PLEP | 2 | |-------------------|-----------------------------------| -| title | Coordinating Committee | +| title | PlasmaPy Governance | | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-11-15 | -| date last revised | 2017-12-01 | +| date last revised | 2017-02-04 | | type | process | | status | in preparation | @@ -19,35 +19,37 @@ project and code development. ## Membership of Coordinating Committee -### Limits on number of members +### Membership -The CC shall consist of at least 4 members and no more than 10 -members. Within these limits, the CC may increase or decrease the -number of directors serving on the CC, including for the purposes of -staggering the terms of members. The members of the Coordinating -Committee shall be listed in [PLEP +The CC shall consist of at least 4 members and no more than 12 members. +Within these limits, the CC may increase or decrease the number of +directors serving on the CC, including for the purposes of staggering +the terms of members. The CC should include not just core members but +also members who work toward community engagement, education, and other +goals of PlasmaPy. Current and former members of the CC shall be listed +in [PLEP 3](https://github.com/PlasmaPy/PlasmaPy-PLEPs/blob/master/PLEP-0003.md). ### Term of office -All members shall be elected to serve terms of up to two years. -However, the CC may extend the term until a successor has been -elected. A member may be re-elected at the end of their term. The -term of a CC member shall begin on January 1 of the first year in -office and end on December 31 of the second year in office, unless the -CC chooses different dates. The terms should be staggered so that -roughly half of the terms expire each year. +All members shall be elected by the CC to serve terms of up to two +years. However, the CC may extend the term until a successor has been +elected. A member may be re-elected at the end of their term. The term +of a CC member shall begin on January 1 of the first year in office and +end on December 31 of the second year in office, unless the CC chooses +different dates. The terms should be staggered so that roughly half of +the terms expire each year. ### Vacancies The CC may fill vacancies or may appoint new members to fill a previously unfilled CC position, subject to the maximum number of allowed members specified in this document. Known upcoming vacancies -shall be advertised no less than 3 months before the vacancy becomes +should be advertised at least two months before the vacancy becomes available. Unanticipated vacancies shall be advertised as soon as possible. All vacancies shall be advertised to the PlasmaPy community through normal channels of communication such as email lists, -newsletters, and webpages. +newsletters, and webpages. ### Removal @@ -75,44 +77,60 @@ by a minority of CC members can be addressed. ### Voting +Votes of the CC may take place during either a meeting of the CC when a +quorum is present or by using electronic communication. + An act of the majority of the members of the CC present at a meeting at which a quorum is present shall be an act of the CC, except as -follows. +otherwise indicated. + +An act of the CC may occur by a vote taken over email or other forms of +remote communication that are readily available and accessible to all +CC members. During such votes, all members shall be considered present +(i.e., a majority vote means a majority of all CC members). Prior to a +vote, there should be a period of discussion related to issue among the +CC (and often the broader PlasmaPy community). A vote shall begin when +a member of the CC sends a proposal to all members of the CC. Voting +shall end either when enough members of the CC have voted such that the +outcome has been determined, or seven days after the proposal has been +sent out (whichever comes later). Members may change their votes up +until the time when the outcome has been determined. A PlasmaPy Enhancement Proposal (PLEP) shall be accepted only if -two-thirds of members of the CC vote to accept it. - -Voting by proxy is not allowed. An act of the CC may allow for a vote -to take place by correspondence (e.g., email). A time window of at -least a week must be provided for votes to be cast and a quorum will -be defined by the number of votes cast. +two-thirds of all members of the CC vote to accept it. -*Add a procedure for voting by email or by Matrix or on GitHub maybe?* +Voting by proxy is not allowed. ### Meetings -The CC shall have at least one regular meeting each quarter at times -and places fixed by the CC. At each meeting, the time of the -subsequent meeting should be decided or one or more CC members should -be delegated to be responsible for scheduling and organizing the next -meeting. +The CC should have at least one regular meeting each quarter at times +and places fixed by the CC, or as needed. At each meeting, the time of +the subsequent meeting should be decided or one or more CC members +should be delegated to be responsible for scheduling and organizing the +next meeting. Special meetings of the CC may be called by any two members of the CC. Meetings should generally be held remotely through conference calls, video chats, or text-based chats as decided by the CC. The CC may decide to have an in-person meeting as long as there is an option for -remote participation. The people scheduling a meeting should +remote participation. The people scheduling a meeting should make a +reasonable effort to find a time that works for as many CC members as +possible. At least seven days notice of a meeting of the CC must be provided to -each member of the CC. This notice must include the time of the -meeting and either the location of the meeting or information on how -to join a remote meeting. +each member of the CC (unless otherwise agreed by all CC members). This +notice must include the time of the meeting and either the location of +the meeting or information on how to join a remote meeting. It is recommended but not required that the purpose and agenda of each meeting be sent out in advance of the meeting. Every CC member may add items to the agenda of a meeting. +The CC should also hold weekly or biweekly telecons or video conferences +so that the CC and members of the PlasmaPy community may coordinate +code development and other activities. + ## Responsibilities of the Coordinating Committee The responsibilities of the Coordinating Committee are to: From 82ecaf2e724c8ed231454726c620ae16e7d32e07 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 18 May 2018 16:12:36 -0400 Subject: [PATCH 05/23] Update PLEP on PlasmaPy Governance --- PLEP-0002.md | 64 ++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/PLEP-0002.md b/PLEP-0002.md index ded97dd..08bd60e 100644 --- a/PLEP-0002.md +++ b/PLEP-0002.md @@ -1,4 +1,4 @@ -# PLEP-0002 -- Coordinating Committee +# PLEP-0002 -- PlasmaPy Governance | PLEP | 2 | |-------------------|-----------------------------------| @@ -6,7 +6,7 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-11-15 | -| date last revised | 2017-02-04 | +| date last revised | 2018-05-18 | | type | process | | status | in preparation | @@ -21,23 +21,23 @@ project and code development. ### Membership -The CC shall consist of at least 4 members and no more than 12 members. -Within these limits, the CC may increase or decrease the number of -directors serving on the CC, including for the purposes of staggering +The CC shall consist of at least 4 members and no more than 12 members. +Within these limits, the CC may increase or decrease the number of +directors serving on the CC, including for the purposes of staggering the terms of members. The CC should include not just core members but also members who work toward community engagement, education, and other -goals of PlasmaPy. Current and former members of the CC shall be listed -in [PLEP +goals of PlasmaPy. Current and former members of the CC shall be listed +in [PLEP- 3](https://github.com/PlasmaPy/PlasmaPy-PLEPs/blob/master/PLEP-0003.md). ### Term of office -All members shall be elected by the CC to serve terms of up to two +All members shall be elected by the CC to serve terms of up to two years. However, the CC may extend the term until a successor has been -elected. A member may be re-elected at the end of their term. The term -of a CC member shall begin on January 1 of the first year in office and -end on December 31 of the second year in office, unless the CC chooses -different dates. The terms should be staggered so that roughly half of +elected. A member may be re-elected at the end of their term. The term +of a CC member shall begin on January 1 of the first year in office and +end on December 31 of the second year in office, unless the CC chooses +different dates. The terms should be staggered so that roughly half of the terms expire each year. ### Vacancies @@ -49,25 +49,25 @@ should be advertised at least two months before the vacancy becomes available. Unanticipated vacancies shall be advertised as soon as possible. All vacancies shall be advertised to the PlasmaPy community through normal channels of communication such as email lists, -newsletters, and webpages. +newsletters, and webpages. ### Removal -A member may be removed by a two-thirds majority vote of the full CC -if (a) the member is absent and unexcused from 50% or more meetings of -the CC in a twelve month period; or (b) for cause or for no cause, if -before any meeting of the CC at which a vote on removal will be made -the member of the CC in question is given electronic or written -notification of the CC's intention to discuss their case and is given -the opportunity to be heard at a meeting of the CC. +A member may be removed by a two-thirds majority vote of the full CC if +(a) the member is absent and unexcused from 50% or more meetings of the +CC in a twelve month period; or (b) for cause or for no cause, if before +any meeting of the CC at which a vote on removal will be made the member +of the CC in question is given electronic or written notification of the +CC's intention to discuss their case and is given the opportunity to be +heard at a meeting of the CC. ## Decision-making procedure ### Quorum A strict majority (>50%) of CC members shall constitute a quorum for a -meeting of the CC. No official decisions shall be made by the CC at -any meeting at which a quorum is not present. +meeting of the CC. No official decisions shall be made by the CC at any +meeting at which a quorum is not present. ### Compromise and consensus @@ -78,7 +78,7 @@ by a minority of CC members can be addressed. ### Voting Votes of the CC may take place during either a meeting of the CC when a -quorum is present or by using electronic communication. +quorum is present or by using electronic communication. An act of the majority of the members of the CC present at a meeting at which a quorum is present shall be an act of the CC, except as @@ -96,7 +96,7 @@ outcome has been determined, or seven days after the proposal has been sent out (whichever comes later). Members may change their votes up until the time when the outcome has been determined. -A PlasmaPy Enhancement Proposal (PLEP) shall be accepted only if +A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only if two-thirds of all members of the CC vote to accept it. Voting by proxy is not allowed. @@ -104,8 +104,8 @@ Voting by proxy is not allowed. ### Meetings The CC should have at least one regular meeting each quarter at times -and places fixed by the CC, or as needed. At each meeting, the time of -the subsequent meeting should be decided or one or more CC members +and places fixed by the CC, or as needed. At each meeting, the time of +the subsequent meeting should be decided or one or more CC members should be delegated to be responsible for scheduling and organizing the next meeting. @@ -119,17 +119,17 @@ reasonable effort to find a time that works for as many CC members as possible. At least seven days notice of a meeting of the CC must be provided to -each member of the CC (unless otherwise agreed by all CC members). This -notice must include the time of the meeting and either the location of +each member of the CC (unless otherwise agreed by all CC members). This +notice must include the time of the meeting and either the location of the meeting or information on how to join a remote meeting. It is recommended but not required that the purpose and agenda of each -meeting be sent out in advance of the meeting. Every CC member may -add items to the agenda of a meeting. +meeting be sent out in advance of the meeting. Every CC member may add +items to the agenda of a meeting. The CC should also hold weekly or biweekly telecons or video conferences -so that the CC and members of the PlasmaPy community may coordinate -code development and other activities. +so that the CC and members of the PlasmaPy community may coordinate code +development and other activities. ## Responsibilities of the Coordinating Committee From cab64981e414ab8a7a3fe9a584ce3422e1c9989b Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 18 May 2018 16:21:41 -0400 Subject: [PATCH 06/23] Have the CC learn about unconscious bias before filling vacancies --- PLEP-0002.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PLEP-0002.md b/PLEP-0002.md index 08bd60e..0f4aca4 100644 --- a/PLEP-0002.md +++ b/PLEP-0002.md @@ -49,7 +49,9 @@ should be advertised at least two months before the vacancy becomes available. Unanticipated vacancies shall be advertised as soon as possible. All vacancies shall be advertised to the PlasmaPy community through normal channels of communication such as email lists, -newsletters, and webpages. +newsletters, and webpages. Before deciding upon new members of the CC, +each member of the CC shall read at least one resource on unconscious +bias. ### Removal From ffde77d63f9983c9e5171b15297640320f81db8c Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 22 May 2018 15:23:19 -0400 Subject: [PATCH 07/23] Convert PLEP-0002.md to PLEP-0002.rst --- PLEP-0002.rst | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 PLEP-0002.rst diff --git a/PLEP-0002.rst b/PLEP-0002.rst new file mode 100644 index 0000000..f1645fa --- /dev/null +++ b/PLEP-0002.rst @@ -0,0 +1,182 @@ +PLEP-0002 – PlasmaPy Governance +=============================== + ++-------------------+--------------------------+ +| PLEP | 2 | ++===================+==========================+ +| title | PlasmaPy Governance | ++-------------------+--------------------------+ +| author(s) | Nick Murphy | ++-------------------+--------------------------+ +| contact email | namurphy@cfa.harvard.edu | ++-------------------+--------------------------+ +| date created | 2017-11-15 | ++-------------------+--------------------------+ +| date last revised | 2018-05-18 | ++-------------------+--------------------------+ +| type | process | ++-------------------+--------------------------+ +| status | in preparation | ++-------------------+--------------------------+ + +Abstract +======== + +PlasmaPy’s **Coordinating Committee** (CC) shall oversee the PlasmaPy +project and code development. + +Detailed Description +==================== + +Membership of Coordinating Committee +------------------------------------ + +Membership +~~~~~~~~~~ + +The CC shall consist of at least 4 members and no more than 12 members. +Within these limits, the CC may increase or decrease the number of +directors serving on the CC, including for the purposes of staggering +the terms of members. The CC should include not just core members but +also members who work toward community engagement, education, and other +goals of PlasmaPy. Current and former members of the CC shall be listed +in `PLEP- +3 `__. + +Term of office +~~~~~~~~~~~~~~ + +All members shall be elected by the CC to serve terms of up to two +years. However, the CC may extend the term until a successor has been +elected. A member may be re-elected at the end of their term. The term +of a CC member shall begin on January 1 of the first year in office and +end on December 31 of the second year in office, unless the CC chooses +different dates. The terms should be staggered so that roughly half of +the terms expire each year. + +Vacancies +~~~~~~~~~ + +The CC may fill vacancies or may appoint new members to fill a +previously unfilled CC position, subject to the maximum number of +allowed members specified in this document. Known upcoming vacancies +should be advertised at least two months before the vacancy becomes +available. Unanticipated vacancies shall be advertised as soon as +possible. All vacancies shall be advertised to the PlasmaPy community +through normal channels of communication such as email lists, +newsletters, and webpages. Before deciding upon new members of the CC, +each member of the CC shall read at least one resource on unconscious +bias. + +Removal +~~~~~~~ + +A member may be removed by a two-thirds majority vote of the full CC if +(a) the member is absent and unexcused from 50% or more meetings of the +CC in a twelve month period; or (b) for cause or for no cause, if before +any meeting of the CC at which a vote on removal will be made the member +of the CC in question is given electronic or written notification of the +CC’s intention to discuss their case and is given the opportunity to be +heard at a meeting of the CC. + +Decision-making procedure +------------------------- + +Quorum +~~~~~~ + +A strict majority (>50%) of CC members shall constitute a quorum for a +meeting of the CC. No official decisions shall be made by the CC at any +meeting at which a quorum is not present. + +Compromise and consensus +~~~~~~~~~~~~~~~~~~~~~~~~ + +The CC should try to find compromises and reach a general consensus +(i.e., the agreement of most CC members) so that the concerns raised by +a minority of CC members can be addressed. + +Voting +~~~~~~ + +Votes of the CC may take place during either a meeting of the CC when a +quorum is present or by using electronic communication. + +An act of the majority of the members of the CC present at a meeting at +which a quorum is present shall be an act of the CC, except as otherwise +indicated. + +An act of the CC may occur by a vote taken over email or other forms of +remote communication that are readily available and accessible to all CC +members. During such votes, all members shall be considered present +(i.e., a majority vote means a majority of all CC members). Prior to a +vote, there should be a period of discussion related to issue among the +CC (and often the broader PlasmaPy community). A vote shall begin when a +member of the CC sends a proposal to all members of the CC. Voting shall +end either when enough members of the CC have voted such that the +outcome has been determined, or seven days after the proposal has been +sent out (whichever comes later). Members may change their votes up +until the time when the outcome has been determined. + +A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only if +two-thirds of all members of the CC vote to accept it. + +Voting by proxy is not allowed. + +Meetings +~~~~~~~~ + +The CC should have at least one regular meeting each quarter at times +and places fixed by the CC, or as needed. At each meeting, the time of +the subsequent meeting should be decided or one or more CC members +should be delegated to be responsible for scheduling and organizing the +next meeting. + +Special meetings of the CC may be called by any two members of the CC. + +Meetings should generally be held remotely through conference calls, +video chats, or text-based chats as decided by the CC. The CC may decide +to have an in-person meeting as long as there is an option for remote +participation. The people scheduling a meeting should make a reasonable +effort to find a time that works for as many CC members as possible. + +At least seven days notice of a meeting of the CC must be provided to +each member of the CC (unless otherwise agreed by all CC members). This +notice must include the time of the meeting and either the location of +the meeting or information on how to join a remote meeting. + +It is recommended but not required that the purpose and agenda of each +meeting be sent out in advance of the meeting. Every CC member may add +items to the agenda of a meeting. + +The CC should also hold weekly or biweekly telecons or video conferences +so that the CC and members of the PlasmaPy community may coordinate code +development and other activities. + +Responsibilities of the Coordinating Committee +---------------------------------------------- + +The responsibilities of the Coordinating Committee are to: + +- Oversee the PlasmaPy project; +- Ensure that necessary roles are being filled; +- Coordinate and delegate tasks; +- Facilitate community-wide communication; +- Oversee code development; +- Manage the PlasmaPy repositories; +- Regulate intercompatibility between subpackages and affiliated + packages; +- Seek funding mechanisms and coordinate grant proposals; +- Facilitate compromises and cooperation; +- Enforce the code of conduct; +- Foster a culture of appreciation; and +- Protect the universe from being invaded by evil robots from beyond + the Moon. + +References +========== + +- Some of this document has been adapted from the `SunPy Organization + Definition `__, + which is released under a `CC BY 4.0 + license `__. From 131aabfc15e9041fd99d21dad26d23742994cd8b Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 22 May 2018 15:24:51 -0400 Subject: [PATCH 08/23] Delete PLEP-0002.md --- PLEP-0002.md | 158 --------------------------------------------------- 1 file changed, 158 deletions(-) delete mode 100644 PLEP-0002.md diff --git a/PLEP-0002.md b/PLEP-0002.md deleted file mode 100644 index 0f4aca4..0000000 --- a/PLEP-0002.md +++ /dev/null @@ -1,158 +0,0 @@ -# PLEP-0002 -- PlasmaPy Governance - -| PLEP | 2 | -|-------------------|-----------------------------------| -| title | PlasmaPy Governance | -| author(s) | Nick Murphy | -| contact email | namurphy@cfa.harvard.edu | -| date created | 2017-11-15 | -| date last revised | 2018-05-18 | -| type | process | -| status | in preparation | - -# Abstract - -PlasmaPy's **Coordinating Committee** (CC) shall oversee the PlasmaPy -project and code development. - -# Detailed Description - -## Membership of Coordinating Committee - -### Membership - -The CC shall consist of at least 4 members and no more than 12 members. -Within these limits, the CC may increase or decrease the number of -directors serving on the CC, including for the purposes of staggering -the terms of members. The CC should include not just core members but -also members who work toward community engagement, education, and other -goals of PlasmaPy. Current and former members of the CC shall be listed -in [PLEP- -3](https://github.com/PlasmaPy/PlasmaPy-PLEPs/blob/master/PLEP-0003.md). - -### Term of office - -All members shall be elected by the CC to serve terms of up to two -years. However, the CC may extend the term until a successor has been -elected. A member may be re-elected at the end of their term. The term -of a CC member shall begin on January 1 of the first year in office and -end on December 31 of the second year in office, unless the CC chooses -different dates. The terms should be staggered so that roughly half of -the terms expire each year. - -### Vacancies - -The CC may fill vacancies or may appoint new members to fill a -previously unfilled CC position, subject to the maximum number of -allowed members specified in this document. Known upcoming vacancies -should be advertised at least two months before the vacancy becomes -available. Unanticipated vacancies shall be advertised as soon as -possible. All vacancies shall be advertised to the PlasmaPy community -through normal channels of communication such as email lists, -newsletters, and webpages. Before deciding upon new members of the CC, -each member of the CC shall read at least one resource on unconscious -bias. - -### Removal - -A member may be removed by a two-thirds majority vote of the full CC if -(a) the member is absent and unexcused from 50% or more meetings of the -CC in a twelve month period; or (b) for cause or for no cause, if before -any meeting of the CC at which a vote on removal will be made the member -of the CC in question is given electronic or written notification of the -CC's intention to discuss their case and is given the opportunity to be -heard at a meeting of the CC. - -## Decision-making procedure - -### Quorum - -A strict majority (>50%) of CC members shall constitute a quorum for a -meeting of the CC. No official decisions shall be made by the CC at any -meeting at which a quorum is not present. - -### Compromise and consensus - -The CC should try to find compromises and reach a general consensus -(i.e., the agreement of most CC members) so that the concerns raised -by a minority of CC members can be addressed. - -### Voting - -Votes of the CC may take place during either a meeting of the CC when a -quorum is present or by using electronic communication. - -An act of the majority of the members of the CC present at a meeting -at which a quorum is present shall be an act of the CC, except as -otherwise indicated. - -An act of the CC may occur by a vote taken over email or other forms of -remote communication that are readily available and accessible to all -CC members. During such votes, all members shall be considered present -(i.e., a majority vote means a majority of all CC members). Prior to a -vote, there should be a period of discussion related to issue among the -CC (and often the broader PlasmaPy community). A vote shall begin when -a member of the CC sends a proposal to all members of the CC. Voting -shall end either when enough members of the CC have voted such that the -outcome has been determined, or seven days after the proposal has been -sent out (whichever comes later). Members may change their votes up -until the time when the outcome has been determined. - -A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only if -two-thirds of all members of the CC vote to accept it. - -Voting by proxy is not allowed. - -### Meetings - -The CC should have at least one regular meeting each quarter at times -and places fixed by the CC, or as needed. At each meeting, the time of -the subsequent meeting should be decided or one or more CC members -should be delegated to be responsible for scheduling and organizing the -next meeting. - -Special meetings of the CC may be called by any two members of the CC. - -Meetings should generally be held remotely through conference calls, -video chats, or text-based chats as decided by the CC. The CC may -decide to have an in-person meeting as long as there is an option for -remote participation. The people scheduling a meeting should make a -reasonable effort to find a time that works for as many CC members as -possible. - -At least seven days notice of a meeting of the CC must be provided to -each member of the CC (unless otherwise agreed by all CC members). This -notice must include the time of the meeting and either the location of -the meeting or information on how to join a remote meeting. - -It is recommended but not required that the purpose and agenda of each -meeting be sent out in advance of the meeting. Every CC member may add -items to the agenda of a meeting. - -The CC should also hold weekly or biweekly telecons or video conferences -so that the CC and members of the PlasmaPy community may coordinate code -development and other activities. - -## Responsibilities of the Coordinating Committee - -The responsibilities of the Coordinating Committee are to: - -* Oversee the PlasmaPy project; -* Ensure that necessary roles are being filled; -* Coordinate and delegate tasks; -* Facilitate community-wide communication; -* Oversee code development; -* Manage the PlasmaPy repositories; -* Regulate intercompatibility between subpackages and affiliated packages; -* Seek funding mechanisms and coordinate grant proposals; -* Facilitate compromises and cooperation; -* Enforce the code of conduct; -* Foster a culture of appreciation; and -* Protect the universe from being invaded by evil robots from beyond the Moon. - -# References - -* Some of this document has been adapted from the [SunPy Organization - Definition](https://github.com/sunpy/sunpy-SEP/blob/master/SEP-0002.md), - which is released under a [CC BY 4.0 - license](https://github.com/sunpy/sunpy-SEP/blob/master/LICENSE.md). From 743b0cbad9c41454df41a6d50514047f381dd171 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Mon, 17 Sep 2018 17:09:17 -0400 Subject: [PATCH 09/23] Revise PLEP 2 on Coordinating Committee I changed the maximum length of a term to three years from two years since longer terms can help with stability and institutional memory. This change would be worth discussion a little bit further. --- PLEP-0002.rst | 125 ++++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 61 deletions(-) diff --git a/PLEP-0002.rst b/PLEP-0002.rst index f1645fa..9355a6a 100644 --- a/PLEP-0002.rst +++ b/PLEP-0002.rst @@ -12,7 +12,7 @@ PLEP-0002 – PlasmaPy Governance +-------------------+--------------------------+ | date created | 2017-11-15 | +-------------------+--------------------------+ -| date last revised | 2018-05-18 | +| date last revised | 2018-09-17 | +-------------------+--------------------------+ | type | process | +-------------------+--------------------------+ @@ -34,25 +34,25 @@ Membership of Coordinating Committee Membership ~~~~~~~~~~ -The CC shall consist of at least 4 members and no more than 12 members. -Within these limits, the CC may increase or decrease the number of -directors serving on the CC, including for the purposes of staggering -the terms of members. The CC should include not just core members but -also members who work toward community engagement, education, and other -goals of PlasmaPy. Current and former members of the CC shall be listed -in `PLEP- -3 `__. +The CC shall consist of at least 4 members and no more than 12 +members. Within these limits, the CC may increase or decrease the +number of people serving on the CC, including for the purposes of +staggering the terms of members. The CC should include core +contributors, members working toward community engagement and +education, and members of the broader plasma physics community. +Current and former members of the CC shall be listed in `PLEP 3 +`__. Term of office ~~~~~~~~~~~~~~ -All members shall be elected by the CC to serve terms of up to two +All members shall be elected by the CC to serve terms of up to three years. However, the CC may extend the term until a successor has been elected. A member may be re-elected at the end of their term. The term -of a CC member shall begin on January 1 of the first year in office and -end on December 31 of the second year in office, unless the CC chooses -different dates. The terms should be staggered so that roughly half of -the terms expire each year. +of a CC member shall begin on January 1 of the first year in office +and end on December 31 of the third year in office, unless the CC +specifies different dates. The terms should be staggered so that +roughly a third of members complete their terms each year. Vacancies ~~~~~~~~~ @@ -60,8 +60,8 @@ Vacancies The CC may fill vacancies or may appoint new members to fill a previously unfilled CC position, subject to the maximum number of allowed members specified in this document. Known upcoming vacancies -should be advertised at least two months before the vacancy becomes -available. Unanticipated vacancies shall be advertised as soon as +should be advertised at least one month before the vacancy becomes +available. Unanticipated vacancies should be advertised as soon as possible. All vacancies shall be advertised to the PlasmaPy community through normal channels of communication such as email lists, newsletters, and webpages. Before deciding upon new members of the CC, @@ -72,12 +72,12 @@ Removal ~~~~~~~ A member may be removed by a two-thirds majority vote of the full CC if -(a) the member is absent and unexcused from 50% or more meetings of the -CC in a twelve month period; or (b) for cause or for no cause, if before -any meeting of the CC at which a vote on removal will be made the member -of the CC in question is given electronic or written notification of the -CC’s intention to discuss their case and is given the opportunity to be -heard at a meeting of the CC. +(a) the member is absent and unexcused from 50% or more meetings of +the CC in a twelve month period; or (b) for cause or for no cause, if +before any meeting of the CC at which a vote on removal will be made +the member of the CC in question is given electronic or written +notification of the CC’s intention to discuss their case and is given +the opportunity to be heard at a meeting of the CC. Decision-making procedure ------------------------- @@ -86,42 +86,43 @@ Quorum ~~~~~~ A strict majority (>50%) of CC members shall constitute a quorum for a -meeting of the CC. No official decisions shall be made by the CC at any -meeting at which a quorum is not present. +meeting of the CC. No official decisions shall be made by the CC at +any meeting at which a quorum is not present. Compromise and consensus ~~~~~~~~~~~~~~~~~~~~~~~~ The CC should try to find compromises and reach a general consensus -(i.e., the agreement of most CC members) so that the concerns raised by -a minority of CC members can be addressed. +(i.e., the agreement of most CC members) so that the concerns raised +by a minority of CC members can be addressed. Voting ~~~~~~ -Votes of the CC may take place during either a meeting of the CC when a -quorum is present or by using electronic communication. - -An act of the majority of the members of the CC present at a meeting at -which a quorum is present shall be an act of the CC, except as otherwise -indicated. - -An act of the CC may occur by a vote taken over email or other forms of -remote communication that are readily available and accessible to all CC -members. During such votes, all members shall be considered present -(i.e., a majority vote means a majority of all CC members). Prior to a -vote, there should be a period of discussion related to issue among the -CC (and often the broader PlasmaPy community). A vote shall begin when a -member of the CC sends a proposal to all members of the CC. Voting shall -end either when enough members of the CC have voted such that the -outcome has been determined, or seven days after the proposal has been -sent out (whichever comes later). Members may change their votes up -until the time when the outcome has been determined. - -A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only if -two-thirds of all members of the CC vote to accept it. - -Voting by proxy is not allowed. +Votes of the CC may take place during either a meeting of the CC when +a quorum is present or by using electronic communication. + +An act of the majority of the members of the CC present at a meeting +at which a quorum is present shall be an act of the CC, except as +otherwise indicated. + +An act of the CC may occur by a vote taken over email or other forms +of remote communication that are readily available and accessible to +all CC members. During such votes, all members shall be considered +present (i.e., a majority vote means a majority of all CC +members). Prior to a vote, there should be a period of discussion +related to issue among the CC (and often the broader PlasmaPy +community). A vote shall begin when a member of the CC sends a +proposal to all members of the CC. Voting shall end either when enough +members of the CC have voted such that the outcome has been +determined, or seven days after the proposal has been sent out +(whichever comes later). Members may change their votes up until the +time when the outcome has been determined. Voting by proxy is not +allowed. + +A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only +if two-thirds of all members of the CC either approve it on GitHub or +vote in favor according to the procedures described in this section. Meetings ~~~~~~~~ @@ -129,29 +130,31 @@ Meetings The CC should have at least one regular meeting each quarter at times and places fixed by the CC, or as needed. At each meeting, the time of the subsequent meeting should be decided or one or more CC members -should be delegated to be responsible for scheduling and organizing the -next meeting. +should be delegated to be responsible for scheduling and organizing +the next meeting. Special meetings of the CC may be called by any two members of the CC. Meetings should generally be held remotely through conference calls, -video chats, or text-based chats as decided by the CC. The CC may decide -to have an in-person meeting as long as there is an option for remote -participation. The people scheduling a meeting should make a reasonable -effort to find a time that works for as many CC members as possible. +video chats, or text-based chats as decided by the CC. The CC may +decide to have an in-person meeting as long as there is an option for +remote participation. The people scheduling a meeting should make a +reasonable effort to find a time that works for as many CC members as +possible. At least seven days notice of a meeting of the CC must be provided to -each member of the CC (unless otherwise agreed by all CC members). This -notice must include the time of the meeting and either the location of -the meeting or information on how to join a remote meeting. +each member of the CC (unless otherwise agreed by all CC +members). This notice must include the time of the meeting and either +the location of the meeting or information on how to join a remote +meeting. It is recommended but not required that the purpose and agenda of each meeting be sent out in advance of the meeting. Every CC member may add items to the agenda of a meeting. -The CC should also hold weekly or biweekly telecons or video conferences -so that the CC and members of the PlasmaPy community may coordinate code -development and other activities. +The CC should also hold weekly or biweekly telecons or video +conferences so that the CC and members of the PlasmaPy community may +coordinate code development and other activities. Responsibilities of the Coordinating Committee ---------------------------------------------- From 235415267f37f478bd951e0835d99c2a3d460ba7 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 18 Sep 2018 13:07:44 -0400 Subject: [PATCH 10/23] Update procedure for voting on PLEPs in PLEP 2 This incorporates text from (and refers to) PLEP 1. Both PLEP 1 and PLEP 2 should be updated if the PLEP voting procedure changes. --- PLEP-0002.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/PLEP-0002.rst b/PLEP-0002.rst index 9355a6a..dce02a4 100644 --- a/PLEP-0002.rst +++ b/PLEP-0002.rst @@ -12,7 +12,7 @@ PLEP-0002 – PlasmaPy Governance +-------------------+--------------------------+ | date created | 2017-11-15 | +-------------------+--------------------------+ -| date last revised | 2018-09-17 | +| date last revised | 2018-09-18 | +-------------------+--------------------------+ | type | process | +-------------------+--------------------------+ @@ -120,9 +120,12 @@ determined, or seven days after the proposal has been sent out time when the outcome has been determined. Voting by proxy is not allowed. -A PlasmaPy Enhancement Proposal (PLEP) shall be accepted if and only -if two-thirds of all members of the CC either approve it on GitHub or -vote in favor according to the procedures described in this section. +A PlasmaPy Enhancement Proposal (PLEP) shall be accepted when at least +two-thirds of the Coordinating Committee votes in favor of the PLEP. +The vote may be taken in the discussion of the pull request on GitHub, +over email, or at a Coordinating Committee meeting where voting is +recorded in the minutes (as described in `PLEP 1 +`__). Meetings ~~~~~~~~ From 142bc45b336e61fb050bb6311f3c4a1d11593bf2 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Thu, 28 Sep 2017 19:03:18 -0400 Subject: [PATCH 11/23] Begin PLEP on licensing The purpose of this PLEP is to add an explicit patent grant to PlasmaPy's BSD 3-clause license to protect the rights of users against software patents, and to have creative works covered by Creative Commons licenses. This commit include a first draft of most sections of this PLEP, except for the detailed description. --- PLEP-0004.md | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 PLEP-0004.md diff --git a/PLEP-0004.md b/PLEP-0004.md new file mode 100644 index 0000000..405d3b5 --- /dev/null +++ b/PLEP-0004.md @@ -0,0 +1,137 @@ +# PLEP-0004 -- Add a patent grant to PlasmaPy's license + +| PLEP | 4 | +|-------------------|------------------------------------------| +| title | Add a patent grant to PlasmaPy's license | +| author(s) | Nick Murphy | +| contact email | namurphy@cfa.harvard.edu | +| date created | 2017-09-28 | +| date last revised | 2017-09-28 | +| type | process | +| status | in preparation | + +## Abstract + +Most modern software licenses include language that protects users and +the package against software patents. PlasmaPy's [BSD 3-clause +license](https://opensource.org/licenses/BSD-3-Clause) does not +include such a clause. There is a small but nonzero chance that a +contributor could later patent their contribution, and then prohibit +use of that contribution by PlasmaPy community members. The first +component of this PLEP is to add the explicit patent grant contained +in the [BSD+Patent +license](https://opensource.org/licenses/BSDplusPatent) that was +recently approved by the Open Source Initiative (OSI). + +PlasmaPy includes multiple repositories to host creative works in +addition to (or instead of) software. Creative Commons licenses are +much more appropriate than open source licenses for creative content. +The second component of this PLEP is to adopt the Creative Commons +Attribution 4.0 International ([CC BY +4.0](https://creativecommons.org/licenses/by/4.0/)) license for +creative works in most repositories, and the Creative Commons +Attribution-ShareAlike 4.0 International ([CC BY-SA +4.0](https://creativecommons.org/licenses/by-sa/4.0/)) for the +creative works in the [Plasma-Education +repository](https://github.com/PlasmaPy/Plasma-Education). + +## Detailed Description + + + + +## Implementation + +The following text will be added to the existing PlasmaPy license: + +> Subject to the terms and conditions of this license, each copyright +> holder and contributor hereby grants to those receiving rights under +> this license a perpetual, worldwide, non-exclusive, no-charge, +> royalty-free, irrevocable (except for failure to satisfy the +> conditions of this license) patent license to make, have made, use, +> offer to sell, sell, import, and otherwise transfer this software, +> where such license applies only to those patent claims, already +> acquired or hereafter acquired, licensable by such copyright holder +> or contributor that are necessarily infringed by: +> +> (a) their Contribution(s) (the licensed copyrights of copyright +> holders and non-copyrightable additions of contributors, in +> source or binary form) alone; or +> +> (b) combination of their Contribution(s) with the work of +> authorship to which such Contribution(s) was added by such +> copyright holder or contributor, if, at the time the +> Contribution is added, such addition causes such combination +> to be necessarily infringed. The patent license shall not +> apply to any other combinations which include the +> Contribution. +> +> Except as expressly stated above, no rights or licenses from any +> copyright holder or contributor is granted under this license, +> whether expressly, by implication, estoppel or otherwise. + +The phrase "All rights reserved" will be removed because it no longer +has any legal significance, and additional minor formatting changes +will be made. + +Repositories that contain solely creative works will be updated to +include a license file that includes or refers to the CC BY license, +with the exception that the Plasma-Education library will be covered +by the CC BY-SA 4.0 license. + +Repositories that include both source code and creative works will +include a clause such as: + +> Source code files and code snippets included in this project are +> licensed under the BSD 3-clause license with an added patent grant. +> All other content in this project (including content compiled +> directly from source code and code snippets) is licensed under the +> Creative Commons Attribution 4.0 International (CC BY 4.0) license. + +For example, LaTeX code will be covered under the BSD license, while +the document created by compiling that code will be covered under the +CC BY 4.0 license. + +## Issues, Pull Requests, and Branches + +- https://github.com/PlasmaPy/PlasmaPy/pull/114 +- https://github.com/PlasmaPy/PlasmaPy-Tutorials/issues/1 +- https://github.com/PlasmaPy/Plasma-Education/issues/3 +- https://github.com/PlasmaPy/PlasmaPy-Enhancement-Proposals/issues/3 + +## Backward Compatibility + +Previous versions of PlasmaPy will continue to be available under the +original BSD 3-clause license. Contributions made prior to this will +not be covered by the patent grant except if granted + +## Alternatives + +### Software licensing + +- The first alternative is to retain our current BSD 3-clause license + that does not include a patent grant. This alternative risks the + small but nonzero possibility that a contributor could patent their + contribution and then restrict PlasmaPy from using it. + +- The second alternative is to use the [Apache License, Version + 2.0](https://opensource.org/licenses/Apache-2.0) which includes + specific protections against patents. However, [the naming of this + license constitutes cultural + appropriation](https://github.com/Quick/Quick/issues/660) which + violates the first bullet point of the Contributor Covenant Code of + Conduct on "using welcoming and inclusive language." + +- Additional alternatives include any of the [open source licenses + approved by OSI](https://opensource.org/licenses/category), possibly + with the addition of the explicit patent grant included the + [BSD+Patent license](). + +### Licensing of creative works + +- Alternatives include any of the other [Creative Commons + licenses](https://creativecommons.org/share-your-work/licensing-types-examples/). + +## Decision Rationale + +*This PLEP has not yet been decided upon.* \ No newline at end of file From 1e86f42e896384d6d0d38cd01ef114d5f79b860a Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Sat, 14 Oct 2017 18:00:01 -0400 Subject: [PATCH 12/23] Extend background & implementation sections of PLEP 4 --- PLEP-0004.md | 105 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 34 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 405d3b5..60ab838 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -6,43 +6,76 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | -| date last revised | 2017-09-28 | +| date last revised | 2017-10-14 | | type | process | | status | in preparation | ## Abstract -Most modern software licenses include language that protects users and -the package against software patents. PlasmaPy's [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause) does not -include such a clause. There is a small but nonzero chance that a -contributor could later patent their contribution, and then prohibit -use of that contribution by PlasmaPy community members. The first -component of this PLEP is to add the explicit patent grant contained -in the [BSD+Patent -license](https://opensource.org/licenses/BSDplusPatent) that was -recently approved by the Open Source Initiative (OSI). - -PlasmaPy includes multiple repositories to host creative works in -addition to (or instead of) software. Creative Commons licenses are -much more appropriate than open source licenses for creative content. -The second component of this PLEP is to adopt the Creative Commons -Attribution 4.0 International ([CC BY -4.0](https://creativecommons.org/licenses/by/4.0/)) license for -creative works in most repositories, and the Creative Commons -Attribution-ShareAlike 4.0 International ([CC BY-SA -4.0](https://creativecommons.org/licenses/by-sa/4.0/)) for the -creative works in the [Plasma-Education -repository](https://github.com/PlasmaPy/Plasma-Education). +The purposes of this PLEP are for PlasmaPy to: -## Detailed Description +1. Add language to its license in order to protect against software +patents; and +2. Adopt Creative Commons licenses for creative content besides source +code files and code snippers. +## Detailed Description +PlasmaPy began development under the permissive [BSD 3-clause +license](https://opensource.org/licenses/BSD-3-Clause). This choice +was made to follow the established practice of existing projects such +as Astropy. The principal advantage of the BSD license is that it is +highly compatible with other licenses. Code released under a BSD +license can be used by or within codes released under most permissive +and copyleft licenses. + +Most modern software licenses include language that protects against +software patents. The BSD 3-clause license does not explicitly +include such language. This oversight leaves potential for a +contributor to patent their contribution, and then prohibit use of +thier contribution by the PlasmaPy community. Plasma physics has a +variety of commercial applications, so it is important to include +protections against software patents. The first component of this +PLEP is to add the explicit patent grant contained in the [BSD+Patent +license](https://opensource.org/licenses/BSDplusPatent) to PlasmaPy's +license. + +PlasmaPy includes multiple repositories to host creative works other +than software. Creative Commons licenses are much more appropriate +than open source licenses for creative content. The second component +of this PLEP is that PlasmaPy adopt the Creative Commons Attribution +4.0 International ([CC BY +4.0](https://creativecommons.org/licenses/by/4.0/)) license for most +creative works, excluding source code files and code snippets. + +When it is desirable to allow back and forth collaboration with a +large body of work under a Creative Commons ShareAlike license, then +the copyleft Creative Commons Attribution-ShareAlike 4.0 International +([CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)) +license shall be adopted. When appropriate, language will be added +stating that works in these repositories may be incorporated into +large bodies of work under a previous ShareAlike license (such as +Wikipedia) under that previous ShareAlike license. + +When new repositories are created, they will by default be licensed +under the same license as the main PlasmaPy repository (the BSD +3-clause license with the patent grant from the BSD+Patent license) +for source code files and code snippets, and under the CC BY 4.0 +license for all other creative content. + +The Coordinating Committee may adopt different licenses for different +repositories when appropriate, as long as the licenses are on the list +of OSI approved open source licenses (or at the very least +unambiguously meet the criteria for an open source license as +established by OSI). Existing open source repositories that are +incorporated into PlasmaPy may continue to be licensed under the +existing license. ## Implementation -The following text will be added to the existing PlasmaPy license: +After receiving the permission of all contributors, the PlasmaPy +license shall be updated to include the following language: > Subject to the terms and conditions of this license, each copyright > holder and contributor hereby grants to those receiving rights under @@ -74,10 +107,10 @@ The phrase "All rights reserved" will be removed because it no longer has any legal significance, and additional minor formatting changes will be made. -Repositories that contain solely creative works will be updated to -include a license file that includes or refers to the CC BY license, -with the exception that the Plasma-Education library will be covered -by the CC BY-SA 4.0 license. +Existing repositories that contain solely creative works will be +updated to include a license file that includes or refers to the CC BY +license, with the exception that the Plasma-Education library will be +covered by the CC BY-SA 4.0 license. Repositories that include both source code and creative works will include a clause such as: @@ -92,6 +125,11 @@ For example, LaTeX code will be covered under the BSD license, while the document created by compiling that code will be covered under the CC BY 4.0 license. +Code in newly created repositories will be licensed under the same +license as the main PlasmaPy repository. Other creative content in +newly created repositories will use CC BY 4.0 license, except as +decided by the Coordinating Committee. + ## Issues, Pull Requests, and Branches - https://github.com/PlasmaPy/PlasmaPy/pull/114 @@ -116,16 +154,15 @@ not be covered by the patent grant except if granted - The second alternative is to use the [Apache License, Version 2.0](https://opensource.org/licenses/Apache-2.0) which includes - specific protections against patents. However, [the naming of this - license constitutes cultural + specific protections against patents. However, [the naming of the + Apache license constitutes cultural appropriation](https://github.com/Quick/Quick/issues/660) which violates the first bullet point of the Contributor Covenant Code of Conduct on "using welcoming and inclusive language." - Additional alternatives include any of the [open source licenses - approved by OSI](https://opensource.org/licenses/category), possibly - with the addition of the explicit patent grant included the - [BSD+Patent license](). + approved by OSI](https://opensource.org/licenses/category), + including the copyleft GNU General Purpose License 3.0. ### Licensing of creative works From 77cb3fcdfad611bb8f55f6aacacae60d0516178e Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Sat, 14 Oct 2017 18:18:53 -0400 Subject: [PATCH 13/23] Updates to PLEP 4 --- PLEP-0004.md | 53 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 60ab838..0297e80 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -2,7 +2,7 @@ | PLEP | 4 | |-------------------|------------------------------------------| -| title | Add a patent grant to PlasmaPy's license | +| title | Licensing of PlasmaPy repositories | | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | @@ -25,10 +25,10 @@ code files and code snippers. PlasmaPy began development under the permissive [BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause). This choice was made to follow the established practice of existing projects such -as Astropy. The principal advantage of the BSD license is that it is -highly compatible with other licenses. Code released under a BSD -license can be used by or within codes released under most permissive -and copyleft licenses. +as [Astropy](http://www.astropy.org/). The principal advantage of the +BSD license is that it is highly compatible with other licenses. Code +released under a BSD license can be used by or within codes released +under most permissive and copyleft licenses. Most modern software licenses include language that protects against software patents. The BSD 3-clause license does not explicitly @@ -56,21 +56,24 @@ the copyleft Creative Commons Attribution-ShareAlike 4.0 International license shall be adopted. When appropriate, language will be added stating that works in these repositories may be incorporated into large bodies of work under a previous ShareAlike license (such as -Wikipedia) under that previous ShareAlike license. +[Wikipedia](https://www.wikipedia.org/)) under that previous +ShareAlike license. When new repositories are created, they will by default be licensed -under the same license as the main PlasmaPy repository (the BSD -3-clause license with the patent grant from the BSD+Patent license) -for source code files and code snippets, and under the CC BY 4.0 -license for all other creative content. +under the [main PlasmaPy repository's +license](https://github.com/PlasmaPy/PlasmaPy/blob/master/LICENSE.md) +(the BSD 3-clause license with the patent grant from the BSD+Patent +license) for source code files and code snippets, and under the CC BY +4.0 license for all other creative content. The Coordinating Committee may adopt different licenses for different repositories when appropriate, as long as the licenses are on the list -of OSI approved open source licenses (or at the very least -unambiguously meet the criteria for an open source license as -established by OSI). Existing open source repositories that are -incorporated into PlasmaPy may continue to be licensed under the -existing license. +of [OSI approved open source +licenses](https://opensource.org/licenses/category) (or at the very +least unambiguously meet the [definition of open +source](https://opensource.org/osd) as described by OSI). Existing +open source repositories that are incorporated into PlasmaPy may +continue to be licensed under the existing license. ## Implementation @@ -103,14 +106,21 @@ license shall be updated to include the following language: > copyright holder or contributor is granted under this license, > whether expressly, by implication, estoppel or otherwise. -The phrase "All rights reserved" will be removed because it no longer -has any legal significance, and additional minor formatting changes -will be made. +The phrase ["All rights +reserved"](https://en.wikipedia.org/wiki/All_rights_reserved) no +longer has any legal significance and will be removed. The disclaimer +will not be made using all capital letters because that reduces +readability. + +If some contributors do not give permission to add the above language +and have it cover their existing contributions, then it will be stated +whose contributions are not covered by the patent language. Existing repositories that contain solely creative works will be updated to include a license file that includes or refers to the CC BY -license, with the exception that the Plasma-Education library will be -covered by the CC BY-SA 4.0 license. +4.0 license, with the exception that the [Plasma-Education +repository](https://github.com/PlasmaPy/Plasma-Education) will be +covered by the CC BY-SA 4.0 license. Repositories that include both source code and creative works will include a clause such as: @@ -141,7 +151,8 @@ decided by the Coordinating Committee. Previous versions of PlasmaPy will continue to be available under the original BSD 3-clause license. Contributions made prior to this will -not be covered by the patent grant except if granted +not be covered by the patent grant except if granted by the person who +made that contribution. ## Alternatives From 441292f48ee9a0baf27cd62eea0d5f4ae182b7b9 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Wed, 8 Nov 2017 19:50:04 -0500 Subject: [PATCH 14/23] Significantly revise PLEP on licensing --- PLEP-0004.md | 314 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 205 insertions(+), 109 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 0297e80..807d45c 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -1,4 +1,4 @@ -# PLEP-0004 -- Add a patent grant to PlasmaPy's license +# PLEP-0004 -- Licensing of PlasmaPy repositories | PLEP | 4 | |-------------------|------------------------------------------| @@ -6,29 +6,37 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | -| date last revised | 2017-10-14 | +| date last revised | 2017-11-08 | | type | process | | status | in preparation | ## Abstract -The purposes of this PLEP are for PlasmaPy to: - -1. Add language to its license in order to protect against software -patents; and - -2. Adopt Creative Commons licenses for creative content besides source -code files and code snippers. - -## Detailed Description +The purpose of this PlasmaPy Enhancement Proposal (PLEP) is to clarify +the licensing practices of PlasmaPy repositories. Source code files, +code snippets, and associated documentation shall in general be +covered by a BSD 3-clause license with an explicit patent grant. +Other creative works shall in general be covered by the Creative +Commons Attribution 4.0 International (CC BY 4.0) license. If back +and forth collaboration with a body of work released under a copyleft +license [e.g., a Creative Commons Attribution-ShareAlike (CC BY-SA) +license] is desirable, then a PlasmaPy repository may be licensed +under one or more compatible copyleft licenses. When PlasmaPy adopts +or incorporates an existing body of creative works released under an +Open Source Initiative (OSI) approved license or a Creative Commons +license, then that body of work and its derivatives may continue to +use that license. PlasmaPy's Coordinating Committee may make +exceptions to this policy when there extenuating circumstances. + +## Background information PlasmaPy began development under the permissive [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause). This choice -was made to follow the established practice of existing projects such -as [Astropy](http://www.astropy.org/). The principal advantage of the -BSD license is that it is highly compatible with other licenses. Code -released under a BSD license can be used by or within codes released -under most permissive and copyleft licenses. +license](https://opensource.org/licenses/BSD-3-Clause). The primary +advantage of this license is its compatibility with other licenses. +Code released under a BSD license may be used by or incorporated into +software covered by most permissive, copyleft, and proprietary +licenses. The choice of this license was to follow the established +practices of projects such as Astropy. Most modern software licenses include language that protects against software patents. The BSD 3-clause license does not explicitly @@ -36,50 +44,62 @@ include such language. This oversight leaves potential for a contributor to patent their contribution, and then prohibit use of thier contribution by the PlasmaPy community. Plasma physics has a variety of commercial applications, so it is important to include -protections against software patents. The first component of this -PLEP is to add the explicit patent grant contained in the [BSD+Patent -license](https://opensource.org/licenses/BSDplusPatent) to PlasmaPy's -license. - -PlasmaPy includes multiple repositories to host creative works other -than software. Creative Commons licenses are much more appropriate -than open source licenses for creative content. The second component -of this PLEP is that PlasmaPy adopt the Creative Commons Attribution -4.0 International ([CC BY -4.0](https://creativecommons.org/licenses/by/4.0/)) license for most -creative works, excluding source code files and code snippets. - -When it is desirable to allow back and forth collaboration with a -large body of work under a Creative Commons ShareAlike license, then -the copyleft Creative Commons Attribution-ShareAlike 4.0 International -([CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)) -license shall be adopted. When appropriate, language will be added -stating that works in these repositories may be incorporated into -large bodies of work under a previous ShareAlike license (such as -[Wikipedia](https://www.wikipedia.org/)) under that previous -ShareAlike license. - -When new repositories are created, they will by default be licensed -under the [main PlasmaPy repository's -license](https://github.com/PlasmaPy/PlasmaPy/blob/master/LICENSE.md) -(the BSD 3-clause license with the patent grant from the BSD+Patent -license) for source code files and code snippets, and under the CC BY -4.0 license for all other creative content. - -The Coordinating Committee may adopt different licenses for different -repositories when appropriate, as long as the licenses are on the list -of [OSI approved open source -licenses](https://opensource.org/licenses/category) (or at the very -least unambiguously meet the [definition of open -source](https://opensource.org/osd) as described by OSI). Existing -open source repositories that are incorporated into PlasmaPy may -continue to be licensed under the existing license. - -## Implementation - -After receiving the permission of all contributors, the PlasmaPy -license shall be updated to include the following language: - +protections against software patents. On 2017 October 19, the patent +grant from the [BSD+Patent +license](https://opensource.org/licenses/BSDplusPatent) was added to +PlasmaPy's license to give users the right to use contributions even +if a contributor later patents their contribution. This clause covers +all contributions made past this date, and the contributions made by +people who have agreed to the clause. + +Some PlasmaPy repositories contain creative works other than source +code files, code snippets, and associated documentation. Creative +Commons licenses are much more appropriate than open source licenses +to cover these other creative works. Works released under the CC BY +4.0 license may be shared and adapted as long as attribution is +provided. Works released under the copyleft CC BY-SA 3.0 or CC BY-SA +4.0 licenses may be shared and adapted as long as attribution is +provided and derived works are covered by either the same license or a +compatible license. The GNU Free Documentation License (GFDL) is +another commonly used copyleft license. + +CC BY and CC BY-SA licenses are one-way compatible. Works released +under a CC BY license may be adapted, redistributed, and relicensed +under a CC BY-SA license with attribution. However, works released +under a CC BY-SA license may not be adapted, redistributed, or +relicensed under a CC BY license. Choosing a copyleft license is +often appropriate when back and forth collaboration with existing +bodies of work covered by a copyleft license is desirable. Care must +be chosen to allow two-way licensing compatibility. + +## PlasmaPy licensing policy + +### Licensing of software repositories + +Software repositories created by PlasmaPy shall use the following BSD +3-clause license with the explicit patent grant from the OSI-approved +BSD+Patent license. This license may be used for documentation +internal to the project (e.g., documentation contained within a `docs` +subdirectory). + +> Copyright (c) 2017-2525, PlasmaPy Developers. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions +> are met: +> +> * Redistributions of source code must retain the above copyright +> notice, this list of conditions and the following disclaimer. +> +> * Redistributions in binary form must reproduce the above copyright +> notice, this list of conditions and the following disclaimer in +> the documentation and/or other materials provided with the +> distribution. +> +> * Neither the name of PlasmaPy nor the names of its contributors may +> be used to endorse or promote products derived from this software +> without specific prior written permission. +> > Subject to the terms and conditions of this license, each copyright > holder and contributor hereby grants to those receiving rights under > this license a perpetual, worldwide, non-exclusive, no-charge, @@ -90,40 +110,63 @@ license shall be updated to include the following language: > acquired or hereafter acquired, licensable by such copyright holder > or contributor that are necessarily infringed by: > -> (a) their Contribution(s) (the licensed copyrights of copyright -> holders and non-copyrightable additions of contributors, in -> source or binary form) alone; or -> -> (b) combination of their Contribution(s) with the work of -> authorship to which such Contribution(s) was added by such -> copyright holder or contributor, if, at the time the -> Contribution is added, such addition causes such combination -> to be necessarily infringed. The patent license shall not -> apply to any other combinations which include the -> Contribution. +> (a) their Contribution(s) (the licensed copyrights of copyright +> holders and non-copyrightable additions of contributors, in source +> or binary form) alone; or > +> (b) combination of their Contribution(s) with the work of authorship +> to which such Contribution(s) was added by such copyright holder or +> contributor, if, at the time the Contribution is added, such +> addition causes such combination to be necessarily infringed. The +> patent license shall not apply to any other combinations which +> include the Contribution. +> > Except as expressly stated above, no rights or licenses from any > copyright holder or contributor is granted under this license, > whether expressly, by implication, estoppel or otherwise. - -The phrase ["All rights -reserved"](https://en.wikipedia.org/wiki/All_rights_reserved) no -longer has any legal significance and will be removed. The disclaimer -will not be made using all capital letters because that reduces -readability. - -If some contributors do not give permission to add the above language -and have it cover their existing contributions, then it will be stated -whose contributions are not covered by the patent language. - -Existing repositories that contain solely creative works will be -updated to include a license file that includes or refers to the CC BY -4.0 license, with the exception that the [Plasma-Education -repository](https://github.com/PlasmaPy/Plasma-Education) will be -covered by the CC BY-SA 4.0 license. - -Repositories that include both source code and creative works will -include a clause such as: +> +> ## Disclaimer +> +> This software is provided by the copyright holders and contributors +> "as is" and any express or implied warranties, including, but not +> limited to, the implied warranties of merchantability and fitness +> for a particular purpose are disclaimed. In no event shall the +> copyright holder or contributors be liable for any direct, indirect, +> incidental, special, exemplary, or consequential damages (including, +> but not limited to, procurement of substitute goods or services; +> loss of use, data, or profits; or business interruption) however +> caused and on any theory of liability, whether in contract, strict +> liability, or tort (including negligence or otherwise) arising in +> any way out of the use of this software, even if advised of the +> possibility of such damage. + +### Licensing of creative works other than code and multi-licensing + +Creative works besides source code files, code snippets, and +documentation contained within a `docs` directory shall by default be +covered by the CC BY 4.0 license. + +If significant collaboration with an existing body of creative work +covered by a copyleft license is desired, then a PlasmaPy repository +may be covered by one or more copyleft licenses that provide for +two-way compatibility. In order for a work to be fully compatible +with Wikipedia, for example, it must be both CC BY-SA 3.0 and GFDL +compatible. + +If a repository contains both code and creative content besides code, +then the license file should specify that source code files and code +snippets are released under a BSD 3-clause license (that is include in +the file) and that all other creative content is released under an +appropriate Creative Commons license (which may be linked to from the +license file). As an example, LaTeX code will be covered under the +BSD license, while the document created by compiling that code will be +covered under a Creative Commons license. + +Licenses that do not allow derivative works or commercial use shall +not be used by PlasmaPy except under extraordinary circumstances. + +The following is sample language for a repository that contains code +and other creative content: > Source code files and code snippets included in this project are > licensed under the BSD 3-clause license with an added patent grant. @@ -131,14 +174,47 @@ include a clause such as: > directly from source code and code snippets) is licensed under the > Creative Commons Attribution 4.0 International (CC BY 4.0) license. -For example, LaTeX code will be covered under the BSD license, while -the document created by compiling that code will be covered under the -CC BY 4.0 license. +The following is sample language for a repository that contains code +as well as creative content besides code and that allows two-way +collaboration with Wikipedia: + +> Source code files and code snippets included in this project are +> licensed under a BSD 3-clause license with a patent grant. +> +> Unless otherwise indicated, all other creative content in this work +> (including content produced directly from unmodified source code and +> code snippets) is released under the Creative Commons +> Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. +> Original contributions (e.g., contributions that are not derived +> from another work) to this repository may also be shared, adapted, +> and redistributed under the Creative Commons Attribution-ShareAlike +> 3.0 Unported (CC BY-SA 3.0) license and/or the GNU Free +> Documentation License (GFDL). + +### Copyright notices + +A copyright notice must be included in every repository. The phrase +["All rights +reserved"](https://en.wikipedia.org/wiki/All_rights_reserved) no +longer has any legal significance and should not be included. -Code in newly created repositories will be licensed under the same -license as the main PlasmaPy repository. Other creative content in -newly created repositories will use CC BY 4.0 license, except as -decided by the Coordinating Committee. +### Licensing of pre-existing repositories adopted by PlasmaPy + +When PlasmaPy redistributes or adapts existing repositories that are +covered by an OSI approved license or a license that meets the OSI +definition of open source, then that repository may continue to use +its original license. + +### Exceptions + +The Coordinating Committee may adopt different licenses for different +repositories when appropriate, as long as the licenses are on the list +of [OSI approved open source +licenses](https://opensource.org/licenses/category) (or at the very +least unambiguously meet the [definition of open +source](https://opensource.org/osd) as described by OSI). Existing +open source repositories that are incorporated into PlasmaPy may +continue to be licensed under the existing license. ## Issues, Pull Requests, and Branches @@ -149,21 +225,18 @@ decided by the Coordinating Committee. ## Backward Compatibility -Previous versions of PlasmaPy will continue to be available under the -original BSD 3-clause license. Contributions made prior to this will -not be covered by the patent grant except if granted by the person who -made that contribution. +Versions of PlasmaPy will continue to be available under the original +BSD 3-clause license. ## Alternatives ### Software licensing -- The first alternative is to retain our current BSD 3-clause license - that does not include a patent grant. This alternative risks the - small but nonzero possibility that a contributor could patent their - contribution and then restrict PlasmaPy from using it. +- PlasmaPy could use the BSD 3-clause license without the patent + grant; however this would remove explicit protections against + software patents. -- The second alternative is to use the [Apache License, Version +- Another alternative would be to use the [Apache License, Version 2.0](https://opensource.org/licenses/Apache-2.0) which includes specific protections against patents. However, [the naming of the Apache license constitutes cultural @@ -171,15 +244,38 @@ made that contribution. violates the first bullet point of the Contributor Covenant Code of Conduct on "using welcoming and inclusive language." +- Software could be licensed under the copyleft GNU General Purpose + License 3.0 (GPLv3). This license would require that derivative + works be covered by the same license when being redistributed. This + license would ensure that derivative works are covered by the same + license and prevent use by proprietary packages. The disadvantage + of this license is that it is not compatible with permissive open + source licenses. + - Additional alternatives include any of the [open source licenses approved by OSI](https://opensource.org/licenses/category), including the copyleft GNU General Purpose License 3.0. ### Licensing of creative works +- Creative works could use + - Alternatives include any of the other [Creative Commons - licenses](https://creativecommons.org/share-your-work/licensing-types-examples/). + licenses](https://creativecommons.org/share-your-work/licensing-types-examples/) + or the GFDL. + + - The CC0 license would relinquish the copyright of a creative work + to the extent allowed by law so that the work is effectively in + the public domain. This license would remove the attribution + requirement contained within the CC BY and CC BY-SA licenses. + However, attribution is beneficial to the scientific process + because it allows recipients to better understand the origin of an + idea or data which in turn helps reprodicibility. + + - Creative Commons licenses that prohibit derivative and/or + commercial reuse run contrary to the principles associated with + the Free/Libre and Open Source Software (FLOSS) movement. ## Decision Rationale -*This PLEP has not yet been decided upon.* \ No newline at end of file +*This PLEP has not yet been decided upon.* From cffe90cd7576b21ae68216c2002ab93e9e4c65bb Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Wed, 8 Nov 2017 20:35:30 -0500 Subject: [PATCH 15/23] Revise and add links to licensing PLEP --- PLEP-0004.md | 195 ++++++++++++++++++++++++++++----------------------- 1 file changed, 109 insertions(+), 86 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 807d45c..2de9716 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -10,58 +10,74 @@ | type | process | | status | in preparation | -## Abstract +## Summary The purpose of this PlasmaPy Enhancement Proposal (PLEP) is to clarify the licensing practices of PlasmaPy repositories. Source code files, code snippets, and associated documentation shall in general be covered by a BSD 3-clause license with an explicit patent grant. -Other creative works shall in general be covered by the Creative -Commons Attribution 4.0 International (CC BY 4.0) license. If back -and forth collaboration with a body of work released under a copyleft -license [e.g., a Creative Commons Attribution-ShareAlike (CC BY-SA) -license] is desirable, then a PlasmaPy repository may be licensed -under one or more compatible copyleft licenses. When PlasmaPy adopts -or incorporates an existing body of creative works released under an -Open Source Initiative (OSI) approved license or a Creative Commons -license, then that body of work and its derivatives may continue to -use that license. PlasmaPy's Coordinating Committee may make -exceptions to this policy when there extenuating circumstances. +Other creative works shall in general be covered by the [Creative +Commons Attribution 4.0 International (CC BY 4.0) +license](https://creativecommons.org/licenses/by/4.0/). If back and +forth collaboration with a body of work released under a copyleft +license [e.g., the [Creative Commons Attribution-ShareAlike (CC BY-SA +4.0) license](https://creativecommons.org/licenses/by-sa/4.0/)] is +desirable, then a PlasmaPy repository may be licensed under one or +more compatible copyleft licenses. When PlasmaPy adopts or +incorporates an existing body of creative works released under an +[Open Source Initiative (OSI) approved +license](https://opensource.org/licenses/category) or a [Creative +Commons license](https://creativecommons.org/licenses/), then that +body of work and its derivatives may continue to use that license. +PlasmaPy's Coordinating Committee may make exceptions to this policy +when there extenuating circumstances. ## Background information PlasmaPy began development under the permissive [BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause). The primary -advantage of this license is its compatibility with other licenses. -Code released under a BSD license may be used by or incorporated into -software covered by most permissive, copyleft, and proprietary +advantage of this license is its +[compatibility](https://en.wikipedia.org/wiki/License_compatibility) +with other licenses. Code released under a BSD license may be used by +or incorporated into software covered by most +[permissive](https://en.wikipedia.org/wiki/Permissive_software_licence), +[copyleft](https://en.wikipedia.org/wiki/Copyleft), and +[proprietary](https://en.wikipedia.org/wiki/Proprietary_software) licenses. The choice of this license was to follow the established -practices of projects such as Astropy. +practices of projects such as [Astropy](http://www.astropy.org/). Most modern software licenses include language that protects against -software patents. The BSD 3-clause license does not explicitly -include such language. This oversight leaves potential for a -contributor to patent their contribution, and then prohibit use of +software patents. The [BSD 3-clause +license](https://opensource.org/licenses/BSD-3-Clause) does not +explicitly include such language. This oversight leaves potential for +a contributor to patent their contribution, and then prohibit use of thier contribution by the PlasmaPy community. Plasma physics has a variety of commercial applications, so it is important to include protections against software patents. On 2017 October 19, the patent grant from the [BSD+Patent -license](https://opensource.org/licenses/BSDplusPatent) was added to -PlasmaPy's license to give users the right to use contributions even -if a contributor later patents their contribution. This clause covers -all contributions made past this date, and the contributions made by -people who have agreed to the clause. +license](https://opensource.org/licenses/BSDplusPatent) was [added to +PlasmaPy's license](https://github.com/PlasmaPy/PlasmaPy/pull/114) to +give users the right to use contributions even if a contributor later +patents their contribution. This clause covers all contributions made +past this date, and the [contributions made by people who have agreed +to the +clause](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md#notice). Some PlasmaPy repositories contain creative works other than source -code files, code snippets, and associated documentation. Creative -Commons licenses are much more appropriate than open source licenses -to cover these other creative works. Works released under the CC BY -4.0 license may be shared and adapted as long as attribution is -provided. Works released under the copyleft CC BY-SA 3.0 or CC BY-SA -4.0 licenses may be shared and adapted as long as attribution is -provided and derived works are covered by either the same license or a -compatible license. The GNU Free Documentation License (GFDL) is -another commonly used copyleft license. +code files, code snippets, and associated documentation. [Creative +Commons licenses](https://creativecommons.org/licenses/) are much more +appropriate than open source licenses to cover these other creative +works. Works released under the [CC BY +4.0](https://creativecommons.org/licenses/by/4.0/) license may be +shared and adapted as long as attribution is provided. Works released +under the copyleft [CC BY-SA +3.0](https://creativecommons.org/licenses/by-sa/3.0/) or [CC BY-SA +4.0](https://creativecommons.org/licenses/by-sa/4.0/) licenses may be +shared and adapted as long as attribution is provided and derived +works are covered by either the same license or a compatible license. +The [GNU Free Documentation License +(GFDL)](https://www.gnu.org/licenses/fdl-1.3.en.html) is another +commonly used copyleft license. CC BY and CC BY-SA licenses are one-way compatible. Works released under a CC BY license may be adapted, redistributed, and relicensed @@ -78,9 +94,9 @@ be chosen to allow two-way licensing compatibility. Software repositories created by PlasmaPy shall use the following BSD 3-clause license with the explicit patent grant from the OSI-approved -BSD+Patent license. This license may be used for documentation -internal to the project (e.g., documentation contained within a `docs` -subdirectory). +[BSD+Patent license](https://opensource.org/licenses/BSDplusPatent). +This license may be used for documentation internal to the project +(e.g., documentation contained within a `docs` subdirectory). > Copyright (c) 2017-2525, PlasmaPy Developers. > @@ -144,23 +160,28 @@ subdirectory). Creative works besides source code files, code snippets, and documentation contained within a `docs` directory shall by default be -covered by the CC BY 4.0 license. +covered by the [CC BY +4.0](https://creativecommons.org/licenses/by/4.0/) license. If significant collaboration with an existing body of creative work covered by a copyleft license is desired, then a PlasmaPy repository may be covered by one or more copyleft licenses that provide for two-way compatibility. In order for a work to be fully compatible -with Wikipedia, for example, it must be both CC BY-SA 3.0 and GFDL -compatible. +with Wikipedia, for example, it must be both [CC BY-SA +3.0](https://creativecommons.org/licenses/by-sa/4.0/) and +[GFDL](https://opensource.org/licenses/BSDplusPatent) compatible. If a repository contains both code and creative content besides code, then the license file should specify that source code files and code -snippets are released under a BSD 3-clause license (that is include in -the file) and that all other creative content is released under an -appropriate Creative Commons license (which may be linked to from the -license file). As an example, LaTeX code will be covered under the -BSD license, while the document created by compiling that code will be -covered under a Creative Commons license. +snippets are released under a [BSD 3-clause +license](https://opensource.org/licenses/BSD-3-Clause) (that is +included in the file) and that all other creative content is released +under an appropriate Creative Commons license (which may be linked to +from the license file). As an example, LaTeX code will be covered +under the [BSD 3-clause +license](https://opensource.org/licenses/BSD-3-Clause), while the +document created by compiling that code will be covered under a +Creative Commons license. Licenses that do not allow derivative works or commercial use shall not be used by PlasmaPy except under extraordinary circumstances. @@ -172,24 +193,29 @@ and other creative content: > licensed under the BSD 3-clause license with an added patent grant. > All other content in this project (including content compiled > directly from source code and code snippets) is licensed under the -> Creative Commons Attribution 4.0 International (CC BY 4.0) license. +> [Creative Commons Attribution 4.0 International (CC BY +> 4.0)](https://creativecommons.org/licenses/by/4.0/) license. The following is sample language for a repository that contains code as well as creative content besides code and that allows two-way -collaboration with Wikipedia: +[compatibility with +Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Copyrights): > Source code files and code snippets included in this project are > licensed under a BSD 3-clause license with a patent grant. > > Unless otherwise indicated, all other creative content in this work > (including content produced directly from unmodified source code and -> code snippets) is released under the Creative Commons -> Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. +> code snippets) is released under the [Creative Commons +> Attribution-ShareAlike 4.0 International (CC BY-SA +> 4.0)](https://creativecommons.org/licenses/by-sa/4.0/) license. > Original contributions (e.g., contributions that are not derived > from another work) to this repository may also be shared, adapted, -> and redistributed under the Creative Commons Attribution-ShareAlike -> 3.0 Unported (CC BY-SA 3.0) license and/or the GNU Free -> Documentation License (GFDL). +> and redistributed under the [Creative Commons Attribution-ShareAlike +> 3.0 Unported (CC BY-SA +> 3.0)](https://creativecommons.org/licenses/by-sa/3.0/) license +> and/or the [GNU Free Documentation License +> (GFDL)](https://www.gnu.org/licenses/fdl-1.3.en.html). ### Copyright notices @@ -198,13 +224,6 @@ A copyright notice must be included in every repository. The phrase reserved"](https://en.wikipedia.org/wiki/All_rights_reserved) no longer has any legal significance and should not be included. -### Licensing of pre-existing repositories adopted by PlasmaPy - -When PlasmaPy redistributes or adapts existing repositories that are -covered by an OSI approved license or a license that meets the OSI -definition of open source, then that repository may continue to use -its original license. - ### Exceptions The Coordinating Committee may adopt different licenses for different @@ -214,7 +233,7 @@ licenses](https://opensource.org/licenses/category) (or at the very least unambiguously meet the [definition of open source](https://opensource.org/osd) as described by OSI). Existing open source repositories that are incorporated into PlasmaPy may -continue to be licensed under the existing license. +continue to be licensed under its original license. ## Issues, Pull Requests, and Branches @@ -225,15 +244,17 @@ continue to be licensed under the existing license. ## Backward Compatibility -Versions of PlasmaPy will continue to be available under the original -BSD 3-clause license. +Versions of PlasmaPy will continue to be available under the [original +BSD 3-clause +license](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md). ## Alternatives ### Software licensing -- PlasmaPy could use the BSD 3-clause license without the patent - grant; however this would remove explicit protections against +- PlasmaPy could use the [BSD 3-clause + license](https://opensource.org/licenses/BSD-3-Clause) without the + patent grant; however this would remove explicit protections against software patents. - Another alternative would be to use the [Apache License, Version @@ -244,37 +265,39 @@ BSD 3-clause license. violates the first bullet point of the Contributor Covenant Code of Conduct on "using welcoming and inclusive language." -- Software could be licensed under the copyleft GNU General Purpose - License 3.0 (GPLv3). This license would require that derivative - works be covered by the same license when being redistributed. This - license would ensure that derivative works are covered by the same - license and prevent use by proprietary packages. The disadvantage - of this license is that it is not compatible with permissive open - source licenses. +- Software could be licensed under the copyleft [GNU General Purpose + License 3.0 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html). + This license would require that derivative works be covered by the + same license when being redistributed. This license would ensure + that derivative works are covered by the same license and prevent + use by proprietary packages. A major disadvantage of this license + is that it is not two-way compatible with permissive open source + licenses. -- Additional alternatives include any of the [open source licenses - approved by OSI](https://opensource.org/licenses/category), - including the copyleft GNU General Purpose License 3.0. +- Additional alternatives include any other [open source licenses + approved by OSI](https://opensource.org/licenses/category). ### Licensing of creative works -- Creative works could use - - Alternatives include any of the other [Creative Commons licenses](https://creativecommons.org/share-your-work/licensing-types-examples/) - or the GFDL. - - - The CC0 license would relinquish the copyright of a creative work - to the extent allowed by law so that the work is effectively in - the public domain. This license would remove the attribution - requirement contained within the CC BY and CC BY-SA licenses. - However, attribution is beneficial to the scientific process - because it allows recipients to better understand the origin of an - idea or data which in turn helps reprodicibility. + or the [GFDL](https://www.gnu.org/licenses/fdl-1.3.en.html). + + - The [CC0 + license](https://creativecommons.org/share-your-work/public-domain/cc0/) + would relinquish the copyright of a creative work to the extent + allowed by law so that the work is effectively in the public + domain. This license would remove the attribution requirement + contained within the CC BY and CC BY-SA licenses. However, + attribution is beneficial to the scientific process because it + allows recipients to better understand the origin of an idea or + data which in turn helps reprodicibility. - Creative Commons licenses that prohibit derivative and/or commercial reuse run contrary to the principles associated with - the Free/Libre and Open Source Software (FLOSS) movement. + the [Free/Libre and Open Source Software + (FLOSS)](https://en.wikipedia.org/wiki/Free_and_open-source_software) + movement. ## Decision Rationale From 278aa8749d1e698cf2023372dbde9c1f6f65890c Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 1 Dec 2017 20:19:13 -0500 Subject: [PATCH 16/23] Incorporate comments into PLEP 4 on licensing --- PLEP-0004.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 2de9716..757fd39 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -6,7 +6,7 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | -| date last revised | 2017-11-08 | +| date last revised | 2017-12-01 | | type | process | | status | in preparation | @@ -30,7 +30,7 @@ license](https://opensource.org/licenses/category) or a [Creative Commons license](https://creativecommons.org/licenses/), then that body of work and its derivatives may continue to use that license. PlasmaPy's Coordinating Committee may make exceptions to this policy -when there extenuating circumstances. +when there are extenuating circumstances. ## Background information @@ -51,7 +51,7 @@ software patents. The [BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause) does not explicitly include such language. This oversight leaves potential for a contributor to patent their contribution, and then prohibit use of -thier contribution by the PlasmaPy community. Plasma physics has a +their contribution by the PlasmaPy community. Plasma physics has a variety of commercial applications, so it is important to include protections against software patents. On 2017 October 19, the patent grant from the [BSD+Patent From 141980f81da20499993f9162abb1e8caee8e1324 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 18 May 2018 12:55:47 -0400 Subject: [PATCH 17/23] Update and clarify parts of licensing PLEP --- PLEP-0004.md | 80 +++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 757fd39..18bab72 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -6,7 +6,7 @@ | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | -| date last revised | 2017-12-01 | +| date last revised | 2018-05-18 | | type | process | | status | in preparation | @@ -43,8 +43,9 @@ or incorporated into software covered by most [permissive](https://en.wikipedia.org/wiki/Permissive_software_licence), [copyleft](https://en.wikipedia.org/wiki/Copyleft), and [proprietary](https://en.wikipedia.org/wiki/Proprietary_software) -licenses. The choice of this license was to follow the established -practices of projects such as [Astropy](http://www.astropy.org/). +licenses. The choice of this license allows back and forth sharing of +code with projects such as [Astropy](http://www.astropy.org/) and +[SunPy](http://www.sunpy.org/). Most modern software licenses include language that protects against software patents. The [BSD 3-clause @@ -52,9 +53,9 @@ license](https://opensource.org/licenses/BSD-3-Clause) does not explicitly include such language. This oversight leaves potential for a contributor to patent their contribution, and then prohibit use of their contribution by the PlasmaPy community. Plasma physics has a -variety of commercial applications, so it is important to include -protections against software patents. On 2017 October 19, the patent -grant from the [BSD+Patent +variety of commercial applications, so it is important to provide users +with protections against software patents. On 2017 October 19, the +patent grant from the [BSD+Patent license](https://opensource.org/licenses/BSDplusPatent) was [added to PlasmaPy's license](https://github.com/PlasmaPy/PlasmaPy/pull/114) to give users the right to use contributions even if a contributor later @@ -62,6 +63,8 @@ patents their contribution. This clause covers all contributions made past this date, and the [contributions made by people who have agreed to the clause](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md#notice). +The patent clause grants users more rights and protections than the +standard BSD 3-clause license. Some PlasmaPy repositories contain creative works other than source code files, code snippets, and associated documentation. [Creative @@ -79,14 +82,14 @@ The [GNU Free Documentation License (GFDL)](https://www.gnu.org/licenses/fdl-1.3.en.html) is another commonly used copyleft license. -CC BY and CC BY-SA licenses are one-way compatible. Works released -under a CC BY license may be adapted, redistributed, and relicensed -under a CC BY-SA license with attribution. However, works released -under a CC BY-SA license may not be adapted, redistributed, or -relicensed under a CC BY license. Choosing a copyleft license is -often appropriate when back and forth collaboration with existing -bodies of work covered by a copyleft license is desirable. Care must -be chosen to allow two-way licensing compatibility. +CC BY and CC BY-SA licenses are compatible with each other in only one +direction. Works released under a CC BY license may be adapted, +redistributed, and relicensed under a CC BY-SA license with attribution. +However, works released under a CC BY-SA license may not be adapted, +redistributed, or relicensed under a CC BY license. Choosing a copyleft +license is often appropriate when back and forth collaboration with +existing bodies of work covered by a copyleft license is desirable. +Care must be chosen to allow two-way licensing compatibility. ## PlasmaPy licensing policy @@ -99,11 +102,11 @@ This license may be used for documentation internal to the project (e.g., documentation contained within a `docs` subdirectory). > Copyright (c) 2017-2525, PlasmaPy Developers. -> +> > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions > are met: -> +> > * Redistributions of source code must retain the above copyright > notice, this list of conditions and the following disclaimer. > @@ -111,11 +114,11 @@ This license may be used for documentation internal to the project > notice, this list of conditions and the following disclaimer in > the documentation and/or other materials provided with the > distribution. -> +> > * Neither the name of PlasmaPy nor the names of its contributors may > be used to endorse or promote products derived from this software > without specific prior written permission. -> +> > Subject to the terms and conditions of this license, each copyright > holder and contributor hereby grants to those receiving rights under > this license a perpetual, worldwide, non-exclusive, no-charge, @@ -136,11 +139,11 @@ This license may be used for documentation internal to the project > addition causes such combination to be necessarily infringed. The > patent license shall not apply to any other combinations which > include the Contribution. -> +> > Except as expressly stated above, no rights or licenses from any > copyright holder or contributor is granted under this license, > whether expressly, by implication, estoppel or otherwise. -> +> > ## Disclaimer > > This software is provided by the copyright holders and contributors @@ -244,8 +247,8 @@ continue to be licensed under its original license. ## Backward Compatibility -Versions of PlasmaPy will continue to be available under the [original -BSD 3-clause +Versions of PlasmaPy prior to 2017 October 17 will continue to be +available under the [original BSD 3-clause license](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md). ## Alternatives @@ -262,19 +265,26 @@ license](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICE specific protections against patents. However, [the naming of the Apache license constitutes cultural appropriation](https://github.com/Quick/Quick/issues/660) which - violates the first bullet point of the Contributor Covenant Code of - Conduct on "using welcoming and inclusive language." - -- Software could be licensed under the copyleft [GNU General Purpose - License 3.0 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html). - This license would require that derivative works be covered by the - same license when being redistributed. This license would ensure - that derivative works are covered by the same license and prevent - use by proprietary packages. A major disadvantage of this license - is that it is not two-way compatible with permissive open source - licenses. - -- Additional alternatives include any other [open source licenses + violates the first bullet point in PlasmaPy's code of conduct on + "using welcoming and inclusive language." + +- PlasmaPy software could be licensed under the copyleft [GNU General + Purpose License 3.0 + (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) + or weaker copyleft [GNU Lesser General Purpose License 3.0 + (LGPLv3)](https://www.gnu.org/licenses/lgpl-3.0.en.html). These + licenses would require that derivative works be covered by the same + license when being redistributed. These restrictions would + prevent or restrict use by proprietary packages, but would ensure that + derivative works continue to be open. A major disadvantage of these + licenses are that they are not two-way compatible with permissive open + source licenses, so they would not allow back and forth code sharing + with permissively licensed packages. The main disadvantage of + not choosing the GPLv3 or LGPLv3 is that code released under those + licenses will not be able to be incorporated directly into a package + under a different license. + +- Additional alternatives include any of the other [open source licenses approved by OSI](https://opensource.org/licenses/category). ### Licensing of creative works From c8a8172e8d99aa7b04167f6ce2c995e2080ad5f0 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Fri, 18 May 2018 16:25:34 -0400 Subject: [PATCH 18/23] Make title capitalization consistent --- PLEP-0004.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PLEP-0004.md b/PLEP-0004.md index 18bab72..ad0efb7 100644 --- a/PLEP-0004.md +++ b/PLEP-0004.md @@ -1,8 +1,7 @@ -# PLEP-0004 -- Licensing of PlasmaPy repositories +# PLEP-0004 -- Licensing of PlasmaPy Repositories | PLEP | 4 | |-------------------|------------------------------------------| -| title | Licensing of PlasmaPy repositories | | author(s) | Nick Murphy | | contact email | namurphy@cfa.harvard.edu | | date created | 2017-09-28 | From b6129def9bf985b0a9e89971c21b3c04c2b89217 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 22 May 2018 15:22:32 -0400 Subject: [PATCH 19/23] Convert PLEP-0004.md to PLEP-0004.rst --- PLEP-0004.rst | 336 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 PLEP-0004.rst diff --git a/PLEP-0004.rst b/PLEP-0004.rst new file mode 100644 index 0000000..c121d54 --- /dev/null +++ b/PLEP-0004.rst @@ -0,0 +1,336 @@ +PLEP-0004 – Licensing of PlasmaPy Repositories +============================================== + ++-------------------+--------------------------+ +| PLEP | 4 | ++===================+==========================+ +| author(s) | Nick Murphy | ++-------------------+--------------------------+ +| contact email | namurphy@cfa.harvard.edu | ++-------------------+--------------------------+ +| date created | 2017-09-28 | ++-------------------+--------------------------+ +| date last revised | 2018-05-18 | ++-------------------+--------------------------+ +| type | process | ++-------------------+--------------------------+ +| status | in preparation | ++-------------------+--------------------------+ + +Summary +------- + +The purpose of this PlasmaPy Enhancement Proposal (PLEP) is to clarify +the licensing practices of PlasmaPy repositories. Source code files, +code snippets, and associated documentation shall in general be covered +by a BSD 3-clause license with an explicit patent grant. Other creative +works shall in general be covered by the `Creative Commons Attribution +4.0 International (CC BY 4.0) +license `__. If back and +forth collaboration with a body of work released under a copyleft +license [e.g., the `Creative Commons Attribution-ShareAlike (CC BY-SA +4.0) license `__] is +desirable, then a PlasmaPy repository may be licensed under one or more +compatible copyleft licenses. When PlasmaPy adopts or incorporates an +existing body of creative works released under an `Open Source +Initiative (OSI) approved +license `__ or a `Creative +Commons license `__, then that +body of work and its derivatives may continue to use that license. +PlasmaPy’s Coordinating Committee may make exceptions to this policy +when there are extenuating circumstances. + +Background information +---------------------- + +PlasmaPy began development under the permissive `BSD 3-clause +license `__. The primary +advantage of this license is its +`compatibility `__ +with other licenses. Code released under a BSD license may be used by or +incorporated into software covered by most +`permissive `__, +`copyleft `__, and +`proprietary `__ +licenses. The choice of this license allows back and forth sharing of +code with projects such as `Astropy `__ and +`SunPy `__. + +Most modern software licenses include language that protects against +software patents. The `BSD 3-clause +license `__ does not +explicitly include such language. This oversight leaves potential for a +contributor to patent their contribution, and then prohibit use of their +contribution by the PlasmaPy community. Plasma physics has a variety of +commercial applications, so it is important to provide users with +protections against software patents. On 2017 October 19, the patent +grant from the `BSD+Patent +license `__ was `added to +PlasmaPy’s license `__ to +give users the right to use contributions even if a contributor later +patents their contribution. This clause covers all contributions made +past this date, and the `contributions made by people who have agreed to +the +clause `__. +The patent clause grants users more rights and protections than the +standard BSD 3-clause license. + +Some PlasmaPy repositories contain creative works other than source code +files, code snippets, and associated documentation. `Creative Commons +licenses `__ are much more +appropriate than open source licenses to cover these other creative +works. Works released under the `CC BY +4.0 `__ license may be +shared and adapted as long as attribution is provided. Works released +under the copyleft `CC BY-SA +3.0 `__ or `CC BY-SA +4.0 `__ licenses may be +shared and adapted as long as attribution is provided and derived works +are covered by either the same license or a compatible license. The `GNU +Free Documentation License +(GFDL) `__ is another +commonly used copyleft license. + +CC BY and CC BY-SA licenses are compatible with each other in only one +direction. Works released under a CC BY license may be adapted, +redistributed, and relicensed under a CC BY-SA license with attribution. +However, works released under a CC BY-SA license may not be adapted, +redistributed, or relicensed under a CC BY license. Choosing a copyleft +license is often appropriate when back and forth collaboration with +existing bodies of work covered by a copyleft license is desirable. Care +must be chosen to allow two-way licensing compatibility. + +PlasmaPy licensing policy +------------------------- + +Licensing of software repositories +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Software repositories created by PlasmaPy shall use the following BSD +3-clause license with the explicit patent grant from the OSI-approved +`BSD+Patent license `__. +This license may be used for documentation internal to the project +(e.g., documentation contained within a ``docs`` subdirectory). + + Copyright (c) 2017-2525, PlasmaPy Developers. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of PlasmaPy nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + + Subject to the terms and conditions of this license, each copyright + holder and contributor hereby grants to those receiving rights under + this license a perpetual, worldwide, non-exclusive, no-charge, + royalty-free, irrevocable (except for failure to satisfy the + conditions of this license) patent license to make, have made, use, + offer to sell, sell, import, and otherwise transfer this software, + where such license applies only to those patent claims, already + acquired or hereafter acquired, licensable by such copyright holder + or contributor that are necessarily infringed by: + + (a) their Contribution(s) (the licensed copyrights of copyright + holders and non-copyrightable additions of contributors, in + source or binary form) alone; or + + (b) combination of their Contribution(s) with the work of authorship + to which such Contribution(s) was added by such copyright holder + or contributor, if, at the time the Contribution is added, such + addition causes such combination to be necessarily infringed. The + patent license shall not apply to any other combinations which + include the Contribution. + + Except as expressly stated above, no rights or licenses from any + copyright holder or contributor is granted under this license, + whether expressly, by implication, estoppel or otherwise. + + .. rubric:: Disclaimer + :name: disclaimer + + This software is provided by the copyright holders and contributors + “as is” and any express or implied warranties, including, but not + limited to, the implied warranties of merchantability and fitness for + a particular purpose are disclaimed. In no event shall the copyright + holder or contributors be liable for any direct, indirect, + incidental, special, exemplary, or consequential damages (including, + but not limited to, procurement of substitute goods or services; loss + of use, data, or profits; or business interruption) however caused + and on any theory of liability, whether in contract, strict + liability, or tort (including negligence or otherwise) arising in any + way out of the use of this software, even if advised of the + possibility of such damage. + +Licensing of creative works other than code and multi-licensing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creative works besides source code files, code snippets, and +documentation contained within a ``docs`` directory shall by default be +covered by the `CC BY +4.0 `__ license. + +If significant collaboration with an existing body of creative work +covered by a copyleft license is desired, then a PlasmaPy repository may +be covered by one or more copyleft licenses that provide for two-way +compatibility. In order for a work to be fully compatible with +Wikipedia, for example, it must be both `CC BY-SA +3.0 `__ and +`GFDL `__ compatible. + +If a repository contains both code and creative content besides code, +then the license file should specify that source code files and code +snippets are released under a `BSD 3-clause +license `__ (that is +included in the file) and that all other creative content is released +under an appropriate Creative Commons license (which may be linked to +from the license file). As an example, LaTeX code will be covered under +the `BSD 3-clause +license `__, while the +document created by compiling that code will be covered under a Creative +Commons license. + +Licenses that do not allow derivative works or commercial use shall not +be used by PlasmaPy except under extraordinary circumstances. + +The following is sample language for a repository that contains code and +other creative content: + + Source code files and code snippets included in this project are + licensed under the BSD 3-clause license with an added patent grant. + All other content in this project (including content compiled + directly from source code and code snippets) is licensed under the + `Creative Commons Attribution 4.0 International (CC BY + 4.0) `__ license. + +The following is sample language for a repository that contains code as +well as creative content besides code and that allows two-way +`compatibility with +Wikipedia `__: + + Source code files and code snippets included in this project are + licensed under a BSD 3-clause license with a patent grant. + + Unless otherwise indicated, all other creative content in this work + (including content produced directly from unmodified source code and + code snippets) is released under the `Creative Commons + Attribution-ShareAlike 4.0 International (CC BY-SA + 4.0) `__ license. + Original contributions (e.g., contributions that are not derived from + another work) to this repository may also be shared, adapted, and + redistributed under the `Creative Commons Attribution-ShareAlike 3.0 + Unported (CC BY-SA + 3.0) `__ license + and/or the `GNU Free Documentation License + (GFDL) `__. + +Copyright notices +~~~~~~~~~~~~~~~~~ + +A copyright notice must be included in every repository. The phrase +`“All rights +reserved” `__ no +longer has any legal significance and should not be included. + +Exceptions +~~~~~~~~~~ + +The Coordinating Committee may adopt different licenses for different +repositories when appropriate, as long as the licenses are on the list +of `OSI approved open source +licenses `__ (or at the very +least unambiguously meet the `definition of open +source `__ as described by OSI). Existing +open source repositories that are incorporated into PlasmaPy may +continue to be licensed under its original license. + +Issues, Pull Requests, and Branches +----------------------------------- + +- https://github.com/PlasmaPy/PlasmaPy/pull/114 +- https://github.com/PlasmaPy/PlasmaPy-Tutorials/issues/1 +- https://github.com/PlasmaPy/Plasma-Education/issues/3 +- https://github.com/PlasmaPy/PlasmaPy-Enhancement-Proposals/issues/3 + +Backward Compatibility +---------------------- + +Versions of PlasmaPy prior to 2017 October 17 will continue to be +available under the `original BSD 3-clause +license `__. + +Alternatives +------------ + +Software licensing +~~~~~~~~~~~~~~~~~~ + +- PlasmaPy could use the `BSD 3-clause + license `__ without the + patent grant; however this would remove explicit protections against + software patents. + +- Another alternative would be to use the `Apache License, Version + 2.0 `__ which includes + specific protections against patents. However, `the naming of the + Apache license constitutes cultural + appropriation `__ which + violates the first bullet point in PlasmaPy’s code of conduct on + “using welcoming and inclusive language.” + +- PlasmaPy software could be licensed under the copyleft `GNU General + Purpose License 3.0 + (GPLv3) `__ or weaker + copyleft `GNU Lesser General Purpose License 3.0 + (LGPLv3) `__. These + licenses would require that derivative works be covered by the same + license when being redistributed. These restrictions would prevent or + restrict use by proprietary packages, but would ensure that + derivative works continue to be open. A major disadvantage of these + licenses are that they are not two-way compatible with permissive + open source licenses, so they would not allow back and forth code + sharing with permissively licensed packages. The main disadvantage of + not choosing the GPLv3 or LGPLv3 is that code released under those + licenses will not be able to be incorporated directly into a package + under a different license. + +- Additional alternatives include any of the other `open source + licenses approved by + OSI `__. + +Licensing of creative works +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Alternatives include any of the other `Creative Commons + licenses `__ + or the `GFDL `__. + + - The `CC0 + license `__ + would relinquish the copyright of a creative work to the extent + allowed by law so that the work is effectively in the public + domain. This license would remove the attribution requirement + contained within the CC BY and CC BY-SA licenses. However, + attribution is beneficial to the scientific process because it + allows recipients to better understand the origin of an idea or + data which in turn helps reprodicibility. + + - Creative Commons licenses that prohibit derivative and/or + commercial reuse run contrary to the principles associated with + the `Free/Libre and Open Source Software + (FLOSS) `__ + movement. + +Decision Rationale +------------------ + +*This PLEP has not yet been decided upon.* From 4933a6734c7c813eb1dc9c5ef87dc9f3a9fb38a7 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 22 May 2018 15:25:26 -0400 Subject: [PATCH 20/23] Delete PLEP-0004.md --- PLEP-0004.md | 313 --------------------------------------------------- 1 file changed, 313 deletions(-) delete mode 100644 PLEP-0004.md diff --git a/PLEP-0004.md b/PLEP-0004.md deleted file mode 100644 index ad0efb7..0000000 --- a/PLEP-0004.md +++ /dev/null @@ -1,313 +0,0 @@ -# PLEP-0004 -- Licensing of PlasmaPy Repositories - -| PLEP | 4 | -|-------------------|------------------------------------------| -| author(s) | Nick Murphy | -| contact email | namurphy@cfa.harvard.edu | -| date created | 2017-09-28 | -| date last revised | 2018-05-18 | -| type | process | -| status | in preparation | - -## Summary - -The purpose of this PlasmaPy Enhancement Proposal (PLEP) is to clarify -the licensing practices of PlasmaPy repositories. Source code files, -code snippets, and associated documentation shall in general be -covered by a BSD 3-clause license with an explicit patent grant. -Other creative works shall in general be covered by the [Creative -Commons Attribution 4.0 International (CC BY 4.0) -license](https://creativecommons.org/licenses/by/4.0/). If back and -forth collaboration with a body of work released under a copyleft -license [e.g., the [Creative Commons Attribution-ShareAlike (CC BY-SA -4.0) license](https://creativecommons.org/licenses/by-sa/4.0/)] is -desirable, then a PlasmaPy repository may be licensed under one or -more compatible copyleft licenses. When PlasmaPy adopts or -incorporates an existing body of creative works released under an -[Open Source Initiative (OSI) approved -license](https://opensource.org/licenses/category) or a [Creative -Commons license](https://creativecommons.org/licenses/), then that -body of work and its derivatives may continue to use that license. -PlasmaPy's Coordinating Committee may make exceptions to this policy -when there are extenuating circumstances. - -## Background information - -PlasmaPy began development under the permissive [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause). The primary -advantage of this license is its -[compatibility](https://en.wikipedia.org/wiki/License_compatibility) -with other licenses. Code released under a BSD license may be used by -or incorporated into software covered by most -[permissive](https://en.wikipedia.org/wiki/Permissive_software_licence), -[copyleft](https://en.wikipedia.org/wiki/Copyleft), and -[proprietary](https://en.wikipedia.org/wiki/Proprietary_software) -licenses. The choice of this license allows back and forth sharing of -code with projects such as [Astropy](http://www.astropy.org/) and -[SunPy](http://www.sunpy.org/). - -Most modern software licenses include language that protects against -software patents. The [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause) does not -explicitly include such language. This oversight leaves potential for -a contributor to patent their contribution, and then prohibit use of -their contribution by the PlasmaPy community. Plasma physics has a -variety of commercial applications, so it is important to provide users -with protections against software patents. On 2017 October 19, the -patent grant from the [BSD+Patent -license](https://opensource.org/licenses/BSDplusPatent) was [added to -PlasmaPy's license](https://github.com/PlasmaPy/PlasmaPy/pull/114) to -give users the right to use contributions even if a contributor later -patents their contribution. This clause covers all contributions made -past this date, and the [contributions made by people who have agreed -to the -clause](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md#notice). -The patent clause grants users more rights and protections than the -standard BSD 3-clause license. - -Some PlasmaPy repositories contain creative works other than source -code files, code snippets, and associated documentation. [Creative -Commons licenses](https://creativecommons.org/licenses/) are much more -appropriate than open source licenses to cover these other creative -works. Works released under the [CC BY -4.0](https://creativecommons.org/licenses/by/4.0/) license may be -shared and adapted as long as attribution is provided. Works released -under the copyleft [CC BY-SA -3.0](https://creativecommons.org/licenses/by-sa/3.0/) or [CC BY-SA -4.0](https://creativecommons.org/licenses/by-sa/4.0/) licenses may be -shared and adapted as long as attribution is provided and derived -works are covered by either the same license or a compatible license. -The [GNU Free Documentation License -(GFDL)](https://www.gnu.org/licenses/fdl-1.3.en.html) is another -commonly used copyleft license. - -CC BY and CC BY-SA licenses are compatible with each other in only one -direction. Works released under a CC BY license may be adapted, -redistributed, and relicensed under a CC BY-SA license with attribution. -However, works released under a CC BY-SA license may not be adapted, -redistributed, or relicensed under a CC BY license. Choosing a copyleft -license is often appropriate when back and forth collaboration with -existing bodies of work covered by a copyleft license is desirable. -Care must be chosen to allow two-way licensing compatibility. - -## PlasmaPy licensing policy - -### Licensing of software repositories - -Software repositories created by PlasmaPy shall use the following BSD -3-clause license with the explicit patent grant from the OSI-approved -[BSD+Patent license](https://opensource.org/licenses/BSDplusPatent). -This license may be used for documentation internal to the project -(e.g., documentation contained within a `docs` subdirectory). - -> Copyright (c) 2017-2525, PlasmaPy Developers. -> -> Redistribution and use in source and binary forms, with or without -> modification, are permitted provided that the following conditions -> are met: -> -> * Redistributions of source code must retain the above copyright -> notice, this list of conditions and the following disclaimer. -> -> * Redistributions in binary form must reproduce the above copyright -> notice, this list of conditions and the following disclaimer in -> the documentation and/or other materials provided with the -> distribution. -> -> * Neither the name of PlasmaPy nor the names of its contributors may -> be used to endorse or promote products derived from this software -> without specific prior written permission. -> -> Subject to the terms and conditions of this license, each copyright -> holder and contributor hereby grants to those receiving rights under -> this license a perpetual, worldwide, non-exclusive, no-charge, -> royalty-free, irrevocable (except for failure to satisfy the -> conditions of this license) patent license to make, have made, use, -> offer to sell, sell, import, and otherwise transfer this software, -> where such license applies only to those patent claims, already -> acquired or hereafter acquired, licensable by such copyright holder -> or contributor that are necessarily infringed by: -> -> (a) their Contribution(s) (the licensed copyrights of copyright -> holders and non-copyrightable additions of contributors, in source -> or binary form) alone; or -> -> (b) combination of their Contribution(s) with the work of authorship -> to which such Contribution(s) was added by such copyright holder or -> contributor, if, at the time the Contribution is added, such -> addition causes such combination to be necessarily infringed. The -> patent license shall not apply to any other combinations which -> include the Contribution. -> -> Except as expressly stated above, no rights or licenses from any -> copyright holder or contributor is granted under this license, -> whether expressly, by implication, estoppel or otherwise. -> -> ## Disclaimer -> -> This software is provided by the copyright holders and contributors -> "as is" and any express or implied warranties, including, but not -> limited to, the implied warranties of merchantability and fitness -> for a particular purpose are disclaimed. In no event shall the -> copyright holder or contributors be liable for any direct, indirect, -> incidental, special, exemplary, or consequential damages (including, -> but not limited to, procurement of substitute goods or services; -> loss of use, data, or profits; or business interruption) however -> caused and on any theory of liability, whether in contract, strict -> liability, or tort (including negligence or otherwise) arising in -> any way out of the use of this software, even if advised of the -> possibility of such damage. - -### Licensing of creative works other than code and multi-licensing - -Creative works besides source code files, code snippets, and -documentation contained within a `docs` directory shall by default be -covered by the [CC BY -4.0](https://creativecommons.org/licenses/by/4.0/) license. - -If significant collaboration with an existing body of creative work -covered by a copyleft license is desired, then a PlasmaPy repository -may be covered by one or more copyleft licenses that provide for -two-way compatibility. In order for a work to be fully compatible -with Wikipedia, for example, it must be both [CC BY-SA -3.0](https://creativecommons.org/licenses/by-sa/4.0/) and -[GFDL](https://opensource.org/licenses/BSDplusPatent) compatible. - -If a repository contains both code and creative content besides code, -then the license file should specify that source code files and code -snippets are released under a [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause) (that is -included in the file) and that all other creative content is released -under an appropriate Creative Commons license (which may be linked to -from the license file). As an example, LaTeX code will be covered -under the [BSD 3-clause -license](https://opensource.org/licenses/BSD-3-Clause), while the -document created by compiling that code will be covered under a -Creative Commons license. - -Licenses that do not allow derivative works or commercial use shall -not be used by PlasmaPy except under extraordinary circumstances. - -The following is sample language for a repository that contains code -and other creative content: - -> Source code files and code snippets included in this project are -> licensed under the BSD 3-clause license with an added patent grant. -> All other content in this project (including content compiled -> directly from source code and code snippets) is licensed under the -> [Creative Commons Attribution 4.0 International (CC BY -> 4.0)](https://creativecommons.org/licenses/by/4.0/) license. - -The following is sample language for a repository that contains code -as well as creative content besides code and that allows two-way -[compatibility with -Wikipedia](https://en.wikipedia.org/wiki/Wikipedia:Copyrights): - -> Source code files and code snippets included in this project are -> licensed under a BSD 3-clause license with a patent grant. -> -> Unless otherwise indicated, all other creative content in this work -> (including content produced directly from unmodified source code and -> code snippets) is released under the [Creative Commons -> Attribution-ShareAlike 4.0 International (CC BY-SA -> 4.0)](https://creativecommons.org/licenses/by-sa/4.0/) license. -> Original contributions (e.g., contributions that are not derived -> from another work) to this repository may also be shared, adapted, -> and redistributed under the [Creative Commons Attribution-ShareAlike -> 3.0 Unported (CC BY-SA -> 3.0)](https://creativecommons.org/licenses/by-sa/3.0/) license -> and/or the [GNU Free Documentation License -> (GFDL)](https://www.gnu.org/licenses/fdl-1.3.en.html). - -### Copyright notices - -A copyright notice must be included in every repository. The phrase -["All rights -reserved"](https://en.wikipedia.org/wiki/All_rights_reserved) no -longer has any legal significance and should not be included. - -### Exceptions - -The Coordinating Committee may adopt different licenses for different -repositories when appropriate, as long as the licenses are on the list -of [OSI approved open source -licenses](https://opensource.org/licenses/category) (or at the very -least unambiguously meet the [definition of open -source](https://opensource.org/osd) as described by OSI). Existing -open source repositories that are incorporated into PlasmaPy may -continue to be licensed under its original license. - -## Issues, Pull Requests, and Branches - -- https://github.com/PlasmaPy/PlasmaPy/pull/114 -- https://github.com/PlasmaPy/PlasmaPy-Tutorials/issues/1 -- https://github.com/PlasmaPy/Plasma-Education/issues/3 -- https://github.com/PlasmaPy/PlasmaPy-Enhancement-Proposals/issues/3 - -## Backward Compatibility - -Versions of PlasmaPy prior to 2017 October 17 will continue to be -available under the [original BSD 3-clause -license](https://github.com/PlasmaPy/PlasmaPy/blob/master/licenses/PlasmaPy_LICENSE_preOct2017.md). - -## Alternatives - -### Software licensing - -- PlasmaPy could use the [BSD 3-clause - license](https://opensource.org/licenses/BSD-3-Clause) without the - patent grant; however this would remove explicit protections against - software patents. - -- Another alternative would be to use the [Apache License, Version - 2.0](https://opensource.org/licenses/Apache-2.0) which includes - specific protections against patents. However, [the naming of the - Apache license constitutes cultural - appropriation](https://github.com/Quick/Quick/issues/660) which - violates the first bullet point in PlasmaPy's code of conduct on - "using welcoming and inclusive language." - -- PlasmaPy software could be licensed under the copyleft [GNU General - Purpose License 3.0 - (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) - or weaker copyleft [GNU Lesser General Purpose License 3.0 - (LGPLv3)](https://www.gnu.org/licenses/lgpl-3.0.en.html). These - licenses would require that derivative works be covered by the same - license when being redistributed. These restrictions would - prevent or restrict use by proprietary packages, but would ensure that - derivative works continue to be open. A major disadvantage of these - licenses are that they are not two-way compatible with permissive open - source licenses, so they would not allow back and forth code sharing - with permissively licensed packages. The main disadvantage of - not choosing the GPLv3 or LGPLv3 is that code released under those - licenses will not be able to be incorporated directly into a package - under a different license. - -- Additional alternatives include any of the other [open source licenses - approved by OSI](https://opensource.org/licenses/category). - -### Licensing of creative works - -- Alternatives include any of the other [Creative Commons - licenses](https://creativecommons.org/share-your-work/licensing-types-examples/) - or the [GFDL](https://www.gnu.org/licenses/fdl-1.3.en.html). - - - The [CC0 - license](https://creativecommons.org/share-your-work/public-domain/cc0/) - would relinquish the copyright of a creative work to the extent - allowed by law so that the work is effectively in the public - domain. This license would remove the attribution requirement - contained within the CC BY and CC BY-SA licenses. However, - attribution is beneficial to the scientific process because it - allows recipients to better understand the origin of an idea or - data which in turn helps reprodicibility. - - - Creative Commons licenses that prohibit derivative and/or - commercial reuse run contrary to the principles associated with - the [Free/Libre and Open Source Software - (FLOSS)](https://en.wikipedia.org/wiki/Free_and_open-source_software) - movement. - -## Decision Rationale - -*This PLEP has not yet been decided upon.* From d8075c2aa1fc8bd3685f96012a5072260fc18700 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Mon, 17 Sep 2018 17:30:26 -0400 Subject: [PATCH 21/23] Minor updates to PLEP 4 I removed the section for the decision rationale since that applies more to standard PLEPs than process PLEPs, and it would be repetitive with what is written in the rest of the document. --- PLEP-0004.rst | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/PLEP-0004.rst b/PLEP-0004.rst index c121d54..f638149 100644 --- a/PLEP-0004.rst +++ b/PLEP-0004.rst @@ -10,7 +10,7 @@ PLEP-0004 – Licensing of PlasmaPy Repositories +-------------------+--------------------------+ | date created | 2017-09-28 | +-------------------+--------------------------+ -| date last revised | 2018-05-18 | +| date last revised | 2018-09-17 | +-------------------+--------------------------+ | type | process | +-------------------+--------------------------+ @@ -57,21 +57,21 @@ code with projects such as `Astropy `__ and `SunPy `__. Most modern software licenses include language that protects against -software patents. The `BSD 3-clause -license `__ does not -explicitly include such language. This oversight leaves potential for a -contributor to patent their contribution, and then prohibit use of their -contribution by the PlasmaPy community. Plasma physics has a variety of -commercial applications, so it is important to provide users with -protections against software patents. On 2017 October 19, the patent -grant from the `BSD+Patent -license `__ was `added to -PlasmaPy’s license `__ to -give users the right to use contributions even if a contributor later -patents their contribution. This clause covers all contributions made -past this date, and the `contributions made by people who have agreed to -the -clause `__. +software patents. The `BSD 3-clause license +`__ does not explicitly +include such language. This oversight leaves potential for a +contributor to patent their contribution, and then later prohibit use +of their contribution by the PlasmaPy community. Plasma physics has a +variety of commercial applications, so it is important to provide +users with protections against software patents. On 2017 October 19, +the patent grant from the `BSD+Patent license +`__ was `added to +PlasmaPy’s license `__ +to give users the right to use contributions even if a contributor +later patents their contribution. This clause covers all contributions +made past this date, and the `contributions made by people who have +agreed to the clause +`__. The patent clause grants users more rights and protections than the standard BSD 3-clause license. @@ -300,8 +300,8 @@ Software licensing open source licenses, so they would not allow back and forth code sharing with permissively licensed packages. The main disadvantage of not choosing the GPLv3 or LGPLv3 is that code released under those - licenses will not be able to be incorporated directly into a package - under a different license. + licenses will not be able to be incorporated into a package under + a different license. - Additional alternatives include any of the other `open source licenses approved by @@ -329,8 +329,3 @@ Licensing of creative works the `Free/Libre and Open Source Software (FLOSS) `__ movement. - -Decision Rationale ------------------- - -*This PLEP has not yet been decided upon.* From 637b97a5c8c2fb6f2f0af1fd55172d7de166e7a4 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Mon, 17 Sep 2018 18:18:46 -0400 Subject: [PATCH 22/23] Add draft of decision rationale to PLEP 4 --- PLEP-0004.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/PLEP-0004.rst b/PLEP-0004.rst index f638149..a5fdb82 100644 --- a/PLEP-0004.rst +++ b/PLEP-0004.rst @@ -329,3 +329,15 @@ Licensing of creative works the `Free/Libre and Open Source Software (FLOSS) `__ movement. + +Decision Rationale +------------------ + +The BSD+Patent license is permissive and contains clear protections +against software patents. This license is two-way compatible with +code from Astropy and SunPy. Code under this license or a CC BY +license may be relicensed under most other licenses. A CC BY-SA +license may be used to allow greater back and forth collaboration with +other works under the same license. This policy provides additional +flexibility to the Coordinating Committee to deal with extenuating +circumstances. From 3f876aea6981df0a2374debac8cf86d02a4e75a5 Mon Sep 17 00:00:00 2001 From: Nick Murphy Date: Tue, 25 Sep 2018 15:05:52 -0400 Subject: [PATCH 23/23] Add bash script to convert PLEPs from ReST to PDF PLEPs need to be archived on Zenodo, and it is helpful for the new PDF files to be consistently formatted with metadata. This script goes through the conversion process. The PDF files should not be stored in the repository, but rather should be uploaded to Zenodo. --- convert_to_pdf.sh | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 convert_to_pdf.sh diff --git a/convert_to_pdf.sh b/convert_to_pdf.sh new file mode 100755 index 0000000..4a39e0b --- /dev/null +++ b/convert_to_pdf.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# This bash script loops through PLEPs and converts the +# ReStructuredText (.rst) files into PDF files with a consistent +# style. +# +# The author metadata right now must be implemented manually in order +# for middle initials to be included. +# +# This script may be run using: +# +# bash convert_to_pdf.sh +# +# This script requires that pandoc and pdflatex be installed. + +pdf_engine=pdflatex + +options="-V papersize:letter -V geometry:margin=1in -V fontsize=12pt -V linestretch=1.07 -V colorlinks" + +# Enter pdf metadata manually + +authors=( \ + [0000]="PlasmaPy Community" \ + [0001]="Nicholas A. Murphy" \ + [0002]="Nicholas A. Murphy" \ + [0003]="PlasmaPy Community" \ + [0004]="Nicholas A. Murphy" \ + [0005]="Nicholas A. Murphy and Stuart J. Mumford" \ + [0007]="Andrew J. Leonard" \ +) + +for rstfile in PLEP-????.rst; do + + base=${rstfile%.rst} + number=${base//PLEP-/} + pdffile=${base}.pdf + + author=${authors[${number}]:-""} + + echo "Converting ${rstfile} to ${pdffile}" + echo "Author = ${author}" + + pandoc \ + ${rstfile} \ + -o ${pdffile} \ + --pdf-engine=${pdf_engine} \ + ${options} \ + -M author="${author}" \ + -M subject="PlasmaPy Enhancement Proposal" + + echo "" + +done