phetsims / tasks

General tasks for PhET that will be tracked on Github
MIT License
5 stars 2 forks source link

Changelogs #1084

Open pixelzoom opened 3 years ago

pixelzoom commented 3 years ago

At 5/13/21 status meeting, a potential need for a changelog was identified. This would enabled PhET to easily determine what was "new" in a version, and communicate that info to users and clients. Further discussion will happen in a subgroup, composed of KP, JB, CM, AR, SR, CM, ON.

oliver-phet commented 3 years ago

I just created an initial event for the next hour we all have availability: 5/24 11:30-12:30PM MST.

pixelzoom commented 3 years ago

Thoughts, questions, etc.

oliver-phet commented 3 years ago

Could we leverage pull requests to capture issues/changes that are included in a "new" version of a sim?

pixelzoom commented 3 years ago

Another thought, an alternative to manually making changelog entries "as we go"... Write a script to gather the commit messages between production version deploys, then manually curate those commit messages into a changelog. (This script seems like it would be relatively easy for the sim repo, but more work for dependency repos.) Use this script and "manual curation" to update the changelog just before publishing each production version.

kathy-phet commented 3 years ago

JB, CM, ON, AR, AM, KP: Add a (changelog.md) file in each repo that is a history of the changelog for that sim for phet brand Add a (changelogphetio.md)? How does it interface with migration guide, api changes, studio changes, etc? (optionally) Create an unpublishedChanges.md file if useful or Track the changes in the github issue that are "Update Changelog" Add a link to the sim page: https://github.com/phetsims/molecule-shapes/blob/master/CHANGELOG.md Add a link into the About dialog Add a link into the Update dialog Change log captured in release branches? especially for release branches? How does this intersect with maintenance release process? How will this be automated?

Change log needs to have:

Process of creating change log:

Changelog for PhET-iO vs PhET brand. focus right now on the PhET brand only.

pixelzoom commented 3 years ago

Next steps:

jessegreenberg commented 3 years ago

This was discussed during 5/27/21 developer meeting:

The plan and overview was presented to the developer team. No one had concerns. We will need to allocate some time for a developer (or subteam) to work on this, we will bring back to management to discuss.

@oliver-phet thought about pull requests and wondered if those could be used to naturally track changes made to sims and mostly common code. In addition to more change documentation, this might provide more stability. It is outside of our process, and we agreed we could learn more about this from people that use pull requests regularly.

pixelzoom commented 3 years ago

Additional notes from 5/27/21 developer meeting:

Assigning to @kathy-phet for prioritization, scheduling, and assignment.

samreid commented 3 years ago

I was unable to attend the discussion at the 5/27/21 developer meeting. The idea of including a specific marker in certain commit messages then aggregating them with a script has the following disadvantages:

Git commit messages are not designed to be rewritten, and I don't think we should work toward a solution that makes it difficult to edit change logs or requires a nonstandard approach of editing change logs.

The solution to these problems is to maintain a changes.txt or changes.md file in each repository, which is manually added to at the time of a user-facing change (often as part of a commit that implements the described solution). If a user forgets to update the changelog.txt file, they can add an entry later. Corrections or improvements can be made at any time.

This is straightforward for simulation repositories, since they can have version delimiters, which can be automatically inserted by the build process:

# 2021-05-30 - Published 1.1
Increased the default gravity from 9.0 to 9.8
Added a checkbox to disable friction

# 2021-02-28 - Published 1.0
Initial Publication

For common code repos, we may need to annotate each change with a date, so that we find all common code changes that impact a project. For example:

# 2021-05-28
Increased the slider track width
Added sound effects to ComboBox

# 2021-05-24
Made checkboxes smaller by default

# 2021-05-21
Radio buttons are now blue

This way, when we publish the next version of a sim, we can aggregate the relevant common code changes from dependencies and output them together (perhaps integrated into the sim's changes.txt or perhaps in a new combined report build artifact).

In my opinion, this approach or something like it will serve our project well. Some known problems or questions regarding this proposal:

Regarding pull requests: managing changelogs through pull requests is not a good fit for our project for a few reasons: pull requests must be done in a branch which creates more overhead. Next, it seems odd for Developer X to create a pull request, then approve their own request. It adds a lot of overhead to something that should be simple, like adding a line of text to a text file.

zepumph commented 1 month ago

This came up again in https://github.com/phetsims/density/issues/202. We are worried about not having a solution for this before we start to scale. The current business revolves around the Standard PhET-iO Wrapper, but it seems like we should have something for custom wrappers.

We will continue to want to push people to new versions, and release notes may help communicate the new value and features a new version has in addition to providing an upgrade guide.