### What does this PR do?
fixes#7157, fixes#14662
migrates pnpm-workspace.yaml data to package.json & converts
pnpm-lock.yml to bun.lock
---
### How did you verify your code works?
manually, tests and real world examples
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
### What does this PR do?
This change was missing after changing semver core numbers to use u64.
Also fixes potentially serializing uninitialized bytes from resolution
unions.
### How did you verify your code works?
Added a test for migrating a bun.lockb with most features used.
### What does this PR do?
Sometimes packages will use very large numbers exceeding max u32 for
major/minor/patch (usually patch). This pr changes each core number in
bun to u64.
Because we serialize package information to disk for the binary lockfile
and package manifests, this pr bumps the version of each. We don't need
to change anything other than the version for serialized package
manifests because they will invalidate and save the new version. For old
binary lockfiles, this pr adds logic for migrating to the new version.
Even if there are no changes, migrating will always save the new
lockfile. Unfortunately means there will be a one time invisible diff
for binary lockfile users, but this is better than installs failing to
work.
fixes#22881fixes#21793fixes#16041fixes#22891
resolves BUN-7MX, BUN-R4Q, BUN-WRB
### How did you verify your code works?
Manually, and added a test for migrating from an older binary lockfile.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* packages wait for parent trees before install
* use `directoryExistsAt`
* missing increment
* fix faccessat
* swap destination and target
* update
* force
* only create destination dir before installing package
* fix windows symlink/junction
* increment, false on extracting
* done
* more tests
* update migration.zig
* fix up paths
* update tests
* update tests
* test
* test
* update registry tests
* comments
* early exit if stream is invalid
* dont pass invalid_fd to openFileAtWindows
* fix merge
* misc crash fix
* make this use optional pointers instead of 0xaa
* ensure absolute paths are propagated properly
* package.json expects forward slash
* this assert was invalid
* add panic checks
* pass bun-remove
* more panic checks
* test: pass bun-add
* querying these hangs outside bun too
* fix compile error from merge conflict resolution
* use compileError instead of comptime unreachable
* tidy
* bunx: check for the .exe bin extension
* bunx: another route to make cache path if it doesnt exist
* install: another case of FolderResolution.getOrPut expecting absolute path
* fix a bun install crash
* dont print zig stack trace if bun install fails
* test: pass bun-link
* test: bunx: add more expects
* test: bun-install-registry: pass
* test: bun-install: pass
* test: bun-pm: pass
* fix merge main error
* fix posix tests
* fix last failing test in bun-install.test.ts
symlink difference between platforms
* bun-install-registry.test.ts fix
* bun-run.test.ts: remove stray console log
---------
Co-authored-by: Meghan Denny <meghan@bun.sh>
Co-authored-by: Meghan Denny <hello@nektro.net>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* fix recursion
* accurate count of blocked package scripts
* update
* fix merge
* reset pipereaders, set bin linker error correctly
* more pretty
* small changes
* e
* update tests
* this one too
* bun.start_time, iterate package_ids, remove put
* empty trustedDependencies
* tests
* handle edgecases with default trusted dependencies
* could be zero length
* --trusted and skipped scripts
* resolver too
* second run --trusted
* --trust, better formatting
* more tests
* --trusted applies to dep deps, more tests
* progress
* fix build
* fix crash, make it look good, comments
* alphabetize, verbose log
* feature flag
* update lockfile
* update skipped text
* check update requests first
* be more careful with inline strings
* only with scripts
* fix tests, todo tests
* fix another test
* fix merge
* fix fix merge
* check binding.gyp for tarball and git resolutions
* remove dead code
* debug assert
* move newline printing
* use enum for `__has_install_script`
* oops
* clone packages
* Update src/install/install.zig
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* [install] allow parallel execution of `postinstall` scripts
- fixes spurious exit code 42 from `spawn()`
* postinstall to a pipe
* feat(install): include top 500 packages as defaults for postinstall
* windows newline handling*
*i did not test it
* stuff
* cool
* a
* fix merge
* set `has_trusted_dependencies`
* fix a bunch of tests
* fix merge
* remove `PackageManager`
* remove commented code
* change to function
* Update lockfile.zig
* run scripts if added to `trustedDependencies` after install
* packages without `resolved` properties
* node-gyp scripts
* node-gyp script in the root
* another test
* git deps run prepare scripts
* fix merge
* run lifecycle scripts during installation
* Update lockfile.zig
* always increment
* 🏗️
* update tests
* tickWIthoutIdle
* const uws
* loop forwards through trees
* single buffer bitset list
* tag.isGit
* windows path separators
* `bun.sys.read` and enable/disable buffering
* fix test and waiter thread
* waiter thread and tests
* Update bun-install-registry.test.ts
* workspace exclude `preprepare` and `postprepare`
* Create esbuild.test.ts
* make sure length is the same
* remove deferred binlinks, add estrella test
* test with another version
* address some comments
* remove .verdaccio-db.json
* ooops
* fix build
* use `pid` to wait
* dont register pid_poll when using waiter thread
* stress test
* free
* fix failing tests
* fix linux crash, snapshot stress test
* oops
* concurrent scripts
* activate as soon as possible
* test
* delete stress test packages
* remove unused packages
* comment stress test and maybe fix segfault
* delete snapshot
* fix assertion
* use cpu_count * 2 for default concurrent scripts
* gear emoji
* add --concurrent-scripts to docs
* more docs
---------
Co-authored-by: alexlamsl <alexlamsl@gmail.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Dylan Conway <33744874+MilesWright7@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* work so far
* stuff
* a
* basics work
* stuff
* yoo
* build lockfile
* correct
* f
* a
* install fixture havent tested
* i made it worse
* lol
* be more reasonable
* make the test easier to pass because bun install doesn't handle obscure lockfile edge cases :/
* a
* works now
* ok
* a
* a
* cool
* nah
* fix stuff
* l
* a
* idfk
* LAME
* prettier errors
* does this fix tests?
* Add more safety checks to Integrity
* Add another check
* More careful lifetime handling
* Fix linux debugger issue
* a
* tmp dir and snapshot test
---------
Co-authored-by: Jarred SUmner <jarred@jarredsumner.com>
* Update our MultiArrayList
* More consistent CI
* Fix serialization issue
* Update bun.lockb
* Update bun.lockb
* fixup
* Fix `Bin{}`
* `bun update` should not cache the manifest
* Make bun install tests more consistent
* This differs by platform evidently
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Most CLI tools have the style convention of referring to themselves in
lowercase. It is, after all, the name that users type in when using
the tool. This PR maintains that convention in bun.
"Drop the uppercase B, it's cleaner"