mirror of
https://github.com/System-End/hackatime-desktop.git
synced 2026-04-19 16:28:19 +00:00
chore: update readme
This commit is contained in:
parent
bb4f891178
commit
9b294dee25
1 changed files with 150 additions and 1 deletions
151
README.md
151
README.md
|
|
@ -1 +1,150 @@
|
|||
# hackatime-desktop
|
||||
# Hackatime Desktop
|
||||
|
||||
[](https://github.com/hackclub/hackatime-desktop/actions/workflows/release.yaml)
|
||||
|
||||
A beautiful desktop application for tracking your coding activity with [Hackatime](https://hackatime.hackclub.com). Built with Tauri, Vue 3, TypeScript, and Rust.
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Frontend**: Vue 3, TypeScript, Tailwind CSS, Chart.js
|
||||
- **Backend**: Rust (Tauri v2)
|
||||
- **Build Tools**: Vite, pnpm
|
||||
- **CI/CD**: GitHub Actions with Release Please
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
### Build from Source
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
- [Node.js](https://nodejs.org/) (v18 or higher)
|
||||
- [pnpm](https://pnpm.io/) (v9.15.0 or higher)
|
||||
- [Rust](https://rustup.rs/) (latest stable)
|
||||
- Platform-specific dependencies:
|
||||
- **macOS**: Xcode Command Line Tools
|
||||
- **Linux**: See [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites)
|
||||
- **Windows**: See [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites)
|
||||
|
||||
#### Build Steps
|
||||
|
||||
```bash
|
||||
# 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 build
|
||||
```
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions! Please follow the guidelines below to ensure smooth collaboration.
|
||||
|
||||
### Commit Message Convention
|
||||
|
||||
This project uses [**Conventional Commits**](https://www.conventionalcommits.org/) for automated versioning and changelog generation via [Release Please](https://github.com/googleapis/release-please).
|
||||
|
||||
#### Commit Format
|
||||
|
||||
```
|
||||
<type>: <description>
|
||||
|
||||
[optional body]
|
||||
|
||||
[optional footer(s)]
|
||||
```
|
||||
|
||||
#### Types
|
||||
|
||||
Use these commit types for Release Please to automatically detect changes:
|
||||
|
||||
- **`feat:`** - A new feature (triggers minor version bump, e.g., 1.0.0 → 1.1.0)
|
||||
```bash
|
||||
git commit -m "feat: add Discord RPC integration"
|
||||
```
|
||||
|
||||
- **`fix:`** - A bug fix (triggers patch version bump, e.g., 1.0.0 → 1.0.1)
|
||||
```bash
|
||||
git commit -m "fix: resolve authentication timeout issue"
|
||||
```
|
||||
|
||||
- **`chore:`** - Maintenance tasks, CI/CD, dependencies (no version bump unless breaking)
|
||||
```bash
|
||||
git commit -m "chore: update dependencies"
|
||||
git commit -m "chore(ci): update release workflow"
|
||||
```
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
git commit -m "feat!: migrate to new API v2" -m "BREAKING CHANGE: requires new authentication flow"
|
||||
```
|
||||
|
||||
### Workflow
|
||||
|
||||
1. **Fork the repository**
|
||||
2. **Create a feature branch**:
|
||||
```bash
|
||||
git checkout -b feat/my-new-feature
|
||||
# or
|
||||
git checkout -b fix/bug-description
|
||||
```
|
||||
|
||||
3. **Make your changes** and commit using conventional commits:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "feat: add new statistics chart"
|
||||
```
|
||||
|
||||
4. **Push to your fork**:
|
||||
```bash
|
||||
git push origin feat/my-new-feature
|
||||
```
|
||||
|
||||
5. **Create a Pull Request** to the `main` branch
|
||||
|
||||
## 🔄 How Release Please Works
|
||||
|
||||
This project uses [Release Please](https://github.com/googleapis/release-please) for automated releases. Here's how it works:
|
||||
|
||||
### Automated Release Process
|
||||
|
||||
1. **Commit with Conventional Commits** - When you merge commits to `main` using the conventional commit format (`feat:`, `fix:`, `chore:`)
|
||||
|
||||
2. **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`
|
||||
|
||||
3. **Release PR Review** - The automatically created PR will show:
|
||||
- All changes since the last release
|
||||
- New version number
|
||||
- Updated changelog
|
||||
|
||||
4. **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
|
||||
|
||||
## 🐛 Issues & Support
|
||||
|
||||
Found a bug or have a feature request? Please open an issue on the [GitHub Issues](https://github.com/hackclub/hackatime-desktop/issues) page.
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ by Hack Club
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue