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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 0 additions & 14 deletions .classpath

This file was deleted.

83 changes: 83 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: CI

# Task 1.11 — GitHub Actions CI for the DTMF-Decoder v2 foundation build.
#
# Runs `./gradlew build --no-daemon` on Ubuntu, macOS, and Windows against a
# Temurin JDK 17 toolchain (Requirements 1.3, 1.9). Gradle caches are keyed on
# the wrapper properties and the version catalog so cache hits survive across
# branches but invalidate whenever the build toolchain or pinned library
# versions change.

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

permissions:
contents: read

jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 17 (Temurin)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'

- name: Cache Gradle caches and wrapper dists
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Build
run: ./gradlew build --no-daemon

# Integration-scale tests (Task 13.5, Requirements 12.1, 12.2, 12.3) live
# in their own source set and are excluded from the default `test` task,
# so they do not slow down the matrix `build` job. They run once on Linux
# only — the detection-rate and noise-FP tests are deterministic, so a
# single-OS run is enough.
integration-test:
name: Integration tests (Linux)
runs-on: ubuntu-latest
needs: build

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 17 (Temurin)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'

- name: Cache Gradle caches and wrapper dists
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Run integration tests
run: ./gradlew :dtmf-core:integrationTest --no-daemon
36 changes: 34 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,34 @@
/bin/
/Prototyping/Test Data/
# Gradle build artifacts
.gradle/
build/
**/build/
*.class
bin/
out/

# jqwik property-test shrinking/failure database (runtime, not source)
.jqwik-database
**/.jqwik-database

# IDE and OS
.idea/
.vscode/
*.iml
*.ipr
*.iws
.classpath
.project
.settings/
.DS_Store
Thumbs.db

# Logs and JVM crash reports
*.log
hs_err_pid*.log
replay_pid*.log

# Kiro agent spec/planning workspace — not intended for public consumption
.kiro/

# Keep empty directories only when a .gitkeep opts them in
!.gitkeep
1 change: 0 additions & 1 deletion .gradle/1.4/taskArtifacts/cache.properties

This file was deleted.

1 change: 0 additions & 1 deletion .gradle/1.4/taskArtifacts/cache.properties.lock

This file was deleted.

Binary file removed .gradle/1.4/taskArtifacts/fileHashes.bin
Binary file not shown.
Binary file removed .gradle/1.4/taskArtifacts/fileSnapshots.bin
Binary file not shown.
Binary file removed .gradle/1.4/taskArtifacts/outputFileStates.bin
Binary file not shown.
Binary file removed .gradle/1.4/taskArtifacts/taskArtifacts.bin
Binary file not shown.
22 changes: 0 additions & 22 deletions .idea/compiler.xml

This file was deleted.

3 changes: 0 additions & 3 deletions .idea/copyright/profiles_settings.xml

This file was deleted.

80 changes: 0 additions & 80 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

16 changes: 0 additions & 16 deletions .project

This file was deleted.

13 changes: 0 additions & 13 deletions .settings/org.eclipse.jdt.core.prefs

This file was deleted.

43 changes: 43 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Code of Conduct

## Our pledge

We as contributors and maintainers pledge to make participation in this project a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

## Our standards

Examples of behaviour that contribute to a positive environment:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility, apologising to those affected by our mistakes, and learning from the experience
- Focusing on what is best not just for us as individuals but for the overall community

Examples of unacceptable behaviour:

- The use of sexualised language or imagery, and sexual attention or advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Enforcement responsibilities

Project maintainers are responsible for clarifying and enforcing these standards of acceptable behaviour and will take appropriate and fair corrective action in response to any behaviour that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces and also applies when an individual is officially representing the project in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported to the project maintainers via a GitHub issue or direct message. All complaints will be reviewed and investigated promptly and fairly.

Project maintainers are obligated to respect the privacy and security of the reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
Loading
Loading