Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check on repository licenses #875

Closed
samreid opened this issue Jun 30, 2017 · 17 comments
Closed

Check on repository licenses #875

samreid opened this issue Jun 30, 2017 · 17 comments

Comments

@samreid
Copy link
Member

samreid commented Jun 30, 2017

From phetsims/circuit-construction-kit-common#383

6/29/17 dev meeting notes:

• circuit-construction-kit-common, inverse-square-law-common and shred should all be GPL
• why can't everything be MIT?
• if everything can't be MIT, why not make all PhET-specific common code GPL, and use MIT only for common code (and dependencies) that is useful outside of PhET?

@samreid samreid self-assigned this Jun 30, 2017
@samreid
Copy link
Member Author

samreid commented Jun 30, 2017

@kathy-phet replied:

The basic thought was that common code like scenery could be available under MIT if some 3rd party wanted to build a proprietary software on top of it.

For our sim-specific code, if someone wants to build a specialized version of it, we want that version available for use to anyone -- so we make the sim code GPL. If they want to build something proprietary using our sim-specific code as a base, they can always license the sim code from us directly and do that.

@samreid
Copy link
Member Author

samreid commented Jun 30, 2017

Based on @kathy-phet's remarks, it seems we should license our repositories like so:

  1. Sun and Vibe and their dependencies (including but not limited to scenery, kite, dot, chipper, phet-core) should be MIT
  2. All other sim repos and sim dependencies (like shred or circuit-construction-kit-common) should be GPL
  3. PhET-iO repos are custom license

Aqua and phetmarks depend on simulations so that would suggest they should be GPL, but they seem like they should be MIT to me. (Not sure if we would want to require 3rd parties to release changes to that as GPL like they would for simulations.) . Or perhaps the rule is more like "anything that is a sim or like a sim is GPL and everything else is MIT".

I recommend that a developer looks through our repos and identifies which licenses should be changed and make the changes, or identify if there are any other repos which don't fit into the categories above (for discussion and decision). @ariel-phet if you agree, can you please prioritize/schedule/delegate?

@ariel-phet
Copy link

@samreid can you give me a WAG on how much time this would take?

@samreid
Copy link
Member Author

samreid commented Jul 13, 2017

I guess an hour or so would be sufficient to scan through everything and update it.

@samreid samreid removed their assignment Jul 13, 2017
@ariel-phet ariel-phet assigned samreid and unassigned ariel-phet Jul 19, 2017
@ariel-phet
Copy link

@samreid an hour seems reasonable to do. I would say when you feel like a somewhat more "brainless" task, just take this on at your convenience. Marking medium since it will be quick. Let's say sometime in the next month.

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

I got a list of all repos here:

https://api.github.com/orgs/phetsims/repos

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

I pasted those into a file then ran this;

  var allPages = page1.concat( page2 );

  var sorted = _.sortBy( allPages, 'name' )

  // var names = allPages.map(function(a){return a.name;}).sort();

  // console.log(allPages.length);

  // for ( var i = 0; i < names.length; i++ ) {
  //   console.log( names[ i ]);
  // }

  // console.log( allPages.length );
  // console.log(sorted.map(function(s){return s.clone_url;}));
  sorted.forEach(function(s){
    console.log('git clone '+s.clone_url);
  });

Then I cloned 127 repos.

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

Using this code:

  sorted.forEach( function( s ) {
    var repo = '../licenses/' + s.name + '/LICENSE';
    var x = 'none';
    try {
      x = fs.readFileSync( repo,'utf8' );
    }
    catch( m ) {}
    console.log( s.name + ': ' + x.substring(0,x.indexOf('\n')) );

  } );

I generated a list of all our licenses, coming in next comment.

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

Here are all the licenses: I'll put an X by the ones that look sketchy:

QA: The MIT License (MIT)
❌ a11y-research: 
acid-base-solutions: GNU GENERAL PUBLIC LICENSE
aqua: MIT License
area-builder: GNU GENERAL PUBLIC LICENSE
area-model-common: GNU GENERAL PUBLIC LICENSE
area-model-multiplication: GNU GENERAL PUBLIC LICENSE
arithmetic: GNU GENERAL PUBLIC LICENSE
assert: The MIT License (MIT)
atomic-interactions: GNU GENERAL PUBLIC LICENSE
axon: The MIT License (MIT)
❌ babel: The MIT License (MIT)
balancing-act: GNU GENERAL PUBLIC LICENSE
balancing-chemical-equations: GNU GENERAL PUBLIC LICENSE
balloons-and-static-electricity: GNU GENERAL PUBLIC LICENSE
beers-law-lab: GNU GENERAL PUBLIC LICENSE
bending-light: GNU GENERAL PUBLIC LICENSE
blackbody-spectrum: GNU GENERAL PUBLIC LICENSE
blast: GNU GENERAL PUBLIC LICENSE
brand: The MIT License (MIT)
build-a-fraction-deprecated: GNU GENERAL PUBLIC LICENSE
build-a-molecule: GNU GENERAL PUBLIC LICENSE
build-an-atom: GNU GENERAL PUBLIC LICENSE
calculus-grapher: GNU GENERAL PUBLIC LICENSE
capacitor-lab-basics: GNU GENERAL PUBLIC LICENSE
chains: GNU GENERAL PUBLIC LICENSE
charges-and-fields: GNU GENERAL PUBLIC LICENSE
chipper: The MIT License (MIT)
circuit-construction-kit-basics: GNU GENERAL PUBLIC LICENSE
circuit-construction-kit-black-box-study: GNU GENERAL PUBLIC LICENSE
circuit-construction-kit-common: GNU GENERAL PUBLIC LICENSE
circuit-construction-kit-dc: GNU GENERAL PUBLIC LICENSE
circuit-construction-kit-dc-virtual-lab: GNU GENERAL PUBLIC LICENSE
color-vision: GNU GENERAL PUBLIC LICENSE
concentration: GNU GENERAL PUBLIC LICENSE
coulombs-law: GNU GENERAL PUBLIC LICENSE
curve-fitting: GNU GENERAL PUBLIC LICENSE
dot: The MIT License (MIT)
energy-forms-and-changes: GNU GENERAL PUBLIC LICENSE
energy-skate-park-basics: GNU GENERAL PUBLIC LICENSE
equality-explorer: GNU GENERAL PUBLIC LICENSE
estimation: GNU GENERAL PUBLIC LICENSE
example-sim: GNU GENERAL PUBLIC LICENSE
expression-exchange: GNU GENERAL PUBLIC LICENSE
faradays-law: GNU GENERAL PUBLIC LICENSE
fluid-pressure-and-flow: GNU GENERAL PUBLIC LICENSE
forces-and-motion-basics: GNU GENERAL PUBLIC LICENSE
❌ fraction-common-deprecated: The MIT License (MIT)
fraction-comparison: GNU GENERAL PUBLIC LICENSE
fraction-matcher: GNU GENERAL PUBLIC LICENSE
fractions-intro: GNU GENERAL PUBLIC LICENSE
fractions-intro-deprecated: GNU GENERAL PUBLIC LICENSE
friction: GNU GENERAL PUBLIC LICENSE
function-builder: GNU GENERAL PUBLIC LICENSE
function-builder-basics: GNU GENERAL PUBLIC LICENSE
function-finder: GNU GENERAL PUBLIC LICENSE
❌ gas-properties: 
gene-expression-essentials: GNU GENERAL PUBLIC LICENSE
graphing-lines: GNU GENERAL PUBLIC LICENSE
graphing-quadratics: GNU GENERAL PUBLIC LICENSE
graphing-slope-intercept: GNU GENERAL PUBLIC LICENSE
gravity-and-orbits: GNU GENERAL PUBLIC LICENSE
gravity-force-lab: GNU GENERAL PUBLIC LICENSE
gravity-force-lab-basics: GNU GENERAL PUBLIC LICENSE
griddle: The MIT License (MIT)
hookes-law: GNU GENERAL PUBLIC LICENSE
inverse-square-law-common: GNU GENERAL PUBLIC LICENSE
isotopes-and-atomic-mass: GNU GENERAL PUBLIC LICENSE
john-travoltage: GNU GENERAL PUBLIC LICENSE
joist: The MIT License (MIT)
kite: The MIT License (MIT)
least-squares-regression: GNU GENERAL PUBLIC LICENSE
make-a-ten: GNU GENERAL PUBLIC LICENSE
masses-and-springs: GNU GENERAL PUBLIC LICENSE
mobius: The MIT License (MIT)
models-of-the-hydrogen-atom: GNU GENERAL PUBLIC LICENSE
molarity: GNU GENERAL PUBLIC LICENSE
molecule-polarity: GNU GENERAL PUBLIC LICENSE
molecule-shapes: GNU GENERAL PUBLIC LICENSE
molecule-shapes-basics: GNU GENERAL PUBLIC LICENSE
molecules-and-light: GNU GENERAL PUBLIC LICENSE
neuron: GNU GENERAL PUBLIC LICENSE
❌ nitroglycerin: The MIT License (MIT)
ohms-law: GNU GENERAL PUBLIC LICENSE
optics-lab: GNU GENERAL PUBLIC LICENSE
pendulum-lab: GNU GENERAL PUBLIC LICENSE
perennial: The MIT License (MIT)
ph-scale: GNU GENERAL PUBLIC LICENSE
ph-scale-basics: GNU GENERAL PUBLIC LICENSE
❌ phet-cafepress: 
phet-core: The MIT License (MIT)
phet-info: The MIT License (MIT)
❌ phet-office-mix: 
phetcommon: The MIT License (MIT)
phetmarks: The MIT License (MIT)
plinko-probability: GNU GENERAL PUBLIC LICENSE
projectile-motion: GNU GENERAL PUBLIC LICENSE
❌ proportion-playground:                     GNU GENERAL PUBLIC LICENSE
protein-synthesis: GNU GENERAL PUBLIC LICENSE
query-string-machine: MIT License
reactants-products-and-leftovers: GNU GENERAL PUBLIC LICENSE
resistance-in-a-wire: GNU GENERAL PUBLIC LICENSE
❌ rosetta: GNU GENERAL PUBLIC LICENSE
rutherford-scattering: GNU GENERAL PUBLIC LICENSE
scenery: The MIT License (MIT)
scenery-phet: The MIT License (MIT)
seasons: GNU GENERAL PUBLIC LICENSE
❌ sherpa: The MIT License (MIT)
shred: GNU GENERAL PUBLIC LICENSE
simula-rasa: GNU GENERAL PUBLIC LICENSE
slater: The MIT License (MIT)
❌ smithers: 
states-of-matter: GNU GENERAL PUBLIC LICENSE
states-of-matter-basics: GNU GENERAL PUBLIC LICENSE
sugar-and-salt-solutions: GNU GENERAL PUBLIC LICENSE
sun: The MIT License (MIT)
tambo: MIT License
tandem: The MIT License (MIT)
❌ tasks: 
trig-tour: GNU GENERAL PUBLIC LICENSE
❌ tween.js: The MIT License
twixt: The MIT License (MIT)
under-pressure: GNU GENERAL PUBLIC LICENSE
unit-rates: GNU GENERAL PUBLIC LICENSE
vegas: The MIT License (MIT)
vibe: The MIT License (MIT)
wave-on-a-string: GNU GENERAL PUBLIC LICENSE

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

I marked some potential issues, but I also noticed that some are MIT (MIT) and some are MIT. We should unify all of these, and make sure GPL are all same version too.

@samreid
Copy link
Member Author

samreid commented Jul 24, 2017

The MIT License (MIT) and MIT License have the same text (I compared tambo and sun).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants