diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..8e2e725 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,36 @@ +--- +name: Bug Report +about: Report a bug to help us improve +title: '' +labels: bug +assignees: '' +--- + +## Description + +A clear description of the bug. + +## Steps to Reproduce + +1. +2. +3. + +## Expected Behavior + +What you expected to happen. + +## Actual Behavior + +What actually happened. + +## Environment + +- OS: +- Java version: +- Rust version: +- OpenData version/commit: + +## Additional Context + +Any other relevant information (logs, screenshots, etc.). diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bdd8ba9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,27 @@ +--- +name: Feature Request +about: Suggest a new feature or improvement +title: '' +labels: enhancement +assignees: '' +--- + +## Summary + +A brief description of the feature. + +## Motivation + +What problem does this solve? Why is it needed? + +## Proposed Solution + +How do you think this should work? + +## Alternatives Considered + +Any other approaches you've thought about. + +## Additional Context + +Any other relevant information. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..0c17f80 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +## Summary + +What does this PR do? + +## Related Issues + +Fixes # + + +## Test Plan + +How was this tested? + +## Checklist + +- [ ] Tests added/updated +- [ ] `cargo fmt` and `cargo clippy` pass (for Rust/JNI changes) +- [ ] `mvn verify` passes +- [ ] Documentation updated (if applicable) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..19e9477 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,75 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false + android: true + dotnet: true + haskell: true + large-packages: false + docker-images: true + swap-storage: true + + - name: Checkout opendata-java + uses: actions/checkout@v4 + + - name: Checkout opendata + run: git clone --depth 1 https://github.com/opendata-oss/opendata.git ../opendata + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Cache cargo registry + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + log/native/target + key: ${{ runner.os }}-cargo-${{ hashFiles('log/native/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - name: Check formatting + working-directory: log/native + run: cargo fmt --all -- --check + + - name: Run clippy + working-directory: log/native + run: cargo clippy --all-targets -- -D warnings + + - name: Build native JNI library + working-directory: log/native + run: cargo build --release + + - name: Set up Java 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Cache Maven local repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Maven build and test + run: mvn verify -Djava.library.path=log/native/target/release diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..c3a468d --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,3 @@ +# OpenData Governance + +This repository is part of the [OpenData](https://github.com/opendata-oss/opendata) project and follows its governance model. See the [opendata GOVERNANCE.md](https://github.com/opendata-oss/opendata/blob/main/GOVERNANCE.md) for details. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..020faf4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 opendata-oss + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.