Closed samreid closed 9 years ago
@samreid where should the code for this utility actually live. Chipper?
Yes, I'd recommend the license reporting code be developed in chipper.
@pixelzoom - can you comment on @samreid thoughts above? Since you have familiarity with what was done in Java, can you give me a feel for how involved writing such tools would be (is this more on the 10 hours of work scale, or is this more on the 100 hours of work scale?)
@ariel-phet Is this a requirement for "Summer 2015 redeploy"?
@pixelzoom - potentially...it would be helpful to get some more information on the difficulty of this task.
@pixelzoom - correction, it won't be a prerequisite, but might be good to have done in parallel
Why is this issue titled "Report on images & audio that were created by PhET" ? Shouldn't it be "Report on third-party resources (images, audio,...) used by PhET"?
The format and semantics of license.txt are ill-defined and inappropriate for HTML5. We took what was used in Java/Flash (which was also ill-defined) and simply moved it to HTLM5. So this is more than a
Here's what needs to be done:
Design (15+ hours), https://github.com/phetsims/chipper/issues/181
File conversion (10-20 hours), https://github.com/phetsims/chipper/issues/181
Build process (10-20 hours), done
Reporting (20+ hours)
So somewhere in the range of 55-75 hours.
Back to @ariel-phet for review.
A few notes on where the Java version of this stuff lives in Unfuddle...
Source code in phet-svn-trunk/build-tools/src/edu.colorado.phet.licensing, mostly undocumented
phet-svn-trunk/build-tools/licensing-readme.txt (which would have been more useful if located in edu.colorado.phet.licensing)
Fields in license.txt documented in ResourceAnnotation.java.
Thanks @pixelzoom, I updated the title accordingly.
Proposed format for license.json
, example:
{
"phetImage.png": {
"source": "PhET",
"author": "John Doe",
"notes": "optional notes"
},
"thirdPartyImage.png": {
"source": "Organization of individual(s) who own the resource",
"url": "the URL for the organization or individual(s)",
"license": "the license name",
"licenseURL": "www.somesite.com/license.txt",
"notes": "optional notes"
}
}
Description of fields:
Required for all entries:
source
: Tells us whether the resource is owned by "PhET" or a 3rd-party. For 3rd-parties, this field identifies the organization or individual(s) who own the resource.
Required for all entries where source === "PhET":
author
: Identifies the individual(s) that created the resource.
Required for all entries where source !== "PhET":
url
: The URL of the organization or individual(s) that own the resource. If there is no URL, put "none".
license
: Identifies the official name of the license under which PhET is using the resource, e.g., "The MIT License".
licenseURL
: URL to the specific license. If there is no URL, put "none".
Optional for all entries:
notes
: Optional for all entries, misc notes about the resource.
Another option (proposed at 6/18/15 dev meeting) is to replace third-party images and audio with PhET-created resources.
@ariel-phet has suggested replacing 3rd party images and audio with PhET-created resources. If we are going to do this, then we will need to provide a list to @ariel-phet for what needs to be re-created. @ariel-phet would you like me to see if there is a low-cost way to do so (perhaps I would try reusing our Java license parsing code?) or just address them manually on a simulation by simulation basis as we redeploy?
see if there is a low-cost way to do so
% cd <root of your working copy directory>
% grep -v "source=PhET" `find . -name license.txt -print`
You'll see some false results due to incorrect usage of the "author" field (author=PhET), and those should be fixed.
Of course the above will not identify resources that are not properly accounted for in a license.txt file.
I created a grunt script to report on images & audio in simulations. It identifies non-phet resources, and resources that are not annotated one way or the other (and resources that are annotated more than once). Here are the docs for the script:
/**
* This grunt task iterates over all of the license.txt files and reports any images or audio that have any of the following
* problems:
*
* NOT ANNOTATED (NO FILE): Are missing the license.txt file
* 3RD PARTY: Known to be from a source outside of PhET
* NOT ANNOTATED IN FILE: There is a license.txt file but the asset is not in there
* MULTIPLE ANNOTATIONS: There is a license.txt file but the asset is annotated more than once and hence may have
* conflicts
*
* This can be run from any simulation directory with `grunt licenseTXTReport` and it reports for all directories (not
* just the simulation at hand).
*
* Note that this program relies on numerous heuristics for determining the output, such as allowed entries that
* determine if a file originates from PhET.
*
* @author Sam Reid
*/
Here is the output of this script (I have stripped out my local path for convenience):
NOT ANNOTATED IN FILE: arithmetic/images/transparent-pointing-hand.png
3RD PARTY: balancing-act/images/fire-extinguisher.png: fire-extinguisher.png source=Open Clip Art notes=Modified by jblanco
NOT ANNOTATED IN FILE: balancing-act/images/game-icon-small.png
NOT ANNOTATED IN FILE: balancing-act/images/intro-icon-small.png
NOT ANNOTATED IN FILE: balancing-act/images/lab-icon-small.png
3RD PARTY: balancing-act/images/old-television.png: old-television.png source=Open Clip Art notes=Modified by jblanco
NOT ANNOTATED IN FILE: balancing-act/images/plank-balanced.png
NOT ANNOTATED IN FILE: balancing-act/images/plank-tipped-left.png
NOT ANNOTATED IN FILE: balancing-act/images/plank-tipped-right.png
NOT ANNOTATED IN FILE: balancing-act/images/puppy.png
NOT ANNOTATED IN FILE: balancing-act/images/rock-1.png
NOT ANNOTATED IN FILE: balancing-act/images/rock-4.png
NOT ANNOTATED IN FILE: balancing-act/images/rock-6.png
NOT ANNOTATED IN FILE: balancing-act/images/wood-crate-tall.png
NOT ANNOTATED IN FILE: balancing-chemical-equations/images/Check-Mark-u2713.png
NOT ANNOTATED IN FILE: balancing-chemical-equations/images/Heavy-Ballot-X-u2718.png
MULTIPLE ANNOTATIONS: beaker/images/Beaker-screen-icon.jpg
NOT ANNOTATED IN FILE: bending-light/images/mockup-intro-ray.png
NOT ANNOTATED IN FILE: bending-light/images/mockup-intro-wave.png
NOT ANNOTATED IN FILE: bending-light/images/mockup-intro.png
NOT ANNOTATED IN FILE: bending-light/images/mockup-more-tools.png
NOT ANNOTATED IN FILE: bending-light/images/mockup-prisms.png
NOT ANNOTATED (NO FILE): brand/images/logo-on-white.png
NOT ANNOTATED (NO FILE): brand/images/logo.png
NOT ANNOTATED (NO FILE): brand/images/splash.svg
NOT ANNOTATED IN FILE: build-a-molecule/images/green-left.png
NOT ANNOTATED IN FILE: build-a-molecule/images/green-middle.png
NOT ANNOTATED IN FILE: build-a-molecule/images/green-right.png
NOT ANNOTATED IN FILE: build-a-molecule/images/ico2cur.py
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-closed-up.cur
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-closed-up.png
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-closed.cur
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-closed.png
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-up.cur
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors-up.png
NOT ANNOTATED IN FILE: build-a-molecule/images/scissors.cur
3RD PARTY: build-a-molecule/images/scissors.png: scissors.png source=Open Clip Art license=PUBLIC DOMAIN notes=Modified from http://www.openclipart.org/detail/32341
NOT ANNOTATED IN FILE: build-a-molecule/images/split-blue.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/battery_3D_down.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/battery_3D_up.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/closeButton.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/light-bulb-base.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_black_large.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_black_large_cutout.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_field.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_field_cutout.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_field_large.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_red_large.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_red_large_cutout.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/probe_3D_red_large_outline.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/sliderKnob.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/sliderKnobHighlight.png
NOT ANNOTATED IN FILE: capacitor-lab-basics/images/voltmeter.png
NOT ANNOTATED IN FILE: color-vision/images/head-front.png
NOT ANNOTATED IN FILE: color-vision/images/head-icon.png
NOT ANNOTATED IN FILE: color-vision/images/head.png
NOT ANNOTATED IN FILE: color-vision/images/head.svg
NOT ANNOTATED IN FILE: color-vision/images/silhouette-front.png
NOT ANNOTATED IN FILE: color-vision/images/silhouette-icon.png
NOT ANNOTATED IN FILE: color-vision/images/silhouette.png
NOT ANNOTATED IN FILE: curve-fitting/images/equation-help.png
NOT ANNOTATED IN FILE: curve-fitting/images/f-equal-four.png
NOT ANNOTATED IN FILE: curve-fitting/images/f-symbol.png
NOT ANNOTATED IN FILE: curve-fitting/images/n-symbol.png
NOT ANNOTATED IN FILE: energy-forms-and-changes/images/mockup_energy_systems.png
NOT ANNOTATED IN FILE: energy-forms-and-changes/images/mockup_intro.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/.DS_Store
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/attach.png
3RD PARTY: energy-skate-park-basics/images/cement-texture-dark.jpg: cement-texture-dark.jpg source=http://www.public-domain-image.com/full-image/textures-and-patterns-public-domain-images-pictures/concrete-texture-public-domain-images-pictures/cement-texture.jpg-royalty-free-stock-image.html license=public domain
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/detach.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/skater-icon.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/skater-left.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/skater-right.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/trash-can-disabled.png
NOT ANNOTATED IN FILE: energy-skate-park-basics/images/trash-can.png
NOT ANNOTATED (NO FILE): estimation/images/continuous-icon.png
NOT ANNOTATED (NO FILE): estimation/images/cubes-icon.png
NOT ANNOTATED (NO FILE): estimation/images/cylinders-icon.png
NOT ANNOTATED (NO FILE): estimation/images/discrete-icon.png
NOT ANNOTATED (NO FILE): estimation/images/explore-screen-icon.png
NOT ANNOTATED (NO FILE): estimation/images/game-screen-icon.png
NOT ANNOTATED (NO FILE): estimation/images/lines-icon.png
NOT ANNOTATED (NO FILE): estimation/images/screenshot-01-temp.jpg
NOT ANNOTATED (NO FILE): estimation/images/squares-icon.png
NOT ANNOTATED (NO FILE): faradays-law/images/four-loop-back-small.png
NOT ANNOTATED (NO FILE): faradays-law/images/four-loop-back.png
NOT ANNOTATED (NO FILE): faradays-law/images/four-loop-front-small.png
NOT ANNOTATED (NO FILE): faradays-law/images/four-loop-front.png
NOT ANNOTATED (NO FILE): faradays-law/images/light-bulb-base.png
NOT ANNOTATED (NO FILE): faradays-law/images/two-loop-back-small.png
NOT ANNOTATED (NO FILE): faradays-law/images/two-loop-back.png
NOT ANNOTATED (NO FILE): faradays-law/images/two-loop-front-small.png
NOT ANNOTATED (NO FILE): faradays-law/images/two-loop-front.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/flow-mockup.jpg
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/flow-mockup.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/grass-texture.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/injector-bulb-cropped.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/measuringTape.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/pipe-left-back.png
NOT ANNOTATED IN FILE: fluid-pressure-and-flow/images/pipe-left-front.png
3RD PARTY: forces-and-motion-basics/audio/golf-clap.mp3: golf-clap.mp3 source=http://www.pdsounds.org/sounds/clapping_hurray notes=edited by NP and SR license=public domain
3RD PARTY: forces-and-motion-basics/audio/golf-clap.ogg: golf-clap.ogg source=http://www.pdsounds.org/sounds/clapping_hurray notes=edited by NP and SR license=public domain
NOT ANNOTATED IN FILE: forces-and-motion-basics/images/Acceleration_Icon.png
NOT ANNOTATED IN FILE: forces-and-motion-basics/images/Friction_Icon.png
NOT ANNOTATED IN FILE: forces-and-motion-basics/images/Motion_Icon.png
NOT ANNOTATED IN FILE: forces-and-motion-basics/images/Tug_Icon.png
3RD PARTY: forces-and-motion-basics/images/brick-tile.png: brick-tile.png notes=http://openclipart.org/detail/9523/-by--9523
3RD PARTY: forces-and-motion-basics/images/cloud1.png: cloud1.png notes=http://openclipart.org/detail/99229/landscape-by-rg1024
NOT ANNOTATED IN FILE: forces-and-motion-basics/images/icicle.png
NOT ANNOTATED (NO FILE): fraction-matcher/images/scale.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-01.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-02.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-03.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-04.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-05.png
NOT ANNOTATED IN FILE: gene-expression-basics/images/GEB-06.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/cartoon_icon.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/earth.gif
NOT ANNOTATED IN FILE: gravity-and-orbits/images/icon_mass.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/icon_path.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/measuringTape.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/moon.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/reset_arrow.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/space-station.png
NOT ANNOTATED IN FILE: gravity-and-orbits/images/to_scale_icon.png
NOT ANNOTATED IN FILE: isotopes-and-atomic-mass/images/BlackBox.png
3RD PARTY: john-travoltage/images/arm.png: arm.png notes=notes=http://www.americancinematheque.com/ball/1997MPBTravolta.htm edited by NP
3RD PARTY: john-travoltage/images/body.png: body.png notes=notes=http://www.americancinematheque.com/ball/1997MPBTravolta.htm edited by NP
NOT ANNOTATED IN FILE: john-travoltage/images/door.png
3RD PARTY: john-travoltage/images/leg.png: leg.png notes=notes=http://www.americancinematheque.com/ball/1997MPBTravolta.htm edited by NP
NOT ANNOTATED IN FILE: john-travoltage/images/rug.png
NOT ANNOTATED IN FILE: john-travoltage/images/window.png
NOT ANNOTATED IN FILE: making-tens/images/1.png
NOT ANNOTATED IN FILE: making-tens/images/10.png
NOT ANNOTATED IN FILE: making-tens/images/100.png
NOT ANNOTATED IN FILE: making-tens/images/2.png
NOT ANNOTATED IN FILE: making-tens/images/20.png
NOT ANNOTATED IN FILE: making-tens/images/200.png
NOT ANNOTATED IN FILE: making-tens/images/3.png
NOT ANNOTATED IN FILE: making-tens/images/30.png
NOT ANNOTATED IN FILE: making-tens/images/300.png
NOT ANNOTATED IN FILE: making-tens/images/4.png
NOT ANNOTATED IN FILE: making-tens/images/40.png
NOT ANNOTATED IN FILE: making-tens/images/400.png
NOT ANNOTATED IN FILE: making-tens/images/5.png
NOT ANNOTATED IN FILE: making-tens/images/50.png
NOT ANNOTATED IN FILE: making-tens/images/500.png
NOT ANNOTATED IN FILE: making-tens/images/6.png
NOT ANNOTATED IN FILE: making-tens/images/60.png
NOT ANNOTATED IN FILE: making-tens/images/600.png
NOT ANNOTATED IN FILE: making-tens/images/7.png
NOT ANNOTATED IN FILE: making-tens/images/70.png
NOT ANNOTATED IN FILE: making-tens/images/700.png
NOT ANNOTATED IN FILE: making-tens/images/8.png
NOT ANNOTATED IN FILE: making-tens/images/80.png
NOT ANNOTATED IN FILE: making-tens/images/800.png
NOT ANNOTATED IN FILE: making-tens/images/9.png
NOT ANNOTATED IN FILE: making-tens/images/90.png
NOT ANNOTATED IN FILE: making-tens/images/900.png
NOT ANNOTATED IN FILE: making-tens/images/adding-mockup.png
NOT ANNOTATED IN FILE: making-tens/images/explore-mockup.png
NOT ANNOTATED IN FILE: making-tens/images/game-mockup.png
NOT ANNOTATED IN FILE: making-tens/images/levelSelection-mockup.png
NOT ANNOTATED IN FILE: masses-and-springs/images/ruler.png
NOT ANNOTATED IN FILE: neuron/images/neuron-mockup.png
NOT ANNOTATED IN FILE: neuron/images/neuron-particles-test-texture.png
NOT ANNOTATED IN FILE: neuron/images/neuron-particles-texture-2.png
NOT ANNOTATED IN FILE: neuron/images/neuron-particles-texture-32x32.png
NOT ANNOTATED IN FILE: neuron/images/neuron-particles.png
NOT ANNOTATED IN FILE: plinko-probability/images/container.png
NOT ANNOTATED IN FILE: plinko-probability/images/counter.png
NOT ANNOTATED IN FILE: plinko-probability/images/fraction.png
NOT ANNOTATED IN FILE: plinko-probability/images/mockup01.png
NOT ANNOTATED IN FILE: plinko-probability/images/mockup02.png
NOT ANNOTATED IN FILE: plinko-probability/images/mockupCropped01.png
NOT ANNOTATED IN FILE: plinko-probability/images/mockupCropped02.png
NOT ANNOTATED IN FILE: quantum-bound-states/images/PhaseIcon.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/exampleGun.jpg
NOT ANNOTATED IN FILE: rutherford-scattering/images/gunOffButton.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/gunOnButton.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/plumPudding-Fireworks.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/plumPudding.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/ray-gun.png
NOT ANNOTATED IN FILE: rutherford-scattering/images/testImage.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/battery.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/lightBulbBase.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/lightBulbGlass.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/lightBulbGlassMask.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/mockup-macro.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/mockup-micro.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/mockup-water.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/salt_empty.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/salt_full.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/salt_micro.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_closed.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_empty_closed.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_empty_open.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_micro_closed.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_micro_open.png
NOT ANNOTATED IN FILE: sugar-and-salt-solutions/images/sugar_open.png
3RD PARTY: under-pressure/images/cement-texture-dark.jpg: cement-texture-dark.jpg source=http://www.public-domain-image.com/full-image/textures-and-patterns-public-domain-images-pictures/concrete-texture-public-domain-images-pictures/cement-texture.jpg-royalty-free-stock-image.html license=public domain
3RD PARTY: under-pressure/images/grass-texture.png: grass-texture.png source=Open Clip Art notes=http://openclipart.org/detail/21212/grass-texture-by-rg1024-21212 as public domain
3RD PARTY: vegas/audio/boing.mp3: boing.mp3 source=freesound.org, Creative Commons 0 license, modified by John B
3RD PARTY: vegas/audio/boing.ogg: boing.ogg source=freesound.org, Creative Commons 0 license, modified by John B
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/Ruler_two_side.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/Ruler_two_side.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/Ruler_two_side_5cm.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/Ruler_two_side_5cm.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_pulse_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_restart_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_pause.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_pause.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_pause_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_pause_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_play.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_play.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_play_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_sim_play_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_deactivated.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_deactivated.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_step_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_pause_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/button_timer_reset_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/clamp_2.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/clamp_2.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/oscillator_post.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/oscillator_post.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/oscillator_wheel.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/oscillator_wheel.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/ring_back.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/ring_back.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/ring_front.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/ring_front.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_disabled.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_disabled.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_left_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_disabled.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_disabled.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_hover.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_hover.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_pressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_pressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_unpressed.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/tweaker_right_unpressed.svg
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/wrench_2.png
NOT ANNOTATED (NO FILE): wave-on-a-string/images/archive/wrench_2.svg
NOT ANNOTATED IN FILE: wave-on-a-string/images/clamp.png
NOT ANNOTATED IN FILE: wave-on-a-string/images/clamp.svg
NOT ANNOTATED IN FILE: wave-on-a-string/images/window-back.png
NOT ANNOTATED IN FILE: wave-on-a-string/images/window-back.svg
NOT ANNOTATED IN FILE: wave-on-a-string/images/window-front.png
NOT ANNOTATED IN FILE: wave-on-a-string/images/window-front.svg
NOT ANNOTATED IN FILE: wave-on-a-string/images/wrench.png
NOT ANNOTATED IN FILE: wave-on-a-string/images/wrench.svg
Reassigning to @ariel-phet to decide how to proceed.
@ariel-phet suggested:
Can SR look into these issues? Start by seeing if we are just missing license.txt files from Java. Annonate any images that you are sure are phet-drawn. Then re-run report.
@kathy-phet likes TXT moving to JSON, but it doesn't need to be done immediately
Seems I was assigned still assigned to this issue, reassigning to @samreid since he is doing all the current work.
I added checks to the image, audio and mipmap plugins, and found issues for:
balancing-act (needs license.txt filled in) https://github.com/phetsims/balancing-act/issues/53 build-a-molecule (needs license.txt filled in) https://github.com/phetsims/build-a-molecule/issues/75 gravity-and-orbits (needs attribution in the HTML) https://github.com/phetsims/gravity-and-orbits/issues/149 john-travoltage (needs attribution in the HTML) https://github.com/phetsims/john-travoltage/issues/81
I have cleared up all other issues above by inspecting AI files, Java files, etc. These 4 simulations will fail to build until the issues have been resolved.
I believe next steps are summarized in https://github.com/phetsims/chipper/issues/171 and https://github.com/phetsims/chipper/issues/172 together with the above issues.
However, we should review other recommendations from this issue (including but not limited to https://github.com/phetsims/tasks/issues/274#issuecomment-112129344) before closing.
With my comments in https://github.com/phetsims/tasks/issues/274#issuecomment-123496206 and my new annotations of what has been completed vs moved to other tasks in https://github.com/phetsims/tasks/issues/274#issuecomment-112129344 this issue is ready to be closed.
For some of our collaborations and contracts, we must provide reports about 3rd party assets (code/images/audio/fonts/etc.) that we are using. Most of the code licensing (and the only font we are including, 'liberation-sans-regular-subset-numeric-degrees.js') is being handled in the sherpa repository. We still need to report on our images and audio. Note that images & audio are scattered around throughout our repositories rather than centralized in a single repository.
In Java, we created a utility script that would iterate over every project and generate a licensing report for all images & audio. This utility script included rules for parsing the license.txt files and determining whether (based on the metadata) whether the artwork/audio was PhET's property or from a 3rd party.
We will need to do something similar for our HTML5 simulations.
The main steps that are required:
The process should be able to run:
Another possibility would be to create this as a script that runs during a simulation
grunt
to determine whether any licensing information is missing or problematic as part of the build.@ariel-phet & I previously discussed manually generating these reports, but it would probably be better to create scripts to do this so that (a) we can eliminate the possibility for manual error and (b) we can re-run the scripts at any time without any additional cost. The right place to start looking for the pre-existing Java code for parsing and analysing these license.txt metadata files is in our svn tree at phet-svn-trunk/build-tools/licensing-src. One long-term step we may wish to take would be to transform the license files into JSON to standardize and simplify parsing.