Skip to content

Commit 28cec40

Browse files
committed
Deploying to gh-pages from @ ca4a27b 🚀
1 parent d1406c7 commit 28cec40

File tree

5 files changed

+191
-6
lines changed

5 files changed

+191
-6
lines changed

_sources/github_releases.rst.txt

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,35 @@ If a release has:
318318

319319
On FreeBSD (unsupported), IVPM will download ``source.tar.gz``.
320320

321+
Forcing Source Download
322+
-----------------------
323+
324+
You can force IVPM to download the source archive instead of platform-specific binaries
325+
using the ``source`` option:
326+
327+
.. code-block:: yaml
328+
329+
deps:
330+
- name: tool
331+
url: https://github.com/org/tool
332+
src: gh-rls
333+
version: latest
334+
source: true
335+
336+
This is useful when:
337+
338+
- You want to build from source for optimization or customization
339+
- Binary releases don't work on your platform
340+
- You need to audit or modify the source code
341+
- You're distributing to users who will build themselves
342+
343+
When ``source: true`` is set:
344+
345+
1. IVPM skips all platform binary detection
346+
2. Downloads ``tarball_url`` (GitHub's source tarball, typically ``.tar.gz``)
347+
3. Falls back to ``zipball_url`` if tarball not available
348+
4. Extracts to your packages directory
349+
321350
Complete Examples
322351
=================
323352

@@ -440,7 +469,31 @@ Example 5: Protocol Buffers
440469
441470
This demonstrates IVPM's support for generic Linux binary naming (not manylinux).
442471

443-
Example 6: Mixed Binaries and Source
472+
Example 6: Forcing Source Download
473+
-----------------------------------
474+
475+
.. code-block:: yaml
476+
477+
deps:
478+
- name: verilator
479+
url: https://github.com/verilator/verilator
480+
src: gh-rls
481+
version: latest
482+
source: true
483+
484+
**What happens:**
485+
486+
1. Queries GitHub API for latest release
487+
2. Skips all binary detection (even if binaries are available)
488+
3. Downloads source tarball (``tarball_url``)
489+
4. Extracts to ``packages/verilator/``
490+
491+
**Use case:**
492+
493+
Building Verilator from source for custom optimization flags or when
494+
pre-built binaries aren't compatible with your system.
495+
496+
Example 7: Mixed Binaries and Source
444497
-------------------------------------
445498

446499
.. code-block:: yaml
@@ -618,6 +671,34 @@ Best Practices
618671
Advanced Configuration
619672
======================
620673

674+
Forcing Source Archives
675+
-----------------------
676+
677+
Use ``source: true`` to skip platform binary selection and download source:
678+
679+
.. code-block:: yaml
680+
681+
- name: tool
682+
url: https://github.com/org/tool
683+
src: gh-rls
684+
version: "1.0.0"
685+
source: true
686+
687+
This downloads the GitHub source tarball (``.tar.gz``) or zipball (``.zip``)
688+
instead of platform-specific binaries.
689+
690+
**Benefits:**
691+
692+
- Full source code access for building with custom flags
693+
- Avoid binary compatibility issues
694+
- Works on any platform (not just those with prebuilt binaries)
695+
696+
**Tradeoffs:**
697+
698+
- Requires build tools and dependencies to be installed
699+
- Slower initial setup compared to downloading prebuilt binaries
700+
- May need manual build steps after download
701+
621702
Specific Asset File (Not Yet Implemented)
622703
------------------------------------------
623704

_sources/package_types.rst.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,9 @@ binaries or falls back to source.
275275
``prerelease``
276276
Include pre-release versions (default: false)
277277

278+
``source``
279+
Force fetching source archive (.tar.gz) instead of platform-specific binary (default: false)
280+
278281
``cache``
279282
Enable caching (version includes platform info)
280283

@@ -321,6 +324,13 @@ If no platform-specific binary is found, falls back to source (tarball/zipball).
321324
url: https://github.com/org/binary
322325
src: gh-rls
323326
cache: true
327+
328+
# Force source download
329+
- name: build-from-source
330+
url: https://github.com/org/tool
331+
src: gh-rls
332+
version: latest
333+
source: true
324334
325335
Package Types
326336
=============
@@ -601,6 +611,9 @@ All Package Attributes
601611
* - ``prerelease``
602612
- boolean
603613
- Include GitHub prereleases
614+
* - ``source``
615+
- boolean
616+
- Force source archive for gh-rls
604617

605618
See Also
606619
========

github_releases.html

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,18 @@
7373
<li class="toctree-l3"><a class="reference internal" href="#linux-binary-naming-schemes">Linux Binary Naming Schemes</a></li>
7474
</ul>
7575
</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>
7780
<li class="toctree-l2"><a class="reference internal" href="#complete-examples">Complete Examples</a><ul>
7881
<li class="toctree-l3"><a class="reference internal" href="#example-1-installing-uv">Example 1: Installing uv</a></li>
7982
<li class="toctree-l3"><a class="reference internal" href="#example-2-specific-version-with-cache">Example 2: Specific Version with Cache</a></li>
8083
<li class="toctree-l3"><a class="reference internal" href="#example-3-version-range">Example 3: Version Range</a></li>
8184
<li class="toctree-l3"><a class="reference internal" href="#example-4-including-prereleases">Example 4: Including Prereleases</a></li>
8285
<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>
8488
</ul>
8589
</li>
8690
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a><ul>
@@ -93,6 +97,7 @@
9397
</li>
9498
<li class="toctree-l2"><a class="reference internal" href="#best-practices">Best Practices</a></li>
9599
<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>
96101
<li class="toctree-l3"><a class="reference internal" href="#specific-asset-file-not-yet-implemented">Specific Asset File (Not Yet Implemented)</a></li>
97102
<li class="toctree-l3"><a class="reference internal" href="#custom-url-patterns">Custom URL Patterns</a></li>
98103
</ul>
@@ -429,6 +434,33 @@ <h2>Source Fallback<a class="headerlink" href="#source-fallback" title="Link to
429434
<li><p>macOS: <code class="docutils literal notranslate"><span class="pre">tool-macos.tar.gz</span></code></p></li>
430435
</ul>
431436
<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>
432464
</section>
433465
<section id="complete-examples">
434466
<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
538570
</div>
539571
<p>This demonstrates IVPM’s support for generic Linux binary naming (not manylinux).</p>
540572
</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>
543596
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">package</span><span class="p">:</span>
544597
<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>
545598
<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
690743
</section>
691744
<section id="advanced-configuration">
692745
<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">&quot;1.0.0&quot;</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>
693771
<section id="specific-asset-file-not-yet-implemented">
694772
<h3>Specific Asset File (Not Yet Implemented)<a class="headerlink" href="#specific-asset-file-not-yet-implemented" title="Link to this heading"></a></h3>
695773
<p>Future support for selecting specific asset:</p>

package_types.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,8 @@ <h3>GitHub Releases (<code class="docutils literal notranslate"><span class="pre
349349
</dd>
350350
<dt><code class="docutils literal notranslate"><span class="pre">prerelease</span></code></dt><dd><p>Include pre-release versions (default: false)</p>
351351
</dd>
352+
<dt><code class="docutils literal notranslate"><span class="pre">source</span></code></dt><dd><p>Force fetching source archive (.tar.gz) instead of platform-specific binary (default: false)</p>
353+
</dd>
352354
<dt><code class="docutils literal notranslate"><span class="pre">cache</span></code></dt><dd><p>Enable caching (version includes platform info)</p>
353355
</dd>
354356
</dl>
@@ -390,6 +392,13 @@ <h3>GitHub Releases (<code class="docutils literal notranslate"><span class="pre
390392
<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/binary</span>
391393
<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>
392394
<span class="w"> </span><span class="nt">cache</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
395+
396+
<span class="c1"># Force source download</span>
397+
<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">build-from-source</span>
398+
<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>
399+
<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>
400+
<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>
401+
<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>
393402
</pre></div>
394403
</div>
395404
</section>
@@ -699,6 +708,10 @@ <h3>All Package Attributes<a class="headerlink" href="#all-package-attributes" t
699708
<td><p>boolean</p></td>
700709
<td><p>Include GitHub prereleases</p></td>
701710
</tr>
711+
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">source</span></code></p></td>
712+
<td><p>boolean</p></td>
713+
<td><p>Force source archive for gh-rls</p></td>
714+
</tr>
702715
</tbody>
703716
</table>
704717
</section>

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)