Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ body:
attributes:
label: SimLoop version or commit
description: The version in your build.gradle, or a commit hash.
placeholder: e.g. v0.2.0-alpha.1 or ddd1ad6
placeholder: e.g. v0.2.0-alpha.2 or ddd1ad6
validations:
required: true

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ Package root: `org.horizon36596.simloop`. Licence: BSD 3-Clause.
Run SimLoop from your robot project's tests or simulation harness and view the result in a separate
AdvantageScope window. This release covers that library-and-viewer workflow.

The source tree can be newer than the latest tag. Distortion, occlusion, tilted tags and synthetic
camera frames are development additions after `v0.2.0-alpha.1`; they are not in that pinned artifact.
Use the starter and documentation from the tag you install, or pin the exact source commit you test.
Distortion, occlusion, tilted tags and synthetic camera frames arrived in `v0.2.0-alpha.2`; they are not
in `v0.2.0-alpha.1`. The source tree can be newer than the latest tag, so use the starter and
documentation from the tag you install, or pin the exact source commit you test.

> **SimLoop is an alpha.** `v0.2.0-alpha.1` is the current alpha and the first public one. The API may
> **SimLoop is an alpha.** `v0.2.0-alpha.2` is the current alpha. The API may
> change between alpha versions, so pin an exact version in your build. It needs **FTC SDK 12.0**.
> Support is best effort: a small FTC team maintains it in its own time. `v0.1.0-beta1`, the earlier
> build on JitPack, is superseded and will not get fixes.
Expand Down
11 changes: 6 additions & 5 deletions SimLoop/PUBLISHING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ Central. The build wiring this describes lives at the bottom of `SimLoop/build.g
|---|---|
| Group (in the POM) | `org.horizon36596` |
| Artifact (in the POM) | `SimLoop` |
| Version (in the POM) | `0.2.0-alpha.1` |
| **What a consumer actually writes** | **`com.github.Horizon-36596:simloop:v0.2.0-alpha.1`** |
| Version (in the POM) | `0.2.0-alpha.2` |
| **What a consumer actually writes** | **`com.github.Horizon-36596:simloop:v0.2.0-alpha.2`** |
| Packaging | `aar`, plus sources and javadoc jars, plus the keyboard window jar (classifier `desktop`) |

**JitPack ignores every one of those first three values and derives its own.** The group becomes
`com.github.<owner>`, the artifact becomes the **repository** name, and the version is the git tag
verbatim, leading `v` included. A consumer writes `com.github.Horizon-36596:simloop:v0.2.0-alpha.1`;
JitPack's served POM uses that coordinate too. The declared `org.horizon36596:SimLoop:0.2.0-alpha.1`
verbatim, leading `v` included. A consumer writes `com.github.Horizon-36596:simloop:v0.2.0-alpha.2`;
JitPack's served POM uses that coordinate too. The declared `org.horizon36596:SimLoop:0.2.0-alpha.2`
coordinate belongs to `publishToMavenLocal` and a possible Maven Central publication.

That is JitPack's **single-module** spelling, and this build gets it because `jitpack.yml` installs
Expand All @@ -32,7 +32,8 @@ publication, `com.github.Horizon-36596:simloop:<tag>:desktop`, and not as a modu
## Version scheme

`MAJOR.MINOR.PATCH`, with an `-alpha.N` suffix while the API is still moving. The current release is
`0.2.0-alpha.1`, the first public alpha. `0.1.0-beta1` came before it and is superseded; it gets no fixes.
`0.2.0-alpha.2`. `0.2.0-alpha.1` was the first public alpha. `0.1.0-beta1` came before it and is
superseded; it gets no fixes.

- **`-alpha.N`** says the API may change between alpha versions without a major bump. That is the true
state today and should stay until teams outside Horizon have used it for a season.
Expand Down
10 changes: 5 additions & 5 deletions SimLoop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ from a fake clock rather than the wall, so the same run produces the same log ev
is a PsiKit RLOG, which AdvantageScope opens and which the `loop` package can score automatically.

Package root: `org.horizon36596.simloop`. Status: **alpha**. The API may change between alpha versions,
so pin an exact version. Support is best effort. `v0.2.0-alpha.1` is the current alpha; it supersedes
so pin an exact version. Support is best effort. `v0.2.0-alpha.2` is the current alpha; it supersedes
`v0.1.0-beta1`, which gets no fixes. It needs **FTC SDK 12.0**. Questions go to
[Discussions](https://github.com/Horizon-36596/simloop/discussions), bugs to
[Issues](https://github.com/Horizon-36596/simloop/issues). Every feature, one line each:
Expand All @@ -21,12 +21,12 @@ end of this section), and its Pinpoint, OTOS and Limelight 3A fakes are the SDK

The coordinate spelling below was confirmed on 2026-09-19 against `v0.1.0-beta1`, the earlier build:
a throwaway stock-layout FTC project resolved it for real from JitPack, with nothing published locally.
`v0.2.0-alpha.1` uses the same spelling with its own tag.
Each later tag uses the same spelling with its own tag.

Note the two spellings, because mixing them up fails with `Could not find`, which reads like a missing
library rather than a wrong name. **JitPack derives its own coordinate from the repository address** and
ignores what this project calls itself: `com.github.Horizon-36596:simloop:v0.2.0-alpha.1`, with the tag as
the version, `v` included. The POM inside says `org.horizon36596:SimLoop:0.2.0-alpha.1`, which is what
ignores what this project calls itself: `com.github.Horizon-36596:simloop:v0.2.0-alpha.2`, with the tag as
the version, `v` included. The POM inside says `org.horizon36596:SimLoop:0.2.0-alpha.2`, which is what
`publishToMavenLocal` writes and what a future Maven Central release would use.

JitPack, which builds a tag of this repository on demand:
Expand Down Expand Up @@ -72,7 +72,7 @@ repositories over project repositories". Without that line, both forms work and
```groovy
// TeamCode/build.gradle
dependencies {
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.1'
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.2'

// JUnit 5, if you are not already on it. SimLoop's own tests use it; yours need not.
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.3'
Expand Down
2 changes: 1 addition & 1 deletion SimLoop/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ evaluationDependsOn(':SimLoop:desktop')
// Maven Central namespace is granted by proving control of the domain the group is named after, so this
// group is claimable later and a com.github.* one would have to be swapped for one that is.
group = 'org.horizon36596'
version = '0.2.0-alpha.1'
version = '0.2.0-alpha.2'

android {
namespace = 'org.horizon36596.simloop'
Expand Down
22 changes: 11 additions & 11 deletions SimLoop/docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ Copy the starter folder to add SimLoop to an FTC project. The manual setup below
build settings if you want to maintain them yourself.

!!! warning "Your project must be on FTC SDK 12.0"
SimLoop `v0.2.0-alpha.1` is built against **FTC SDK 12.0.0**, and the earlier beta was built against
SimLoop `v0.2.0-alpha.2` is built against **FTC SDK 12.0.0**, and the earlier beta was built against
11.2.1. Update your FTC project to SDK 12.0 before you add SimLoop. See
[Why SDK 12.0](#why-sdk-120) below.

!!! note "Status: alpha"
`v0.2.0-alpha.1` is the current alpha. The API may change between alpha versions, so pin the exact
`v0.2.0-alpha.2` is the current alpha. The API may change between alpha versions, so pin the exact
version. `v0.1.0-beta1` is superseded and gets no fixes. Questions go to
[Discussions](https://github.com/Horizon-36596/simloop/discussions).

Expand All @@ -34,7 +34,7 @@ your robot runs. Update the project first.

## The three-step way: copy the starter folder

[`simloop-starter/`](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.1/simloop-starter) is one folder
[`simloop-starter/`](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.2/simloop-starter) is one folder
that carries every build setting SimLoop needs, plus a small example robot that drives itself.

1. **Copy the folder** into the root of your FTC project, beside `TeamCode/` and `FtcRobotController/`.
Expand All @@ -61,7 +61,7 @@ own robot; passing the example checks the installation, not your robot's configu
A team starts its season in one repository. A folder you drop into that repository needs no merge,
and removing it is deleting the folder and one line.

The starter's own [README](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.1/simloop-starter#readme)
The starter's own [README](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.2/simloop-starter#readme)
says what is in it. [Your first simulated test](first-test.md) walks through a separate slide example,
including the clock, plant, log and assertions.

Expand Down Expand Up @@ -98,10 +98,10 @@ repositories {
```groovy
// TeamCode/build.gradle
dependencies {
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.1'
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.2'

// The keyboard window for driving the sim live. Optional; same coordinate, `desktop` classifier.
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.1:desktop'
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.2:desktop'

// JUnit 5, if you are not already on it.
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.3'
Expand All @@ -122,8 +122,8 @@ android {
it belongs on the robot, and this scope is what keeps it out of the APK.

!!! warning "The version string includes the `v`"
JitPack's version **is** the git tag, letter for letter. The tag is `v0.2.0-alpha.1`, so the version is
`v0.2.0-alpha.1`. Omitting the `v` requests a different version and can fail with `Could not find`.
JitPack's version **is** the git tag, letter for letter. The tag is `v0.2.0-alpha.2`, so the version is
`v0.2.0-alpha.2`. Omitting the `v` requests a different version and can fail with `Could not find`.

!!! tip "Declare the JUnit Platform launcher"
Gradle 9 removed the implicit test-framework dependencies that older Gradle builds could rely on.
Expand Down Expand Up @@ -200,16 +200,16 @@ repositories {

```groovy
dependencies {
testImplementation 'org.horizon36596:SimLoop:0.2.0-alpha.1'
testImplementation 'org.horizon36596:SimLoop:0.2.0-alpha.2'
}
```

!!! note "Two coordinates for one library, and both are correct"
`org.horizon36596:SimLoop:0.2.0-alpha.1` is what this project declares, and it is what
`org.horizon36596:SimLoop:0.2.0-alpha.2` is what this project declares, and it is what
`publishToMavenLocal` writes and what a future Maven Central release would use. **JitPack ignores
all three parts and derives its own** from the repository address: the group becomes
`com.github.Horizon-36596`, the artifact becomes the repository name `simloop`, and the version is
the tag verbatim — so a JitPack dependency is spelled `com.github.Horizon-36596:simloop:v0.2.0-alpha.1`.
the tag verbatim — so a JitPack dependency is spelled `com.github.Horizon-36596:simloop:v0.2.0-alpha.2`.

Use the coordinate for the repository you are resolving from.

Expand Down
8 changes: 4 additions & 4 deletions SimLoop/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Run SimLoop from your robot project's tests or simulation harness, then **open t
AdvantageScope**, in its own window, to see the run.

!!! warning "Status: alpha"
`v0.2.0-alpha.1` is the current release and the first public alpha. The API may change between
`v0.2.0-alpha.2` is the current release. The API may change between
alpha versions, so **pin the exact version** in your build. It needs **FTC SDK 12.0**. Questions go
to [Discussions](https://github.com/Horizon-36596/simloop/discussions); bugs go to
[Issues](https://github.com/Horizon-36596/simloop/issues). `v0.1.0-beta1` is superseded and gets no
Expand All @@ -28,9 +28,9 @@ AdvantageScope**, in its own window, to see the run.
[Every feature](features.md) lists what it does, one line each.

!!! note "Match the docs to your dependency"
These source docs can include changes newer than the published tag. The vision guide marks its
development APIs. For a build pinned to `v0.2.0-alpha.1`, use the
[docs at that tag](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.1/SimLoop/docs).
These source docs can include changes newer than the published tag. For a build pinned to
`v0.2.0-alpha.2`, use the
[docs at that tag](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.2/SimLoop/docs).

## The fastest way in

Expand Down
8 changes: 4 additions & 4 deletions SimLoop/docs/llms.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ A flat index of this site. Every page, what is on it, and when to read it — so
the right page instead of crawling navigation.

**SimLoop** is a season-agnostic JVM simulation library for FIRST Tech Challenge robot code. Package root
`org.horizon36596.simloop`. Version `0.2.0-alpha.1`. Licence BSD-3-Clause: use, modify and ship it freely, and license your own robot code however you like; keep the copyright notice with any copy. Status: alpha, so pin an exact version; the API may change between alpha versions. `v0.2.0-alpha.1` is the current alpha and `v0.1.0-beta1` is superseded. The coordinate is `com.github.Horizon-36596:simloop:v0.2.0-alpha.1` from JitPack, and the version keeps its leading `v` because a JitPack version IS the git tag. The consuming project must be on FTC SDK 12.0.
`org.horizon36596.simloop`. Version `0.2.0-alpha.2`. Licence BSD-3-Clause: use, modify and ship it freely, and license your own robot code however you like; keep the copyright notice with any copy. Status: alpha, so pin an exact version; the API may change between alpha versions. `v0.2.0-alpha.2` is the current alpha and `v0.1.0-beta1` is superseded. The coordinate is `com.github.Horizon-36596:simloop:v0.2.0-alpha.2` from JitPack, and the version keeps its leading `v` because a JitPack version IS the git tag. The consuming project must be on FTC SDK 12.0.

## Read this first

Check the dependency's exact tag or source commit before using this index. It describes the current
source tree, which includes APIs added after `v0.2.0-alpha.1`. In particular, distortion, occluders,
tilted tags and synthetic frames are development APIs. Read the matching source or generated API
reference before calling them; the published alpha coordinate above does not contain them.
source tree, which can be newer than `v0.2.0-alpha.2`. Distortion, occluders, tilted tags and synthetic
frames arrived in `v0.2.0-alpha.2` and are absent from `v0.2.0-alpha.1`. Read the matching source or
generated API reference before calling an API newer than your pinned tag.

- **[Every feature](features.md)**: one line per feature, with a link to its page.
- **[What it does not do](limits.md)**: the authoritative list of what is out of scope. If a task needs
Expand Down
2 changes: 1 addition & 1 deletion SimLoop/docs/packages/live.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ the same line yourself, in `TeamCode/build.gradle`:

```groovy
dependencies {
testImplementation "com.github.Horizon-36596:simloop:v0.2.0-alpha.1:desktop"
testImplementation "com.github.Horizon-36596:simloop:v0.2.0-alpha.2:desktop"
}
```

Expand Down
6 changes: 3 additions & 3 deletions SimLoop/docs/packages/vision.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

`org.horizon36596.simloop.vision`

!!! note "Development APIs"
Distortion, `CameraOccluders`, tilted tags and synthetic frames were added after the
`v0.2.0-alpha.1` tag. The pinned alpha does not contain them. Use documentation from the tag you
!!! note "Added in v0.2.0-alpha.2"
Distortion, `CameraOccluders`, tilted tags and synthetic frames were added in
`v0.2.0-alpha.2`. `v0.2.0-alpha.1` does not contain them. Use documentation from the tag you
install; for development work, pin the exact source commit you tested. See
[Installing it](../getting-started.md).

Expand Down
2 changes: 1 addition & 1 deletion SimLoop/docs/unchanged-team-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ android {
}

dependencies {
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.1'
testImplementation 'com.github.Horizon-36596:simloop:v0.2.0-alpha.2'
testImplementation "org.junit.jupiter:junit-jupiter-api:5.11.3"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.11.3"
testRuntimeOnly "org.junit.platform:junit-platform-launcher:1.11.3" // Gradle 9 no longer adds it
Expand Down
2 changes: 1 addition & 1 deletion SimLoop/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ site_dir: build/docs/site
# This is a SECOND place the version is written; `SimLoop/build.gradle` is the authoritative one. They are
# not linked yet, so PUBLISHING.md's release checklist lists this file as a place to bump. Wiring the two
# together is a build change and belongs with the rest of the site build.
copyright: "SimLoop 0.2.0-alpha.1 · Horizon (FTC 36596) · BSD-3-Clause"
copyright: "SimLoop 0.2.0-alpha.2 · Horizon (FTC 36596) · BSD-3-Clause"

theme:
name: material
Expand Down
6 changes: 3 additions & 3 deletions simloop-agents/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ It is a **`testImplementation` dependency**. Nothing in it runs on a robot, and
ever import it.

- Package root: `org.horizon36596.simloop`
- Coordinate: `com.github.Horizon-36596:simloop:v0.2.0-alpha.1` (JitPack; the version keeps its leading
- Coordinate: `com.github.Horizon-36596:simloop:v0.2.0-alpha.2` (JitPack; the version keeps its leading
`v` because a JitPack version *is* the git tag)
- Documentation: <https://libraries.horizon36596.org/simloop/>
- Licence: BSD-3-Clause
Expand Down Expand Up @@ -136,8 +136,8 @@ a specific subsystem, the answer is a config implementation on this side, not a
## The whole public surface

Thirteen packages in the current source tree. Check this project's pinned dependency before using a
type below: distortion, occluders, tilted tags and synthetic frames were added after
`v0.2.0-alpha.1` and are absent from that tag. Every feature, one line each:
type below: distortion, occluders, tilted tags and synthetic frames were added in
`v0.2.0-alpha.2` and are absent from `v0.2.0-alpha.1`. Every feature, one line each:
<https://libraries.horizon36596.org/simloop/features/>.

| Package | Classes | What it is for |
Expand Down
8 changes: 4 additions & 4 deletions simloop-starter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ run the tests. That is the whole installation. You do not clone the SimLoop repo
it, and you do not copy any of its source into your project.

Copy this folder from the same tag as `simloopVersion` below. The
[starter at `v0.2.0-alpha.1`](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.1/simloop-starter)
[starter at `v0.2.0-alpha.2`](https://github.com/Horizon-36596/simloop/tree/v0.2.0-alpha.2/simloop-starter)
matches the pinned alpha. Examples on `main` may use development APIs absent from that artifact.

> ## Your FTC project must be on SDK 12.0
>
> SimLoop `v0.2.0-alpha.1` is built against **FTC SDK 12.0.0** (the earlier beta used 11.2.1). Update
> SimLoop `v0.2.0-alpha.2` is built against **FTC SDK 12.0.0** (the earlier beta used 11.2.1). Update
> your project to SDK 12.0 first. On 11.x your tests would run against a different SDK from the one your
> robot runs.
>
> **Status: alpha.** `v0.2.0-alpha.1` is the current alpha. The API may change between alpha versions,
> **Status: alpha.** `v0.2.0-alpha.2` is the current alpha. The API may change between alpha versions,
> so keep the exact version pinned below. `v0.1.0-beta1` is superseded. Questions go to
> [Discussions](https://github.com/Horizon-36596/simloop/discussions), bugs to
> [Issues](https://github.com/Horizon-36596/simloop/issues).
Expand Down Expand Up @@ -66,7 +66,7 @@ whole is what makes upgrading SimLoop a matter of replacing this folder.
The one thing you will edit is the first setting in it:

```groovy
ext.simloopVersion = 'v0.2.0-alpha.1'
ext.simloopVersion = 'v0.2.0-alpha.2'
```

## What is in here
Expand Down
4 changes: 2 additions & 2 deletions simloop-starter/simloop.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
// The SimLoop release this project builds against. ONE place, so a bump is one edit.
//
// JitPack's version IS the git tag, letter for letter, including the leading `v`. There is no translation
// step: ask for `0.2.0-alpha.1` when the tag is `v0.2.0-alpha.1` and resolution fails with "Could not find",
// step: ask for `0.2.0-alpha.2` when the tag is `v0.2.0-alpha.2` and resolution fails with "Could not find",
// which reads like the library is missing rather than like a typo.
ext.simloopVersion = 'v0.2.0-alpha.1'
ext.simloopVersion = 'v0.2.0-alpha.2'

// The coordinate is `com.github.<owner>:<repository>`, all of it derived by JitPack from the repository
// address and none of it from what this project calls itself. SimLoop's own build declares the group
Expand Down
Loading