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
Yarn 4 #6215
base: main
Are you sure you want to change the base?
Yarn 4 #6215
Conversation
Build successful! 🎉 |
# Conflicts: # yarn.lock
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
Build successful! 🎉 |
1 similar comment
Build successful! 🎉 |
Build successful! 🎉 |
1 similar comment
Build successful! 🎉 |
yarn config set npmPublishRegistry $registry | ||
yarn config set npmRegistryServer $registry | ||
yarn config set npmAlwaysAuth true | ||
yarn config set npmAuthIdent abc |
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.
we're setup for anonymous publishing to verdaccio now, so no need to log in, however, we still need these fields for some reason, even though they won't do anything
@@ -53,11 +53,6 @@ jobs: | |||
executor: rsp-large | |||
steps: | |||
- checkout | |||
- restore_cache: |
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.
cache is checked into github right now, but we could change the caching strategy. This is the recommended one though
https://yarnpkg.com/features/caching
New recommendations will come eventually
@@ -183,6 +209,11 @@ jobs: | |||
- restore_cache: | |||
key: react-spectrum16-{{ .Environment.CACHE_VERSION }}-{{ .Environment.CIRCLE_SHA1 }} | |||
|
|||
- run: | |||
name: Yarn version |
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.
was useful for debugging, feel like it should stay in
@@ -123,7 +127,7 @@ check-examples: | |||
|
|||
starter: | |||
node scripts/extractStarter.mjs | |||
cd starters/docs && yarn && yarn tsc | |||
cd starters/docs && yarn --no-immutable && yarn tsc |
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.
by default on CI, yarn install is always immutable. This is important for many of our steps, however, when it comes to our sub projects with no lock files, we don't want that
note, all of them now have to have a blank yarn.lock, otherwise yarn4 will try to associate them with workspaces in our monorepo, which we don't want. this is their official stance on it and if you remove a blank one, you'll get an error message explaining you need to include a blank one
@@ -0,0 +1,3 @@ | |||
nodeLinker: node-modules | |||
|
|||
yarnPath: .yarn/releases/yarn-4.1.1.cjs |
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.
i couldn't find a way to omit this so I didn't have to copy yarn-4.1.1.cjs into every sub project
let cleanPkg = { | ||
name: 'rsp-website', | ||
name: 'react-spectrum-monorepo', |
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.
yarn lock is apparently aware of the monorepo name and will error if it doesn't match, it doesn't really matter what we call this, so I'm just making it match
// continue | ||
} | ||
let packages = glob.sync('*/**/package.json', {cwd: packagesDir, ignore: ['**/node_modules/**']}); | ||
async function addDeps() { |
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.
this is equivalent but much faster and pulled from my tsdiffer fixes PR
@@ -1,34 +0,0 @@ | |||
const fs = require('fs'); |
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.
taken care of in constraints now, might be better for plugins, undecided
// yarn enforcePublishing constraint | ||
// softAssert(json.publishConfig && json.publishConfig.access === 'public', `${pkg} has missing or incorrect publishConfig`); | ||
// softAssert.equal(json.license, 'Apache-2.0', `${pkg} has an incorrect license`); | ||
// softAssert.deepEqual(json.repository, {type: 'git', url: 'https://github.com/adobe/react-spectrum'}, `${pkg} has incorrect or missing repository url`); |
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.
remaining checks in this file are probably good candidates for plugins
@@ -11,14 +11,21 @@ function verdaccioPkgSize() { | |||
let verdaccioStorePath = exec('echo ~/.config/verdaccio/storage/').toString().trim(); | |||
|
|||
if (!fs.existsSync(verdaccioStorePath)) { | |||
verdaccioStorePath = path.join(__dirname, '..', 'verdaccio', 'storage/'); |
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.
unsure why i needed this change, @LFDanLu do you have any insight?
Build successful! 🎉 |
Rob-bot: Verdaccio builds: |
Build successful! 🎉 |
Build successful! 🎉 |
1 similar comment
Build successful! 🎉 |
# Conflicts: # package.json # packages/@react-spectrum/button/package.json # packages/@react-spectrum/calendar/package.json # packages/@react-spectrum/datepicker/package.json # packages/@react-spectrum/dialog/package.json # packages/@react-spectrum/dropzone/package.json # packages/@react-spectrum/numberfield/package.json # packages/@react-spectrum/searchfield/package.json # packages/@react-spectrum/text/package.json # packages/@react-spectrum/toast/package.json # packages/dev/parcel-resolver-build/package.json # packages/dev/parcel-resolver-docs/package.json # packages/dev/parcel-transformer-docs/package.json # packages/dev/parcel-transformer-intl/package.json # packages/dev/test-utils/package.json # scripts/checkPublishedDependencies.js # scripts/lint-packages.js # yarn.lock
Build successful! 🎉 |
# Conflicts: # packages/@adobe/react-spectrum/package.json # packages/@react-aria/accordion/package.json # packages/@react-aria/actiongroup/package.json # packages/@react-aria/autocomplete/package.json # packages/@react-aria/breadcrumbs/package.json # packages/@react-aria/button/package.json # packages/@react-aria/calendar/package.json # packages/@react-aria/checkbox/package.json # packages/@react-aria/color/package.json # packages/@react-aria/combobox/package.json # packages/@react-aria/datepicker/package.json # packages/@react-aria/dialog/package.json # packages/@react-aria/dnd/package.json # packages/@react-aria/focus/package.json # packages/@react-aria/form/package.json # packages/@react-aria/grid/package.json # packages/@react-aria/gridlist/package.json # packages/@react-aria/i18n/package.json # packages/@react-aria/interactions/package.json # packages/@react-aria/label/package.json # packages/@react-aria/landmark/package.json # packages/@react-aria/link/package.json # packages/@react-aria/listbox/package.json # packages/@react-aria/menu/package.json # packages/@react-aria/meter/package.json # packages/@react-aria/numberfield/package.json # packages/@react-aria/overlays/package.json # packages/@react-aria/progress/package.json # packages/@react-aria/radio/package.json # packages/@react-aria/searchfield/package.json # packages/@react-aria/select/package.json # packages/@react-aria/selection/package.json # packages/@react-aria/separator/package.json # packages/@react-aria/slider/package.json # packages/@react-aria/spinbutton/package.json # packages/@react-aria/steplist/package.json # packages/@react-aria/switch/package.json # packages/@react-aria/table/package.json # packages/@react-aria/tabs/package.json # packages/@react-aria/tag/package.json # packages/@react-aria/textfield/package.json # packages/@react-aria/toast/package.json # packages/@react-aria/toggle/package.json # packages/@react-aria/toolbar/package.json # packages/@react-aria/tooltip/package.json # packages/@react-aria/tree/package.json # packages/@react-aria/utils/package.json # packages/@react-aria/virtualizer/package.json # packages/@react-aria/visually-hidden/package.json # packages/@react-spectrum/accordion/package.json # packages/@react-spectrum/actionbar/package.json # packages/@react-spectrum/actiongroup/package.json # packages/@react-spectrum/autocomplete/package.json # packages/@react-spectrum/avatar/package.json # packages/@react-spectrum/badge/package.json # packages/@react-spectrum/breadcrumbs/package.json # packages/@react-spectrum/button/package.json # packages/@react-spectrum/buttongroup/package.json # packages/@react-spectrum/calendar/package.json # packages/@react-spectrum/card/package.json # packages/@react-spectrum/checkbox/package.json # packages/@react-spectrum/color/package.json # packages/@react-spectrum/combobox/package.json # packages/@react-spectrum/contextualhelp/package.json # packages/@react-spectrum/datepicker/package.json # packages/@react-spectrum/dialog/package.json # packages/@react-spectrum/divider/package.json # packages/@react-spectrum/dnd/package.json # packages/@react-spectrum/dropzone/package.json # packages/@react-spectrum/form/package.json # packages/@react-spectrum/icon/package.json # packages/@react-spectrum/illustratedmessage/package.json # packages/@react-spectrum/image/package.json # packages/@react-spectrum/inlinealert/package.json # packages/@react-spectrum/label/package.json # packages/@react-spectrum/labeledvalue/package.json # packages/@react-spectrum/layout/package.json # packages/@react-spectrum/link/package.json # packages/@react-spectrum/list/package.json # packages/@react-spectrum/listbox/package.json # packages/@react-spectrum/menu/package.json # packages/@react-spectrum/meter/package.json # packages/@react-spectrum/numberfield/package.json # packages/@react-spectrum/overlays/package.json # packages/@react-spectrum/picker/package.json # packages/@react-spectrum/progress/package.json # packages/@react-spectrum/provider/package.json # packages/@react-spectrum/radio/package.json # packages/@react-spectrum/searchfield/package.json # packages/@react-spectrum/slider/package.json # packages/@react-spectrum/statuslight/package.json # packages/@react-spectrum/steplist/package.json # packages/@react-spectrum/switch/package.json # packages/@react-spectrum/table/package.json # packages/@react-spectrum/tabs/package.json # packages/@react-spectrum/tag/package.json # packages/@react-spectrum/text/package.json # packages/@react-spectrum/textfield/package.json # packages/@react-spectrum/theme-dark/package.json # packages/@react-spectrum/theme-default/package.json # packages/@react-spectrum/theme-express/package.json # packages/@react-spectrum/theme-light/package.json # packages/@react-spectrum/toast/package.json # packages/@react-spectrum/tooltip/package.json # packages/@react-spectrum/tree/package.json # packages/@react-spectrum/utils/package.json # packages/@react-spectrum/view/package.json # packages/@react-spectrum/well/package.json # packages/@react-stately/calendar/package.json # packages/@react-stately/checkbox/package.json # packages/@react-stately/collections/package.json # packages/@react-stately/color/package.json # packages/@react-stately/combobox/package.json # packages/@react-stately/data/package.json # packages/@react-stately/datepicker/package.json # packages/@react-stately/dnd/package.json # packages/@react-stately/form/package.json # packages/@react-stately/grid/package.json # packages/@react-stately/layout/package.json # packages/@react-stately/list/package.json # packages/@react-stately/menu/package.json # packages/@react-stately/numberfield/package.json # packages/@react-stately/overlays/package.json # packages/@react-stately/radio/package.json # packages/@react-stately/searchfield/package.json # packages/@react-stately/select/package.json # packages/@react-stately/selection/package.json # packages/@react-stately/slider/package.json # packages/@react-stately/steplist/package.json # packages/@react-stately/table/package.json # packages/@react-stately/tabs/package.json # packages/@react-stately/toggle/package.json # packages/@react-stately/tooltip/package.json # packages/@react-stately/tree/package.json # packages/@react-stately/virtualizer/package.json # packages/@react-types/accordion/package.json # packages/@react-types/actionbar/package.json # packages/@react-types/actiongroup/package.json # packages/@react-types/autocomplete/package.json # packages/@react-types/avatar/package.json # packages/@react-types/badge/package.json # packages/@react-types/breadcrumbs/package.json # packages/@react-types/button/package.json # packages/@react-types/buttongroup/package.json # packages/@react-types/calendar/package.json # packages/@react-types/card/package.json # packages/@react-types/checkbox/package.json # packages/@react-types/color/package.json # packages/@react-types/combobox/package.json # packages/@react-types/contextualhelp/package.json # packages/@react-types/datepicker/package.json # packages/@react-types/dialog/package.json # packages/@react-types/divider/package.json # packages/@react-types/form/package.json # packages/@react-types/grid/package.json # packages/@react-types/illustratedmessage/package.json # packages/@react-types/image/package.json # packages/@react-types/label/package.json # packages/@react-types/layout/package.json # packages/@react-types/link/package.json # packages/@react-types/list/package.json # packages/@react-types/listbox/package.json # packages/@react-types/menu/package.json # packages/@react-types/meter/package.json # packages/@react-types/numberfield/package.json # packages/@react-types/overlays/package.json # packages/@react-types/progress/package.json # packages/@react-types/provider/package.json # packages/@react-types/radio/package.json # packages/@react-types/searchfield/package.json # packages/@react-types/select/package.json # packages/@react-types/slider/package.json # packages/@react-types/statuslight/package.json # packages/@react-types/switch/package.json # packages/@react-types/table/package.json # packages/@react-types/tabs/package.json # packages/@react-types/text/package.json # packages/@react-types/textfield/package.json # packages/@react-types/tooltip/package.json # packages/@react-types/view/package.json # packages/@react-types/well/package.json # packages/@spectrum-icons/color/package.json # packages/@spectrum-icons/express/package.json # packages/@spectrum-icons/illustrations/package.json # packages/@spectrum-icons/ui/package.json # packages/@spectrum-icons/workflow/package.json # packages/dev/docs/package.json # packages/dev/test-utils/package.json # packages/react-aria-components/package.json # packages/react-aria/package.json # packages/react-stately/package.json # scripts/checkPublishedDependencies.js # yarn.lock
# Conflicts: # .gitignore # package.json # yarn.lock
## API Changes
unknown top level export { type: 'any' } |
Closes
Comments inline below
I've left a couple peer dependency resolutions for later because they'll be solved by some other PRs we have.
I still want to replace the rest of lerna and patch-package, but that can be done in followup
✅ Pull Request Checklist:
📝 Test Instructions:
🧢 Your Project: