-
Notifications
You must be signed in to change notification settings - Fork 283
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
monorepo: overhaul lerna/yarn/repo tools #2984
Conversation
64b81b5
to
34d8135
Compare
I plan to handle moving the functional/streaming test scenarios to yarn as well. Eventually 😄 |
34d8135
to
f2def63
Compare
Still need to add/update docs that reference |
- Clean up lerna.json - Move to yarn workspaces - Move to yarn for CI - Add botbuilder-repo-utils with updateVersions script
f2def63
to
9dfc3a4
Compare
@joshgummersall Regarding:
Is that the test using |
@mdrichardson let's have that discussion over here: microsoft/botframework-sdk#5977 |
33f10dd
to
617606e
Compare
Fixes #1383 |
e76fcba
to
9de05af
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving latest changes! (9de05af)
Sounds good to me! @joshgummersall Also regarding the E2E streaming tests, to keep in mind with your yarn overhaul: BackgroundThe React app's base was created from from create-react-app command, which defaults to yarn, which is what was originally what we had in the az. pipeline, however--and this was just lack of deeper knowledge about yarn--we switched it to npm when we were working on the patch release that included Content Security Policy updates, because we knew how to coax the dependency tree into picking up the right DLJS, and in turn the correct bf-streaming version. React App Dependencies
I couldn't figure out how to tell yarn to not use the pinned version of webchat and to instead use the custom dljs created by the pipeline--it kept on picking up the pinned version, which didn't have the latest streaming bits That being said, I have full confidence that you thankfully know yarn a lot better than I do, and can switch everything over 🎊 🙌 |
@stevengum and @munozemilio I just pushed one last commit that supports more complicated versioning scenarios. It's worth taking a quick look at the repo utils work and the daily build YAML to make sure I'm not doing anything crazy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still approving 👍
I had some questions regarding status code and another for import style and fs/promises
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving latest commit (3ba7142) and responses to my last review.
preview
anddeprecated
package.json metadata for more consistent and simple build & releaseThe intent of this set of changes is to simplify as much as possible.
The
updateVersions.ts
script is the brains of the release versioning step. This script now encodes and formalizes a conventional use of two separate Azure DevOps variables and a pretty gnarlysed
script.Yarn is a lot more performant than
npm install
- CI time is cut almost in half by this change alone. Yarn also produces a single lock file (yarn.lock
) that ensures that all developers have a consistent set of installed packages. It also serves as a wonderful input to a cache key calculation.The CI steps are extracted into shared templates and used more consistently in the various CI jobs.
Note: I'd like to drop the
tools
sub-tree entirely but it's currently used for a singlebotframework-connector
test.