MathHubInfo / Frontend

A new MathHub Narration Frontend written in React.
GNU Affero General Public License v3.0
2 stars 0 forks source link

implement public escrow for MathHub #67

Open kohlhase opened 10 years ago

kohlhase commented 10 years ago

We want to implement public escrow in MathHub, this needs five things

  1. when repository is created, or a member with write access is added to a repository, the user must state that they will only add content to the repository they have copyright on and agree to a public escrow license (see Definition below). For that she must choose a public license out of a list (currently only the CC licenses and the SMGloM license).
  2. when a repository is created private or made private, then the target date is set to the current date + 3 months (this period should be made configurable). This means that a license text is generated from the chosen public license, the author names and the target date and committed to the repository. See the template below.
  3. when a repository is made public or the escrow expires, the public escrow license is replaced by the target license.
  4. we need a RESTFUL interface and drupal front-end for prolonging public escrow. This just generates a new public escrow license with escrow date prolonged by three months.
  5. one month, two weeks, one week, three/two/one days before escrow expiry all repository members with write access are notified of expiry in an e-mail that contains a hyperlink (one-click) to the prolongation interface. All these times should be configurable, but these are first defaults.

DEFINITION: A license agreement is a "public escrow license", iff it reverts into a public license (the "target license") after a specified fixed date (the "escrow date").

<form> 
<h2>Declarations</h2>: 
<ol>
 <li>I declare that I will only commit materials to the repository <<group>>/<<name>> on http://gl.mathhub.info which I have copyright on or which is licensed so that it can be re-distributed.
<input type="tickbox"/></li>
<li>I agree that all materials committed to the repository <<group>>/<<name>> on http://gl.mathhub.info are licensed under the public escrow license below.
<input type="tickbox"/></li>
<li>I can prolong the target date of the public escrow on the repository <<group>>/<<name>> on http://gl.mathhub.info at any time by executing the link http://gl.mathhub.info/<<group>>/<<repos>>/escrow-prolong <input type="tickbox"/></li>
<li>I can close and delete the repository <<group>>/<<name>> on http://gl.mathhub.info at any time before <target <input type="tickbox"/></li>
<li>Unless public escrow is prolonged, the repository <<group>>/<<name>> on http://gl.mathhub.info at any time will become public and the content licensed under the <<target license>> below on <<escrow date/time>>.<input type="tickbox"/></li>
<li>Once the 
</ol> 
<h2>Public Escrow License</h2>
<ol>
<li>The copyright holders <<list of holders>> of the content of  the repository <<group>>/<<name>> on http://gl.mathhub.info retain all rights provided by copyright law until the <<escrow date/time>>.
</li>
<li>In particular, the copyright holders can close and delete the repository <group>>/<<name>> on http://gl.mathhub.info at any time before <<target date/time>>. No trace of the repository <<group>>/<<name>> or its version history will remain on http://gl.mathhub.info in this case; repository deletion cannot be undone</li>
<li>Unless this license is superseded by another, the repository will automatically become public, it will become tagged with the tag "escrow_expired", and its contents as well as the version history of the repository will become licensed under the <<target license>> (see below).</li>
<ol> 

<h2><<target license title>></h2>

<p><<target license text</p>
</form>

Then we need to record the outcome of this delcaration somewhere persistent. With the new react.js-based front-end that does not have its own database any more, this is not so trivial.

kohlhase commented 10 years ago

This probably needs fine-tuning and discussion but I think the general thrust is right.

kohlhase commented 9 years ago

We talked about this today, and this should mainly be implemented at the Drupal level, accessing GitLab via the API. We should try to disable some features of GitLab though, e.g. being able to make a public repository private again (unfortunately, this seems to be part of a push URI, not a pull one).

kohlhase commented 9 years ago

We developed the idea for the comment above that we could just fork the project into a public space where the MathHub admins are owners and the original owners become developers.

We could then think about making the repository public but read-only. Then the owner of the repos could make his/her repository private again and work further on it. And since there is a fork relation, we could (with the private repository's owner's permission of course) pull patches.

Maybe that is the best solution overall.

kohlhase commented 9 years ago

Hmmm, I see that the license text is completely missing, .... I guess I will have to develop this further, I am spinning off issue #70 to myself.

kohlhase commented 5 years ago

Hmmm, I see that the license text is completely missing, .... I guess I will have to develop this further, I am spinning off issue #70 to myself.

Actually, the declarations above are pretty close to the license text already.

kohlhase commented 5 years ago

We talked about this today, and this should mainly be implemented at the Drupal level, accessing GitLab via the API.

This should be read at the FrontEnd (REACT) level now.