Skip to main content

ComposerCommand

Enum ComposerCommand 

Source
pub enum ComposerCommand {
Show 15 variants Install { working_dir: Option<PathBuf>, no_dev: bool, frozen: bool, lock_verify: bool, ignore_platform_reqs: bool, ignore_platform_req: Vec<String>, scripts: bool, no_scripts: bool, patches: bool, no_patches: bool, }, Update { packages: Vec<String>, no_install: bool, with_dependencies: bool, with_all_dependencies: bool, working_dir: Option<PathBuf>, no_dev: bool, resolution: ResolutionStrategy, prefer_lowest: bool, dry_run: bool, ignore_platform_reqs: bool, ignore_platform_req: Vec<String>, }, Validate { working_dir: Option<PathBuf>, strict: bool, no_check_lock: bool, no_check_publish: bool, no_check_all: bool, with_dependencies: bool, check_lock: bool, }, DumpAutoloader { optimize: bool, classmap_authoritative: bool, no_dev: bool, apcu_autoloader: bool, apcu_prefix: Option<String>, autoloader_suffix: Option<String>, working_dir: Option<PathBuf>, }, Require { packages: Vec<String>, dev: bool, no_update: bool, no_install: bool, with_dependencies: bool, with_all_dependencies: bool, prefer_lowest: bool, ignore_platform_reqs: bool, ignore_platform_req: Vec<String>, working_dir: Option<PathBuf>, dry_run: bool, }, Remove { packages: Vec<String>, dev: bool, no_update: bool, no_install: bool, no_dev: bool, ignore_platform_reqs: bool, ignore_platform_req: Vec<String>, working_dir: Option<PathBuf>, dry_run: bool, }, Show { package: Option<String>, tree: bool, direct: bool, platform: bool, self_: bool, name_only: bool, path: bool, latest: bool, outdated: bool, no_dev: bool, working_dir: Option<PathBuf>, }, Why { package: String, recursive: bool, tree: bool, working_dir: Option<PathBuf>, }, WhyNot { package: String, version: Option<String>, recursive: bool, tree: bool, working_dir: Option<PathBuf>, }, Outdated { packages: Vec<String>, direct: bool, major_only: bool, minor_only: bool, patch_only: bool, no_dev: bool, strict: bool, working_dir: Option<PathBuf>, }, Audit { no_dev: bool, abandoned: AbandonedHandling, locked: bool, working_dir: Option<PathBuf>, }, Licenses { no_dev: bool, working_dir: Option<PathBuf>, }, Status { working_dir: Option<PathBuf>, }, Fund { no_dev: bool, working_dir: Option<PathBuf>, }, External(Vec<OsString>),
}

Variants§

§

Install

Install vendor/ from composer.lock

Reads composer.json + composer.lock in the working directory, content-hash-verifies the lock, parallel-downloads dists into vendor/, and emits vendor/autoload.php

Fields

§working_dir: Option<PathBuf>

Run the install in this directory instead of CWD

§no_dev: bool

Skip dev-only packages and dev autoload entries

§frozen: bool

Fail if composer.lock is out of sync with composer.json. Currently a no-op — the install already errors on content-hash mismatch by default

§lock_verify: bool

Verify the lock is internally consistent (content-hash, requires, transitives) and exit. Doesn’t touch vendor/ or run the autoloader. CI-friendly read-only check

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-). bougie does not enforce platform requirements yet

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement

§scripts: bool

Run composer.json root scripts, overriding [scripts] run in bougie.toml. Off by default (opt-in)

§no_scripts: bool

Skip composer.json root scripts, overriding [scripts] run = true in bougie.toml

§patches: bool

Apply patches, overriding [patches] enable. On by default when patches are declared

§no_patches: bool

Skip native patch application for this install

§

Update

Update dependencies and composer.lock

Re-resolve the dependency graph, write a fresh composer.lock, and install the result into vendor/. With no packages the whole graph re-resolves; naming packages does a partial update, leaving every other locked package pinned. --no-install stops after writing the lock; --dry-run previews without writing. Aliased to upgrade / u

Fields

§packages: Vec<String>

Packages to update (vendor/name). When given, only these packages re-resolve; every other package stays pinned to its composer.lock version. With no packages, the whole graph re-resolves from scratch

§no_install: bool

Write the lock but don’t install into vendor/

§with_dependencies: bool

Also update the named packages’ dependencies (-w)

§with_all_dependencies: bool

Also update all of the named packages’ dependencies, including ones shared with other packages (-W)

§working_dir: Option<PathBuf>

Run the update in this directory instead of CWD

§no_dev: bool

Skip dev-only root requires when resolving

§resolution: ResolutionStrategy

Version-preference policy when resolving

§prefer_lowest: bool

Prefer the lowest matching versions. Equivalent to --resolution lowest; when set it overrides --resolution

§dry_run: bool

Resolve and print the solution without writing composer.lock or touching vendor/. Without this flag, update writes a fresh composer.lock

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-). bougie does not enforce platform requirements yet

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement

§

Validate

Validate composer.json structure and contents

Fields

§working_dir: Option<PathBuf>

Run in this directory instead of CWD

§strict: bool

Return non-zero exit code for warnings too

§no_check_lock: bool

Skip lock file freshness check

§no_check_publish: bool

Skip publish-only checks (name casing, required fields)

§no_check_all: bool

Skip unbound/exact version constraint warnings

§with_dependencies: bool

Also validate installed dependencies’ composer.json files

§check_lock: bool

Force lock file checking even when config.lock is false

§

DumpAutoloader

Regenerate the autoloader files

Regenerate vendor/composer/autoload_*.php against the current composer.lock. Aliased to dump-autoload

Fields

§optimize: bool

Optimize the classmap (--optimize / -o)

§classmap_authoritative: bool

Emit the classmap-authoritative static loader (--classmap-authoritative / -a). Implies --optimize

§no_dev: bool

Skip dev autoload entries (--no-dev)

§apcu_autoloader: bool

Emit the APCu loader bootstrap (--apcu-autoloader)

§apcu_prefix: Option<String>

Explicit APCu prefix; implies --apcu-autoloader

§autoloader_suffix: Option<String>

Override the ComposerAutoloaderInit<X> class suffix — otherwise the value from composer.json’s config.autoloader-suffix, or the composer.lock content-hash

§working_dir: Option<PathBuf>

Run the dump in this directory instead of the current one

§

Require

Add packages to composer.json and install them

Add one or more packages to composer.json require (or require-dev), re-resolve composer.lock, and install them. A bare vendor/pkg resolves the latest stable and writes a caret (^X.Y) constraint; set an explicit constraint with vendor/pkg:^1.0, vendor/pkg=^1.0, or a trailing argument (vendor/pkg ^1.0)

Fields

§packages: Vec<String>

Packages to require (vendor/pkg or vendor/pkg:<constraint>)

§dev: bool

Add to require-dev instead of require

§no_update: bool

Edit composer.json only — don’t re-resolve composer.lock or touch vendor/

§no_install: bool

Re-resolve and write composer.lock but don’t install into vendor/

§with_dependencies: bool

Also update the new packages’ dependencies (-w)

§with_all_dependencies: bool

Also update all dependencies, including shared ones (-W)

§prefer_lowest: bool

Prefer the lowest matching versions when resolving

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-)

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§dry_run: bool

Resolve and report what would change without writing composer.json, composer.lock, or vendor/

§

Remove

Remove packages and uninstall them from vendor/

Remove one or more packages from composer.json, re-resolve composer.lock, and uninstall them from vendor/

Fields

§packages: Vec<String>

Packages to remove (vendor/name)

§dev: bool

Remove from require-dev instead of require

§no_update: bool

Edit composer.json only — don’t re-resolve or touch vendor/

§no_install: bool

Re-resolve and write composer.lock but don’t touch vendor/

§no_dev: bool

Skip dev-only packages when resolving

§ignore_platform_reqs: bool

Ignore all platform requirements (php, ext-, lib-)

§ignore_platform_req: Vec<String>

Ignore a specific platform requirement

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§dry_run: bool

Resolve and report what would change without writing composer.json, composer.lock, or vendor/

§

Show

List installed packages, or show details for one

Reads the project’s composer.lock. Aliases info, list

Fields

§package: Option<String>

A single vendor/name to show details for. With no argument, every installed package is listed

§tree: bool

Render the dependency tree (--tree / -t)

§direct: bool

Only the project’s direct dependencies (--direct / -D)

§platform: bool

Only platform packages — php, ext-, lib- (--platform / -p)

§self_: bool

Show the root package’s own info (--self / -s)

§name_only: bool

Print package names only (--name-only / -N)

§path: bool

Show each package’s install path (--path / -P)

§latest: bool

Also fetch and show the latest available version (--latest / -l)

§outdated: bool

Only packages with a newer version available (--outdated / -o). Implies --latest

§no_dev: bool

Skip dev dependencies (--no-dev)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Why

Show which packages depend on a given package

Shows why a package is installed. Alias depends

Fields

§package: String

The package to explain

§recursive: bool

Recurse through the dependency chain (--recursive / -r)

§tree: bool

Render the full dependency-of tree (--tree / -t)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

WhyNot

Show what prevents a package from being installed

Reports the conflicting requirements for a package, optionally at a given version. Alias prohibits

Fields

§package: String

The package to test

§version: Option<String>

The version (or constraint) to test against. Defaults to *

§recursive: bool

Recurse through the dependency chain (--recursive / -r)

§tree: bool

Render the full tree (--tree / -t)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Outdated

List installed packages with a newer version available

Use the global --format json for JSON output

Fields

§packages: Vec<String>

Optional vendor/name filters; with none, all packages are considered

§direct: bool

Only the project’s direct dependencies (--direct / -D)

§major_only: bool

Only show packages with a new major version (--major-only)

§minor_only: bool

Only show packages with a new minor version (--minor-only)

§patch_only: bool

Only show packages with a new patch version (--patch-only)

§no_dev: bool

Skip dev dependencies (--no-dev)

§strict: bool

Exit non-zero if any package is outdated (--strict)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Audit

Check installed packages for security advisories

Checks against the Packagist security-advisories database. Exits non-zero when advisories are found. Use the global --format json for JSON

Fields

§no_dev: bool

Skip dev dependencies (--no-dev)

§abandoned: AbandonedHandling

How to treat abandoned packages. Detection is not yet wired up

§locked: bool

Audit the locked set. bougie always reads composer.lock, so this is the default

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Licenses

List the license of every installed package

Use the global --format json for JSON

Fields

§no_dev: bool

Skip dev dependencies (--no-dev)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Status

Report packages that look locally modified

bougie installs from dist archives, so for the common case this reports “no local changes”

Fields

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

Fund

Show funding information for installed packages

Grouped by vendor. Use --format json for JSON

Fields

§no_dev: bool

Skip dev dependencies (--no-dev)

§working_dir: Option<PathBuf>

Run in this directory instead of CWD (-d)

§

External(Vec<OsString>)

Catch-all for any composer subcommand bougie does not implement natively (create-project, archive, bump, global, …). These return an error pointing at bougie tool install composer/composer

Trait Implementations§

Source§

impl Debug for ComposerCommand

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for ComposerCommand

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for ComposerCommand

Source§

fn augment_subcommands<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.