Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise/rewrite the build process. "Chipper 2.0" #596

Closed
samreid opened this issue Jul 29, 2017 · 18 comments
Closed

Revise/rewrite the build process. "Chipper 2.0" #596

samreid opened this issue Jul 29, 2017 · 18 comments

Comments

@samreid
Copy link
Member

samreid commented Jul 29, 2017

This is an aggregate issue to identify issues related to wanting to revise/rewrite/extend the build process. We should also create a GitHub label for those issues. Here are additional issues from other repos (not labeled)

https://github.com/phetsims/chipper/issues?q=is%3Aissue+is%3Aopen+label%3Achipper%3A2.0

phetsims/joist#411
https://github.com/phetsims/phet-io/issues/873
https://github.com/phetsims/phet-io/issues/1105
https://github.com/phetsims/phet-io/issues/1149
phetsims/perennial#12

EDIT: @zepumph added the chipper:2.0 label to all other repos.

EDIT: @zepumph: here are all the chipper 2.0 issues.
https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Achipper%3A2.0+user%3Aphetsims+

@samreid
Copy link
Member Author

samreid commented Jul 29, 2017

We should also create a GitHub label for those issues.

I saw some issues labeled dev:enhancement, not sure if we should co-opt that or create a new one. I guess I'm leaning for a new label.

@samreid
Copy link
Member Author

samreid commented Jul 29, 2017

I started backlinking issues to this one and realized it will be much better if we just start with a label.

@samreid
Copy link
Member Author

samreid commented Jul 29, 2017

In #586 @ariel-phet said:

We should ideally tag open issues that relate to improvements, marking for dev meeting, so we can build up that list.

@samreid
Copy link
Member Author

samreid commented Jul 29, 2017

I marked a few issues for the chipper process (not exhaustive--I may have missed things), generally they fell under categories of:

  1. brands, version-id, phet-io
  2. getting rid of node_modules
  3. streamlining and automating the processes
  4. misc

Not sure if this would also be a good time to investigate type checking with flow or typescript.

@samreid samreid changed the title Revise/rewrite the build process Revise/rewrite the build process. "Chipper 2.0" Aug 2, 2017
@zepumph
Copy link
Member

zepumph commented Aug 4, 2017

Maybe it would be better to have a Milestone for chipper:2.0 instead of a label. Or both?

@samreid
Copy link
Member Author

samreid commented Aug 4, 2017

what are the pros of a milestone?

@zepumph
Copy link
Member

zepumph commented Aug 4, 2017

A bit easier to track overall progress of all issues, also the ability to track deadlines (not probably important).

I thought of it because the "chipper:2.0" label is in phet-io, joist, and chipper. Based on my understanding of phet's philosophy on labels. They should either be special to a single repo, or in the github label system we have in place in phet-info to make sure that all repos are consistent. To me it felt a bit better to just add the milestone to the few repos that we need. It just only an idea, I don't feel strongly though.

@jonathanolson
Copy link
Contributor

It would also be great to have more flexibility with the dot/kite/scenery builds (e.g. including himlaya in Scenery, so RichText can live in Scenery).

Also, building sun as a standalone would help in tools that use a built version of Scenery.

@jonathanolson
Copy link
Contributor

If we have source-maps working, we can consider transpiling to get ES6+ features in built sims?

@zepumph
Copy link
Member

zepumph commented Oct 12, 2017

Large chipper:2.0 discussion today during dev meeting:

First there was talk about building phet and phet-io brand together
@samreid says it's a spectrum
easiest: build is a script that says grunt; grunt --brand=phet-io and they are copied to two different places
hardest: re-work the requirejs build to only have to build once, and someone be able to take out the phet-io code if desired.

@ariel-phet thinks it important to try to eliminate as many checklist items from the deployment. Ideally have one command phet-build-and-deploy.

Running a built phetio version with assertions enabled is important, like a devEA or debugBuild version. Will this built version be minified? It would be easier to debug if it wasn't.

@jonathanolson says we don't need a gui right now, but we should emphasize simple command line interface, like scripts that can run all the little steps for us.

Requirements for PhET-iO

  • What stuff do we have in a phet-io build that we don't have in the phet build. Can any of that legally be in the phet build?

What about accessibility integrations? Are there build process requirements.
* @jessegreenberg says that screen reader support won't need any chipper:2.0 stuff.
* Does a sonification layer need to be stripped out if still in prototype phase?

@samreid
Copy link
Member Author

samreid commented Oct 12, 2017

We went through the list https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Achipper%3A2.0+user%3Aphetsims+ and got through about 10 items, stopping around #581 (in that ordering)

@zepumph
Copy link
Member

zepumph commented Oct 12, 2017

We skipped https://github.com/phetsims/phet-io/issues/1149 though, I don't know how.

@zepumph
Copy link
Member

zepumph commented Oct 12, 2017

If we have source-maps working, we can consider transpiling to get ES6+ features in built sims?

Today we decided against including source maps in the chipper:2.0 project, instead deferring it, see #602.

@jonathanolson
Copy link
Contributor

I'm at a state where I'm ready to merge in chipper 2.0's branch to master (presumably tomorrow).

I'd like to do this when others are around who can modify supporting code (since the naming/directory changes make it incompatible with other things, including phet-io wrappers/phetmarks/etc.)

I'd also like to consider having someone else to go over a quick review of the changes (what moved to perennial, how the deployment process will work, etc.). @ariel-phet, who would be good to coordinate a review with?

@jonathanolson
Copy link
Contributor

I've applied the necessary changes to bring the chipper 2.0 branch up-to-date with the other changes that were applied on master.

@ariel-phet
Copy link
Contributor

@jbphet will be doing this initial quick review since he is the most familiar other than @jonathanolson with new ES6 features.

@ariel-phet ariel-phet assigned jbphet and unassigned ariel-phet Dec 5, 2017
@jonathanolson
Copy link
Contributor

jonathanolson commented Dec 5, 2017

I ran through a quick overview with @jbphet, and it seemed that the fundamental changes look reasonable.

Notes before merging chipper 2.0 to master:

  • Perennial tasks should be runnable from sim directories (now implemented)
  • I should finish more of the cleanup, internal documentation, and external documentation (detailing how to run dev/rc/production deployments, common build commands, etc.)
  • build-server changes should be completed so that it is compatible with chipper 2.0 (so when the switch is made, rc/production deployment should work)
  • Presumably at a dev meeting, I'll go over the procedures and changes.
  • PhET-iO wrapper compatibility (currently on master)

@jbphet jbphet removed their assignment Dec 6, 2017
@mattpen mattpen removed their assignment Dec 11, 2017
@jonathanolson jonathanolson removed their assignment Jan 25, 2018
@samreid
Copy link
Member Author

samreid commented Dec 3, 2019

Chipper 2.0 has been working nicely in master for a while now, great work team and especially @jonathanolson, closing.

@samreid samreid closed this as completed Dec 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants