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
50 changes: 50 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build-test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.80.0
components: clippy, rustfmt
override: true
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Format
run: cargo fmt -- --check
- name: Clippy
run: cargo clippy --all-features -- -D warnings
- name: Tests (default features)
run: cargo test --all --verbose
- name: Tests (no default, alloc)
run: cargo test --no-default-features --features alloc --verbose
- name: Tests (strict)
run: cargo test --features strict --verbose
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.80.0
override: true
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Build (MSRV)
run: cargo build --no-default-features --features alloc
- name: Test (MSRV)
run: cargo test --no-default-features --features alloc

29 changes: 29 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Coverage

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: {}

jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Install cargo-llvm-cov
run: cargo install cargo-llvm-cov --locked
- name: Generate coverage
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: lcov.info
path: lcov.info

24 changes: 24 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Publish to crates.io

on:
push:
tags:
- 'v*'
branches:
- main

jobs:
publish:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Publish to crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
run: cargo publish --locked --no-verify

9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,11 @@ target
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# IntelliJ #
*.iml
.idea/*

# Mac #
.DS_Store
q
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Changelog

All notable changes to this project will be documented in this file.

## [1.0.0] - 2025-09-16

### Added
- Initial implementation: encoding, decoding, validation
- no_std + alloc feature gating
- strict feature
- Basic tests & documentation scaffolding
- Differential Test tooling (tools/compare_go.sh, tests/differential_go.rs)
- Golden file generator (gen_golden)
- Fuzzing skeleton (fuzz targets: decode, validate)
- Coverage workflow (coverage.yml) and README sections for differential, fuzzing, coverage

[Unreleased]: https://github.com/OI4/dnp-encoder-rust/compare/2.14.0...HEAD

[0.1.0]: https://github.com/OI4/dnp-encoder-rust/releases/tag/1.0.0
Loading
Loading