phetsims / phet-info

Collection of information shared by PhET team members for the purpose of using github effectively and for other process-related topics.
MIT License
63 stars 27 forks source link

Dev onboarding document needed #192

Closed zepumph closed 1 year ago

zepumph commented 2 years ago

There seem to be a lot of spots that new-dev documentation exists. I'd like a central place. The Development Overview is definitely a great start, but it doesn't include stuff that PhET employees might need to do that open source users wouldn't.

zepumph commented 2 years ago

Document available now at https://github.com/phetsims/phet-info/blob/master/doc/new-dev-onboarding.md

zepumph commented 2 years ago

Updates above from recommendations that @pixelzoom had on slack. From here I will assign @AgustinVallejo and @marlitas. Please read through and make any updates that may be helpful. You don't have to add anything if nothing strikes you. When done please unassign yourself. If you are the last one feel free to close this issue.

marlitas commented 2 years ago

This is less about the content of the doc and more about organization/presentation. As a new dev it can be very overwhelming walking into the PhET codebase as well as the code standards. I know for myself I would open some of the docs during my first week and feel like I couldn't handle that amount of information with the other onboarding that was happening (CU benefits/employee setup, meeting everyone, introduction to sim design, etc.). Wondering if there could be a recommended timeline, or perhaps presenting the info/required steps in an order that would be most beneficial (ie. do this first, then this). OR, we provide more buffer time in the first week to look through all the docs before digging into any aspect of the codebase.

zepumph commented 2 years ago
zepumph commented 2 years ago
zepumph commented 2 years ago

Today at dev meeting we discussed this issue. In response to https://github.com/phetsims/phet-info/issues/192#issuecomment-1124021948, that context seems really important. Another way of formatting that would be with an explanation of each document saying "this is reference, don't memorize this your first day" vs the more step-by-step setup guides. A subgroup of @jbphet, @marlitas, @AgustinVallejo, and @chrisklus will take this on.

marlitas commented 2 years ago

2/25/22 Onboarding Documentation Club Meeting @jbphet @chrisklus @AgustinVallejo @Luisav1

Base Foundation:

Brainstorming:

marlitas commented 2 years ago

@jbphet : Flesh out intro @chrisklus & @Luisav1 : Finding other documentation and linking it back @marlitas : research mermaid @AgustinVallejo : Top topics for tutorials or exploration (guided exercises?)

AgustinVallejo commented 2 years ago

01-06-2022:

Tasks: @jbphet : Ranking the Design Pattern sections. @AgustinVallejo : Linking Design Pattern sections to the development process. @marlitas : Making a mermaid map for the possible development process. @chrisklus and @Luisav1 : Keep going on the first steps documentation. Addd phetmarks

marlitas commented 2 years ago
pixelzoom commented 2 years ago

You might also want to add something about query parameters:

marlitas commented 2 years ago

Meeting 6/8/22

Read over Background reading section:

PhET Dev Overview => How to link

Flowchart

First Steps:

Navigating Repos Section:

Query Params:

@marlitas suggested perhaps prettifying the document a bit? Others were not opposed.

@AgustinVallejo - Will research and start writing tutorials/exercises @jbphet - ^^ Will help with research and brainstorming @chrisklus @Luisav1 - Will add QueryParams sections and edit First Steps @marlitas - Flowchart changes & create docs glossary table

zepumph commented 2 years ago

Hey all! It looks like some really great work is happening here, thanks! I had an idea to include some info about slack. Basically making sure you subscribe to developer, dev-public, and continuous-testing, and to make sure that you are set up to be notified about all messages on continuous-testing. I hope that helps.

pixelzoom commented 2 years ago

Mentioned in today's status meeting. In https://github.com/phetsims/phet-info/commit/07b0a69165346a63a4e94073e92ab0482defad8b, @jbphet added a ranking of design patterns. It would be nice to put that info in the actual design patterns doc, so that it's available to readers of that doc, and so that it doesn't become stale by being in this doc.

AgustinVallejo commented 2 years ago

Meeting june 15, 2022

Tasks: @marlitas : Link to flowchart elements and experiment with forks for tutorials. @chrisklus and @Luisav1 : Include the rest of the mentioned changes (Slack, query params, etc.) @jbphet : Merging the glossary with the Reference Documents and also add phet-info documents. @AgustinVallejo : Create the tutorial files. Also Navigating Repos section.

marlitas commented 2 years ago

Forking experimentation:

Recommendations / Instructions:

EDIT: To transpile the repo needs to be added to active-repo-list... may need more work/discussion for this to be fully effective.

AgustinVallejo commented 2 years ago

Added the challenges doc! https://github.com/phetsims/phet-info/blob/master/doc/phet-dev-excercises.md

jbphet commented 2 years ago

Meeting June 22, 2022

Next Steps:

marlitas commented 2 years ago

@zepumph taught me some things about ways I can run unit and fuzz tests locally when making common code changes. He mentioned that @AgustinVallejo also did not know about aqua, or QUnit, and we both wondered if it might be a good idea to include a section on testing for new devs that may be interested/ have use for it when they start to work in common code. Up until now it's been a lot of committing and praying on my part, which seems less than helpful.

Commenting for discussion at next Meeting.

marlitas commented 2 years ago

Meeting 6/15/22

Formatting:

Layout:

Navigating Repos:

Testing:

TODO:

jessegreenberg commented 2 years ago
marlitas commented 2 years ago

@chrisklus and I were able to get my forked copy of example-sim working on my local machine.

Instructions for Forking:

A couple of concerns and questions came up from this:

We would like to discuss this with the onboarding team before making a recommendation.

chrisklus commented 2 years ago

From 7/6/22 meeting:

@jbphet is going to reach out to @matthew-blackman to make sure he's aware of the onboarding doc we've been working on. We would also appreciate any feedback from MB about this doc as he's working through it, and will invite him to a meeting to share.

@marlitas and @chrisklus talked about our findings from https://github.com/phetsims/phet-info/issues/192#issuecomment-1172663328 and we decided that using branches for working through tutorials in example-sim seems like the best way to go. We will present this idea to the dev team to make sure everyone is on board with that.

We updated the setup doc for WebStorm to include some new suggestions, like what was mentioned in https://github.com/phetsims/phet-info/issues/192#issuecomment-1171531194

Next steps:

@jbphet Merge glossary with Reference Documents and add phet-info documents @AgustinVallejo work on tutorials @marlitas apply layout changes

Adding this issue to dev meeting to discuss using branching for working through tutorials in example-sim.

marlitas commented 2 years ago

On Slack @pixelzoom said:

For those devs working on the onboarding doc, this might be something to point to (if you haven’t included it already):
https://github.com/phetsims/special-ops/blob/master/doc/phetTeamMember.md

For discussion at next meeting.

pixelzoom commented 2 years ago

Also regarding https://github.com/phetsims/special-ops/blob/master/doc/phetTeamMember.md ... That document contains private information, which is why it's in the special-ops repo. Be careful not to expose any of that information in public documents.

marlitas commented 2 years ago

7/13/22 Meeting:

@jbphet and @AgustinVallejo out on vacation.

@chrisklus, @Luisav1, and I added phetTeamMember.md link to the documents section.

Will connect once the rest of the subgroup is back. Everyone enjoy vacation!

AgustinVallejo commented 2 years ago

https://github.com/phetsims/chipper/issues/1281#issuecomment-1191882112 We need to discuss as to where to add the TS standards information in the Onboarding process.

pixelzoom commented 2 years ago

Re (4) in https://github.com/phetsims/chipper/issues/1281#issuecomment-1185933099 ... I want to clarify that's there's nothing in that item that's specific to TypeScript, and it's not a convention. It's best practices for API design for any typed/OO language. So while it technically doesn't belong in a TypeScript Conventions document, I'll leave that decision up to the onboarding subgroup.

kathy-phet commented 2 years ago

We talked about putting (4) in some other part of the Onboarding documentation, but in general, discussed that it would be good to have this information somewhere for devs coming to the team that are newer to Object Oriented code conventions - e.g. coming from a pure javascript background where OO is not the norm (as I understand it).

marlitas commented 2 years ago

With all the updating of pre-commit hooks and absolute-tsc I decided it was finally time to add the tsc alias to my .zshrc file. I looked in the onboarding doc for instructions and it says: Check lint and tsc separately by running grunt lint or tsc in a sim repo.

This does not work. I receive a command not found error. We need more instructions as this bullet makes it seem like tsc should be built in already.

marlitas commented 2 years ago

I also wanted to add a comment to revisit adding a section or bullet point about ways we are able to test code. Language about CT, Aqua, and QUnit would be helpful as guiding points for new developers. Many of these I didn't even know existed until someone happened to tell me, and it's very difficult to ask questions about things you don't know are there.

marlitas commented 2 years ago

8/3 Meeting

Updates:

Discussions:

Action Items:

marlitas commented 2 years ago

Meeting 8/10/22

Action Items:

marlitas commented 2 years ago

Quick update for the team: I have learned how to get emoji's to render in intelli-j! 🥳

It's much easier than I thought. Instead of using github's colon-emoji syntax you want to use your keyboard's emoji short cut ctr + cmd + space (mac), windows-logo + . (windows). This will open an emoji dialogue box for you to choose from. Intelli-j knows how to render this out of the box. I will update all usages of colon-emoji syntax to this.

I also discovered how we can get mermaid flowcharts to render in intelli-j as well. I will do a PSA on this for devs at Thursday's meeting in case there's ever a point we want to use mermaid charts more in our documentation.

jbphet commented 2 years ago

Notes from review discussion with @matthew-blackman:

Our next step will be to prioritize and assign people to follow up on these items. It was pointed out during the meeting that we want to do this without making the document too much larger, since one of the goals is to keep it fairly compact and therefore not overly intimidating to new devs.

jbphet commented 2 years ago

@AgustinVallejo and I were the only team members that were able to make it to the 9/7/2022 meeting. We reviewed the list in the previous comment, which was the feedback from @matthew-blackman's usage of the document while ramping up. Our recommendation is to take this list and put it in a section entitled something like "Tips, Tricks, and Best Practices" that would go between the current "Sample Roadmaps" and "Reference Documents" sections. It would start off with an introductory paragraph that essentially says, "These are some things that you'll want to learn about eventually, ask your mentor about each when the appropriate time comes" and then have a bullet list with each of these items including a very short explanation.

jbphet commented 2 years ago

During the 9/14/2022 meeting of the onboarding process task force, we came up with the following next steps:

chrisklus commented 2 years ago

From 9/15 subgroups discussion, we think we should mention that most devs use Chrome development (and test in other browsers too), so we should a simple section that just links to https://developer.chrome.com/docs/devtools/. This should be added to the introductory development section.

jbphet commented 2 years ago

I spoke with @ariel-phet over Slack, and he said he'd be up for taking an editorial pass through the primary onboarding document. I think it's ready for this, and I think the group has spent about as much time on this as we reasonably can. @ariel-phet - Feel free to make edits that you think will improve the readability and flow, and you can add any big suggestions in this GitHub issue. There are a number of other documents that are linked from the main one - don't feel any need to review those. We mainly want something that is a reasonably good starting point for new developers.

The doc can be found at https://github.com/phetsims/phet-info/blob/master/doc/new-dev-onboarding.md.

ariel-phet commented 1 year ago

@jbphet @chrisklus @AgustinVallejo @marlitas I have read over the document and made some corrections/edits, but overall the information looks really great.

Three suggestions I would have are:

samreid commented 1 year ago

@jbphet said he and @AgustinVallejo can wrap this up. Perhaps @marlitas would help. It no longer needs to be on the planning board, and can be treated like an emergent/choice issue.

jbphet commented 1 year ago

@AgustinVallejo and I just spent some time folding in @ariel-phet's feedback, and I think we've done as much as time permits. @marlitas - if you would like to have one last look through it, you're welcome to do so, otherwise I think we can close this (huge and epic) issue.

marlitas commented 1 year ago

I reviewed, and update some wording around the new management processes. It looks really good and seems like all the work here is done. Closing!