Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/tyler #4

Merged
merged 39 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
d5cec28
feat: Initialize project structure with ESLint, TypeScript, and Elect…
TylerFlar Dec 30, 2024
447bcf3
refactor: Update build process and improve process management
TylerFlar Dec 30, 2024
8dc43fe
chore: remove unused Vite configuration file
TylerFlar Dec 30, 2024
36a11e9
refactor: streamline build scripts and simplify index.html loading logic
TylerFlar Dec 30, 2024
43698d4
refactor: switched to PyQt6 instead of Electron
TylerFlar Dec 31, 2024
1df433f
Delete frontend/package-lock.json
TylerFlar Dec 31, 2024
a52c8d5
feat: created map server
TylerFlar Dec 31, 2024
b7e107d
refactor: update frontend configuration and enhance map functionality
TylerFlar Dec 31, 2024
bf9981e
fix: increase z-index for ControlPanel component to ensure proper lay…
TylerFlar Dec 31, 2024
65d6e68
feat: enhance ControlPanel UI and improve map tile loading performance
TylerFlar Jan 1, 2025
5285ba0
feat: add drone data management and visualization features
TylerFlar Jan 1, 2025
0b02296
chore: update dependencies in pyproject.toml, removing Flask and addi…
TylerFlar Jan 1, 2025
15e3748
refactor: simplify Map and DataLayers components by removing unnecess…
TylerFlar Jan 1, 2025
0a5a2da
feat: enhance Map component by adding state management and improving …
TylerFlar Jan 1, 2025
49676c8
feat: add CommsConfig component for configuring communication setting…
TylerFlar Jan 2, 2025
48fb66f
feat: enhance communication handling in CommsConfig and App component…
TylerFlar Jan 2, 2025
164575f
refactor: remove commented-out methods in Backend interface
TylerFlar Jan 2, 2025
cfa0b68
feat: implement internet connectivity handling in ControlPanel and Ma…
TylerFlar Jan 3, 2025
3193514
feat: wait for syncresponse
TylerFlar Jan 3, 2025
215468e
feat: introduce new context providers for communication and map manag…
TylerFlar Jan 5, 2025
7d18df8
style: format CSS animations and layout properties for consistency an…
TylerFlar Jan 5, 2025
44e6d8a
feat: refactor communication handling by introducing FieldDeviceContr…
TylerFlar Jan 5, 2025
481b91e
feat: move map controls to right side
TylerFlar Jan 5, 2025
63d9fc5
feat: add DroneStatus component
TylerFlar Jan 6, 2025
eda2ef4
feat: refactor application structure
TylerFlar Jan 6, 2025
1eadca6
refactor: refactor GlobalAppContext and related types
TylerFlar Jan 9, 2025
b6477be
refactor: single message status
TylerFlar Jan 10, 2025
1b52530
feat: added everything and connected to state machine
TylerFlar Jan 11, 2025
9a98637
fix: fixed misc state, icons, and quality bugs
TylerFlar Jan 11, 2025
78632a6
feat: add simulator functionality and UI integration
TylerFlar Jan 12, 2025
3cbdbdd
feat: tweaked a couple things and added test cases/workflows
TylerFlar Jan 13, 2025
f01430d
docs: add LICENSE and README
TylerFlar Jan 13, 2025
74e1aa1
Merge branch 'dev' into feat/tyler
TylerFlar Jan 13, 2025
299fee4
fix: generate project-lock.json
TylerFlar Jan 13, 2025
c513987
Merge branch 'feat/tyler' of https://github.com/UCSD-E4E/radio-teleme…
TylerFlar Jan 13, 2025
b7375c5
refactor: clean up configuration and remove unused files... not sure …
TylerFlar Jan 13, 2025
8df44fb
fix: add installation of Qt dependencies
TylerFlar Jan 13, 2025
8c29964
fix: add virtual frame buffer
TylerFlar Jan 13, 2025
ea968e1
fix: update pytest workflow to use Xvfb for headless testing
TylerFlar Jan 13, 2025
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
41 changes: 41 additions & 0 deletions .github/workflows/eslint_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Run ESLint Linter

on:
pull_request:
branches:
- main
- dev

jobs:
lint:
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'

- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
~/.npm
frontend/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('frontend/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Install dependencies
working-directory: frontend
run: |
# Generate a fresh package-lock.json and install dependencies
npm install --package-lock-only
npm install

- name: Run ESLint
working-directory: frontend
run: npm run lint
52 changes: 52 additions & 0 deletions .github/workflows/pytest_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Run Pytest Tests

on:
pull_request:
branches:
- main
- dev

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Python 3.13
uses: actions/setup-python@v4
with:
python-version: '3.13'

- name: Install Qt dependencies
run: |
sudo apt-get update
sudo apt-get install -y libegl1 libxkbcommon-x11-0 libxcb-icccm4 \
libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 \
libxcb-xinerama0 libxcb-xfixes0 x11-utils xvfb

- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
~/.cache/pypoetry
~/.cache/pip
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with dev

- name: Run tests
env:
QT_QPA_PLATFORM: offscreen
DISPLAY: ":99.0"
run: |
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
sleep 3
poetry run pytest
103 changes: 103 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Create Release

on:
pull_request:
types: [closed]
branches:
- main

jobs:
# First job to check if we should run the release
check_release:
runs-on: ubuntu-latest
if: |
github.event.pull_request.merged == true &&
(startsWith(github.event.pull_request.head.ref, 'hotfix/v') ||
startsWith(github.event.pull_request.head.ref, 'release/v'))
outputs:
version: ${{ steps.get_version.outputs.version }}
steps:
- name: Extract version from branch name
id: get_version
run: |
BRANCH=${{ github.event.pull_request.head.ref }}
VERSION=${BRANCH#*/v} # Remove prefix up to v
echo "version=$VERSION" >> $GITHUB_OUTPUT

# Build job that runs on each OS
build:
needs: check_release
strategy:
matrix:
include:
- os: windows-latest
build_os: windows
artifact: RTT-GCS-windows-x64.zip
- os: ubuntu-latest
build_os: linux
artifact: RTT-GCS-linux-x64.zip
- os: macos-latest
build_os: macos
artifact: RTT-GCS-macos-x64.zip

runs-on: ${{ matrix.os }}

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.13'

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install

- name: Install Node.js dependencies
working-directory: frontend
run: |
# Generate a fresh package-lock.json and install dependencies
npm install --package-lock-only
npm install

- name: Build for ${{ matrix.os }}
run: poetry run python scripts/build.py --os ${{ matrix.build_os }}

- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}
path: dist/${{ matrix.artifact }}

# Create release after all builds complete
create_release:
needs: [check_release, build]
runs-on: ubuntu-latest
steps:
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: dist

- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check_release.outputs.version }}
name: Release v${{ needs.check_release.outputs.version }}
files: |
dist/RTT-GCS-windows-x64.zip/RTT-GCS-windows-x64.zip
dist/RTT-GCS-linux-x64.zip/RTT-GCS-linux-x64.zip
dist/RTT-GCS-macos-x64.zip/RTT-GCS-macos-x64.zip
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40 changes: 40 additions & 0 deletions .github/workflows/ruff_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Run Ruff Linter

on:
pull_request:
branches:
- main
- dev

jobs:
lint:
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Python 3.13
uses: actions/setup-python@v4
with:
python-version: '3.13'

- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
~/.cache/pypoetry
~/.cache/pip
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with dev

- name: Run ruff linter
run: |
poetry run ruff check .
41 changes: 41 additions & 0 deletions .github/workflows/vitest_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Run Vitest Tests

on:
pull_request:
branches:
- main
- dev

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'

- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
~/.npm
frontend/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('frontend/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Install dependencies
working-directory: frontend
run: |
# Generate a fresh package-lock.json and install dependencies
npm install --package-lock-only
npm install

- name: Run tests
working-directory: frontend
run: npm run test
Loading
Loading