fix(package-manager): detect `bun` before `yarn` to allow `bun install --yarn` usage (#24360)# Why Some people value readable lock files, and unfortunately, `bun.lockb` isn't readable. Bun has
fix(package-manager): detect `bun` before `yarn` to allow `bun install --yarn` usage (#24360)# Why Some people value readable lock files, and unfortunately, `bun.lockb` isn't readable. Bun has a feature for this, where it exports both a `bun.lockb` and `yarn.lock` (based on `bun.lockb`). For that reason, we should resolve `bun` before `yarn`. If people use `bun install --yarn`, we always resolve to `yarn`. # How - Move `bun` detection before `yarn`. # Test Plan - `$ bun create expo ./test -t tabs` - `$ cd ./test` - `$ bun install --yarn` - `$ bun expo install` - _Should use `bun` to install_ # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
show more ...
feat: detect Bun package manager (#24168)# Why Adds Bun as a recognized package manager Sister PR: https://github.com/expo/expo-cli/pull/4752 # How Added `@expo/package-manager` # Te
feat: detect Bun package manager (#24168)# Why Adds Bun as a recognized package manager Sister PR: https://github.com/expo/expo-cli/pull/4752 # How Added `@expo/package-manager` # Test Plan Added `BunPackageManager-test.ts` and added Bun tests to `nodeManagers-test.ts`. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # Checklist --------- Co-authored-by: Evan Bacon <[email protected]> Co-authored-by: Expo Bot <[email protected]>
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with the actual changes. The rest of this PR are changes to get the linter passing (mostly autofix). How --- Update eslint-config-prettier and eslint-plugin-prettier. To address deprecation warnings, also update typescript-eslint/parser and typescript-eslint/eslint-plugin. Because of an update to typescript-eslint/parser, we need to suppress deprecation warnings (documented in a comment). Regenerated test snapshots. Due to the upgraded dependencies, typecasts and optional chaining are now auto-fixable by lint. This converts warnings into autofixes. Test Plan --- `yarn test` in the linter config. Run `expotools check --all --fix-lint --no-build --no-test --no-uniformity-check` to try this config on the whole repo. --------- Co-authored-by: Expo Bot <[email protected]>
refactor(package-manager)!: extend the API and provide access to spawn child (#18576)# Why Fixes ENG-7545 This proposal PR changes the API of the (node) package managers, with the goal of:
refactor(package-manager)!: extend the API and provide access to spawn child (#18576)# Why Fixes ENG-7545 This proposal PR changes the API of the (node) package managers, with the goal of: - Having the right API options to install/remove packages to `dependencies`/`devDependencies`/global deps - Having access to the actual `spawnAsync` child, to pipe logs into different systems (for example in EAS build) - Allowing us to fix a couple of annoying DX issues (see follow up PRs) > This is further outlined in the Package Manager API proposal. Before merging this one, we need to merge these other PRs to not-break `main`. Any feedback on the proposal is welcome, especially while in draft. - https://github.com/expo/expo/pull/19343 - https://github.com/expo/expo/pull/19344 # How See Package Manager API proposal. # Test Plan > These changes are backward incompatible and require a new version update. This change also allowed us to implement the following fixes (all stacked PRs): - https://github.com/expo/expo/pull/19343 - https://github.com/expo/expo/pull/19344 - https://github.com/expo/expo/pull/19342 - https://github.com/expo/expo/pull/19340 - https://github.com/expo/expo/pull/19341 - https://github.com/expo/expo/pull/19764 - https://github.com/expo/expo/pull/19835 - https://github.com/expo/expo/pull/21189 # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
chore: move package manager over from expo-cli (#18551)* chore: move package manager over from expo-cli * chore: remove tsbuildinfo * chore: update package.json repository references * cho
chore: move package manager over from expo-cli (#18551)* chore: move package manager over from expo-cli * chore: remove tsbuildinfo * chore: update package.json repository references * chore: update jest.config.js settings * chore: update tsconfig.json settings * chore: update README.md to match other packages * chore: add .eslintignore * chore: add babel.config.js for jest * fix: jest test and move fs mock * fix: new linting issues * fix: cwd typing issues due to URL being possible * chore: update yarn lockfile * fix: add sourcemaps when building