You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Have a PhET-iO design meeting for the simulation to identify what should be customizable/interoperable/data stream. For example, see how-to-design-phet-io-features-for-a-simulation.md
Add 'phet-io' as a supportedBrand in the sim's package.json, then run grunt generate-data in perennial (and check in changes under perennial/data), then you can use phetmarks to load wrappers for testing.
Make sure Joist dt values are used instead of Date.now() or other Date functions. This is necessary for reproducible playback via input events.
Are random numbers using phet.joist.random, and all doing so after modules are declared (non-statically)? For example, the following methods (and perhaps others) should not be used: Math.random, _.shuffle, _.sample, _.random.
undefined values cannot be saved by phet-io, sims should be written to use null instead.
Verify that the simulation works in all of the phet-io wrappers.
Build with grunt --brand=phet-io and test the built version by launching build/wrappers/index and testing all the links.
Manually look through Instance Proxies to make sure that tandems work as expected and are formatted correctly.
Perform a full test for memory leaks. The benchmark dev release can be helpful here. This will help catch faulty tandem disposal.
If the instrumentation process was large enough, then there is reason for another code review (or partial). Use your judgement. Ask @ariel-phet or @kathy-phet if you are worried about the cost.
Set up a task to have the newly instrumented sim dev tested by the QA team.
Update these instructions if you find them to be incomplete, inconsistent or incorrect.
From #64
Before instrumenting
/blob/<SHA>/
so that the specific guide you used is preserved. https://github.com/phetsims/phet-io/blob/b6303f013f9571158fe46a9e4b98b1382f35dd91/doc/how-to-instrument-a-phet-simulation-for-phet-io.mdThe instrumentation Process
grunt generate-data
in perennial (and check in changes under perennial/data), then you can use phetmarks to load wrappers for testing.?phetioValidateTandems=false
since some common code-components don't yet have tandems.After instrumenting
dt
values are used instead of Date.now() or other Date functions. This is necessary for reproducible playback via input events.phet.joist.random
, and all doing so after modules are declared (non-statically)? For example, the following methods (and perhaps others) should not be used:Math.random
,_.shuffle
,_.sample
,_.random
.undefined
values cannot be saved by phet-io, sims should be written to usenull
instead.grunt --brand=phet-io
and test the built version by launching build/wrappers/index and testing all the links.The text was updated successfully, but these errors were encountered: