clerk / clerk/javascript

@clerk/upgrade stalls on binary build artifacts

Open
#8,323 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs-triage
Dominant language
TypeScript
Stars
1.8k
Forks
472
Avg merge
2d 11h
Merged PRs (30d)
189

Description

Preliminary Checks
Reproduction

https://gist.github.com/rofinn/34747e70ad8ecadd03f76d0d4200dfd9

Publishable key

N/A

Description

Running clerk/upgrade --dry-run in a monorepo containing cargo build artifacts causes the scan step to stall trying to analyze binary build files. The linked github gist includes the steps to reproduce with shell output.

Steps to reproduce:

  1. Clone https://github.com/Nipsuli/tauri-plugin-clerk.git (or any repo that may produced binary build artifacts)
  2. Generated the build artifacts. In the example, this was running cargo build in examples/react-example/src-tauri.
  3. Run time bun x @clerk/upgrade --dry-run from the examples/react-example directory (to mimic a monorepo).
  4. Kill the scan after it stalls
  5. Delete the examples/react-example/src-tauri/target/debug directory and rerun
  6. You'll notice it completes fine.

Expected behavior:

I would have expected the scanning step to focus on text files that contain potential code issues. I understand that just relying on extensions isn't the most reliable if you want to catch issues in scripts or markdown files, but I think it should be able to identify and catch binary build artifacts.

Actual behavior:

I think the desired behaviour has 4 components.

  1. The scan file spinner should probably give the full relative path to make it easier to spot when this is happening. Some build artifacts can have pretty opaque names.
  2. I think we should be able to detect binary files as part of the scan.
  3. (Optional) Broaden the default ignore globs include include common build output directories
  4. (Optional) It'd be nice if the scanner picked up existing .gitignore rules
Environment
N/A. Can be reproduced in any repo with binary build artifacts.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the stall with bun x @clerk/upgrade --dry-run in the linked tauri-plugin-clerk repository, comparing runs with and without examples/react-example/src-tauri/target/debug. Use the linked gist and scan output to locate the scan entry point. Done should include handling binary build artifacts without stalling; the spinner path, default ignore globs, and .gitignore support are listed as additional or optional behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
bun, typescript
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.