id = "rush" name = "Rush" homepage = "https://rushjs.io" description = "Rush makes life easier for JavaScript developers who build and publish many packages from a common Git repo." # Rush's own logo, the image the @microsoft/rush README leads with. # rushjs.io publishes only a favicon.ico, which this field cannot take. icon = "https://raw.githubusercontent.com/microsoft/rushstack/main/common/wiki-images/rush-logo.png" executables = ["rush", "rushx"] [dotfiles] # libraries/rush-lib/src/api/RushUserConfiguration.ts in microsoft/rushstack: # getRushUserFolderPath() joins the home folder with RUSH_USER_FOLDER_NAME # (".rush-user", from libraries/credential-cache/src/CredentialCache.ts) and # initializeAsync() loads "settings.json" from it. rush.json, .npmrc and # common/config/rush/ belong to a repository, not to the user. paths = ["~/.rush-user/settings.json"] # ~/.rush is where Rush installs the Node modules for each Rush version it is # asked to run — an install, refetched by `rush install`. exclude = ["~/.rush/"] # https://rushjs.io/pages/maintainer/build_cache/ — for a cloud build cache, # "the credentials are stored in the user's home directory under # ~/.rush-user/credentials.json", written by `rush update-cloud-credentials`. # The file is nothing but cache entries holding those tokens. secret = ["~/.rush-user/credentials.json"] # Read at the start of a rush command. side_effect = false # rush-user-settings.schema.json documents buildCacheFolder as "If provided, # store build cache in the specified folder. Must be an absolute path." — # RushUserConfiguration's constructor rejects anything else, so the value is # always a path into this machine's disk. # The folder is there because the user named it, so it is kept for rebuilding # this machine and applied to no other. [[dotfiles.machine_lines]] file = "~/.rush-user/settings.json" match = { key_path = ["buildCacheFolder"] } scope = "backup" [commands] format = 1 label = "Rush" description = "Common Rush jobs: install, build and add. Project selection is limited to --to, --from and --only." quality = "ai-draft" base = "fig:rush" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rush.ts" license = "MIT" [[commands.subcommand]] path = ["install"] label = "Install dependencies" description = "Install dependencies according to the shrinkwrap file." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rush.ts" license = "MIT" [[commands.subcommand.field]] id = "purge" label = "Purge first" type = "boolean" option = ["--purge", "-p"] effect = "delete" sources = ["fig"] [[commands.subcommand.field]] id = "check_only" label = "Only check shrinkwrap" type = "boolean" option = ["--check-only"] sources = ["fig"] [[commands.subcommand.field]] id = "to" label = "Install up to project" type = "string" option = ["--to", "-t"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "network_concurrency" label = "Network concurrency" type = "integer" option = ["--network-concurrency"] sources = ["fig"] [[commands.subcommand.field]] id = "max_attempts" label = "Max install attempts" type = "integer" option = ["--max-install-attempts"] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install" fields = ["to"] [[commands.subcommand.task]] id = "check" label = "Check shrinkwrap" fields = ["check_only"] required = ["check_only"] set = { check_only = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["to", "purge", "check_only"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["network_concurrency", "max_attempts"] [[commands.subcommand]] path = ["build"] label = "Build" description = "Build projects that have changed since they were last built." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rush.ts" license = "MIT" [[commands.subcommand.field]] id = "to" label = "Build up to project" type = "string" option = ["--to", "-t"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "from" label = "Build from project" type = "string" option = ["--from", "-f"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "only" label = "Only this project" type = "string" option = ["--only", "-o"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "parallelism" label = "Parallelism" type = "string" option = ["--parallelism", "-p"] description = "A positive integer or max." sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Show build logs" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.subcommand.field]] id = "changed_only" label = "Changed projects only" type = "boolean" option = ["--changed-projects-only", "-c"] sources = ["fig"] [[commands.subcommand.task]] id = "build" label = "Build" fields = ["to", "from", "only", "verbose"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["to", "from", "only", "verbose"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["parallelism", "changed_only"] [[commands.subcommand]] path = ["add"] label = "Add dependency" description = "Add dependencies to the current project's package.json and run rush update." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/rush.ts" license = "MIT" [[commands.subcommand.field]] id = "package" label = "Package" type = "string" option = ["--package", "-p"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "dev" label = "As devDependency" type = "boolean" option = ["--dev"] sources = ["fig"] [[commands.subcommand.field]] id = "exact" label = "Exact version" type = "boolean" option = ["--exact"] sources = ["fig"] [[commands.subcommand.field]] id = "caret" label = "Caret version" type = "boolean" option = ["--caret"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_update" label = "Skip rush update" type = "boolean" option = ["--skip-update", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "make_consistent" label = "Make versions consistent" type = "boolean" option = ["--make-consistent", "-m"] sources = ["fig"] [[commands.subcommand.task]] id = "add" label = "Add" fields = ["package", "dev", "exact"] required = ["package"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["package", "dev", "exact", "caret"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["skip_update", "make_consistent"]