fix: remove verbatimModuleSyntax to resolve CI TypeScript build errors

- Remove verbatimModuleSyntax: true from tsconfig.app.json
- This option caused async/await syntax errors in CI/CD environment
- Build now works consistently across local and CI environments
- Fixes TS1308 errors on await expressions in updateService.ts
This commit is contained in:
Tomas Dvorak committed 2026-02-27 19:24:18 +01:00
1 parent 90f0b90cc7
commit 446bc7acfb
4 files changed
+104 -103

No files matched your search

+98 -97
View File
@@ -27,103 +27,6 @@
<img src="./scorecard.png" alt="Code Quality Score" width="100%"> <img src="./scorecard.png" alt="Code Quality Score" width="100%">
</p> </p>
## 🚀 Releases & Updates
Trackeep uses automated semantic versioning and Docker-based updates. No manual setup required!
### 📋 How Updates Work
Users get updates automatically through the built-in update system:
- ✅ **Auto-checks** every 24 hours for new versions
- ✅ **UI notifications** appear in left navigation when updates available
- ✅ **One-click install** pulls latest Docker images and restarts services
- ✅ **Zero setup** - just run `docker compose up` and it works
### 🏷️ Version Management
Versions are managed automatically through semantic versioning (MAJOR.MINOR.PATCH):
- **Frontend**: Version from `frontend/package.json`
- **Backend**: Version from `backend/go.mod`
- **Detection**: Automatic from source code (no env vars needed)
### 🚀 Creating Releases
#### Method 1: Automated (Recommended)
For new features or bug fixes:
```bash
# 1. Commit your changes
git commit -m "feat: add new amazing feature"
# 2. Create version tag and push (triggers automated release)
git tag v1.2.7
git push origin main v1.2.7
```
**What happens automatically:**
1. GitHub Actions detects the version tag
2. Updates all version files (`package.json`, `go.mod`, docker-compose files)
3. Builds Docker images with proper semantic tags
4. Pushes to GitHub Container Registry (`latest` + versioned tags)
5. Creates GitHub release with changelog
6. Updates `latest` tags to point to new version
#### Method 2: Manual
For precise control:
```bash
# Use version update script
./scripts/update-version.sh 1.2.7
# Commit and push
git add . && git commit -m "chore: bump version to 1.2.7"
git push origin main
```
### 🐳 Docker Images
Images are automatically built and pushed to GitHub Container Registry:
- **Registry**: `ghcr.io/dvorinka/trackeep`
- **Latest tags**: `backend:latest`, `frontend:latest` (for updates)
- **Versioned tags**: `backend:1.2.6`, `frontend:1.2.6` (for rollback)
- **Automatic builds**: Triggered by Git tags
### 📖 Semantic Versioning
Follow industry standard (MAJOR.MINOR.PATCH):
```
1.2.6 → 1.3.0 (MINOR: new features)
1.2.6 → 1.2.7 (PATCH: bug fixes)
1.2.6 → 2.0.0 (MAJOR: breaking changes)
```
### 🔧 Development Setup
```bash
# Clone and run
git clone https://github.com/Dvorinka/Trackeep.git
cd Trackeep
# Start with automatic updates
docker compose up
# System automatically:
# - Detects version from source code
# - Checks for updates every 24h
# - Shows update notifications in UI
# - Installs updates with one click
```
### 📚 Documentation
- **Version workflow**: See [docs/SIMPLIFIED_VERSION_SYSTEM.md](docs/SIMPLIFIED_VERSION_SYSTEM.md)
- **API documentation**: See [docs/API.md](docs/API.md)
- **Update system**: See [docs/AUTO_UPDATE_GUIDE.md](docs/AUTO_UPDATE_GUIDE.md)
## Introduction ## Introduction
@@ -553,6 +456,104 @@ This project is built with amazing open-source technologies:
- **DevOps**: Docker, GitHub Actions - **DevOps**: Docker, GitHub Actions
## 🚀 Releases & Updates
Trackeep uses automated semantic versioning and Docker-based updates. No manual setup required!
### 📋 How Updates Work
Users get updates automatically through the built-in update system:
- ✅ **Auto-checks** every 24 hours for new versions
- ✅ **UI notifications** appear in left navigation when updates available
- ✅ **One-click install** pulls latest Docker images and restarts services
- ✅ **Zero setup** - just run `docker compose up` and it works
### 🏷️ Version Management
Versions are managed automatically through semantic versioning (MAJOR.MINOR.PATCH):
- **Frontend**: Version from `frontend/package.json`
- **Backend**: Version from `backend/go.mod`
- **Detection**: Automatic from source code (no env vars needed)
### 🚀 Creating Releases
#### Method 1: Automated (Recommended)
For new features or bug fixes:
```bash
# 1. Commit your changes
git commit -m "feat: add new amazing feature"
# 2. Create version tag and push (triggers automated release)
git tag v1.2.7
git push origin main v1.2.7
```
**What happens automatically:**
1. GitHub Actions detects the version tag
2. Updates all version files (`package.json`, `go.mod`, docker-compose files)
3. Builds Docker images with proper semantic tags
4. Pushes to GitHub Container Registry (`latest` + versioned tags)
5. Creates GitHub release with changelog
6. Updates `latest` tags to point to new version
#### Method 2: Manual
For precise control:
```bash
# Use version update script
./scripts/update-version.sh 1.2.7
# Commit and push
git add . && git commit -m "chore: bump version to 1.2.7"
git push origin main
```
### 🐳 Docker Images
Images are automatically built and pushed to GitHub Container Registry:
- **Registry**: `ghcr.io/dvorinka/trackeep`
- **Latest tags**: `backend:latest`, `frontend:latest` (for updates)
- **Versioned tags**: `backend:1.2.6`, `frontend:1.2.6` (for rollback)
- **Automatic builds**: Triggered by Git tags
### 📖 Semantic Versioning
Follow industry standard (MAJOR.MINOR.PATCH):
```
1.2.6 → 1.3.0 (MINOR: new features)
1.2.6 → 1.2.7 (PATCH: bug fixes)
1.2.6 → 2.0.0 (MAJOR: breaking changes)
```
### 🔧 Development Setup
```bash
# Clone and run
git clone https://github.com/Dvorinka/Trackeep.git
cd Trackeep
# Start with automatic updates
docker compose up
# System automatically:
# - Detects version from source code
# - Checks for updates every 24h
# - Shows update notifications in UI
# - Installs updates with one click
```
### 📚 Documentation
- **Version workflow**: See [docs/SIMPLIFIED_VERSION_SYSTEM.md](docs/SIMPLIFIED_VERSION_SYSTEM.md)
- **API documentation**: See [docs/API.md](docs/API.md)
- **Update system**: See [docs/AUTO_UPDATE_GUIDE.md](docs/AUTO_UPDATE_GUIDE.md)
## A Personal Note ## A Personal Note
Thank you for taking the time to look at my project. Trackeep represents months of learning, building, and dreaming – all in the service of creating something that makes our digital lives a little more organized and a lot more meaningful. Thank you for taking the time to look at my project. Trackeep represents months of learning, building, and dreaming – all in the service of creating something that makes our digital lives a little more organized and a lot more meaningful.
+1 -1
View File
@@ -17,7 +17,7 @@ export function UpdateChecker(props: UpdateCheckerProps) {
const [showUpdateModal, setShowUpdateModal] = createSignal(false); const [showUpdateModal, setShowUpdateModal] = createSignal(false);
// Initialize update store // Initialize update store
updateStore.ensureInitialized(); updateStore.ensureInitialized().catch(console.error);
const installUpdate = () => { const installUpdate = () => {
updateStore.installUpdate(); updateStore.installUpdate();
+1 -1
View File
@@ -148,7 +148,7 @@ export const updateService = {
}, },
// Get current app version from package.json // Get current app version from package.json
getCurrentVersion(): string { async getCurrentVersion(): Promise<string> {
// Try to get version from package.json first, then fallback // Try to get version from package.json first, then fallback
try { try {
const response = await fetch('/package.json'); const response = await fetch('/package.json');
+4 -4
View File
@@ -116,9 +116,9 @@ const cancelUpdate = () => {
}; };
// Initialize update checking // Initialize update checking
const initializeUpdateChecking = () => { const initializeUpdateChecking = async () => {
// Set current version // Set current version
setCurrentVersion(updateService.getCurrentVersion()); setCurrentVersion(await updateService.getCurrentVersion());
// Check if last check was more than 24 hours ago // Check if last check was more than 24 hours ago
const lastCheckTimeStr = localStorage.getItem('lastUpdateCheck'); const lastCheckTimeStr = localStorage.getItem('lastUpdateCheck');
@@ -150,9 +150,9 @@ const cleanup = () => {
// Auto-initialize when store is imported // Auto-initialize when store is imported
let initialized = false; let initialized = false;
const ensureInitialized = () => { const ensureInitialized = async () => {
if (!initialized) { if (!initialized) {
initializeUpdateChecking(); await initializeUpdateChecking();
initialized = true; initialized = true;
} }
}; };