You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The `--only-bootsnap-rbs-cache` flag and read-only cache path supported sharing a primed cache between CI jobs. That workflow is no longer used.
Keep the cache local and writable. Normal `tapioca dsl` runs populate it, and lockfile changes reset the cached iseq payload.
[--verify], [--no-verify], [--skip-verify] # Verifies RBIs are up-to-date
502
-
# Default: false
503
-
[--only-bootsnap-rbs-cache], [--no-only-bootsnap-rbs-cache], [--skip-only-bootsnap-rbs-cache] # Only boot the application and load DSL extensions/compilers to populate the bootsnap iseq cache, then exit. Skips compiler execution and RBI generation. Mutually exclusive with --verify and --list-compilers.
-w, [--workers=N] # Number of parallel workers to use when generating RBIs (default: auto)
505
+
[--rbi-max-line-length=N] # Set the max line length of generated RBIs. Signatures longer than the max line length will be wrapped
506
+
# Default: 120
507
+
[--max-diff-lines=N] # Max number of diff lines to include in the `dsl --verify` output
508
+
# Default: 250
509
+
-e, [--environment=ENVIRONMENT] # The Rack/Rails environment to use when generating RBIs
510
+
# Default: development
511
+
-l, [--list-compilers], [--no-list-compilers], [--skip-list-compilers] # List all loaded compilers
512
+
# Default: false
513
+
[--app-root=APP_ROOT] # The path to the Rails application
514
+
# Default: .
515
+
[--halt-upon-load-error], [--no-halt-upon-load-error], [--skip-halt-upon-load-error] # Halt upon a load error while loading the Rails application
516
+
# Default: true
517
+
[--skip-constant=constant [constant ...]] # Do not generate RBI definitions for the given application constant(s)
518
+
[--compiler-options=key:value] # Options to pass to the DSL compilers
519
+
-c, [--config=<config file path>] # Path to the Tapioca configuration file
520
+
# Default: sorbet/tapioca/config.yml
521
+
-V, [--verbose], [--no-verbose], [--skip-verbose] # Verbose output for debugging purposes
522
+
# Default: false
526
523
527
524
Generate RBIs for dynamic methods
528
525
```
@@ -865,29 +862,13 @@ lockfile changes, Tapioca sees the digest mismatch and resets Bootsnap's cache p
865
862
This lets gem bumps that affect rewriting, such as `tapioca`, start from a fresh cache without accumulating old cache
866
863
directories.
867
864
868
-
The first run is slower because every file is rewritten and the result is baked into the iseq cache; subsequent runs
869
-
against the same lockfile skip the rewrite entirely.
870
-
871
865
`Bootsnap.setup` mutates a process-wide singleton, and a second call would overwrite Tapioca's dedicated cache directory and start writing rewritten iseqs into the host's normal cache. Tapioca enforces this under `TAPIOCA_RBS_CACHE=1`: after its own setup runs, any subsequent `Bootsnap.setup` raises a clear error pointing at the fix. Gate your host's `Bootsnap.setup` on the same env var. Rails apps do this in `config/boot.rb`:
For CI pipelines that want to populate the cache once and have downstream jobs read from a warm copy, use `--only-bootsnap-rbs-cache`. This pattern lets you scope cache writes to a single job (the prime) so PR-side jobs read from it without uploading on every successful build:
Copy file name to clipboardExpand all lines: lib/tapioca/cli.rb
+1-11Lines changed: 1 addition & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -103,10 +103,6 @@ def todo
103
103
type: :boolean,
104
104
default: false,
105
105
desc: "Verifies RBIs are up-to-date"
106
-
option:only_bootsnap_rbs_cache,
107
-
type: :boolean,
108
-
default: false,
109
-
desc: "Only boot the application and load DSL extensions/compilers to populate the bootsnap iseq cache, then exit. Skips compiler execution and RBI generation. Mutually exclusive with --verify and --list-compilers."
0 commit comments