diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..7fb364e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,62 @@ +name: Bug report +description: Report a reproducible correctness, build, API, or runtime problem +title: "[Bug]: " +labels: [] +body: + - type: markdown + attributes: + value: Thanks for taking the time to report a bug. Please keep performance-only regressions separate from correctness failures where possible. + - type: textarea + id: summary + attributes: + label: What happened? + description: Describe the observed behaviour and what you expected instead. + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Minimal reproduction + description: Include the smallest source/configuration and commands needed to reproduce the problem. + render: shell + validations: + required: true + - type: input + id: commit + attributes: + label: tinyML commit or release + placeholder: e.g. main at abc1234 or v1.0.0 + validations: + required: true + - type: dropdown + id: build + attributes: + label: Build tier + options: + - MIT core + - Extended/commercial tier + - Unsure + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: OS, architecture, compiler and version, CMake version, CPU features, and relevant build flags. + placeholder: Ubuntu 24.04, x86_64, GCC 14, CMake 3.30, AVX2, Release + validations: + required: true + - type: textarea + id: logs + attributes: + label: Relevant logs or output + render: text + - type: checkboxes + id: checks + attributes: + label: Checks + options: + - label: I searched existing issues for the same problem. + required: true + - label: I have not included secrets, private data, or proprietary model/data content. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..6918801 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Security vulnerability + url: https://github.com/godofecht/tinyML/security/advisories/new + about: Please report security-sensitive issues privately rather than opening a public issue. diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..d7b9c2b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,47 @@ +name: Feature request +description: Propose a new algorithm, API, platform, optimization, or repository capability +title: "[Feature]: " +labels: [] +body: + - type: textarea + id: problem + attributes: + label: Problem or use case + description: What concrete problem should tinyML solve? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: Describe the desired API, behaviour, algorithm, platform support, or workflow. + validations: + required: true + - type: dropdown + id: tier + attributes: + label: Intended tier + options: + - MIT core + - Extended/commercial tier + - Repository/tooling/docs + - Unsure + validations: + required: true + - type: textarea + id: constraints + attributes: + label: Constraints and trade-offs + description: Include real-time, memory, determinism, dependency, portability, licensing, or numerical constraints that matter. + - type: textarea + id: validation + attributes: + label: How should this be validated? + description: Tests, benchmarks, reference outputs, downstream examples, or acceptance criteria. + - type: checkboxes + id: checks + attributes: + label: Checks + options: + - label: I searched existing issues and the roadmap for an equivalent proposal. + required: true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9101b45 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + open-pull-requests-limit: 5 + commit-message: + prefix: chore + include: scope diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a8ea68..6e4c9be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ concurrency: jobs: build-and-test: - name: ${{ matrix.compiler }} / Release + name: ${{ matrix.compiler }} / ${{ matrix.build_type }} runs-on: ubuntu-latest strategy: fail-fast: false @@ -26,9 +26,11 @@ jobs: - compiler: GCC cc: gcc cxx: g++ + build_type: Release - compiler: Clang cc: clang cxx: clang++ + build_type: Debug env: CC: ${{ matrix.cc }} CXX: ${{ matrix.cxx }} @@ -43,7 +45,7 @@ jobs: sudo apt-get install -y ninja-build - name: Configure - run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release + run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} - name: Build run: cmake --build build --parallel 2 @@ -75,10 +77,13 @@ jobs: - name: Package run: | - mkdir -p release - cp build/libTinyML.a release/ - find build/bin -type f -executable -exec cp {} release/ \; 2>/dev/null || true - tar -czf tinyml-${{ github.ref_name }}-linux-x86_64.tar.gz -C release . + package_dir="tinyml-${{ github.ref_name }}-linux-x86_64" + mkdir -p "$package_dir/lib" "$package_dir/include" + cp build/libTinyML.a "$package_dir/lib/" + cp -R include/. "$package_dir/include/" + cp README.md LICENSE LICENSE-COMMERCIAL.md LICENSING.md "$package_dir/" + tar -czf "$package_dir.tar.gz" "$package_dir" + tar -tzf "$package_dir.tar.gz" | head -80 - name: Publish GitHub release uses: softprops/action-gh-release@v2 diff --git a/tests/test_production_api.cpp b/tests/test_production_api.cpp index e1c8272..1954077 100644 --- a/tests/test_production_api.cpp +++ b/tests/test_production_api.cpp @@ -7,6 +7,7 @@ #include "TinyMLAPI.h" #include +#include #include #include #include