Skip to content

Commit 9066b91

Browse files
1 parent 1933afb commit 9066b91

File tree

6 files changed

+92
-40
lines changed

6 files changed

+92
-40
lines changed

developers.html

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,7 @@ <h2 id="website-licensing">Website Licensing</h2>
247247

248248
<h1 id="testing">Testing</h1>
249249

250-
<ul>
251-
<li><a href="/unit_testing_instructions.html">Detailed Notes on Drake’s Unit Tests</a></li>
252-
<li><a href="/downstream_testing.html">Downstream Testing (Drake as a Dependency)</a></li>
253-
</ul>
250+
<p>Refer to <a href="/unit_testing_instructions.html">Detailed Notes on Drake’s Unit Tests</a>.</p>
254251

255252
<h1 id="supported-configurations">Supported Configurations</h1>
256253

@@ -452,7 +449,7 @@ <h1 id="continuous-integration-notes">Continuous Integration Notes</h1>
452449

453450
<ul>
454451
<li><a href="https://drake-cdash.csail.mit.edu/index.php?project=Drake">CDash</a></li>
455-
<li><a href="/jenkins.html">GitHub PR Interaction with Jenkins</a></li>
452+
<li><a href="/jenkins.html">Continuous Integration with GitHub Pull Requests</a></li>
456453
<li><a href="/buildcop.html">Build Cop</a></li>
457454
</ul>
458455

downstream_testing.html

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -155,30 +155,7 @@ <h1>Downstream Testing (Drake as a Dependency)</h1>
155155
<section class="padding">
156156
<div class="contain">
157157
<article class="markdown-body">
158-
<h1 id="introduction">Introduction</h1>
159-
160-
<p>To ensure that Drake enables downstream consumption, there are downstream tests
161-
that show basic usage of Drake as a dependency. Those tests are located in
162-
the <a href="https://github.com/RobotLocomotion/drake-external-examples">drake-external-examples</a>
163-
repository.</p>
164-
165-
<h1 id="continuous-integration">Continuous Integration</h1>
166-
167-
<p>Please see the drake-external-examples <a href="https://github.com/RobotLocomotion/drake-external-examples#continuous-integration">Continuous Integration</a>
168-
section.</p>
169-
170-
<h1 id="local-testing">Local Testing</h1>
171-
172-
<p>For CMake, see the
173-
<a href="https://github.com/RobotLocomotion/drake-external-examples/tree/master/drake_cmake_installed#developer-testing">drake_cmake_installed</a>
174-
example.</p>
175-
176-
<p>For Bazel, see the
177-
<a href="https://github.com/RobotLocomotion/drake-external-examples/tree/master/drake_bazel_external">drake_bazel_external</a>
178-
example, and note the comment in
179-
<a href="https://github.com/RobotLocomotion/drake-external-examples/blob/master/drake_bazel_external/WORKSPACE">WORKSPACE</a>
180-
which mentions using something like
181-
<a href="https://docs.bazel.build/versions/master/be/workspace.html#local_repository">local_repository</a> to consume a local checkout of Drake.</p>
158+
<p>Content moved to <a href="/jenkins.html#testing-via-external-examples">Continuous Integration with GitHub Pull Requests</a>.</p>
182159

183160
</article>
184161
</div>

installation.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ <h2 id="supported-configurations">Supported Configurations</h2>
229229
<p>⁽³⁾ The Python version shown in the table is supported for all installation
230230
channels. Additionally, when installing via <code class="language-plaintext highlighter-rouge">pip</code>
231231
on Ubuntu Python versions 3.10 through 3.13 (inclusive) are supported and
232-
on macOS Python versions 3.11 through 3.13 (inclusive) are supported.
232+
on macOS Python versions 3.12 through 3.13 (inclusive) are supported.
233233
Refer to <a href="/stable.html#os-support">OS Support</a> for details on our “end of life”
234234
timeline for changing which Python versions are supported.</p>
235235

jenkins.html

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<link rel="manifest" type="application/manifest+json" href="/site.webmanifest"/>
99
<link rel="mask-icon" type="image/svg+xml" href="/mask-icon.svg" color="#990000"/>
1010
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
11-
<title>Drake: GitHub PR Interaction with Jenkins</title>
11+
<title>Drake: Continuous Integration with GitHub Pull Requests</title>
1212
<meta
1313
name="description"
1414
content="Drake (&quot;dragon&quot; in Middle English) is a C++ toolbox started by the Robot
@@ -149,7 +149,7 @@
149149
<div class="drake-page">
150150
<header class="drake-page-header">
151151
<div class="contain">
152-
<h1>GitHub PR Interaction with Jenkins</h1>
152+
<h1>Continuous Integration with GitHub Pull Requests</h1>
153153
</div>
154154
</header>
155155
<section class="padding">
@@ -356,6 +356,76 @@ <h3 id="wheel">Wheel</h3>
356356
<span class="nb">source env</span>/bin/activate
357357
</code></pre></div></div>
358358

359+
<h1 id="testing-via-external-examples">Testing via External Examples</h1>
360+
361+
<p>The examples within Drake’s
362+
<a href="https://github.com/RobotLocomotion/drake-external-examples">gallery of external examples</a>
363+
provide continuous integration via both Jenkins and GitHub Actions. This provides
364+
downstream test coverage for Drake developers to ensure reliability in the
365+
build infrastructure. Additionally, the GitHub Actions provide a benefit
366+
for end users, in that examples of CI pipelines on public servers for
367+
external projects using Drake installations are made easily accessible.</p>
368+
369+
<p>See the external examples
370+
<a href="https://github.com/RobotLocomotion/drake-external-examples#continuous-integration">continuous integration</a>
371+
for details on which examples use Jenkins or GitHub Actions. In general,
372+
GitHub Actions is used for the lightweight examples which use some
373+
installed version of Drake, while Jenkins is used for complete coverage
374+
on examples which pull in Drake externally and build it.</p>
375+
376+
<p>When a new pull request is opened in Drake, members of the RobotLocomotion
377+
organization can utilize Jenkins and GitHub Actions to run custom builds.
378+
This is especially pertinent for pull requests which affect the build infrastructure.</p>
379+
380+
<h2 id="jenkins">Jenkins</h2>
381+
382+
<p>To test the examples which use Jenkins for CI with a PR branch of Drake,
383+
comment on an open pull request using the following command:</p>
384+
385+
<ul>
386+
<li><code class="language-plaintext highlighter-rouge">@drake-jenkins-bot linux-jammy-unprovisioned-external-examples please</code></li>
387+
</ul>
388+
389+
<p>or follow the <a href="#scheduling-builds-via-the-jenkins-user-interface">instructions above</a>
390+
to schedule a build of the
391+
<a href="https://drake-jenkins.csail.mit.edu/view/Linux%20Jammy%20Unprovisioned/job/linux-jammy-unprovisioned-external-examples/">external examples job</a>.
392+
Note that this job provides parameters for branches of
393+
drake and drake-external-examples.</p>
394+
395+
<h2 id="github-actions">GitHub Actions</h2>
396+
397+
<p>You can schedule “experimental” builds of a <a href="/from_binary.html">binary package</a>,
398+
<a href="/apt.html">debian package</a>, and/or a <a href="/pip.html">wheel package</a> by following the
399+
instructions <a href="#building-packages-on-demand">above</a>.
400+
Copy the download URL(s) obtained from the build as described.</p>
401+
402+
<p>From the <a href="https://github.com/RobotLocomotion/drake-external-examples/actions/workflows/ci.yml">GitHub Actions workflow</a>
403+
in drake-external-examples, notice the message “This workflow has a
404+
<code class="language-plaintext highlighter-rouge">workflow_dispatch</code> event trigger.” Click “Run workflow” and input the
405+
download URL(s) copied from Jenkins in the drop-down menu.
406+
All parameters are optional, so you can ignore the package(s) and/or platform(s)
407+
that you don’t need. (For those left blank, the default workflow will run using
408+
a more “stable” version of Drake, which is usually either source code from
409+
<code class="language-plaintext highlighter-rouge">master</code> or a nightly release depending on the example).</p>
410+
411+
<h2 id="local-testing">Local Testing</h2>
412+
413+
<p>For CMake, see the
414+
<a href="https://github.com/RobotLocomotion/drake-external-examples/tree/main/drake_cmake_installed#developer-testing">drake_cmake_installed</a>
415+
example.</p>
416+
417+
<p>For Bazel, see the
418+
<a href="https://github.com/RobotLocomotion/drake-external-examples/tree/main/drake_bazel_external">drake_bazel_external</a>
419+
example, and note the comments in:</p>
420+
421+
<ul>
422+
<li>the <a href="https://github.com/RobotLocomotion/drake-external-examples/blob/main/drake_bazel_external#using-a-local-checkout-of-Drake">README</a>,
423+
which mentions using
424+
<a href="https://bazel.build/reference/command-line-reference#flag--override_module"><code class="language-plaintext highlighter-rouge">--override-module</code></a> to consume a local checkout of Drake</li>
425+
<li><a href="https://github.com/RobotLocomotion/drake-external-examples/blob/main/drake_bazel_external/MODULE.bazel"><code class="language-plaintext highlighter-rouge">MODULE.bazel</code></a>,
426+
which can be modified to use a particular revision (commit or release) of Drake</li>
427+
</ul>
428+
359429
</article>
360430
</div>
361431
</section>

release_notes/end_of_support.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,8 @@ <h1 id="wheel-packages">Wheel packages</h1>
254254
<li>Python 3.11 (Wheel)
255255
<ul>
256256
<li>On Linux, Drake still supports Python 3.11 wheels.</li>
257-
<li>On macOS arm64, Drake still supports Python 3.11 wheels.</li>
257+
<li>On macOS arm64, the last version with support for Python 3.11 wheels was
258+
<a href="https://github.com/RobotLocomotion/drake/releases/tag/v1.40.0">v1.40.0</a>.</li>
258259
<li>On macOS x86_64, the last version with support for Python 3.11 wheels was
259260
<a href="https://github.com/RobotLocomotion/drake/releases/tag/v1.34.0">v1.34.0</a>.</li>
260261
</ul>

release_playbook.html

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ <h2 id="prior-to-release">Prior to release</h2>
196196
<li>On the first run, use <code class="language-plaintext highlighter-rouge">--action=create</code> to bootstrap the file.
197197
<ul>
198198
<li>The output is draft release notes in <code class="language-plaintext highlighter-rouge">doc/_release-notes/v1.N.0.md</code>.</li>
199+
<li>The version numbers in <code class="language-plaintext highlighter-rouge">doc/_pages/from_binary.md</code> should also have
200+
been automatically upgraded.</li>
199201
</ul>
200202
</li>
201203
<li>On the subsequent runs, use <code class="language-plaintext highlighter-rouge">--action=update</code> to refresh the file.
@@ -337,8 +339,6 @@ <h2 id="cutting-the-release">Cutting the release</h2>
337339
<li>There is a dummy date 2099-12-31 nearby that should likewise be changed.</li>
338340
<li>Make sure that the nightly build git sha from the prior steps matches the
339341
<code class="language-plaintext highlighter-rouge">newest_commit</code> whose changes are enumerated in the notes.</li>
340-
<li>Update the github links within <code class="language-plaintext highlighter-rouge">doc/_pages/from_binary.md</code> to reflect
341-
the upcoming v1.N.0.</li>
342342
</ol>
343343
</li>
344344
<li>Re-enable CI by reverting the commit you added way up above in step 3 of <strong>Prior to release</strong>.</li>
@@ -381,13 +381,13 @@ <h2 id="cutting-the-release">Cutting the release</h2>
381381
</ul>
382382
</li>
383383
<li>Click the box labeled “Attach binaries by dropping them here or selecting
384-
them.” and then choose for upload the <strong>36</strong> release files from
384+
them.” and then choose for upload the <strong>33</strong> release files from
385385
<code class="language-plaintext highlighter-rouge">/tmp/drake-release/v1.N.0/...</code>:
386386
<ul>
387387
<li>9: 3 <code class="language-plaintext highlighter-rouge">.tar.gz</code> + 6 checksums</li>
388388
<li>6: 2 <code class="language-plaintext highlighter-rouge">.deb</code> + 4 checksums</li>
389389
<li>12: 4 linux <code class="language-plaintext highlighter-rouge">.whl</code> + 8 checksums</li>
390-
<li>9: 3 macOS arm <code class="language-plaintext highlighter-rouge">.whl</code> + 6 checksums</li>
390+
<li>6: 2 macOS arm <code class="language-plaintext highlighter-rouge">.whl</code> + 4 checksums</li>
391391
<li>Note that on Jammy with <code class="language-plaintext highlighter-rouge">snap</code> provided Firefox, drag-and-drop from
392392
Nautilus will fail, and drop all of your release page inputs typed so
393393
far. Use the Firefox-provided selection dialog instead, by clicking on
@@ -425,16 +425,23 @@ <h2 id="post-release-wheel-upload">Post-release wheel upload</h2>
425425
<code class="language-plaintext highlighter-rouge">twine</code> uploader. See <a href="https://pypi.org/help/#apitoken">https://pypi.org/help/#apitoken</a> and <a href="https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#create-an-account">https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#create-an-account</a>
426426
for advice on managing api tokens.</p>
427427

428-
<p>For Jammy (and later?), <code class="language-plaintext highlighter-rouge">apt install twine</code> gives a perfectly adequate
429-
version of <code class="language-plaintext highlighter-rouge">twine</code>.</p>
428+
<p>For Jammy, <code class="language-plaintext highlighter-rouge">apt install twine</code> is too old. Instead, you must run it from a
429+
venv (detail below).</p>
430430

431431
<ol>
432432
<li>
433433
<p>Run <code class="language-plaintext highlighter-rouge">twine</code> to upload the wheel release, as follows:</p>
434434

435435
<ol>
436436
<li>You will need your PyPI username and password for this. (Do not use drake-robot.)</li>
437-
<li>Run <code class="language-plaintext highlighter-rouge">twine upload /tmp/drake-release/v1.N.0/*.whl</code>.</li>
437+
<li>Run:
438+
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd tmp
439+
$ python3 -m venv env
440+
$ env/bin/pip install twine
441+
$ env/bin/twine upload /tmp/drake-release/v1.N.0/*.whl
442+
$ rm -rf env
443+
</code></pre></div> </div>
444+
</li>
438445
<li>Confirm that all of the uploads succeeded without any error messages in
439446
your terminal.</li>
440447
</ol>

0 commit comments

Comments
 (0)