|
73 | 73 | <li class="toctree-l3"><a class="reference internal" href="#linux-binary-naming-schemes">Linux Binary Naming Schemes</a></li> |
74 | 74 | </ul> |
75 | 75 | </li> |
76 | | -<li class="toctree-l2"><a class="reference internal" href="#source-fallback">Source Fallback</a></li> |
| 76 | +<li class="toctree-l2"><a class="reference internal" href="#source-fallback">Source Fallback</a><ul> |
| 77 | +<li class="toctree-l3"><a class="reference internal" href="#forcing-source-download">Forcing Source Download</a></li> |
| 78 | +</ul> |
| 79 | +</li> |
77 | 80 | <li class="toctree-l2"><a class="reference internal" href="#complete-examples">Complete Examples</a><ul> |
78 | 81 | <li class="toctree-l3"><a class="reference internal" href="#example-1-installing-uv">Example 1: Installing uv</a></li> |
79 | 82 | <li class="toctree-l3"><a class="reference internal" href="#example-2-specific-version-with-cache">Example 2: Specific Version with Cache</a></li> |
80 | 83 | <li class="toctree-l3"><a class="reference internal" href="#example-3-version-range">Example 3: Version Range</a></li> |
81 | 84 | <li class="toctree-l3"><a class="reference internal" href="#example-4-including-prereleases">Example 4: Including Prereleases</a></li> |
82 | 85 | <li class="toctree-l3"><a class="reference internal" href="#example-5-protocol-buffers">Example 5: Protocol Buffers</a></li> |
83 | | -<li class="toctree-l3"><a class="reference internal" href="#example-6-mixed-binaries-and-source">Example 6: Mixed Binaries and Source</a></li> |
| 86 | +<li class="toctree-l3"><a class="reference internal" href="#example-6-forcing-source-download">Example 6: Forcing Source Download</a></li> |
| 87 | +<li class="toctree-l3"><a class="reference internal" href="#example-7-mixed-binaries-and-source">Example 7: Mixed Binaries and Source</a></li> |
84 | 88 | </ul> |
85 | 89 | </li> |
86 | 90 | <li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a><ul> |
|
93 | 97 | </li> |
94 | 98 | <li class="toctree-l2"><a class="reference internal" href="#best-practices">Best Practices</a></li> |
95 | 99 | <li class="toctree-l2"><a class="reference internal" href="#advanced-configuration">Advanced Configuration</a><ul> |
| 100 | +<li class="toctree-l3"><a class="reference internal" href="#forcing-source-archives">Forcing Source Archives</a></li> |
96 | 101 | <li class="toctree-l3"><a class="reference internal" href="#specific-asset-file-not-yet-implemented">Specific Asset File (Not Yet Implemented)</a></li> |
97 | 102 | <li class="toctree-l3"><a class="reference internal" href="#custom-url-patterns">Custom URL Patterns</a></li> |
98 | 103 | </ul> |
@@ -429,6 +434,33 @@ <h2>Source Fallback<a class="headerlink" href="#source-fallback" title="Link to |
429 | 434 | <li><p>macOS: <code class="docutils literal notranslate"><span class="pre">tool-macos.tar.gz</span></code></p></li> |
430 | 435 | </ul> |
431 | 436 | <p>On FreeBSD (unsupported), IVPM will download <code class="docutils literal notranslate"><span class="pre">source.tar.gz</span></code>.</p> |
| 437 | +<section id="forcing-source-download"> |
| 438 | +<h3>Forcing Source Download<a class="headerlink" href="#forcing-source-download" title="Link to this heading"></a></h3> |
| 439 | +<p>You can force IVPM to download the source archive instead of platform-specific binaries |
| 440 | +using the <code class="docutils literal notranslate"><span class="pre">source</span></code> option:</p> |
| 441 | +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">deps</span><span class="p">:</span> |
| 442 | +<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tool</span> |
| 443 | +<span class="w"> </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/org/tool</span> |
| 444 | +<span class="w"> </span><span class="nt">src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gh-rls</span> |
| 445 | +<span class="w"> </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">latest</span> |
| 446 | +<span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
| 447 | +</pre></div> |
| 448 | +</div> |
| 449 | +<p>This is useful when:</p> |
| 450 | +<ul class="simple"> |
| 451 | +<li><p>You want to build from source for optimization or customization</p></li> |
| 452 | +<li><p>Binary releases don’t work on your platform</p></li> |
| 453 | +<li><p>You need to audit or modify the source code</p></li> |
| 454 | +<li><p>You’re distributing to users who will build themselves</p></li> |
| 455 | +</ul> |
| 456 | +<p>When <code class="docutils literal notranslate"><span class="pre">source:</span> <span class="pre">true</span></code> is set:</p> |
| 457 | +<ol class="arabic simple"> |
| 458 | +<li><p>IVPM skips all platform binary detection</p></li> |
| 459 | +<li><p>Downloads <code class="docutils literal notranslate"><span class="pre">tarball_url</span></code> (GitHub’s source tarball, typically <code class="docutils literal notranslate"><span class="pre">.tar.gz</span></code>)</p></li> |
| 460 | +<li><p>Falls back to <code class="docutils literal notranslate"><span class="pre">zipball_url</span></code> if tarball not available</p></li> |
| 461 | +<li><p>Extracts to your packages directory</p></li> |
| 462 | +</ol> |
| 463 | +</section> |
432 | 464 | </section> |
433 | 465 | <section id="complete-examples"> |
434 | 466 | <h2>Complete Examples<a class="headerlink" href="#complete-examples" title="Link to this heading"></a></h2> |
@@ -538,8 +570,29 @@ <h3>Example 5: Protocol Buffers<a class="headerlink" href="#example-5-protocol-b |
538 | 570 | </div> |
539 | 571 | <p>This demonstrates IVPM’s support for generic Linux binary naming (not manylinux).</p> |
540 | 572 | </section> |
541 | | -<section id="example-6-mixed-binaries-and-source"> |
542 | | -<h3>Example 6: Mixed Binaries and Source<a class="headerlink" href="#example-6-mixed-binaries-and-source" title="Link to this heading"></a></h3> |
| 573 | +<section id="example-6-forcing-source-download"> |
| 574 | +<h3>Example 6: Forcing Source Download<a class="headerlink" href="#example-6-forcing-source-download" title="Link to this heading"></a></h3> |
| 575 | +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">deps</span><span class="p">:</span> |
| 576 | +<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">verilator</span> |
| 577 | +<span class="w"> </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/verilator/verilator</span> |
| 578 | +<span class="w"> </span><span class="nt">src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gh-rls</span> |
| 579 | +<span class="w"> </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">latest</span> |
| 580 | +<span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
| 581 | +</pre></div> |
| 582 | +</div> |
| 583 | +<p><strong>What happens:</strong></p> |
| 584 | +<ol class="arabic simple"> |
| 585 | +<li><p>Queries GitHub API for latest release</p></li> |
| 586 | +<li><p>Skips all binary detection (even if binaries are available)</p></li> |
| 587 | +<li><p>Downloads source tarball (<code class="docutils literal notranslate"><span class="pre">tarball_url</span></code>)</p></li> |
| 588 | +<li><p>Extracts to <code class="docutils literal notranslate"><span class="pre">packages/verilator/</span></code></p></li> |
| 589 | +</ol> |
| 590 | +<p><strong>Use case:</strong></p> |
| 591 | +<p>Building Verilator from source for custom optimization flags or when |
| 592 | +pre-built binaries aren’t compatible with your system.</p> |
| 593 | +</section> |
| 594 | +<section id="example-7-mixed-binaries-and-source"> |
| 595 | +<h3>Example 7: Mixed Binaries and Source<a class="headerlink" href="#example-7-mixed-binaries-and-source" title="Link to this heading"></a></h3> |
543 | 596 | <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">package</span><span class="p">:</span> |
544 | 597 | <span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">verification-suite</span> |
545 | 598 | <span class="w"> </span><span class="nt">dep-sets</span><span class="p">:</span> |
@@ -690,6 +743,31 @@ <h2>Best Practices<a class="headerlink" href="#best-practices" title="Link to th |
690 | 743 | </section> |
691 | 744 | <section id="advanced-configuration"> |
692 | 745 | <h2>Advanced Configuration<a class="headerlink" href="#advanced-configuration" title="Link to this heading"></a></h2> |
| 746 | +<section id="forcing-source-archives"> |
| 747 | +<h3>Forcing Source Archives<a class="headerlink" href="#forcing-source-archives" title="Link to this heading"></a></h3> |
| 748 | +<p>Use <code class="docutils literal notranslate"><span class="pre">source:</span> <span class="pre">true</span></code> to skip platform binary selection and download source:</p> |
| 749 | +<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">tool</span> |
| 750 | +<span class="w"> </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/org/tool</span> |
| 751 | +<span class="w"> </span><span class="nt">src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gh-rls</span> |
| 752 | +<span class="w"> </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s">"1.0.0"</span> |
| 753 | +<span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
| 754 | +</pre></div> |
| 755 | +</div> |
| 756 | +<p>This downloads the GitHub source tarball (<code class="docutils literal notranslate"><span class="pre">.tar.gz</span></code>) or zipball (<code class="docutils literal notranslate"><span class="pre">.zip</span></code>) |
| 757 | +instead of platform-specific binaries.</p> |
| 758 | +<p><strong>Benefits:</strong></p> |
| 759 | +<ul class="simple"> |
| 760 | +<li><p>Full source code access for building with custom flags</p></li> |
| 761 | +<li><p>Avoid binary compatibility issues</p></li> |
| 762 | +<li><p>Works on any platform (not just those with prebuilt binaries)</p></li> |
| 763 | +</ul> |
| 764 | +<p><strong>Tradeoffs:</strong></p> |
| 765 | +<ul class="simple"> |
| 766 | +<li><p>Requires build tools and dependencies to be installed</p></li> |
| 767 | +<li><p>Slower initial setup compared to downloading prebuilt binaries</p></li> |
| 768 | +<li><p>May need manual build steps after download</p></li> |
| 769 | +</ul> |
| 770 | +</section> |
693 | 771 | <section id="specific-asset-file-not-yet-implemented"> |
694 | 772 | <h3>Specific Asset File (Not Yet Implemented)<a class="headerlink" href="#specific-asset-file-not-yet-implemented" title="Link to this heading"></a></h3> |
695 | 773 | <p>Future support for selecting specific asset:</p> |
|
0 commit comments