blob: 268789ce49f4b52bf8af7ffea4259f30d133af12 [file] [log] [blame] [edit]
<h2 id="cargo_package_name">NAME</h2>
<div class="sectionbody">
<p>cargo-package - Assemble the local package into a distributable tarball</p>
</div>
<div class="sect1">
<h2 id="cargo_package_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph">
<p><code>cargo package [<em>OPTIONS</em>]</code></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This command will create a distributable, compressed <code>.crate</code> file with the
source code of the package in the current directory. The resulting file will
be stored in the <code>target/package</code> directory. This performs the following
steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Load and check the current workspace, performing some basic checks.</p>
<div class="ulist">
<ul>
<li>
<p>Path dependencies are not allowed unless they have a version key. Cargo
will ignore the path key for dependencies in published packages.</p>
</li>
</ul>
</div>
</li>
<li>
<p>Create the compressed <code>.crate</code> file.</p>
<div class="ulist">
<ul>
<li>
<p>The original <code>Cargo.toml</code> file is rewritten and normalized.</p>
</li>
<li>
<p><code>[patch]</code>, <code>[replace]</code>, and <code>[workspace]</code> sections are removed from the
manifest.</p>
</li>
<li>
<p>A <code>.cargo_vcs_info.json</code> file is included that contains information
about the current VCS checkout hash if available (not included with
<code>--allow-dirty</code>).</p>
</li>
</ul>
</div>
</li>
<li>
<p>Extract the <code>.crate</code> file and build it to verify it can build.</p>
</li>
<li>
<p>Check that build scripts did not modify any source files.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>The list of files included can be controlled with the <code>include</code> and <code>exclude</code>
fields in the manifest.</p>
</div>
<div class="paragraph">
<p>See <a href="reference/publishing.html">the reference</a> for more details about
packaging and publishing.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_options">OPTIONS</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cargo_package_package_options">Package Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>-l</strong></dt>
<dt class="hdlist1"><strong>--list</strong></dt>
<dd>
<p>Print files included in a package without making one.</p>
</dd>
<dt class="hdlist1"><strong>--no-verify</strong></dt>
<dd>
<p>Don&#8217;t verify the contents by building them.</p>
</dd>
<dt class="hdlist1"><strong>--no-metadata</strong></dt>
<dd>
<p>Ignore warnings about a lack of human-usable metadata (such as the
description or the license).</p>
</dd>
<dt class="hdlist1"><strong>--allow-dirty</strong></dt>
<dd>
<p>Allow working directories with uncommitted VCS changes to be packaged.</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_compilation_options">Compilation Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>--target</strong> <em>TRIPLE</em></dt>
<dd>
<p>Package for the given architecture. The default is the host
architecture. The general format of the triple is
<code>&lt;arch&gt;&lt;sub&gt;-&lt;vendor&gt;-&lt;sys&gt;-&lt;abi&gt;</code>. Run <code>rustc --print target-list</code> for a
list of supported targets.</p>
<div class="paragraph">
<p>This may also be specified with the <code>build.target</code>
<a href="reference/config.html">config value</a>.</p>
</div>
</dd>
<dt class="hdlist1"><strong>--target-dir</strong> <em>DIRECTORY</em></dt>
<dd>
<p>Directory for all generated artifacts and intermediate files. May also be
specified with the <code>CARGO_TARGET_DIR</code> environment variable, or the
<code>build.target-dir</code> <a href="reference/config.html">config value</a>. Defaults
to <code>target</code> in the root of the workspace.</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_feature_selection">Feature Selection</h3>
<div class="paragraph">
<p>When no feature options are given, the <code>default</code> feature is activated for
every selected package.</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>--features</strong> <em>FEATURES</em></dt>
<dd>
<p>Space or comma separated list of features to activate. These features only
apply to the current directory&#8217;s package. Features of direct dependencies
may be enabled with <code>&lt;dep-name&gt;/&lt;feature-name&gt;</code> syntax.</p>
</dd>
<dt class="hdlist1"><strong>--all-features</strong></dt>
<dd>
<p>Activate all available features of all selected packages.</p>
</dd>
<dt class="hdlist1"><strong>--no-default-features</strong></dt>
<dd>
<p>Do not activate the <code>default</code> feature of the current directory&#8217;s
package.</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_manifest_options">Manifest Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>--manifest-path</strong> <em>PATH</em></dt>
<dd>
<p>Path to the <code>Cargo.toml</code> file. By default, Cargo searches in the current
directory or any parent directory for the <code>Cargo.toml</code> file.</p>
</dd>
<dt class="hdlist1"><strong>--frozen</strong></dt>
<dt class="hdlist1"><strong>--locked</strong></dt>
<dd>
<p>Either of these flags requires that the <code>Cargo.lock</code> file is
up-to-date. If the lock file is missing, or it needs to be updated, Cargo will
exit with an error. The <code>--frozen</code> flag also prevents Cargo from
attempting to access the network to determine if it is out-of-date.</p>
<div class="paragraph">
<p>These may be used in environments where you want to assert that the
<code>Cargo.lock</code> file is up-to-date (such as a CI build) or want to avoid network
access.</p>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_miscellaneous_options">Miscellaneous Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>-j</strong> <em>N</em></dt>
<dt class="hdlist1"><strong>--jobs</strong> <em>N</em></dt>
<dd>
<p>Number of parallel jobs to run. May also be specified with the
<code>build.jobs</code> <a href="reference/config.html">config value</a>. Defaults to
the number of CPUs.</p>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_display_options">Display Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>-v</strong></dt>
<dt class="hdlist1"><strong>--verbose</strong></dt>
<dd>
<p>Use verbose output. May be specified twice for "very verbose" output which
includes extra output such as dependency warnings and build script output.
May also be specified with the <code>term.verbose</code>
<a href="reference/config.html">config value</a>.</p>
</dd>
<dt class="hdlist1"><strong>-q</strong></dt>
<dt class="hdlist1"><strong>--quiet</strong></dt>
<dd>
<p>No output printed to stdout.</p>
</dd>
<dt class="hdlist1"><strong>--color</strong> <em>WHEN</em></dt>
<dd>
<p>Control when colored output is used. Valid values:</p>
<div class="ulist">
<ul>
<li>
<p><code>auto</code> (default): Automatically detect if color support is available on the
terminal.</p>
</li>
<li>
<p><code>always</code>: Always display colors.</p>
</li>
<li>
<p><code>never</code>: Never display colors.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>May also be specified with the <code>term.color</code>
<a href="reference/config.html">config value</a>.</p>
</div>
</dd>
</dl>
</div>
</div>
<div class="sect2">
<h3 id="cargo_package_common_options">Common Options</h3>
<div class="dlist">
<dl>
<dt class="hdlist1"><strong>-h</strong></dt>
<dt class="hdlist1"><strong>--help</strong></dt>
<dd>
<p>Prints help information.</p>
</dd>
<dt class="hdlist1"><strong>-Z</strong> <em>FLAG</em>&#8230;&#8203;</dt>
<dd>
<p>Unstable (nightly-only) flags to Cargo. Run <code>cargo -Z help</code> for
details.</p>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_environment">ENVIRONMENT</h2>
<div class="sectionbody">
<div class="paragraph">
<p>See <a href="reference/environment-variables.html">the reference</a> for
details on environment variables that Cargo reads.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_exit_status">Exit Status</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">0</dt>
<dd>
<p>Cargo succeeded.</p>
</dd>
<dt class="hdlist1">101</dt>
<dd>
<p>Cargo failed to complete.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create a compressed <code>.crate</code> file of the current package:</p>
<div class="literalblock">
<div class="content">
<pre>cargo package</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cargo_package_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="commands/index.html">cargo(1)</a>, <a href="commands/cargo-publish.html">cargo-publish(1)</a></p>
</div>
</div>
</div>