Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ pnpm install
pnpm build
```

If you're developing on Windows, read [docs/WINDOWS_SETUP.md](docs/WINDOWS_SETUP.md)
before running the commands above. It covers shell differences, pnpm setup,
line endings, and a few Windows-specific gotchas that commonly block first-time contributors.

## Project Structure

```
Expand All @@ -45,6 +49,7 @@ git checkout -b feature/your-feature-name
```

Branch naming:

- `feature/pdf-export` — new features
- `fix/scoring-bug` — bug fixes
- `archetype/mobile-engineer` — new role archetypes
Expand Down Expand Up @@ -94,6 +99,7 @@ git push origin feature/your-feature-name
```

Then open a PR on GitHub. Fill in the template — it asks:

- What does this PR do?
- Related issue number
- Type of change
Expand Down Expand Up @@ -166,6 +172,7 @@ ARCHETYPES.set("mobile-engineer", {
## First Time Contributing to Open Source?

Welcome! You belong here. These resources help:

- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
- [First Timers Only](https://www.firsttimersonly.com/)
- [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow)
Expand Down
114 changes: 114 additions & 0 deletions docs/WINDOWS_SETUP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Windows Setup Guide

This guide fills in the Windows-specific details that are easy to miss when
you follow the standard setup steps in [../CONTRIBUTING.md](../CONTRIBUTING.md).

## 1. Install Node.js

This project supports Node.js 20 and newer. The commands below install Node.js
20 to match the minimum supported version:

- `nvm-windows`: install it from the [nvm-windows releases](https://github.com/coreybutler/nvm-windows/releases), then run `nvm install 20` and `nvm use 20`
- Direct download: install the latest archived Node.js 20 build from [nodejs.org](https://nodejs.org/dist/latest-v20.x/)

Confirm the version after installation:

```powershell
node --version
```

## 2. Install pnpm

We use `pnpm` for workspace installs and Turbo tasks.

Recommended:

```powershell
corepack enable
pnpm --version
```

Fallback if `corepack` is unavailable:

```powershell
npm install -g pnpm
pnpm --version
```

## 3. Configure Git line endings

Set Git to normalize line endings for Windows checkouts:

```powershell
git config --global core.autocrlf true
```

That prevents accidental line-ending noise in generated diffs.

## 4. Choose your shell

Both PowerShell and Git Bash work. Pick one and stay consistent for a session.

### PowerShell

Use this when you want the most native Windows experience:

```powershell
git clone https://github.com/YOUR-USERNAME/cv-builder.git
cd cv-builder
pnpm install
pnpm build
pnpm test
```

### Git Bash

Use this if you prefer Unix-style shell behavior and command syntax:

```bash
git clone https://github.com/YOUR-USERNAME/cv-builder.git
cd cv-builder
pnpm install
pnpm build
pnpm test
```

## 5. Common gotchas

### Path length limits

If you see checkout or install failures about long paths, enable Windows long
path support in Git:

```powershell
git config --global core.longpaths true
```

### PowerShell execution policy

If PowerShell blocks locally installed scripts, open a new PowerShell window as
your user and run:

```powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```

If your machine is company-managed and this policy is locked down, use Git Bash
instead of changing the policy.

### Reopen the shell after installs

After installing Node.js, pnpm, or Git, close and reopen your terminal before
retrying `pnpm install` so the updated PATH is available.

## 6. Contributor workflow reminder

Once the environment is ready, return to the standard project workflow in
[../CONTRIBUTING.md](../CONTRIBUTING.md):

```powershell
pnpm install
pnpm build
pnpm test
pnpm format:check
```
Loading