Desktop app for Hackatime. Built with Tauri, Vue 3, TypeScript, and Rust.
- Frontend: Vue 3, TypeScript, Tailwind CSS, Chart.js
- Backend: Rust (Tauri v2)
- Build Tools: Vite, pnpm
- CI/CD: GitHub Actions with Release Please
- Node.js (v18 or higher)
- pnpm (v9.15.0 or higher)
- Rust (latest stable)
- Platform-specific dependencies:
- macOS: Xcode Command Line Tools
- Linux: See Tauri prerequisites
- Windows: See Tauri prerequisites
# Clone the repository
git clone https://github.com/hackclub/hackatime-desktop.git
cd hackatime-desktop
# Install dependencies
pnpm install
# Run in development mode
pnpm tauri dev
# Build binaries
pnpm tauri buildWe welcome contributions! Please follow the guidelines below to ensure smooth collaboration.
This project uses Conventional Commits for automated versioning and changelog generation via Release Please.
<type>: <description>
[optional body]
[optional footer(s)]
Use these commit types for Release Please to automatically detect changes:
-
feat:- A new featuregit commit -m "feat: add Discord RPC integration" -
fix:- A bug fixgit commit -m "fix: resolve authentication timeout issue" -
chore:- Maintenance tasks, CI/CD, dependenciesgit commit -m "chore: update dependencies" git commit -m "chore(ci): update release workflow"
For breaking changes that require a major version bump (e.g., 1.0.0 β 2.0.0), add BREAKING CHANGE: in the commit body or use ! after the type:
git commit -m "feat!: migrate to new API v2" -m "BREAKING CHANGE: requires new authentication flow"-
Fork the repository
-
Create a feature branch:
git checkout -b feat/my-new-feature # or git checkout -b fix/bug-description -
Make your changes and commit using conventional commits:
git add . git commit -m "feat: add new statistics chart"
-
Push to your fork:
git push origin feat/my-new-feature
-
Create a Pull Request to the
mainbranch
This project uses Release Please for automated releases. Here's how it works:
-
Commit with Conventional Commits - When you merge commits to
mainusing the conventional commit format (feat:,fix:,chore:) -
Release PR Creation - Release Please automatically:
- Analyzes commit messages since the last release
- Determines the next version number based on semantic versioning:
feat:β minor version bump (1.0.0 β 1.1.0)fix:β patch version bump (1.0.0 β 1.0.1)- Breaking changes β major version bump (1.0.0 β 2.0.0)
- Creates/updates a Release PR with:
- Updated
CHANGELOG.md - Bumped version in
package.json - Bumped version in
src-tauri/tauri.conf.json
- Updated
-
Release PR Review - The automatically created PR will show:
- All changes since the last release
- New version number
- Updated changelog
-
Merge to Release - When the Release PR is merged to
main:- A new GitHub Release is created with the version tag (e.g.,
app-v1.2.0) - The release workflow builds binaries for all platforms
- Binaries are automatically uploaded to the S3 release bucket
- The auto-updater manifest is updated for in-app updates
- A new GitHub Release is created with the version tag (e.g.,
Found a bug or have a feature request? Please open an issue on the GitHub Issues page.
Made with β€οΈ by Hack Club