Skip to content

Initial 2027 updates #175

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: 2027
Choose a base branch
from
Open
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
36 changes: 18 additions & 18 deletions .github/workflows/dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ jobs:
max-parallel: ${{ fromJSON(needs.setup_concurrency.outputs.max-parallel).v }}
fail-fast: true
matrix:
os: ["ubuntu-22.04", "ubuntu-22.04-arm", "macos-14", "windows-2022"]
os: ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-14", "windows-2022"]
include:
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
container: python:3.13-bookworm

container: ${{ matrix.container }}
Expand All @@ -89,7 +89,7 @@ jobs:
fetch-depth: 0

- name: Install python
if: matrix.os != 'ubuntu-22.04-arm'
if: matrix.os != 'ubuntu-24.04-arm'
uses: actions/setup-python@v5
with:
python-version: '3.13'
Expand Down Expand Up @@ -121,7 +121,7 @@ jobs:
fail-fast: true
matrix:
os:
- "ubuntu-22.04"
- "ubuntu-24.04"
- "macos-13" # x86_64
- "macos-14" # arm64
- "windows-2022"
Expand All @@ -132,13 +132,13 @@ jobs:
- '3.12'
- '3.13'
include:
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
python_version: '3.11'
container: python:3.11-bookworm
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
python_version: '3.12'
container: python:3.12-bookworm
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
python_version: '3.13'
container: python:3.13-bookworm

Expand All @@ -150,7 +150,7 @@ jobs:
fetch-depth: 0

- name: Install python
if: matrix.os != 'ubuntu-22.04-arm'
if: matrix.os != 'ubuntu-24.04-arm'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
Expand All @@ -167,7 +167,7 @@ jobs:

- name: Install libgl
run: apt-get update && apt-get install -y libgl1
if: matrix.os == 'ubuntu-22.04-arm'
if: matrix.os == 'ubuntu-24.04-arm'

- name: Setup MSVC
uses: bus1/cabuild/action/msdevshell@e22aba57d6e74891d059d66501b6b5aed8123c4d # v1
Expand Down Expand Up @@ -223,9 +223,9 @@ jobs:
max-parallel: ${{ fromJSON(needs.setup_concurrency.outputs.max-parallel).v }}
matrix:
os:
- container: wpilib/roborio-cross-ubuntu:2025-22.04-py313
name: roborio
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-22.04-py313
# - container: wpilib/roborio-cross-ubuntu:2025-22.04-py313
# name: roborio
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-24.04-py313
name: raspbian

container:
Expand Down Expand Up @@ -261,17 +261,17 @@ jobs:
max-parallel: ${{ fromJSON(needs.setup_concurrency.outputs.max-parallel).v }}
matrix:
os:
- container: wpilib/roborio-cross-ubuntu:2025-22.04-py313
name: roborio
base: roborio
# - container: wpilib/roborio-cross-ubuntu:2025-22.04-py313
# name: roborio
# base: roborio

- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-22.04-py311
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-24.04-py311
name: raspbian-py311
base: raspbian
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-22.04-py312
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-24.04-py312
name: raspbian-py312
base: raspbian
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-22.04-py313
- container: wpilib/raspbian-cross-ubuntu:2025-bookworm-24.04-py313
name: raspbian-py313
base: raspbian

Expand Down
20 changes: 14 additions & 6 deletions rdev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
[py_versions]

# Usually the same as wpilib_bin_version
native = "2025.3.2"
native = "2027.0.0a1.dev0"

# Will eventually sync with native
halsim_native = "2025.3.2.2"
halsim_native = "2027.0.0a1.dev0"

# Usually similar to native, but subminor version is bumped for bugfixes
wrapper = "2025.3.2.2"
wrapper = "2027.0.0a1.dev0"

[params]

wpilib_bin_url = "https://frcmaven.wpi.edu/artifactory/release"
wpilib_bin_version = "2025.3.2"
#wpilib_bin_url = "https://frcmaven.wpi.edu/artifactory/development"
# wpilib_bin_url = "https://frcmaven.wpi.edu/artifactory/release"
wpilib_bin_version = "2025.3.2-123-g22d12d2"
wpilib_bin_url = "https://frcmaven.wpi.edu/artifactory/development-2027"

# Don't update these maven artifacts
exclude_artifacts = [
Expand All @@ -41,6 +41,10 @@ hatch-robotpy = "~=0.2"
py_version = "native"
roborio = true

[subprojects."robotpy-native-datalog"]
py_version = "native"
roborio = true

[subprojects."robotpy-native-wpinet"]
py_version = "native"
roborio = true
Expand Down Expand Up @@ -77,6 +81,10 @@ roborio = false
py_version = "wrapper"
roborio = true

[subprojects."robotpy-wpilog"]
py_version = "wrapper"
roborio = true

[subprojects."robotpy-wpinet"]
py_version = "wrapper"
roborio = true
Expand Down
18 changes: 10 additions & 8 deletions subprojects/pyntcore/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,26 @@ requires = [
"hatch-meson~=0.1.0b2",
"hatch-robotpy~=0.2",
"hatchling",
"robotpy-native-ntcore==2025.3.2",
"robotpy-wpiutil==2025.3.2.2",
"robotpy-wpinet==2025.3.2.2",
"robotpy-native-ntcore==2027.0.0a1.dev0",
"robotpy-wpiutil==2027.0.0a1.dev0",
"robotpy-wpinet==2027.0.0a1.dev0",
"robotpy-wpilog==2027.0.0a1.dev0",
]


[project]
name = "pyntcore"
version = "2025.3.2.2"
version = "2027.0.0a1.dev0"
description = "Binary wrappers for the FRC ntcore library"
authors = [
{name = "RobotPy Development Team", email = "robotpy@googlegroups.com"},
]
license = "BSD-3-Clause"
dependencies = [
"robotpy-native-ntcore==2025.3.2",
"robotpy-wpiutil==2025.3.2.2",
"robotpy-wpinet==2025.3.2.2",
"robotpy-native-ntcore==2027.0.0a1.dev0",
"robotpy-wpiutil==2027.0.0a1.dev0",
"robotpy-wpinet==2027.0.0a1.dev0",
"robotpy-wpilog==2027.0.0a1.dev0",
]

[project.urls]
Expand Down Expand Up @@ -60,7 +62,7 @@ scan_headers_ignore = [
[tool.semiwrap.extension_modules."ntcore._ntcore"]
name = "ntcore"
wraps = ["robotpy-native-ntcore"]
depends = ["wpiutil", "wpinet"]
depends = ["wpiutil", "wpinet", "wpilog"]


[tool.semiwrap.extension_modules."ntcore._ntcore".headers]
Expand Down
6 changes: 3 additions & 3 deletions subprojects/pyntcore/semiwrap/NetworkTableInstance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ extra_includes:
- networktables/Topic.h
- src/py2value.h
- src/nt_instance.h
- wpi/DataLog.h
- wpi/datalog/DataLog.h
- wpystruct.h

classes:
Expand Down Expand Up @@ -120,10 +120,10 @@ classes:
StartServer:
cpp_code: |
[](NetworkTableInstance * self, std::string_view persist_filename, const char* listen_address,
unsigned int port3, unsigned int port4) {
unsigned int port) {
pyntcore::onInstanceStart(self);
py::gil_scoped_release release;
self->StartServer(persist_filename, listen_address, port3, port4);
self->StartServer(persist_filename, listen_address, port);
}
StopServer:
StartClient3:
Expand Down
47 changes: 13 additions & 34 deletions subprojects/pyntcore/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,10 @@ def _init_common(self):

# self._wait_init()

def _init_server(self, port3=23232, port4=23233):
def _init_server(self, port=23232):
self._init_common()

self.port3 = port3
self.port4 = port4
self.port = port

def _init_client(self):
self._init_common()
Expand Down Expand Up @@ -122,23 +121,18 @@ def expect_changes(self, count):
@pytest.fixture()
def nt_server(request, cfg_logging):
class NtServer(NtTestBase):
_test_saved_port3 = None
_test_saved_port4 = None
_test_saved_port = None

def start_test(self):
logger.info("NtServer::start_test")

# Restore server port on restart
if self._test_saved_port3 is not None:
self.port3 = self._test_saved_port3
self.port4 = self._test_saved_port4
if self._test_saved_port is not None:
self.port = self._test_saved_port

self._impl.startServer(
listen_address="127.0.0.1", port3=self.port3, port4=self.port4
)
self._impl.startServer(listen_address="127.0.0.1", port=self.port)

self._test_saved_port3 = self.port3
self._test_saved_port4 = self.port4
self._test_saved_port = self.port

server = NtServer()
server._init_server()
Expand All @@ -149,26 +143,11 @@ def start_test(self):


@pytest.fixture()
def nt_client3(request, nt_server):
def nt_client(request, nt_server):
class NtClient(NtTestBase):
def start_test(self):
self._impl.startClient3("C3")
self._impl.setServer("127.0.0.1", nt_server.port3)

client = NtClient()
client._init_client()
try:
yield client
finally:
client.shutdown()


@pytest.fixture()
def nt_client4(request, nt_server):
class NtClient(NtTestBase):
def start_test(self):
self._impl.startClient4("C4")
self._impl.setServer("127.0.0.1", nt_server.port4)
self._impl.startClient("C4")
self._impl.setServer("127.0.0.1", nt_server.port)

client = NtClient()
client._init_client()
Expand All @@ -177,10 +156,10 @@ def start_test(self):


@pytest.fixture
def nt_live(nt_server, nt_client4):
def nt_live(nt_server, nt_client):
"""This fixture automatically starts the client and server"""

nt_server.start_test()
nt_client4.start_test()
nt_client.start_test()

return nt_server, nt_client4
return nt_server, nt_client
14 changes: 7 additions & 7 deletions subprojects/robotpy-apriltag/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ requires = [
"hatch-meson~=0.1.0b2",
"hatch-robotpy~=0.2",
"hatchling",
"robotpy-native-apriltag==2025.3.2",
"robotpy-wpiutil==2025.3.2.2",
"robotpy-wpimath==2025.3.2.2",
"robotpy-native-apriltag==2027.0.0a1.dev0",
"robotpy-wpiutil==2027.0.0a1.dev0",
"robotpy-wpimath==2027.0.0a1.dev0",
]

[project]
name = "robotpy-apriltag"
version = "2025.3.2.2"
version = "2027.0.0a1.dev0"
description = "RobotPy bindings for WPILib's AprilTag library"
authors = [
{name = "RobotPy Development Team", email = "robotpy@googlegroups.com"},
]
license = "BSD-3-Clause"
dependencies = [
"robotpy-native-apriltag==2025.3.2",
"robotpy-wpiutil==2025.3.2.2",
"robotpy-wpimath==2025.3.2.2",
"robotpy-native-apriltag==2027.0.0a1.dev0",
"robotpy-wpiutil==2027.0.0a1.dev0",
"robotpy-wpimath==2027.0.0a1.dev0",
]

[project.urls]
Expand Down
2 changes: 1 addition & 1 deletion subprojects/robotpy-cscore/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ cpp = meson.get_compiler('cpp')
libs_path = meson.current_source_dir() + '/lib/lib'

cscore_deps += [
cpp.find_library('opencv480', dirs: libs_path),
cpp.find_library('opencv4100', dirs: libs_path),
cpp.find_library('cscore', dirs: libs_path),
cpp.find_library('cameraserver', dirs: libs_path),
]
Expand Down
Loading
Loading