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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{md,yml,yaml}]
trim_trailing_whitespace = false

[*.py]
indent_style = space
indent_size = 4
max_line_length = 100

[*.{c,h}]
indent_style = space
indent_size = 4

[Makefile]
indent_style = tab
52 changes: 32 additions & 20 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,22 +1,34 @@
# Auto detect text files and perform LF normalization
* text=auto
* text=auto eol=lf

# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
*.bat text eol=crlf
*.cmd text eol=crlf

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.Cam binary
*.Dat binary
*.IntLib binary
*.LibPkg binary
*.PCBDBLib binary
*.PCBLIB binary
*.PcbDoc binary
*.SCHLIB binary
*.SchDoc binary
*.Slx binary
*.apr binary
*.bin binary
*.doc binary
*.docx binary
*.elf binary
*.jpg binary
*.pdf binary
*.png binary
*.rar binary
*.slx binary
*.vi binary
*.xls binary
*.xlsx binary
*.zip binary

*.md diff=markdown
*.py diff=python
*.c diff=cpp
*.h diff=cpp
7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
* @ddtdanilo

/MCU Firmware/ @ddtdanilo
/PCB/ @ddtdanilo
/tools/ @ddtdanilo
/docs/ @ddtdanilo
/.github/ @ddtdanilo
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Bug report
description: Report a reproducible problem in maintained tooling or documentation.
title: "[Bug]: "
labels:
- bug
body:
- type: markdown
attributes:
value: |
Do not include credentials, private telemetry, personal data, or unsafe hardware instructions.
- type: dropdown
id: area
attributes:
label: Area
options:
- Protocol tools
- Documentation
- Repository automation
- Historical artifact
validations:
required: true
- type: input
id: version
attributes:
label: Commit or release
placeholder: v1.0.0 or commit SHA
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: What happened, and what did you expect?
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Reproduction
description: Provide minimal, safe steps and sanitized input.
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Operating system, Python or vendor-tool version, and hardware state.
validations:
required: true
- type: checkboxes
id: safety
attributes:
label: Safety confirmation
options:
- label: I removed secrets, personal data, and sensitive telemetry.
required: true
- label: This report does not require anyone to energize unrestrained hardware.
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Questions and archival discussion
url: https://github.com/X-Sub/Telemetry-System/discussions
about: Ask questions and discuss historical context.
- name: Private security report
url: https://github.com/X-Sub/Telemetry-System/security/advisories/new
about: Report security or safety-sensitive issues privately.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Feature request
description: Suggest an improvement to maintained tools or documentation.
title: "[Enhancement]: "
labels:
- enhancement
body:
- type: dropdown
id: area
attributes:
label: Area
options:
- Protocol tools
- Documentation
- Archive preservation
- Repository automation
validations:
required: true
- type: textarea
id: problem
attributes:
label: Problem
description: What need would this solve?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed change
description: Describe the smallest useful solution.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives and safety considerations
description: What else was considered, and could this affect physical hardware?
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
open-pull-requests-limit: 5
labels:
- dependencies
- automation
commit-message:
prefix: "chore(deps)"
26 changes: 26 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Summary

<!-- What changed and why? -->

## Scope

- [ ] Maintained Python tooling
- [ ] Documentation or repository automation
- [ ] Legacy firmware
- [ ] PCB or fabrication artifacts
- [ ] LabVIEW, Simulink, or other binary artifacts

## Validation

- [ ] `ruff check tools tests scripts`
- [ ] `ruff format --check tools tests scripts`
- [ ] `python -m unittest discover -s tests -v`
- [ ] `python scripts/verify_repository.py`
- [ ] `git diff --check`
- [ ] Relevant proprietary-tool checks, or an explanation of why they were unavailable

## Safety and integrity

- [ ] No credentials, private telemetry, personal data, or license keys are included
- [ ] Hardware implications and limitations are documented
- [ ] `docs/ASSET_MANIFEST.sha256` was updated if a listed artifact changed
25 changes: 25 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
changelog:
exclude:
labels:
- skip-changelog
categories:
- title: "Breaking changes"
labels:
- breaking-change
- title: "Features"
labels:
- enhancement
- title: "Fixes"
labels:
- bug
- title: "Documentation"
labels:
- documentation
- title: "Maintenance"
labels:
- dependencies
- automation
- maintenance
- title: "Other changes"
labels:
- "*"
42 changes: 42 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CodeQL

on:
push:
branches:
- main
- master
pull_request:
branches:
- main
- master
schedule:
- cron: "23 7 * * 1"
workflow_dispatch:

permissions:
contents: read
security-events: write

concurrency:
group: codeql-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze (Python)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Initialize CodeQL
uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4
with:
languages: python
queries: security-extended

- name: Analyze
uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4
with:
category: /language:python
84 changes: 84 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Repository checks

on:
push:
branches:
- main
- master
pull_request:
branches:
- main
- master
workflow_dispatch:

permissions:
contents: read

concurrency:
group: quality-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
name: Lint and format
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.14"
cache: pip

- name: Install development tools
run: python -m pip install --requirement requirements-dev.txt

- name: Run Ruff
run: |
ruff check tools tests scripts
ruff format --check tools tests scripts

test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
python-version:
- "3.11"
- "3.14"
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}

- name: Run unit tests
run: python -m unittest discover -s tests -v

- name: Verify repository
run: python scripts/verify_repository.py

gate:
name: CI gate
if: always()
needs:
- lint
- test
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Require successful jobs
env:
LINT_RESULT: ${{ needs.lint.result }}
TEST_RESULT: ${{ needs.test.result }}
run: |
test "$LINT_RESULT" = "success"
test "$TEST_RESULT" = "success"
Loading
Loading