Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
303 commits
Select commit Hold shift + click to select a range
3aa6299
edit for consistent indentation
janiejestemja Oct 26, 2025
92c9027
Merge pull request #458 from unyt-org/chore/update_actions
janiejestemja Oct 29, 2025
75e3e69
todo-extractor auto-commit
invalid-email-address Oct 29, 2025
9547e02
work on proper formatter (WIP)
jonasstrehle Oct 16, 2025
4991e1b
work on fmt (WIP)
jonasstrehle Oct 21, 2025
cc490c4
work on fmt (WIP)
jonasstrehle Oct 21, 2025
ae521cc
work on fmt (WIP)
jonasstrehle Oct 21, 2025
5daa6e9
work on fmt (WIP)
jonasstrehle Oct 21, 2025
7b4046a
fix new map / list struct
jonasstrehle Oct 25, 2025
8730b90
add bracketing to ast
jonasstrehle Oct 25, 2025
dadf1ca
work on fmt (WIP)
jonasstrehle Oct 25, 2025
5289fa8
work on fmt (WIP)
jonasstrehle Oct 25, 2025
298e32e
work on op precedence on formatter (WIP)
jonasstrehle Oct 25, 2025
33f8e0f
refactor infix left chain (add logical and / or)
jonasstrehle Oct 25, 2025
f597dc0
rename tokens
jonasstrehle Oct 25, 2025
57a997e
add power to binary operations
jonasstrehle Oct 25, 2025
cd16288
add caret token
jonasstrehle Oct 25, 2025
b986b90
add README for DATEX Formatter with parentheses handling examples
jonasstrehle Oct 25, 2025
d029ddc
refactor operator precedence handling
jonasstrehle Oct 25, 2025
ff283ba
split up options
jonasstrehle Oct 25, 2025
cd32fad
split up bracketing
jonasstrehle Oct 25, 2025
ec119f1
refactor formatting options and context handling for Datex expressions
jonasstrehle Oct 25, 2025
260a662
refactor: enhance bracketing handling and modularize formatting funct…
jonasstrehle Oct 25, 2025
7f90b85
fmt
jonasstrehle Oct 25, 2025
a210f85
fix comment
jonasstrehle Oct 25, 2025
c0e60ff
refactor: enhance datex expression formatting and streamline function…
jonasstrehle Oct 25, 2025
0d9df6f
refactor: streamline bracketing handling and enhance test coverage fo…
jonasstrehle Oct 25, 2025
0d421a9
refactor: clean up formatting functions and improve test coverage for…
jonasstrehle Oct 25, 2025
6e29358
fmt
jonasstrehle Oct 25, 2025
1ccb142
add function declaration to datex expression data
jonasstrehle Oct 25, 2025
c41098c
refactor: update binary operation handling and improve deref assignme…
jonasstrehle Oct 25, 2025
5f19f80
refactor: restructure comparison operation data handling for clarity
jonasstrehle Oct 25, 2025
9517a5d
Refactor binary operation representation in AST
jonasstrehle Oct 25, 2025
2a82f32
Refactor AST representation and improve type inference
jonasstrehle Oct 25, 2025
6c07ad8
refactor: update Conditional representation and improve visitor imple…
jonasstrehle Oct 25, 2025
c9fad16
(WIP) Refactor TypeExpression to TypeExpressionData
jonasstrehle Oct 25, 2025
42767ce
refactor: update ApplyChain and RemoteExecution structures for improv…
jonasstrehle Oct 25, 2025
42a63d4
refactor: rename Variable to VariableAccess and update related implem…
jonasstrehle Oct 26, 2025
b378581
(WIP) refactor: introduce new data structures for type expressions an…
jonasstrehle Oct 26, 2025
901d1cf
(WIP) Implement AST data structures and visitor pattern for type expr…
jonasstrehle Oct 26, 2025
50c848d
(WIP) refactor: reorganize imports and implement Spanned trait for ex…
jonasstrehle Oct 26, 2025
2622a52
(WIP) refactor: update struct visibility and improve import organizat…
jonasstrehle Oct 26, 2025
4bcc41c
(WIP) refactor: add Spanned trait imports across multiple AST files
jonasstrehle Oct 26, 2025
68568c5
(WIP) refactor: update type expression references and improve span ha…
jonasstrehle Oct 26, 2025
21c587f
(WIP) refactor: reorganize imports and update type expression referen…
jonasstrehle Oct 26, 2025
dad5e99
(WIP) refactor: update imports to use data module for expression type…
jonasstrehle Oct 26, 2025
f91bf97
(WIP) refactor: enhance type expression handling and update imports a…
jonasstrehle Oct 26, 2025
86e86f7
(WIP) refactor: update GenericAccess to use Vec<TypeExpression> and a…
jonasstrehle Oct 26, 2025
034d93c
(WIP) refactor: update type expression tests to use new constructors …
jonasstrehle Oct 26, 2025
e0e24a8
refactor: finished type data refactoring
jonasstrehle Oct 26, 2025
21602da
fmt
jonasstrehle Oct 26, 2025
cad5d13
remove tree module
jonasstrehle Oct 26, 2025
2b0360b
add visitor methods for type ast traversal
jonasstrehle Oct 26, 2025
91c6026
refactor: enhance Visit trait with additional visit methods for type …
jonasstrehle Oct 26, 2025
0412b06
docs: add documentation for DatexExpression and TypeExpression structs
jonasstrehle Oct 26, 2025
b67c164
refactor: update visit methods for DatexExpression to handle TypeExpr…
jonasstrehle Oct 26, 2025
67a0a59
refactor: update visit methods in Visitable trait and implementations…
jonasstrehle Oct 26, 2025
54b49a4
refactor: enhance visitor methods for DatexExpression and TypeExpress…
jonasstrehle Oct 26, 2025
c318a98
refactor: enhance Precompiler to support variable resolution and decl…
jonasstrehle Oct 26, 2025
6a573c8
refactor: enhance Precompiler to support variable resolution and assi…
jonasstrehle Oct 26, 2025
d63312a
fmt
jonasstrehle Oct 26, 2025
5bffdfc
refactor: update Precompiler to handle optional metadata and improve …
jonasstrehle Oct 26, 2025
bc4e240
fmt
jonasstrehle Oct 26, 2025
3621ff7
refactor: replace SimpleSpan with Range<usize>
jonasstrehle Oct 27, 2025
c5571e4
fmt
jonasstrehle Oct 27, 2025
b02ded3
work on transformer pattern (WIP)
jonasstrehle Oct 27, 2025
f55e348
work on transformer pattern (WIP)
jonasstrehle Oct 27, 2025
44a0ab7
fmt
jonasstrehle Oct 27, 2025
8928189
feat: add Noop variant to DatexExpressionData for better error recove…
jonasstrehle Oct 27, 2025
5103e87
feat: enhance expression visitor with additional visit methods and ac…
jonasstrehle Oct 27, 2025
0176d86
feat: handle Noop variant in DatexExpressionData for expression visit…
jonasstrehle Oct 27, 2025
8248b10
fmt
jonasstrehle Oct 27, 2025
7ab21a8
feat: update VisitAction enum and ExpressionVisitor trait for improve…
jonasstrehle Oct 27, 2025
255c5c8
refactor: remove visitor_new.rs
jonasstrehle Oct 27, 2025
9f7d13f
feat: enable associated_type_defaults feature in lib.rs
jonasstrehle Oct 27, 2025
9d1b7c0
refactor: remove unused visitor_new module and reorganize visitor str…
jonasstrehle Oct 27, 2025
acd2dc4
feat: add constructor method to TypeExpression for easier instantiation
jonasstrehle Oct 27, 2025
2bf88a1
feat: implement VisitableExpression trait for various expression types
jonasstrehle Oct 27, 2025
2186c42
feat: add TypeExpressionVisitor trait and related methods for type ex…
jonasstrehle Oct 27, 2025
94e5537
feat: implement VisitableTypeExpression trait for various type expres…
jonasstrehle Oct 27, 2025
c9b31e4
fmt
jonasstrehle Oct 27, 2025
0b4e441
add TODO
jonasstrehle Oct 27, 2025
29d77e0
:recycle: separate Visit and VisitMut
benStre Oct 28, 2025
a9b237d
Implement expression and type expression visitor patterns
jonasstrehle Oct 28, 2025
0053a1f
feat: enhance Precompiler with new expression and type declaration vi…
jonasstrehle Oct 28, 2025
1ae770b
fmt
jonasstrehle Oct 28, 2025
10d5df9
refactor: remove deprecated precompiler_new module
jonasstrehle Oct 28, 2025
3d8c9d3
feat: reorganize precompiler structure (sorry)
jonasstrehle Oct 28, 2025
f36b5c6
deprecate old visitor (sorry again)
jonasstrehle Oct 28, 2025
d4c24ce
refactoring ast (WIP)
jonasstrehle Oct 28, 2025
6ca7d0b
refactoring ast (WIP)
jonasstrehle Oct 28, 2025
b973bcb
refactoring ast (WIP)
jonasstrehle Oct 28, 2025
0650143
fmt
jonasstrehle Oct 28, 2025
c113957
Refactor operator enums and restructure imports (WIP)
jonasstrehle Oct 28, 2025
082dbbb
Add ApplyOperation enum and refactor imports across modules (WIP)
jonasstrehle Oct 28, 2025
937cb3c
move ComparisonOperator
jonasstrehle Oct 28, 2025
170dd39
move unary operator
jonasstrehle Oct 28, 2025
f8c51f0
fmt
jonasstrehle Oct 28, 2025
3912585
make grammar mod private
jonasstrehle Oct 28, 2025
f4214f2
Remove unused visit_literal_type method from TypeExpressionVisitor im…
jonasstrehle Oct 28, 2025
9f79c5c
fmt
jonasstrehle Oct 28, 2025
c23f733
fix: add guidelines to CONTRIBUTING.md
jonasstrehle Oct 29, 2025
5f37ce4
docs: update CONTRIBUTING.md with branch naming conventions and testi…
jonasstrehle Oct 29, 2025
ad850a4
feat: refactor variable metadata handling in Precompiler
jonasstrehle Oct 29, 2025
d2499b7
Refactor Expression and Type Expression Visitors to Support Error Han…
jonasstrehle Oct 29, 2025
a2ecdac
feat: enhance error handling in Expression and TypeExpression visitors
jonasstrehle Oct 29, 2025
a1f5ae0
feat: improve error handling in Expression and TypeExpression visitors
jonasstrehle Oct 29, 2025
62f8941
add abort logic to visitor (TBD)
jonasstrehle Oct 29, 2025
4097308
:construction: work on new precompiler
benStre Oct 30, 2025
262fe4d
:construction: work on new precompiler
benStre Oct 30, 2025
020b753
split up variant access for precom
jonasstrehle Oct 30, 2025
1bc4528
fmt
jonasstrehle Oct 30, 2025
884d039
refactor: fix scope stacks for new precompiler
jonasstrehle Oct 30, 2025
36949d9
refactor: update precompiler to use simple error handling and clean u…
jonasstrehle Oct 30, 2025
e33d7cf
fix test without precompiler
jonasstrehle Oct 30, 2025
5d09394
refactor: enhance variant access handling and restructure related types
jonasstrehle Oct 30, 2025
5154de5
refactor: streamline type expression visitor methods for improved cla…
jonasstrehle Oct 30, 2025
f7bc0a9
test: rename and update variant access test for improved clarity
jonasstrehle Oct 30, 2025
1b61cf9
refactor: update type expression handling to include variant access
jonasstrehle Oct 30, 2025
26290e9
refactor: enhance type expression visitor methods for improved clarit…
jonasstrehle Oct 30, 2025
ea8fce7
refactor: update type annotation handling to use variant access for i…
jonasstrehle Oct 30, 2025
7e72871
refactor: improve error handling and add logging for unhandled expres…
jonasstrehle Oct 30, 2025
3ffda98
:construction: cleanup ast, fix deref
benStre Oct 31, 2025
5dc9de6
:bug: fix scope stack
benStre Oct 31, 2025
4ef6568
:wastebasket: cleanup
benStre Oct 31, 2025
4d6d163
:bug: fix precompile methods
benStre Oct 31, 2025
d69f534
:bug: fix binary operation precompiler
benStre Oct 31, 2025
acecb3b
:art: clippy
benStre Oct 31, 2025
4eb4241
:recycle: refactor precompiler
benStre Oct 31, 2025
012a1e3
:bug: handle variable redeclaration errors
benStre Oct 31, 2025
1102e35
:bug: handle variable redeclaration errors
benStre Oct 31, 2025
562071a
:fire: remove final references
benStre Oct 31, 2025
841626f
fmt
jonasstrehle Nov 1, 2025
02af154
remove println
jonasstrehle Nov 1, 2025
2773f2c
edit todo-extractor workflow
janiejestemja Nov 1, 2025
0ce78e8
Merge branch 'feat/fmt' of github.com:unyt-org/datex-core into feat/fmt
benStre Nov 1, 2025
90b228f
Merge pull request #496 from unyt-org/chore/update_actions
janiejestemja Nov 3, 2025
bf225ab
feat: add cargo publish dry-run to test workflow for release branches
MANASAB805 Oct 30, 2025
ffe3b14
Merge branch 'release/0.0.7' into feat/fmt
benStre Nov 4, 2025
626486a
Merge pull request #461 from unyt-org/feat/fmt
benStre Nov 5, 2025
b962ad7
change std imports to core
benStre Oct 31, 2025
76c5bb8
:recycle: refactor std imports
benStre Oct 31, 2025
3210245
:recycle: refactor dependencies
benStre Oct 31, 2025
95a1ccb
:recycle: major compiler structure refactoring
benStre Nov 1, 2025
98cbb49
:recycle: clean up CompilationContext
benStre Nov 1, 2025
32abe20
:recycle: refactor compile_value_container, put compiler behind featu…
benStre Nov 1, 2025
8193fbc
:construction: nostd fixes (WIP)
benStre Nov 1, 2025
4cf625c
:construction: nostd fixes (WIP)
benStre Nov 1, 2025
1b23f2c
:construction: nostd fixes (WIP)
benStre Nov 1, 2025
ab20c2e
:construction: nostd fixes (WIP)
benStre Nov 1, 2025
8be4b4a
:construction: nostd fixes (WIP)
benStre Nov 2, 2025
54d73b1
:construction: nostd fixes (WIP)
benStre Nov 2, 2025
53cd11d
:construction: nostd fixes (WIP)
benStre Nov 2, 2025
bfafc23
:construction: nostd fixes (WIP)
benStre Nov 3, 2025
49786a5
:construction: nostd fixes (WIP)
benStre Nov 3, 2025
fe073a5
:construction: nostd fixes (WIP)
benStre Nov 3, 2025
3a9682f
:construction: nostd fixes (WIP)
benStre Nov 3, 2025
ed974a4
:construction: nostd fixes (WIP)
benStre Nov 3, 2025
441d60f
:construction: nostd fixes (WIP)
benStre Nov 4, 2025
ce3c5f1
:construction: nostd fixes (WIP)
benStre Nov 4, 2025
ee258d7
:construction: nostd fixes (WIP)
benStre Nov 4, 2025
194af7a
:construction: nostd fixes (WIP)
benStre Nov 4, 2025
3999369
:construction: nostd fixes (WIP)
benStre Nov 4, 2025
050ac71
:fire: remove unused wasm_webrtc feature
benStre Nov 5, 2025
7334fdc
:bug: add thread_local feature
benStre Nov 5, 2025
4aea457
:bug: add test for nostd-build
benStre Nov 5, 2025
520bfee
:bug: update test-embedded, refactor features
benStre Nov 5, 2025
a2d745b
:art: clippy fix
benStre Nov 5, 2025
6d7c4ea
:art: cargo fmt
benStre Nov 5, 2025
73b3900
:bug: refactor runtime initialization and enhance documentation in or…
jonasstrehle Nov 6, 2025
eb11fa5
:bug: update deno.lock version and add integrity checks for dependencies
jonasstrehle Nov 6, 2025
b5e0597
add nostd::time
benStre Nov 6, 2025
d38743b
improve RuntimeConfigInterface
benStre Nov 8, 2025
927811a
fix interface_type serde
benStre Nov 8, 2025
9627988
add env property to config
benStre Nov 8, 2025
7966428
reexport serde::Deserialize from datex_core
benStre Nov 8, 2025
a9aa62c
refactor hash collections
benStre Nov 9, 2025
2312077
Merge pull request #497 from unyt-org/feat/embedded
benStre Nov 9, 2025
cbc609b
add type inferer
jonasstrehle Oct 31, 2025
d58e6d3
:art: enhance type inference and expression handling with structural …
jonasstrehle Nov 1, 2025
5b291cb
remove option from rich ast
jonasstrehle Nov 1, 2025
9789ff0
refactor: type inference functions to use RichAst directly
jonasstrehle Nov 1, 2025
5b39718
test: add structural type inference for integer literals
jonasstrehle Nov 1, 2025
a1c20e6
feat: add type annotation handling to TypeExpression and update Spann…
jonasstrehle Nov 1, 2025
80d3d34
feat: enhance type inference by adding variable declaration handling …
jonasstrehle Nov 1, 2025
0797268
feat: add support for binary operations and variable declarations wit…
jonasstrehle Nov 1, 2025
44a8150
feat: enhance variable handling by adding variable access and updatin…
jonasstrehle Nov 1, 2025
bc36110
docs: enhance type inference
jonasstrehle Nov 1, 2025
d8488d9
refactor: rename type inferer to type inference
jonasstrehle Nov 1, 2025
b9e2367
refactor: rename type_inferer module to type_inference
jonasstrehle Nov 1, 2025
0bff552
refactor: replace direct type annotation setting with mark_type function
jonasstrehle Nov 1, 2025
87f92b5
fmt
jonasstrehle Nov 1, 2025
df14acc
feat: add visit_type_declaration method for handling type declarations
jonasstrehle Nov 1, 2025
27ff2db
feat: add visit methods for union, intersection, and structural map t…
jonasstrehle Nov 1, 2025
b4a0a28
feat: add visit method for structural list type in TypeInference
jonasstrehle Nov 1, 2025
7dcd1eb
refactor: remove unused span parameter from visit methods in TypeInfe…
jonasstrehle Nov 1, 2025
6ebddad
feat: update error handling to use core library types and add clippy …
jonasstrehle Nov 6, 2025
0b41095
disable visitor?
jonasstrehle Nov 6, 2025
1bb679c
feat: enhance type inference with detailed error handling and variabl…
jonasstrehle Nov 6, 2025
6a7fae4
feat: fix hoisting (WIP)
jonasstrehle Nov 6, 2025
244b8c7
feat: implement hoisting for top-level type declarations in precompiler
jonasstrehle Nov 6, 2025
73e3f61
refactor: migrate type inference tests (WIP)
jonasstrehle Nov 6, 2025
6a6e470
refactor: migrate type inference tests (WIP)
jonasstrehle Nov 6, 2025
ff18ba2
refactor: migrate type inference tests (WIP)
jonasstrehle Nov 6, 2025
2f02fcf
feat: add unit type to TypeContainer and update expression visitor logic
jonasstrehle Nov 6, 2025
df4166b
refactor: reorganize imports in error.rs for clarity
jonasstrehle Nov 6, 2025
06d4c2f
refactor: remove unused type_inference module from mod.rs
jonasstrehle Nov 6, 2025
063a1d6
refactor: remove type_inference module to streamline codebase
jonasstrehle Nov 6, 2025
94f7508
feat: enhance type inference with error handling options and refactor…
jonasstrehle Nov 6, 2025
f7c388c
fmt
jonasstrehle Nov 6, 2025
b005691
feat: add detailed error message for InvalidDerefType in TypeError enum
jonasstrehle Nov 6, 2025
e045b9a
feat: enhance type inference with additional expression types and err…
jonasstrehle Nov 6, 2025
d51ab75
feat: add SetTypeRecurseChildNodes and SetTypeSkipChildren actions to…
jonasstrehle Nov 6, 2025
e793c09
feat: refine error handling in TypeInference by adjusting VisitAction…
jonasstrehle Nov 6, 2025
0f5e440
feat: implement function type inference (WIP)
jonasstrehle Nov 9, 2025
ff244a8
feat: implement function type inference (WIP)
jonasstrehle Nov 9, 2025
e5c6900
rename structual type to typealias
jonasstrehle Nov 9, 2025
eb63c38
feat: Fix structual vs nominal type precompilation (WIP)
jonasstrehle Nov 9, 2025
8dc41cf
feat: Fix structual vs nominal type precompilation and type inference
jonasstrehle Nov 9, 2025
e8a0f8f
test cleanup
jonasstrehle Nov 9, 2025
21d0bfd
fmt
jonasstrehle Nov 9, 2025
089bfd2
fix: test for type inference
jonasstrehle Nov 9, 2025
d407860
remove println
jonasstrehle Nov 9, 2025
57b13fb
feat: Add support for incoming and outgoing block interceptors in ComHub
jonasstrehle Nov 9, 2025
6bf58e7
feat: Add support for incoming and outgoing block interceptors in ComHub
jonasstrehle Nov 9, 2025
de7b0e2
add box import
benStre Nov 9, 2025
a6c02b1
rename r#type
benStre Nov 9, 2025
867b7c4
:art: fmt
benStre Nov 9, 2025
8261577
:art: fmt
benStre Nov 9, 2025
abdefd7
:art: switch kind and name
benStre Nov 9, 2025
b894a5e
add todo
benStre Nov 9, 2025
f02cd87
fix type naming
benStre Nov 10, 2025
b200dd8
move lsp from DATEX CLI
jonasstrehle Nov 12, 2025
3c5e067
update URL handling in workspace and LSP components
jonasstrehle Nov 12, 2025
64717a2
fix features
jonasstrehle Nov 12, 2025
e8ab6b7
remove std dep from url
jonasstrehle Nov 12, 2025
0934cdb
fmt
jonasstrehle Nov 12, 2025
74f2339
fix tcp address
benStre Nov 10, 2025
906a12b
tcp fixes
benStre Nov 10, 2025
7d8259a
tcp fixes
benStre Nov 10, 2025
47ad749
cleanup
benStre Nov 24, 2025
dd454a1
refactor tcp server
benStre Nov 24, 2025
ea5cd06
:bug: fix tcp tests
benStre Nov 24, 2025
8e43c10
:bug: fix tcp tests
benStre Nov 24, 2025
fd89608
:bug: bump dependencies
benStre Nov 24, 2025
9ecfec6
:bug: fix dependencies
benStre Nov 24, 2025
36b5413
:art: deno fmt
benStre Nov 24, 2025
bfcc000
:art: cargo fmt
benStre Nov 24, 2025
0509b11
:art: clippy
benStre Nov 24, 2025
c3a822a
handle CRLF in lexer for Windows
mayank0211-hub Dec 16, 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
2 changes: 1 addition & 1 deletion .github/workflows/base_benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
cancel-in-progress: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Cache dependencies
uses: actions/cache@v4
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v5

- name: Set up Deno
uses: denoland/setup-deno@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr_benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Cache dependencies
uses: actions/cache@v4
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
name: Publish
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install libudev-dev and pkg-config
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
name: Release
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Extract version from Cargo.toml
id: get_version
Expand Down
45 changes: 42 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ jobs:
runs-on: ubuntu-latest
name: Test
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}-test
cancel-in-progress: true
env:
PROJECT_NAME_UNDERSCORE: datex_core
CARGO_INCREMENTAL: 0
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install libudev-dev and pkg-config
run: |
Expand All @@ -22,7 +22,7 @@ jobs:
- name: Install Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
deno-version: v2.x

- uses: dtolnay/rust-toolchain@stable
with:
Expand Down Expand Up @@ -52,9 +52,48 @@ jobs:
cargo nextest run --profile ci --features debug;
- name: Run Struct Tests
run: deno task test

- name: Run cargo publish dry-run (release branches only)
if: startsWith(github.head_ref, 'release/')
run: |
echo "Running cargo publish dry-run..."
cargo publish --dry-run

- name: Upload test results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: target/nextest/ci/report.xml
test-embedded:
runs-on: macos-latest
name: Test
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-test-embedded
cancel-in-progress: true

steps:
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly
components: clippy
- run: rustup target add thumbv7em-none-eabihf

- name: Cache dependencies
uses: actions/cache@v4
env:
cache-name: cache-dependencies
with:
path: |
~/.cargo/.crates.toml
~/.cargo/.crates2.json
~/.cargo/bin
~/.cargo/registry/index
~/.cargo/registry/cache
target
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }}

- name: Test nostd build
run: cargo build --no-default-features --features embedded,debug --target thumbv7em-none-eabihf
18 changes: 14 additions & 4 deletions .github/workflows/todo-extractor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
branches:
- "release/*"
- "main"

concurrency:
group: ${{ github.workflow }}
Expand All @@ -19,10 +19,20 @@ jobs:
Datex-tractor:
runs-on: ubuntu-latest
steps:
- name: Gen app token...
id: app-token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.DATEX_TRACTOR_ID }}
private_key: ${{ secrets.DATEX_TRACTOR_PRI_KEY }}

- name: Checkout own repo
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
token: ${{ steps.app-token.outputs.token }}

- name: Run datex_tractor
uses: unyt-org/datex-tractor@r0.0.3
uses: unyt-org/datex-tractor@v0.0.1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# github_token: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ steps.app-token.outputs.token }}
89 changes: 67 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,44 @@
# Contributing to **DATEX Core**
# Contributing to **DATEX Core**

This document describes the workflow, branch strategy, coding standards, and
quality gates for contributing to
the [`datex-core`](https://github.com/unyt-org/datex-core)Rust crate.
quality gates for contributing to the
[`datex-core`](https://github.com/unyt-org/datex-core) Rust crate.

---

## Workflow & Branch Strategy

| Purpose | Naming Pattern | Example |
| ------------------------------ | --------------------------------- | ----------------------- |
| **Permanent default branch** | `main` | |
| **Permanent default branch** | `main` | - |
| **Milestone / release branch** | `release/<MAJOR>.<MINOR>.<PATCH>` | `release/0.0.4` |
| **Feature branch** | `feature/<slug>` | `feature/tcp-interface` |
| **Bug-fix branch** | `fix/<slug>` | `fix/handshake-timeout` |
| **Maintenance / chore branch** | `chore/<slug>` | `chore/update-deps` |
| **Hotfix branch** | `hotfix/<slug>` | `hotfix/crash-on-start` |

1. **`main` is protected** – direct pushes are disabled.
> Use **lowercase letters** and **hyphens** (`-`) in branch names. Avoid spaces,
> underscores (`_`), or other special characters.

1. The default branch **`main` is protected** – direct pushes are disabled.
2. **All work happens via Pull Requests (PRs).**
3. **Target branch for every PR is the currently-active release branch** (e.g.
`release/0.0.4`).
4. After review & CI success, the feature branch is **squash-merged** into the
release branch.
4. After review & CI success, the feature branch is **merged** into the release
branch.
5. Release branches are merged back to `main` only by a maintainer at version
cut-time.

> **Do not branch from or target `main`** for new work. All development must
> branch from the **latest release branch** (e.g., `release/0.0.4`). The `main`
> branch reflects only published, production-ready code and is not used for
> active development.

---

## Coding Style

- **Edition:** Rust 2024.
- **Edition:** Rust 2024.

- **Formatting:**

Expand All @@ -45,19 +54,19 @@ the [`datex-core`](https://github.com/unyt-org/datex-core) Rust crate.
cargo clippy --features debug
```

_We plan to treat all Clippy warnings as errors in the future._ Suppress a
_We plan to treat more Clippy warnings as errors in the future._ Suppress a
lint only with a line-level `#[allow(lint_name)]` and an explanatory comment.

- **Idioms & Practices:**

- Prefer explicit `use` paths; group imports by crate.
- Enable useful nightly lints in `#![deny(clippy::pedantic, clippy::nursery)]`
where feasible.
- No `unsafe` unless unavoidable - must include a safety comment explaining
- No `unsafe` unless unavoidable must include a safety comment explaining
invariants.
- Public items require rustdoc comments (`///`) with examples where possible.
- Follow **snake\_case** for variables/functions, **CamelCase** for
types/traits, **SCREAMING\_SNAKE\_CASE** for constants.
- Follow **snake_case** for variables/functions, **CamelCase** for
types/traits, **SCREAMING_SNAKE_CASE** for constants.

---

Expand Down Expand Up @@ -103,22 +112,24 @@ the [`datex-core`](https://github.com/unyt-org/datex-core) Rust crate.
- Place Criterion benchmarks in `benches/`.
- Benchmarks must compile and run (CI executes them with `--bench` but does not
time-gate results).
- Performance regressions > 10 % should be called out in the PR description.
- Performance regressions > 10 % should be called out in the PR description.

---

## Continuous Integration Gates

A pull request is **merge-ready** only when:

1. All unit tests pass: `cargo test --all`.
2. All integration tests pass: `cargo test --all --tests`.
1. All unit tests pass: `cargo test --all --features debug`.
2. All integration tests pass: `cargo test --all --tests --features debug`.
3. All benchmarks build: `cargo bench --no-run`.
4. Clippy passes with no errors
5. Rustfmt check passes
4. Clippy passes with no errors.
5. Rustfmt check passes.
6. Checks complete on all supported toolchains (currently stable, beta).

CI will automatically block a PR that fails any step.
> **Note:** CI pipelines are automatically triggered for all PRs targeting
> release branches. PRs to `main` will be rejected unless explicitly opened by a
> maintainer.

---

Expand All @@ -136,21 +147,55 @@ Before requesting review, ensure you have:

---

## How to Make Changes & Open a PR

1. **Always base your work on the latest release branch**, _not_ on `main`. The
`main` branch only tracks finalized releases - new development happens in the
currently active `release/x.y.z` branch.

2. **Creating your branch:**

```bash
git fetch origin
git checkout origin/release/<MAJOR>.<MINOR>.<PATCH> -b feature/<slug>
```

3. **When your feature or fix is ready:**

- Open a Pull Request (PR) targeting the same **release branch** you based
your work on.
- Select the [**"DATEX"**](https://github.com/orgs/unyt-org/projects/12)
project for the PR in GitHub.
- The **maintainers** will assign it to the appropriate **release
milestone**.

4. If your PR cannot be merged cleanly (e.g., due to version conflicts), it may
be retargeted to a later release branch by maintainers.

5. Once approved, your change will be **merged** into the active release branch;
the release branch will later be merged back into `main` during version cut.

---

## Commit & PR Hygiene

- Use **Conventional Commits** style (e.g. `feat: add TCP interface`,
`fix: handle timeout`).
- Keep commit history clean; squash or amend while the PR is open.
- Reference issues in the PR body (e.g. `Closes #42`).
- Reference issues in the PR body (e.g. `fix #42`).

---

## Communication

- Small changes (< 30 LoC) may be approved by one maintainer; larger or
- Small changes (< 30 LoC) may be approved by one maintainer; larger or
architectural changes require two approvals.
- Discuss API-breaking changes in a GitHub Issue before coding.
- Feel free to draft a PR early (`[WIP]`) to get feedback on direction.
- Discuss API-breaking changes in a GitHub
[Issue](https://github.com/unyt-org/datex-core/issues) or
[Discussion](https://github.com/unyt-org/datex-core/discussions) before
coding.
- Feel free to draft a PR early (`[WIP]`) and mark as draft to get feedback on
direction.

---

Expand Down
Loading