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

feat(cli): --filter flag #8185

Merged
merged 84 commits into from Apr 12, 2024
Merged

feat(cli): --filter flag #8185

merged 84 commits into from Apr 12, 2024

Conversation

gvilums
Copy link
Contributor

@gvilums gvilums commented Jan 15, 2024

What does this PR do?

Adds support for the --filter <PATTERN> argument for bun run. See the pnpm docs for details.

Note that currently only --filter <name_pattern> and --filter ./<dir_pattern> are supported. Selecting dependencies or dependents of packages is not yet possible.

Resolves #2232
Resolves #5207

How did you verify your code works?

Tests in test/cli/run/filter-workspace.test.ts.

@gvilums gvilums changed the title Georgijs/bun run workspace feat(cli): --workspace flag Jan 15, 2024
Copy link

github-actions bot commented Jan 15, 2024

Copy link

github-actions bot commented Jan 15, 2024

Copy link

github-actions bot commented Jan 15, 2024

Copy link

github-actions bot commented Jan 15, 2024

@gvilums gvilums marked this pull request as draft January 15, 2024 19:34
@gvilums gvilums marked this pull request as ready for review January 17, 2024 20:11
@gvilums gvilums changed the title feat(cli): --workspace flag feat(cli): --filter flag Jan 17, 2024
src/cli.zig Outdated Show resolved Hide resolved
Copy link
Collaborator

@dylan-conway dylan-conway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good so far. One thing that stands out as a difference from pnpm: pnpm run --filter="*" debug will run all debug scripts including one from the root package

@Jarred-Sumner Jarred-Sumner merged commit 545cb54 into main Apr 12, 2024
27 of 32 checks passed
@Jarred-Sumner Jarred-Sumner deleted the georgijs/bun-run--workspace branch April 12, 2024 02:06
cirospaciari pushed a commit that referenced this pull request Apr 14, 2024
* Skeleton code for `bun run --workspace`

* Update run_command.zig

* implement directory traversal to find workspace root

* finish --workspace implementation

* clean up changes in run_command.zig

* add workspace tests, update harness to handle nested dirs

* [autofix.ci] apply automated fixes

* basic filtering

* [autofix.ci] apply automated fixes

* working filter without patterns

* update tests, filter mostly working

* simplify package name parsing, commit tests

* support filter even without workspace setup

* move filter arg handling to separate source file

* use bun.sys.chdir, match root package for scripts

* fix exit code handling

* ignore node_modules and directories starting with . in --filter

* progress converting --filter to use iterators

* convert filtering to use iterators

* cleanup

* implement DirEntry access method for glob (currently crashing)

* cleanup and fixes

* run js files in subprocess when filter flag passed

* clean up dead code

* fix fd leak in run_command.zig

* [autofix.ci] apply automated fixes

* fix issues after merge

* use posix-spawn in runBinary, fix resource PATH variable resource leak

* move filter argument to runtime category

* fix test harness

* add js and binary tests to filter-workspace

* [autofix.ci] apply automated fixes

* fix compile after merge

* [autofix.ci] apply automated fixes

* clean up filter-workspace test

* [autofix.ci] apply automated fixes

* fixes to running binaries

* fix actually setting cwd_override

* windows fixes

* address some review comments

* handle malformed JSON

* add various tests

* [autofix.ci] apply automated fixes

* update docs for filter

* [autofix.ci] apply automated fixes

* reset tinycc commit

* filtered run prototype

* make pretty

* implement abort handler (not working)

* make prettier

* prep for windows

* windows path and printing fixes

* implement log-style output (not tui)

* fix issues when logging to file

* revert a bunch of unecessary changes

* cleanup

* implement dependency order execution

* detect  circular dependencies, fix cancel hang

* Fix `$PATH`

* ignore dep order on loop, stream on linux, sort pkgs

* support pre and post scripts

* add more filter tests, print elapsed time

* enable 'bun --filter' without run

* fix harness after merge

* [autofix.ci] apply automated fixes

* print number of scripts we're waiting for

* update docs, fix windows build

* fix tests on windows

* [autofix.ci] apply automated fixes

* fix uninitialized memory

* use terminal synchronized update sequences

* Add skip list

* Preallocate

* Use current bun in tests

---------

Co-authored-by: Jarred Sumner <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support bun run --workspaces Support bun run --workspace
5 participants