phetsims / equality-explorer

"Equality Explorer" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
2 stars 3 forks source link

PhET-iO Instrumentation Process Checklist #192

Open pixelzoom opened 2 years ago

pixelzoom commented 2 years ago

PhET-iO Instrumentation Process Checklist

Initial Steps

Gathering requirements

Before touching any code

Baseline versions:

Initial meeting

Prior to initial meeting:

Brief initial meeting (developer and designer):

For example, see how-to-design-phet-io-features-for-a-simulation.md. Think about how a researcher or 3rd party may wish to configure the simulation or collect data from it, and make sure that is supported by the instrumentation. For example, some simulations will need custom higher-level events (such as whether the user created a parallel circuit), for events that are useful, easy to compute in simulation code and difficult to compute in wrapper code. Or a simulation may need to be configurable in a way that is not already supported by the instrumentation you have already completed. These features should be determined in the PhET-iO design meeting. Sometimes it is preferred to have a skeleton, or developer's "best guess" before this meeting so that there is more to play with in Studio. Use your judgement!

Development

If a retrofit

Initial development

Getting started

Instrumenting Objects by passing them Tandems

This step will take you through all objects in the simulation that should be instrumented, as well as some tips and tricks for finding them and testing as you go.

Consult the PhET-iO design issue to see what features the sim should support. See PhetioObject.js for the supported PhetioObject options. Not every Tandem created needs to be passed to a PhetioObject; sometimes Tandems can be created to support organization. For example, in some sims, a collection of Properties associated with the visibility of Nodes in the view may all be instrumented under a phetioID like {{sim}}.{{screen}}.view.viewProperties. This would be preferable than having all of these Properties (which have similar functionality) directly on the view phetioID. Here viewProperties is not a PhET-iO element, but is a phetioID that nests PhET-iO elements under it.

Feature Support

An instrumented object is not just a Tandem passed to a PhetioObject. There is other structure that needs to be added for full PhET-iO support.

Iteration during development

Post Instrumentation Review and Checks

Publication

Managing QA Bugs with PhET-iO publication

PhET-iO bugs that come from QA testing can effect multiple sims, especially if multiple phet-io sims are currently going through the QA pipeline. Below is a process to follow to make sure that bugs can be fixed and propagated to all effected sims.

  1. QA will create a sim-specific bug report in the sim repo.
  2. Responsible developer (whoever is bringing that sim through QA) should determine if this is a common code issue, and, if so, create another issue in that common code repo. This issue should have the exact same name as the sim-specific one.
  3. Responsible developer should look at QA pipeline project board and determine any other sims that could be effected by this bug.
  4. Assign each responsible dev to determine if it applies to their sim, and if so to create their own sim-specific issue for it. This should be done regardless of if this bug blocks the publication of that sim.
  5. Each sim-specific issue gets “is blocking” triage in their own context (from their designer) (likely marking on hold until the general issue is solved)
  6. Common code issue gets fixed, with help from design team if needed. This issue can get closed even if the change hasn't been propagated to all sims/versions.
  7. Each sim-specific issues gets cherry-picks as needed. Individual sim-specific issues can be closed before all are taken care of.
  8. When is the next RC? When there are no blocking-sim-publication issues in that repo. Also make sure that there are no general blocks-publication issues that aren’t covered by your sim-specific issues.
pixelzoom commented 2 years ago

Note that the "Before touching any code" section says:

Design review: PhET-iO instrumentation provides an opportunity to review the condition of the sim, and make improvements to both the UX and code base. With a designer: ...

I'm skipping that for this sim, because I've been asked to proceed, and there are no outstanding GitHub issues that I think are relevant here. @amanda-phet if you feel otherwise, please let me know asap.

pixelzoom commented 2 years ago

Good progress on "initial instrumentation" today in the above commits. I'll resume working on this the week of 10/17/2022.

pixelzoom commented 2 years ago

Dynamic elements have been identified in https://github.com/phetsims/equality-explorer/issues/200. There are no plans to work on that until the initial instrumentation has been reviewed.

pixelzoom commented 2 years ago

I've completed initial instrumentation.

Baseline versions:

Nexts steps are for designers @amanda-phet @catherinecarter - see https://github.com/phetsims/equality-explorer/issues/191#issuecomment-1306323892.