Skip to content

Add commands v3 documentation pages - #3339

Open
SamCarlberg wants to merge 20 commits into
wpilibsuite:mainfrom
SamCarlberg:commandsv3
Open

SamCarlberg wants to merge 20 commits into
wpilibsuite:mainfrom
SamCarlberg:commandsv3

Conversation

@SamCarlberg

@SamCarlberg SamCarlberg commented Aug 3, 2026

Copy link
Copy Markdown
Member

Note that some docs reference not-yet-committed WPILib changes (wpilibsuite/allwpilib#9207)

@sciencewhiz
sciencewhiz requested a review from jasondaming August 4, 2026 15:11

@sciencewhiz sciencewhiz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's some initial comments. Also update new for 2027 to link to the documentation.

Comment thread source/docs/software/commandbased/commands-v3/index.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/index.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/index.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/creating-commands.rst Outdated

.. tab-set-code::

```java

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To improve maintainability, lets make these and all other "complete" code snippets into snippets in allwpilib and reference via RLIs.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. I plan on moving them when the code snippets are approved here. It's annoying to reference them across repos

Comment thread source/docs/software/commandbased/commands-v3/creating-commands.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/how-it-works.rst
Comment thread source/docs/software/commandbased/commands-v3/lambda-functions.rst
Comment thread source/docs/software/commandbased/commands-v3/migration-guide.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/migration-guide.rst Outdated
Removed a lot of unnecessary tab-set-code and replaced others with manual tab-sets with descriptive tab labels
Comment thread source/docs/software/commandbased/commands-v3/how-it-works.rst Outdated
SamCarlberg and others added 3 commits August 6, 2026 07:56
@PeterJohnson

Copy link
Copy Markdown
Member

@codex review

@sciencewhiz sciencewhiz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few more comments, haven't been able to get through everything yet

This should update the 2027 overview to link to the documentation instead of the confernce/design doc.

The examples page should be updated with the commands v3 examples

@@ -0,0 +1,83 @@
# State Machines with Commands

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this article could benefit from a more complex example that demonstrates why State machines are beneficial for complex commands. The existing code example seems like something that could easily be done without a state machine

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will need a followup with a new state machine example project added to allwpilib

Comment thread source/docs/software/commandbased/commands-v3/state-machines.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/structuring-your-project.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/structuring-your-project.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/structuring-your-project.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/structuring-your-project.rst Outdated
Comment thread source/docs/software/commandbased/commands-v3/troubleshooting.rst
Include a note on broken builds and a quick-and-dirty workaround

Could also use `uv run make html SPHINXOPTS="-D rediraffe_redirects='path/to/empty-file.txt"` to point at an empty file outside the git repo without making any local changes, if on a Unix-like system
Comments don't affect the behavior of redirects, so they're safe to insert, remove, or modify at will
Comment thread source/docs/software/commandbased/commands-v3/structuring-your-project.rst Outdated
Comment thread source/docs/software/commandbased/index.rst Outdated

// Triggers can be and are encouraged to be public. They can't control the mechanism,
// and make it easier to coordinate complex actions
public final Trigger isUp = new Trigger(() -> pivotMotor.getPosition() >= 90);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this code will compile, since PWMSparkMax isn't a smart motor controller with a sensor. In fact, because of the discussion of sensors above, using a separate encoder in this example seems like it would be better.

@@ -0,0 +1,96 @@
# Using Lambda Functions

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's also this existing doc on lambdas. Perhaps update and reference that doc for the general syntax part, and keep this specific to how they're used in Commands v3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants