Files
htop-web/CHANGELOG.md
Liosha84 d4a6726930
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
feat: automatic releases on merge to main
- Drone now triggers on push to main branch instead of Git tags
- Each merge produces two Docker tags: main-{commit-sha} and main-latest
- No manual Git tags needed — merging PR develop → main is the release
- Updated docs/DEVELOPMENT.md with new Git-flow workflow
- Updated CHANGELOG.md with automatic releases feature
2026-10-29 00:39:31 +01:00

2.9 KiB

Changelog

All notable project changes should be documented here.

This project follows Semantic Versioning. For more details, see docs/DEVELOPMENT.md.

Unreleased

  • Automatic releases on merge — Drone now builds and pushes Docker images automatically when a Pull Request is merged into main. No manual Git tags are needed. Each merge produces two tags: main-{commit-sha} for traceability and main-latest for the most recent stable build.
  • Git-flow workflow — development happens in the develop branch. When code is ready for release, create a Pull Request from develop → main. Merging the PR triggers the automatic release.

v0.3.0

  • CI/CD migrated to Drone — replaced Gitea Actions with Drone CI/CD (.drone.yml). The Docker plugin auto_tag feature automatically creates Semantic Versioning tags (0.3.0, 0.3) on Git tag pushes. Configure REGISTRY_USERNAME and REGISTRY_PASSWORD secrets in the Gitea repository settings.

v0.2.0

  • CI/CD with Drone — automated Docker image build and push on Git tags using Drone CI/CD. Each release produces three tags: full version (0.2.0), minor version (0.2), and latest. Configure REGISTRY_USERNAME and REGISTRY_PASSWORD secrets in Gitea repository settings.
  • Docker build optimization — added .dockerignore to exclude unnecessary files from the build context, reducing build time and image size.
  • Release documentation — added detailed release process guide in docs/DEVELOPMENT.md with Semantic Versioning workflow.

v0.1.0

  • Multi-stage Docker build — the Dockerfile now compiles both the Angular frontend and Spring Boot backend inside Docker using three stages (Node.js → Gradle → JRE). Build the entire application with a single docker build command — no local Java or Node.js required.
  • Security hardening — replaced full host root mount (/:/host/root:ro) with specific directory mounts (/proc, /sys, /etc/hostname, /etc/os-release, /var, /home, /opt, /tmp, /srv, /usr) to minimize the attack surface.
  • Host metrics consistency — LinuxMemoryService and CpuDetailsService now read host metrics from /host/proc instead of container metrics from OSHI.
  • Concurrency improvements — replaced synchronized methods with AtomicReference in SystemMetricsService, SystemProcessesService, and CpuDetailsService to eliminate lock contention.
  • Global error handling — added @RestControllerAdvice for structured JSON error responses.
  • Unit tests — added 32 tests covering /proc file parsers, CPU usage calculations, and process uptime logic.
  • Docker security — added non-root user (appuser), read-only filesystem, no-new-privileges, and healthcheck to the container.
  • Debug logging — added log.debug() calls in silent catch blocks across all services.
  • Documentation structure established.