v0.9.0-rc.1
Pre-release
Pre-release
What's Changed
- docs: align production service guide with operator TLS and gRPC behavior by @mangelajo in #388
- Microshift bootc image by @mangelajo in #314
- fix: reject deletion of already-released leases by @raballew in #401
- fix: validate name argument in admin create/delete commands by @raballew in #398
- fix: clean up listenQueues entry on listener disconnect by @raballew in #397
- fix: reset retry counter after receiving data in exporter reconnect by @raballew in #396
- chore(deps-dev): bump ruff from 0.15.6 to 0.15.8 in /python by @dependabot[bot] in #395
- Import some of the operator-related release improvements to main by @mangelajo in #390
- Android ADB and Emulator Power Drivers by @kirkbrauer in #403
- fix: wire keepalive configuration fields into gRPC server options by @raballew in #399
- fix(authorization): always derive resource names from OIDC username by @ambient-code[bot] in #404
- Fix exporter state machine: stuck exporters on lease-end during hooks by @raballew in #349
- Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #323
- build(deps): bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #300
- build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #299
- Revert "Revert "shell: keep shell usable after token refreshes"" by @bennyz in #290
- NOYITO USB Relay Power Driver by @kirkbrauer in #268
- revert "fix: clean up listenQueues entry on listener disconnect (#397)" by @ambient-code[bot] in #416
- build(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #411
- build(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #407
- build(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #408
- e2e: dump debug logs on test failure by @ambient-code[bot] in #420
- ci(e2e): run operator e2e on main push, drop helm matrix by @mangelajo in #406
- Add mitmproxy driver for HTTP(S) interception and backend mocking by @kirkbrauer in #254
- feat: show expires at and remaining columns in lease listing by @raballew in #343
- docs: add note about ingress-nginx SSL passthrough requirement by @ambient-code[bot] in #421
- fix: prevent lease assignment to non-ready exporters by @ambient-code[bot] in #426
- build(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #272
- build(deps): bump actions/attest-build-provenance from 1 to 4 by @dependabot[bot] in #279
- test(e2e): use -o name and wc -l for pagination count checks by @ambient-code[bot] in #419
- Restrict operator ClusterRole RBAC on roles/rolebindings by @ambient-code[bot] in #430
- feat: consolidate TLS flags into single --insecure option by @raballew in #333
- fix(shell): block dangerous environment variables by @ambient-code[bot] in #429
- fix(operator): restart controller pods when configmap changes by @ambient-code[bot] in #438
- fix(hooks): display WARNING to client when hook fails with onFailure: warn by @ambient-code[bot] in #442
- docs: add kubeconfig mount to container run examples by @ambient-code[bot] in #437
- fix(deps): update Go dependencies to resolve known CVEs by @raballew in #447
- Convert bats E2E tests to Go + Ginkgo by @ambient-code[bot] in #439
- Fix swapped voltage/current in dutlink power readings by @ambient-code[bot] in #532
- Add server-side Dial retry for transient Available status by @ambient-code[bot] in #440
- Add tests for BLE driver by @ambient-code[bot] in #536
- Fix nginx ingress for e2e tests in kind clusters by @ambient-code[bot] in #534
- ci: parallelize e2e container image and wheel builds by @mangelajo in #539
- Increase Dial retry timeout from 10s to 30s by @ambient-code[bot] in #542
- improve error message in ridesx flashing by @bennyz in #543
- feat: add SOME/IP driver wrapping opensomeip Python binding by @vtz in #391
- Add Renode emulator driver for embedded target simulation by @vtz in #533
- docs/ci: Renode driver listing and conditional macOS Renode install by @mangelajo in #557
- fix(renode): address review follow-ups from PR #533 by @ambient-code[bot] in #558
- build(deps-dev): update sphinxcontrib-programoutput requirement from >=0.18 to >=0.19 in /python by @dependabot[bot] in #554
- build(deps-dev): update requests requirement from >=2.32.3 to >=2.33.1 in /python by @dependabot[bot] in #553
- build(deps-dev): bump ruff from 0.15.8 to 0.15.10 in /python by @dependabot[bot] in #548
- build(deps-dev): update myst-parser requirement from >=4.0.0 to >=5.0.0 in /python by @dependabot[bot] in #550
- build(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #544
- build(deps): bump github.com/cert-manager/cert-manager from 1.18.4 to 1.20.2 in /controller/deploy/operator by @dependabot[bot] in #546
- ci: add quality gates for coverage and type checking by @raballew in #427
- fix: resolve ty type diagnostics and add CI quality gates by @raballew in #568
- Fix exporter deadlock when lease ends before before_lease_hook is set by @ambient-code[bot] in #569
- Update install.sh default source from release-0.7 to release-0.8 by @ambient-code[bot] in #571
- fix: drain remaining PTY data after reader stop on macOS by @raballew in #561
- build(deps): bump astral-sh/ruff-action from 3.6.1 to 4.0.0 by @dependabot[bot] in #552
- build(deps): bump korthout/backport-action from 4.2.0 to 4.3.0 by @dependabot[bot] in #551
- build(deps): bump actions/create-github-app-token from 2.2.1 to 3.1.1 by @dependabot[bot] in #545
- fix(ci): point devcontainers Dependabot entry to correct directory by @raballew in #563
- fix(someip): defer OsipClient creation to first use by @ambient-code[bot] in #595
- build(deps): bump actions/github-script from 8 to 9 by @dependabot[bot] in #591
- build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #590
- build(deps-dev): update sphinxcontrib-mermaid requirement from >=0.9.2 to >=2.0.1 in /python by @dependabot[bot] in #586
- build(deps-dev): update diff-cover requirement from >=9.2.0 to >=10.2.0 in /python by @dependabot[bot] in #588
- Adjust Dependabot CI Impact by grouping PRs and setting PR time by @ambient-code[bot] in #608
- fix: skip afterLease flow when lease has already expired by @raballew in #603
- Fix: log UNIMPLEMENTED gRPC errors from ReportStatus as warning by @ambient-code[bot] in #620
- feat(someip): support static remote endpoint (no Service Discovery) by @vtz in #621
- jumpstarter-driver-gpio: Add read method required by PowerInterface by @anobli in #616
- fix(someip): use opensomeip PyPI release instead of git URL by @ambient-code[bot] in #624
- fix: prevent transfer warning for non-owned leases by @bennyz in #570
- Add Jumpstarter Enhancement Proposal (JEP) process and docs by @kirkbrauer in #423
- fix: replace httpbin.org with local server in mitmproxy passthrough test by @ambient-code[bot] in #633
- feat: add ST-LINK mass storage flasher driver for STM32 boards by @vtz in #635
- qemu: add OCI flashing to qemu driver by @bennyz in #555
- feat: add tags field to lease, to allow user set metadata by @bennyz in #622
- feat: add DUT network isolation driver by @mangelajo in #642
- oci: support existing OCI credentials by @bennyz in #649
- fix: address PR #642 review follow-ups for dut-network driver by @mangelajo in #653
- fix: guard beforeLease hook from setting LEASE_READY after lease expiry by @raballew in #655
- JEP-0013: Metrics, Tracing, and Log Observability by @mangelajo in #631
- JEP-0011: Protobuf Introspection and Interface Generation by @kirkbrauer in #565
- fix(iscsi): block device allowlist confinement by @ambient-code[bot] in #432
- fix(container): add procps-ng for sysctl in dut-network driver by @ambient-code[bot] in #670
- fix(dut-network): make add_ip_alias idempotent by @ambient-code[bot] in #669
- feat(dut-network): allow 1:1 NAT mappings without MAC address by @ambient-code[bot] in #671
- feat(dut-network): add local NTP responder support by @ambient-code[bot] in #673
- fix(dut-network): use renamed 'addresses' param in test_ntp.py by @ambient-code[bot] in #676
- fix: release serial port before ESP32 flash to prevent port-locked errors by @ambient-code[bot] in #661
- feat(dut-network): allow DNS hostnames in public_ip field by @ambient-code[bot] in #672
- dut-network: add tcpdump streaming support by @ambient-code[bot] in #674
- dut-network: enable dhcp-sequential-ip in dnsmasq by default by @ambient-code[bot] in #677
- fix: preserve percent-encoding in presigned URLs to prevent signature invalidation by @bennyz in #662
- fix: remove Helm charts and standardize on operator-based deployment by @raballew in #448
- chore: remove obsolete migration script and leftover poetry.lock by @raballew in #683
- chore: enable ruff ERA rule to catch commented-out code by @raballew in #684
- fix: detect original_url before operator guard to fix encoding with explicit operators by @bennyz in #678
- fix: clean up dut-network state dir on close by @ambient-code[bot] in #688
- feat(dut-network): add egress and ingress traffic filtering by @ambient-code[bot] in #686
- fix: detect exporter rapid failure loop and exit for container restart by @ambient-code[bot] in #691
- feat: add internal token rotation for clients by @bennyz in #695
- docs: consolidate and improve documentation across the repository by @raballew in #693
- fix: fix ridesx local path upload by @bennyz in #699
- fix: small fixes batch (#516, #525, #652, #517) by @raballew in #681
- feat(docs): self-host asciinema player to remove branding by @raballew in #705
- docs: add gRPC protocol reference and consistent field descriptions by @raballew in #703
- docs: align README and docs landing page with org profile by @raballew in #706
- docs: fix README link titles and CRDs ToC in multiversion build by @raballew in #702
- fix: preserve URL query parameters in storage flash for signed URLs by @ambient-code[bot] in #435
- fix: remove unreliable energenie.com link to prevent flaky CI by @raballew in #707
- ci: skip e2e and python tests for docs-only changes by @raballew in #708
- Add jumpstarter-driver-ssh-mount package for remote filesystem mounting by @ambient-code[bot] in #434
- oci: add OciCredentials model and harden credential resolution by @ambient-code[bot] in #709
- fix: serialize Dial/Listen queue handoff to prevent router token loss by @raballew in #573
- fix: set default resource requests/limits for controller and router pods by @ambient-code[bot] in #714
- fix(someip): fail fast when opensomeip native extension is unavailable by @vtz in #629
- Update opensomeip dependency to 0.1.5 by @vtz in #716
- fix: retry Dial and StatusMonitor poll on transient UNAVAILABLE by @raballew in #606
- feat: default exporter configs to ~/.config/jumpstarter by @mmahut in #712
- ci: make linkcheck job non-blocking for PRs by @raballew in #729
- ci: extract e2e artifact loading into a reusable composite action by @raballew in #731
- Remove opendal dependency from QEMU driver by @ambient-code[bot] in #535
- fix: guard DurationParamType against OverflowError on large values by @raballew in #722
- fix: use select() in PTY drain loop to prevent output loss on macOS (#733) by @ambient-code[bot] in #734
- ci: collect controller, router and exporter logs from e2e runs by @raballew in #730
- fix: include exporter/client name and namespace in auth error messages by @raballew in #726
- fix: raise TypeError in V1Alpha1Lease.from_dict for non-dict spec by @raballew in #723
- fix: deduplicate NotIn values in ParseLabelSelector by @raballew in #741
- Replace Dependabot with Renovate for cross-ecosystem dependency grouping by @raballew in #745
- fix: pin uv container image and fix docs substitutions by @raballew in #749
- fix: HttpServer.close() properly releases port on cleanup by @ambient-code[bot] in #740
- feat: expose gRPC health checking protocol on the controller by @ambient-code[bot] in #747
- chore(deps): update github-actions-official (major) by @renovate[bot] in #767
- chore(deps): update python-dev-tools by @renovate[bot] in #758
- chore(deps): update github-actions-astral to v8 by @renovate[bot] in #766
- feat: make INSTALL_DIR and VENV_DIR configurable via environment variables by @pypingou in #771
- chore(deps): update python-dev-tools to v9 by @renovate[bot] in #769
- fix(deps): update dependency semver to v3 by @renovate[bot] in #770
- fix: consolidate Renovate Go groups and restrict Fedora to stable by @raballew in #773
- chore(deps): update github-actions-other to v4 by @renovate[bot] in #768
- fix(deps): update dependency pysnmp to v7.1.27 by @renovate[bot] in #759
- fix: restrict Fedora to stable and create go-toolchain group by @raballew in #777
- chore(deps): update go-toolchain by @renovate[bot] in #779
- fix: remove stale e2e section from README by @raballew in #752
- chore(deps): update github-actions-other by @renovate[bot] in #760
- chore(deps): pin dependencies by @renovate[bot] in #754
- chore(deps): update github-actions-astral to v0.11.20 by @renovate[bot] in #783
- fix: use {doc} role for symlinked doc references for Sphinx 8.2 by @raballew in #778
- fix: skip uninstalled child drivers in composite CLI by @mangelajo in #785
- feat: add jumpstarter-driver-obd for OBD-II vehicle diagnostics by @mmahut in #789
- chore(deps): update python-dev-tools to v0.15.17 by @renovate[bot] in #793
- chore(deps): update github-actions-astral to v0.11.21 by @renovate[bot] in #792
- fix: drop container image digest pinning, unify uv version, bump Fedora to 44 by @raballew in #781
- fix: construct image URL after HTTP server starts by @bennyz in #797
- chore(deps): update docker-base-images to v10 by @renovate[bot] in #765
- chore(deps): update docker-base-images by @renovate[bot] in #753
- fix(renovate): drop extractVersionTemplate for uv github-releases by @raballew in #802
- fix(renovate): sync Go versions via go-toolset and merge into kubernetes group by @raballew in #801
- chore(deps): pin dependencies by @renovate[bot] in #755
- chore(deps): update uv-toolchain to v0.11.21 by @renovate[bot] in #799
- feat: add description field to access policy rules by @bennyz in #803
- fix(renovate): enable gomodTidy for Go dependency PRs by @raballew in #805
- fix(renovate): store exact Python version, migrate devfile images to uv by @raballew in #804
- fix(renovate): disable digest pinning for devfile base-developer-image by @raballew in #807
- Add exporter context env vars to jmp shell and env_with_metadata() helper by @mangelajo in #291
- ci: move linkcheck to weekly scheduled workflow by @mangelajo in #813
- flashers: add default CA to be inject into flashing command by @bennyz in #742
- feat: driver/sdwire: support unprogrammed FT200X EEPROM + macOS storage/mux fixes by @mmahut in #748
- chore(deps): update python-dev-tools to v0.15.18 by @renovate[bot] in #816
- CI: per-package test logs, parallel runs, and uboot OOM fix by @mangelajo in #815
- feat: add Secret/ConfigMap references for JWT CA certificates by @bkhizgiy in #772
- fix(container): pin UV binary to build platform in cross-compilation stages by @raballew in #819
- chore(deps): update uv-toolchain to v0.11.23 by @renovate[bot] in #817
- chore(deps): update github-actions-official (major) by @renovate[bot] in #818
- docs(jep-0014): simplified virtual exporter design by @mangelajo in #744
- fix(ci): use merge commit ref in backport workflow for fork PRs by @raballew in #820
- fix(controller): fix Containerfile build with rootless Podman by @mangelajo in #822
- fix(ble): fix race condition in test_ble_driver_connect_stream by @mangelajo in #825
- fix(hooks): release lease when beforeLease hook fails with onFailure=endLease by @mangelajo in #823
- fix: retry PTY drain on empty select() to prevent data loss on macOS by @mangelajo in #826
- ci: reduce PR test matrix, run full matrix in merge queue by @mangelajo in #830
- fix: use shared uv cache for package tests by @mangelajo in #832
- ci: stop re-running validation workflows on push to main by @mangelajo in #834
- update fls to 0.3.0 by @bennyz in #838
- feat: parse power measurements in http-power and add a power read CLI command by @mmahut in #790
- use 0.3.0 default for CLI by @bennyz in #839
- test: mark PTY-dependent hooks tests as xfail on macOS (#821) by @mangelajo in #836
- fix: retry connection when exporter is temporarily unavailable by @evakhoni in #829
New Contributors
- @ambient-code[bot] made their first contribution in #404
- @anobli made their first contribution in #616
- @mmahut made their first contribution in #712
- @renovate[bot] made their first contribution in #767
- @pypingou made their first contribution in #771
Full Changelog: v0.8.1...v0.9.0-rc.1