Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
d993827
Initial commit
eclipse-score-bot May 6, 2025
fc327b6
orchestrator: add template
dcalavrezo-qorix May 6, 2025
6423e5f
initial: create pull_request_template.md
pawelrutkaq May 15, 2025
fdf038d
initial: adapt to score process & quality checks
pawelrutkaq May 16, 2025
6e6f376
ut: fix ut for trigger queue
pawelrutkaq May 19, 2025
ec49bec
tooling: licensing
pawelrutkaq May 19, 2025
bb30523
orch: Implement creation of Tag from string.
prabakaranklst May 15, 2025
59ac128
refactor: Split testing structs from lib.rs
hanky-qorix May 16, 2025
428cdad
testing: Add MockFn to testing
hanky-qorix May 16, 2025
784d57e
orch: Implement OrchestrationTag
prabakaranklst May 20, 2025
57eb3f1
orch: reusable objects poll
pawelrutkaq May 16, 2025
8442a86
runtime: spsc channel
pawelrutkaq May 19, 2025
27c3f21
runtime: fix channel bugs
pawelrutkaq May 26, 2025
7a2db86
async_runtime: Add thread configuration
poeschel May 7, 2025
b221c66
async_runtime: Add stop functionality to DedicatedWorker
poeschel May 20, 2025
a96839b
runtime: safety wakeup with seperate API
pawelrutkaq May 21, 2025
dcefd54
runtime: Fix typos in reusable_box_future
hanky-qorix May 19, 2025
0d8ad36
foundation: Make CommonErrors enum clonable
hanky-qorix May 26, 2025
9900563
testing: Rename mock.rs to mock_fn.rs
hanky-qorix May 26, 2025
fcee8b9
testing: Add MockAction to testing
hanky-qorix May 26, 2025
967266d
testing: Improve call count handling in MockFn
hanky-qorix May 26, 2025
76604f9
foundation: Implement reusable vector pool.
prabakaranklst May 28, 2025
49496de
foundation: thread barrier off by one error
pawelrutkaq May 28, 2025
fde3622
runtime: spmc channel
pawelrutkaq May 19, 2025
8447724
testing: create mock api for runtime
pawelrutkaq Jun 3, 2025
09022b1
orch: orchestration API
pawelrutkaq Jun 5, 2025
7e3597a
dash: fix license-check
dcalavrezo-qorix Jun 9, 2025
aa837cc
orch: Implement concurrency action
prabakaranklst Jun 2, 2025
d9865bb
testing: Fix times handling and add ReusableObjectTrait impl
hanky-qorix Jun 7, 2025
e5ca93b
infra: Update gitlint message
nicu1989 Jun 16, 2025
af83bd3
runtime: Runtime sporadically do not spawn task
prabakaranklst Jun 12, 2025
fb881d9
orch: Implemented the new invoke action.
maciejbacalext Jun 5, 2025
74eb73b
testing: Add Component Integration Tests
PiotrKorkus Jun 16, 2025
dea2a4b
orch: basic orch try lock
pawelrutkaq Jun 13, 2025
3b587ee
async_runtime: Add ability to properly shut down and retrieve result
poeschel May 27, 2025
2da303e
ci: Change tarpaulin to nightly, verbose, llvm engine
poeschel Jun 11, 2025
2a4e8b4
runtime: Add remove functions for iceoryx Vec
prabakaranklst Jun 17, 2025
7e88daf
runtime: Modify return type of remove functions to Option
prabakaranklst Jun 17, 2025
ecef19f
testing: Adjust tests for new API
igorostrowskiq Jun 17, 2025
a62a9b4
testing: Add WA with sleep at the end of the test
igorostrowskiq Jun 17, 2025
d623615
cicd: use repo vars to select runners
dcalavrezo-qorix Jun 19, 2025
d9c3bcb
cicd: add env
dcalavrezo-qorix Jun 19, 2025
e8ac329
runtime: fix lost wakeup race when stopping worker threads
poeschel Jun 18, 2025
8a0d39c
runtime: TimeWheel base implementation
pawelrutkaq Jun 11, 2025
6cdd301
infra: add template for a bug report
PiotrKorkus Jun 17, 2025
2f2edbe
testing: Use generic ResultEntry class for results
igorostrowskiq Jun 16, 2025
14308ca
testing: Version testing_tools dependency
igorostrowskiq Jun 17, 2025
cc12299
testing: Reintroduce synchronization within async context
igorostrowskiq Jun 18, 2025
07aac02
Revert "testing: Add WA with sleep at the end of the test"
igorostrowskiq Jun 18, 2025
0e36a82
testing: add cmd to build rust scenarios
PiotrKorkus Jun 23, 2025
fd160b9
testing: setup config files
PiotrKorkus Jun 24, 2025
c90ebef
orch: create event infrastructure
pawelrutkaq May 26, 2025
f23d205
testing: fix build scenarios
PiotrKorkus Jun 25, 2025
6c5b7f6
infra: Prefetch dependencies for Miri before running tests
nicu1989 Jun 25, 2025
ce30838
orch: example catch & local event programs
pawelrutkaq Jun 19, 2025
19365f5
infra: Pin tools versions in workflow
nicu1989 Jun 26, 2025
241a53c
orch: Port component integration tests
prabakaranklst Jun 27, 2025
a34b7ce
testing: use monotonic clock for timestamps
PiotrKorkus Jun 27, 2025
adf8ac9
testing: use scenarios instead of tests for the Rust part
igorostrowskiq Jun 25, 2025
0738602
testing: Update tests for the new get_logs_by_field impl
igorostrowskiq Jun 30, 2025
ecc55a4
testing: Hide scenario group in the module
igorostrowskiq Jun 30, 2025
82f41dc
testing: refactor orchestration tests
PiotrKorkus Jun 30, 2025
d9f7698
testing: add bazel build for test scenarios
PiotrKorkus Jul 1, 2025
dad1db4
cicd: add component integration tests
PiotrKorkus Jul 2, 2025
36d3386
runtime: integrate timewheel
pawelrutkaq Jun 19, 2025
c2352bd
runtime: fix sleeping when runtime was blocked and timeouts are in past
pawelrutkaq Jun 24, 2025
c995c79
runtime: make sleep more precise
pawelrutkaq Jun 25, 2025
eca71d2
orch: Modify conditional compilation for runtime-api-mock
prabakaranklst Jul 8, 2025
dc0a4c4
orch: improve setup in README.md
arkjedrz Jul 8, 2025
bca26d3
testing: Add tests for orchestration trigger and sync
igorostrowskiq Jul 8, 2025
09dfe0f
orch: improve instructions and Bazel targets
arkjedrz Jul 9, 2025
e3f39be
orch: Support startup and shutdown hooks
maciejbacalext Jul 8, 2025
e796571
runtime: fix shutdown behaviour
pawelrutkaq Jul 10, 2025
d94c99a
testing: Add runtime tests for sleep
igorostrowskiq Jul 8, 2025
ae8beba
maintenance: Replace std with core
pawelrutkaq Jul 15, 2025
01e7cd7
orch: Make mock runtime work with recursive async.
maciejbacalext Jul 14, 2025
3cc2dc6
runtime: Make check of global queue cooperative
pawelrutkaq Jul 11, 2025
e5ebacf
deps: update iceoryx2
pawelrutkaq Jul 16, 2025
1460c2d
quality: enforce core over std via clippy
pawelrutkaq Jul 15, 2025
0b0f150
testing: use reworked testing-utils implementation
arkjedrz Jul 16, 2025
5cc35cd
bugfix: #170 fixing engine builder input params
pawelrutkaq Jul 16, 2025
b30c46d
testing: tests for queue overflow
arkjedrz Jul 16, 2025
b160afc
testing: ExecutionEngineBuilder params tests
arkjedrz Jul 16, 2025
fbe7275
testing: use testing-utils v0.1.1
arkjedrz Jul 17, 2025
763c44c
testing: use value instead of pattern where applicable
arkjedrz Jul 18, 2025
8b3b8b4
logging: Improve design/deploy logging
pawelrutkaq Jul 15, 2025
e3b853a
testing: ExecutionEngineBuilder params tests update
arkjedrz Jul 18, 2025
c8cbf8f
testing: add listing scenarios, default value
PiotrKorkus Jul 18, 2025
ad56768
testing: add CIT debug config
PiotrKorkus Jul 18, 2025
7439e3d
testing: improve failure messages
PiotrKorkus Jul 18, 2025
0f27b3f
logging: add metering to programs
pawelrutkaq Jul 17, 2025
aa46470
orch: Improve shutdown behavior
maciejbacalext Jul 18, 2025
da94142
testing: single RT, multiple exec engine tests
arkjedrz Jul 16, 2025
fb92c1a
testing: improved trace print
arkjedrz Jul 23, 2025
1a939a3
testing: Add second user input for the debug config
igorostrowskiq Jul 23, 2025
c0ca107
example: Camera and obj detection with C++ functions
prabakaranklst Jul 18, 2025
208ae9e
example: Add orchestration macros for FFI
prabakaranklst Jul 24, 2025
4f6cb93
orch: Implement the IfElse action
maciejbacalext Jul 23, 2025
56ea356
testing: allow SIGKILL on queue overflow
arkjedrz Jul 30, 2025
5e15870
io: ReadBuf for handling OS read calls
pawelrutkaq Jul 30, 2025
c1a1b6b
review: Fix overflows and UB
pawelrutkaq Jul 30, 2025
76cb27e
testing: refactor imports
PiotrKorkus Aug 1, 2025
a0c2a2b
testing: add bazel for python test cases
PiotrKorkus Aug 1, 2025
78dfa7b
infra: Increase cargo job timeout
nicu1989 Aug 5, 2025
abd5add
foundation: Add an intrusive linked list
maciejbacalext Jul 31, 2025
5c37ba3
dash: Remove local crates from dash check
nicu1989 Aug 14, 2025
a11d2ff
orch: Handle thread spawn error
prabakaranklst Aug 14, 2025
3095d44
orch: Support for separate thread params for dedicated worker
prabakaranklst Aug 20, 2025
444ce42
miri: clear miri cache
dcalavrezo-qorix Aug 21, 2025
45d4bac
testing: update testing-utils to 0.2.0
arkjedrz Jul 29, 2025
264363c
runtime: Update local storage size computation
prabakaranklst Aug 21, 2025
dcd349c
testing: Add tests for orchestration catch block
igorostrowskiq Jul 17, 2025
0e1e39e
runtime: make default channel size public
igorostrowskiq Aug 20, 2025
2a38c18
testing: add tests for spsc channel
igorostrowskiq Aug 20, 2025
e7df49b
runtime: Disable inheritance of thread attr if configured
prabakaranklst Aug 25, 2025
b9c3b0f
cicd: add nightly tests
PiotrKorkus Aug 6, 2025
93928e3
cicd: Update nightly tests and bazel caching
nicu1989 Aug 25, 2025
f620759
runtime: TimeWheel hangs on resleep
pawelrutkaq Aug 22, 2025
f285e71
testing: add num workers test
arkjedrz Aug 26, 2025
05417f0
runtime: Upgrade to newer iceoryx2 revision
prabakaranklst Aug 26, 2025
ef52bc8
orch: Initial mio implementation
pawelrutkaq Jul 21, 2025
2002424
testing: fix num workers test flakiness
arkjedrz Aug 27, 2025
3726191
testing: num workers tests - CV-based
arkjedrz Aug 27, 2025
8cd1966
gitlint: Use gitlint from score
nicu1989 Aug 28, 2025
9663b3a
infra: increase bazel timeout in nightly
PiotrKorkus Aug 28, 2025
70ccaae
testing: Upgrade testing-utils to version 2.0.1
igorostrowskiq Aug 29, 2025
42fde84
runtime: connect MIO to async world
pawelrutkaq Jul 21, 2025
28ab934
runtime: provide more documentation and intents
pawelrutkaq Aug 28, 2025
561afc7
runtime: fix review findings for async mio
pawelrutkaq Aug 29, 2025
40321da
testing: thread affinity test
arkjedrz Aug 27, 2025
e32b0fb
testing: add tests for program run
PiotrKorkus Aug 22, 2025
d5bb09c
runtime: IO integration into workers
pawelrutkaq Aug 25, 2025
f7fa8e8
runtime: cleanup syntax & safety
pawelrutkaq Sep 2, 2025
b0305cf
foundation: Introduce loom-like wrappers for UnsafeCell pointers
Sep 3, 2025
88a8065
foundation: Wrap linked list pointers in UnsafeCell
Sep 3, 2025
86573af
foundation: Safety requirements for linked list
Sep 1, 2025
75f6f1b
Fix Rust version to 1.85
Sep 3, 2025
8607179
testing: bump 'testing-utils' to v0.2.2
arkjedrz Sep 3, 2025
5d8e2ec
mio: fix missing-notifications on CV
pawelrutkaq Sep 4, 2025
8e24be1
testing: remove unreliable time check
PiotrKorkus Sep 4, 2025
1b2fbcf
runtime: implement basic net layer
pawelrutkaq Sep 2, 2025
63103e6
testing: disable flaky timing test
PiotrKorkus Sep 5, 2025
4d6f6b6
testing: Fix rust scenario repro message
igorostrowskiq Aug 28, 2025
71c9f20
testing: Add tests for spmc broadcast channel
igorostrowskiq Aug 21, 2025
89d001c
testing: split spsc and spmc_broadcast scenarios
igorostrowskiq Sep 5, 2025
777f306
testing: apply clippy fixes to tests
arkjedrz Sep 8, 2025
d323a7f
testing: env var for rust debug, bazel command
PiotrKorkus Sep 9, 2025
67b4262
testing: improve test scenarios error handling
arkjedrz Sep 8, 2025
a7f63ab
runtime: async support for iceoryx2 events
pawelrutkaq Aug 27, 2025
5dc404d
orch: Qnx build
Aug 11, 2025
72b86f5
runtime: Limit spmc channel max receivers
prabakaranklst Sep 10, 2025
914f9c0
testing: Add one line test runner with venv handling
igorostrowskiq Sep 9, 2025
305a576
testing: thread priority test
arkjedrz Sep 10, 2025
9949335
orch: Add an async select macro
maciejbacalext Sep 5, 2025
1cebf21
orch: Make the select macro work with async functions and closuers
maciejbacalext Sep 15, 2025
80a4ece
testing: Add bash wrapper for the test runner script
igorostrowskiq Sep 11, 2025
b542c9f
impl: enable `--all-features --all-targets` for `cargo clippy`
arkjedrz Sep 9, 2025
08a5f7d
runtime: Fix spmc subscribers count and channel reuse
prabakaranklst Sep 12, 2025
36c7b6f
mio: fix internal waker reported as event
pawelrutkaq Sep 17, 2025
297a93f
testing: fix pytest collection
PiotrKorkus Sep 18, 2025
6fbb5d6
testing: test for tcp server
PiotrKorkus Sep 15, 2025
efdcb12
testing: Runtime scenario rework
igorostrowskiq Sep 13, 2025
f235890
testing: `TcpStream` basic tests
arkjedrz Sep 23, 2025
5287e5e
runtime: Create main macro
prabakaranklst Sep 24, 2025
7c3519f
runtime: Do not send data to unsubscribed receiver
prabakaranklst Sep 20, 2025
76eef2f
testing: add demo scenario
PiotrKorkus Sep 25, 2025
cc48f9b
testing: `TcpStream` TTL tests
arkjedrz Sep 25, 2025
a53bb09
testing: Extend CitRuntimeScenario features
igorostrowskiq Sep 19, 2025
8110a6e
testing: tighter `clippy` and fixes
arkjedrz Sep 29, 2025
b5bf07c
testing: great amount of short sleeps
PiotrKorkus Sep 25, 2025
4e64696
testing: `TcpListener` tests
arkjedrz Sep 30, 2025
d853fd2
testing: rework `Runtime` and input strings
arkjedrz Sep 29, 2025
d04bf6f
bazel: Use register llvm with dev_dependecy
nicu1989 Oct 2, 2025
42260d7
testing: dedicated worker initial tests
arkjedrz Oct 3, 2025
1bf8d22
testing: dedicated worker thread params
arkjedrz Oct 3, 2025
3cc5e05
testing: skip thread prio tests in WSL
PiotrKorkus Oct 7, 2025
6bcc336
testing: add rules for ruff
PiotrKorkus Oct 8, 2025
1ab8b87
testing: move `cap_utils` to `testing_utils`
arkjedrz Oct 9, 2025
a85fef2
testing: fix venv existence check
PiotrKorkus Oct 13, 2025
e15eebe
doc: add feature status
pawelrutkaq Oct 14, 2025
5652c83
Runtime: Added a blanket AsyncWrite and AyncWriteExt implementations.
maciejbacalext Oct 4, 2025
2571375
testing: skip flaky tests
PiotrKorkus Oct 14, 2025
aac7b98
testing: use `AsyncWriteExt` trait
PiotrKorkus Oct 14, 2025
840a0f0
runtime: Make entry point accept return type as <T>
pawelrutkaq Oct 9, 2025
1ab77a8
testing: mixed regular and dedicated worker tests
arkjedrz Oct 8, 2025
b89e30c
logging: make perfetto optional feature
pawelrutkaq Oct 16, 2025
1fa9835
runtime: add option to enable VM timer correction
pawelrutkaq Oct 16, 2025
2cc1fae
testing: multiple tasks to a single dedicated worker tests
arkjedrz Oct 14, 2025
62c75bd
runtime: Rework use import structure
pawelrutkaq Oct 14, 2025
2714605
testing: fix fixture setup/teardown order
PiotrKorkus Oct 17, 2025
145b7e4
testing: Add UDP tests
igorostrowskiq Oct 2, 2025
6b422f4
testing: Group TCP and UDP tests in 'net' dir
igorostrowskiq Oct 16, 2025
8f152a3
testing: refactor delay checks
PiotrKorkus Oct 20, 2025
0cdfb10
testing: enable test logs on failures
PiotrKorkus Oct 20, 2025
ea4cc62
deps: uplift iceoryx2
pawelrutkaq Oct 23, 2025
3822971
runtime: fix sporadic parking issues
pawelrutkaq Oct 24, 2025
1541bbd
runtime: correct time support for VM
pawelrutkaq Oct 24, 2025
80066bf
orch: Implement graph action
prabakaranklst Oct 10, 2025
7126a43
testing: add TCP tests for poll read and write
PiotrKorkus Oct 22, 2025
5c720f7
testing: More robust sleep tests
igorostrowskiq Oct 20, 2025
3a95845
testing: More robust program_runs tests
igorostrowskiq Oct 24, 2025
db95020
qnx8: support QNX8 builds
pawelrutkaq Oct 27, 2025
b9055c8
Add more examples
pawelrutkaq Oct 29, 2025
9517a45
Update .bazelrc
nicu1989 Oct 28, 2025
ae35b39
Update build.yml
nicu1989 Oct 28, 2025
2435308
bazel: bring back correct build for host
pawelrutkaq Oct 29, 2025
7ed0010
qnx8: make virtualization setup
pawelrutkaq Oct 30, 2025
6284d08
renaming: rename Cargo.toml and dirs to kyron
pawelrutkaq Oct 30, 2025
b129172
renaming: rename code uses
pawelrutkaq Oct 30, 2025
e10a8f9
rename: rename runtime builder name
pawelrutkaq Oct 30, 2025
0d6ce7e
rename: rename foundation
pawelrutkaq Oct 30, 2025
460f993
rename: rename usage of foundation in code
pawelrutkaq Oct 30, 2025
d22510f
rename: fix bazel & typos
pawelrutkaq Oct 30, 2025
db11fce
rename:align naming to use rust patterns for crates
pawelrutkaq Oct 31, 2025
26d97c3
infra: increase bazel timeout
PiotrKorkus Nov 3, 2025
b46f73d
repo: improve BAZEL and doc setup
pawelrutkaq Oct 31, 2025
1c6f31f
repo: update information
pawelrutkaq Nov 3, 2025
d6b5789
doc: improve informations
pawelrutkaq Nov 3, 2025
9e63e41
testing: fix CIT python setup in bazel
pawelrutkaq Nov 4, 2025
be36dc8
repo: fix dev deps & link issues
pawelrutkaq Nov 5, 2025
2411b6b
repo: Update virtualization
pawelrutkaq Nov 5, 2025
257147b
bazel: update version
pawelrutkaq Nov 5, 2025
316984b
Enable docs CI
nicu1989 Nov 6, 2025
0f41e04
Update .bazelversion
nicu1989 Nov 10, 2025
85bbfb0
kyron: remove spamming log
pawelrutkaq Nov 14, 2025
c264585
testing: fix bug in ded workers affinity tests
arkjedrz Nov 16, 2025
3a57c23
copyright: Add missing copyright info
nicu1989 Oct 16, 2025
f129a1b
orch: Add the select action
maciejbacalext Sep 12, 2025
f0d9a24
testing: Improve MockFn and MockAction
prabakaranklst Nov 4, 2025
88d086b
testing: fix start influencing iterations
PiotrKorkus Nov 24, 2025
2181424
logging: make logging configurable
pawelrutkaq Nov 24, 2025
86333f7
testing: Add safety worker tests
igorostrowskiq Nov 17, 2025
23f6e0e
repo: align patches to newest state
pawelrutkaq Dec 2, 2025
b190ccb
migration: fix cargo builds
pawelrutkaq Dec 3, 2025
89bb316
migration: fix bazel build
pawelrutkaq Dec 3, 2025
2a4ebb5
migration: fix component integration tests
PiotrKorkus Dec 3, 2025
6b55cae
migration: cleanup orchestrator leftover
pawelrutkaq Dec 4, 2025
6d38757
Merge branch 'main' into pawelrutkaq_import_from_orchestrator
pawelrutkaq Dec 4, 2025
50f9b24
migration: align formatting
pawelrutkaq Dec 4, 2025
ead8019
migration: fix warnings
pawelrutkaq Dec 4, 2025
3894aeb
migration: cleanup orch leftovers
PiotrKorkus Dec 4, 2025
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
3 changes: 3 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ test --test_output=errors

common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/
common --registry=https://bcr.bazel.build
common --credential_helper=*.qnx.com=%workspace%/scripts/internal/qnx_creds.py

build:build_qnx8 --platforms=@score_toolchains_rust//platforms:aarch64-unknown-qnx8_0
7 changes: 7 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[build]
rustflags = ["-D", "warnings"] # treat compiler warnings as errors


[alias]
xtask = "run -p xtask --"
build_with_log = "build -p kyron --no-default-features --features log"
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Bug report
about: Create a report for a bug
title: 'Bug: Your bug title'
labels: 'bug'
assignees: ''

---

### Describe the bug:
<!-- A clear and concise description of what the bug is. -->

### Steps to reproduce the behavior:
1.
2.

### Observed behavior:

### Expected behavior

### Occurrence:
<!-- Sporadic / Always -->

### Attachments / Logs:
52 changes: 52 additions & 0 deletions .github/actions/setup-rust-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
name: 'Setup Rust Build Environment'
description: 'Checks out code, installs protoc, and caches cargo dependencies'

inputs:
repo-token:
description: 'GitHub token for protoc downloads'
required: true


runs:
using: "composite"
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Install protoc 26.1
uses: arduino/setup-protoc@v3
with:
version: 26.1
repo-token: ${{ inputs.repo-token }}

- name: Cache cargo & target
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
~/.cargo/bin
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Install cargo-tarpaulin if not already installed
run: |
if ! command -v cargo-tarpaulin > /dev/null; then
cargo install cargo-tarpaulin --version 0.32.7 --locked
else
echo "cargo-tarpaulin is already installed"
fi
shell: bash
33 changes: 33 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!-- markdownlint-disable MD013 Line breaks on the bullet list lines are also present on the github renderer, therefore no line length limitation -->
<!-- markdownlint-disable MD041 On the github PR template we want to start with '## Headline' -->

## Notes for Reviewer
<!-- Items in addition to the checklist below that the reviewer should look for -->

## Pre-Review Checklist for the PR Author

* [ ] PR title is short, expressive and meaningful
* [ ] Commits are properly organized
* [ ] Relevant issues are linked in the [References](#references) section
* [ ] Tests are conducted
* [ ] Unit tests are added

## Checklist for the PR Reviewer

* [ ] Commits are properly organized and messages are according to the guideline
* [ ] Unit tests have been written for new behavior
* [ ] Public API is documented
* [ ] PR title describes the changes

## Post-review Checklist for the PR Author

* [ ] All open points are addressed and tracked via issues

## References

<!-- Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue. -->

Closes # <!-- Add issue number after '#' -->

<!-- markdownlint-enable MD041 -->
<!-- markdownlint-enable MD013 -->
70 changes: 70 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
name: Bazel Build

on:
pull_request:
types: [opened, reopened, synchronize]
merge_group:
types: [checks_requested]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCORE_QNX_USER: ${{ secrets.SCORE_QNX_USER }}
SCORE_QNX_PASSWORD: ${{ secrets.SCORE_QNX_PASSWORD }}
SCORE_QNX_LICENSE: ${{ secrets.SCORE_QNX_LICENSE }}
jobs:
build:
name: Build Bazel Code
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
steps:
- name: Checkout code
uses: actions/checkout@v4.2.2

- name: Install protoc 26.1
uses: arduino/setup-protoc@v3
with:
version: 26.1
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup Bazel
uses: bazel-contrib/setup-bazel@0.15.0
with:
bazelisk-version: 1.26.0 # newest LTS before 1 Jun 2025
disk-cache: true
repository-cache: true
bazelisk-cache: true

- name: Bazel info (discover paths)
id: bazel-info
run: |
echo "BAZEL_OUTPUT_BASE=$(bazel info output_base)" >> $GITHUB_ENV
echo "BAZEL_USER_ROOT=$(bazel info output_user_root)" >> $GITHUB_ENV
echo "BAZEL_REPO_CACHE=$(bazel info repository_cache)" >> $GITHUB_ENV
bazel info

- name: Cache Bazel output base
uses: actions/cache@v4
with:
path: |
${{ env.BAZEL_OUTPUT_BASE }}/action_cache
${{ env.BAZEL_OUTPUT_BASE }}/bazel-out
${{ env.BAZEL_OUTPUT_BASE }}/external
${{ env.BAZEL_OUTPUT_BASE }}/execroot
key: bazel-ob-v2-${{ runner.os }}-${{ hashFiles('.bazelversion', 'MODULE.bazel', 'MODULE.bazel.lock', '**/*.bzl', 'Cargo.lock') }}
restore-keys: |
bazel-ob-v2-${{ runner.os }}-

- name: Build with Bazel
run: |
bazel build //...
100 changes: 100 additions & 0 deletions .github/workflows/cargo_required.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
name: cargo build, test, coverage and miri report

on:
push:
branches: [main, development]
pull_request:
branches: [main, development]
types: [opened, ready_for_review, reopened, synchronize]

env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
cargo-checks:
#permissions for docs deployment
permissions:
contents: write
pages: write
id-token: write
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
timeout-minutes: 45 # minutes is the maximum allowed for a cold run
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Setup Rust Build Environment
uses: ./.github/actions/setup-rust-build
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

# ---------- BUILD ----------
- name: Cargo build
run: cargo build --verbose

# ---------- TARPAULIN(TEST + COVERAGE) ----------
- name: Run tests under coverage
run: cargo +nightly tarpaulin --version 0.32.7 --skip-clean --out Html --verbose --no-dead-code --engine llvm --all-features

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: tarpaulin-report.html

# ---------- MIRI ----------
- name: Install nightly + miri (minimal profile)
uses: actions-rs/toolchain@v1
if: github.event.pull_request.draft == false
with:
toolchain: nightly-2025-05-30
profile: minimal
components: miri
override: true

- name: Prefetch crates for nightly
if: github.event.pull_request.draft == false
run: cargo +nightly-2025-05-30 fetch --locked

- name: Purge Miri artifacts
if: github.event.pull_request.draft == false
run: |
rm -rf target/miri
rm -rf ~/.cache/miri

- name: Prefetch and build dependencies for Miri
if: github.event.pull_request.draft == false
run: cargo +nightly-2025-05-30 miri setup

- name: Run Miri and save report
if: github.event.pull_request.draft == false
env:
CARGO_INCREMENTAL: "0" # turn off incremental
run: |
set -o pipefail
cargo +nightly-2025-05-30 miri test --workspace \
-- --skip test_mt_one_pop_one_stealer \
--skip test_mt_one_push_mpmc_one_stealer \
--skip test_one_producer_multi_stealer_mt_thread \
--skip test_one_producer_one_stealer_mt_thread \
2>&1 | tee miri_report.txt

# ---------- LOOM ----------
- name: Run Atomic tests with LOOM
if: github.event.pull_request.draft == false
run: |
set -o pipefail
cargo xtask build:loom
75 changes: 75 additions & 0 deletions .github/workflows/component_integration_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
name: Component Integration Tests

on:
push:
branches: [main, development]
pull_request:
branches: [main, development]
types: [opened, ready_for_review, reopened, synchronize]
schedule:
- cron: '45 1 * * *' # This runs every day at 1:45 UTC

env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
component-integration-tests:
permissions:
contents: read
runs-on: ${{ vars.REPO_RUNNER_LABELS && fromJSON(vars.REPO_RUNNER_LABELS) || 'ubuntu-latest' }}
defaults:
run:
shell: bash
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Rust Build Environment
uses: ./.github/actions/setup-rust-build
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Build Rust test scenarios
working-directory: component_integration_tests/rust_test_scenarios
run: cargo build

- name: Set up Python 3
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Set up Python virtual environment
working-directory: component_integration_tests/python_test_cases
run: |
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

- name: Run Python tests with pytest (PR)
if: github.event_name == 'pull_request' || github.event_name == 'push'
working-directory: component_integration_tests/python_test_cases
run: |
source .venv/bin/activate
python -m pytest --traces=all

- name: Run Python tests with pytest (Nightly)
if: github.event_name == 'schedule'
env:
NIGHTLY: TRUE
working-directory: component_integration_tests/python_test_cases
run: |
source .venv/bin/activate
python -m pytest --traces=all --count=20 --repeat-scope=session
Loading
Loading