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
6 changes: 3 additions & 3 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
"Bash(gh repo view:*)",
"Bash(gh api:*)",
"Bash(node --version:*)",
"Bash(yarn list:*)",
"Bash(yarn info:*)",
"Bash(yarn why:*)",
"Bash(pnpm list:*)",
"Bash(pnpm info:*)",
"Bash(pnpm why:*)",
"Bash(tsc --version:*)",
"Bash(docker --version:*)",
"Bash(docker ps:*)",
Expand Down
18 changes: 8 additions & 10 deletions .github/workflows/algolia-index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
id: setup-node
with:
node-version-file: 'package.json'
cache: 'pnpm'

- uses: dorny/paths-filter@v3
id: filter
with:
Expand All @@ -27,20 +32,13 @@ jobs:
with:
bun-version: '1.1.34'

- uses: actions/cache@v4
id: cache
with:
path: ${{ github.workspace }}/node_modules
key: node-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}

- run: yarn install --frozen-lockfile
if: steps.cache.outputs.cache-hit != 'true'
- run: pnpm install --frozen-lockfile

# bun seems to be the most straightforward way to run a TypeScript script
# without introducing another dependency like ts-node or tsx for everyone else

- name: Build index for user docs
run: yarn build && bun ./scripts/algolia.ts
run: pnpm build && bun ./scripts/algolia.ts
if: steps.filter.outputs.docs == 'true'
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
Expand All @@ -52,7 +50,7 @@ jobs:
NEXT_PUBLIC_SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0

- name: Build index for developer docs
run: yarn build:developer-docs && bun ./scripts/algolia.ts
run: pnpm build:developer-docs && bun ./scripts/algolia.ts
if: steps.filter.outputs.dev-docs == 'true'
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
Expand Down
20 changes: 11 additions & 9 deletions .github/workflows/lint-404s.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
id: setup-node
with:
node-version-file: 'package.json'
cache: 'pnpm'

- uses: dorny/paths-filter@v3
id: filter
with:
Expand All @@ -31,32 +36,29 @@ jobs:
bun-version: latest

- uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/.next/cache
${{ github.workspace }}/.eslintcache
key: node-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-${{ hashFiles('**/yarn.lock') }}
key: nextjs-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
node-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-
nextjs-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-

- run: yarn install --frozen-lockfile
- run: pnpm install --frozen-lockfile

- run: yarn build
- run: pnpm build
if: steps.filter.outputs.docs == 'true'
env:
SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0
NEXT_PUBLIC_SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0

- run: yarn build:developer-docs
- run: pnpm build:developer-docs
if: steps.filter.outputs.dev-docs == 'true'
env:
SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0
NEXT_PUBLIC_SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0

- name: Start Http Server
run: yarn start &
run: pnpm start &
if: steps.filter.outputs.docs == 'true' || steps.filter.outputs.dev-docs == 'true'
env:
SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/sync-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,27 +21,26 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
id: setup-node
with:
node-version-file: 'package.json'

- name: Install github-label-sync
run: yarn global add github-label-sync@2.2.0

- name: Run github-label-sync
run: |
github-label-sync \
pnpm dlx github-label-sync@2.2.0 \
--access-token ${{ secrets.GITHUB_TOKEN }} \
--labels .github/labels.yml \
${{ github.event_name == 'pull_request' && '--dry-run' || '' }} \
${{ github.repository }} \
2>&1 | tee sync-report.txt

- name: Read sync output into variable
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
if: github.event_name == 'pull_request'
id: github-label-sync
with:
Expand Down
36 changes: 19 additions & 17 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,31 @@ jobs:
app_id: ${{ vars.SENTRY_INTERNAL_APP_ID }}
private_key: ${{ secrets.SENTRY_INTERNAL_APP_PRIVATE_KEY }}

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
id: setup-node
with:
node-version-file: 'package.json'
cache: 'pnpm'

- uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/.next/cache
${{ github.workspace }}/.eslintcache
key: node-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
key: nextjs-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
node-${{ runner.os }}-
nextjs-${{ runner.os }}-

- run: yarn install --frozen-lockfile
if: steps.cache.outputs.cache-hit != 'true'
- run: pnpm install --frozen-lockfile

# Additional checks
- run: yarn lint:ts
- run: pnpm lint:ts

# Run automatic fixes (run prettier apart from eslint to also fix mdx files)
- run: yarn lint:prettier:fix
- run: yarn lint:eslint:fix --cache
- run: pnpm lint:prettier:fix
- run: pnpm lint:eslint:fix --cache

# Check (and error) for dirty working tree for forks
# Reason being we need a different token to auto commit changes and
Expand Down Expand Up @@ -75,22 +75,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- uses: pnpm/action-setup@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'pnpm'

- uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/node_modules
${{ github.workspace }}/.next/cache
${{ github.workspace }}/.eslintcache
key: node-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
key: nextjs-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
node-${{ runner.os }}-
nextjs-${{ runner.os }}-

- run: pnpm install --frozen-lockfile

- run: yarn install --frozen-lockfile
if: steps.cache.outputs.cache-hit != 'true'
- name: Run Tests
run: yarn test
run: pnpm test
12 changes: 0 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
Expand Down Expand Up @@ -67,15 +64,6 @@ typings/
# Claude AI settings (local)
.claude/settings.local.json

# Yarn
yarn-error.log
.pnp/
.pnp.js
.yarn

# Yarn Integrity file
.yarn-integrity

# wizard files are auto generated
static/_platforms/

Expand Down
1 change: 0 additions & 1 deletion .yarnrc.yml

This file was deleted.

43 changes: 27 additions & 16 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
# Agent Instructions

## Package Manager
Use **yarn**: `yarn install`, `yarn dev`, `yarn build`, `yarn test`

Use **pnpm**: `pnpm install`, `pnpm dev`, `pnpm build`, `pnpm test`

## Commit Attribution

AI commits MUST include:

```
Co-Authored-By: Claude <noreply@anthropic.com>
```

## Development
- `yarn dev` - Start dev server with Sentry sidecar
- `yarn dev:minimal` - Start dev server without sidecar
- `yarn build` - Production build
- `yarn test` - Run tests with vitest
- `yarn lint` - Run all linters
- `yarn lint:fix` - Auto-fix lint issues

- `pnpm dev` - Start dev server with Sentry sidecar
- `pnpm dev:minimal` - Start dev server without sidecar
- `pnpm build` - Production build
- `pnpm test` - Run tests with vitest
- `pnpm lint` - Run all linters
- `pnpm lint:fix` - Auto-fix lint issues

## Tech Stack

- Next.js 15 with App Router
- React 19
- TypeScript
Expand All @@ -26,6 +31,7 @@ Co-Authored-By: Claude <noreply@anthropic.com>
- Sentry SDK (`@sentry/nextjs`)

## Project Structure

- `app/` - Next.js app router pages and layouts
- `src/` - Source code (components, utilities)
- `docs/` - MDX documentation content
Expand All @@ -35,21 +41,24 @@ Co-Authored-By: Claude <noreply@anthropic.com>
- `public/` - Static assets

## Code Style

- ESLint + Prettier enforced via pre-commit hooks
- Use TypeScript strict mode
- Follow existing patterns in codebase

## Testing
Run `yarn test` for vitest. Tests live alongside source files or in `__tests__` directories.

Run `pnpm test` for vitest. Tests live alongside source files or in `__tests__` directories.

## CLI Commands
| Command | Description |
|---------|-------------|
| `make develop` | Initial setup |
| `make test` | Run tests |
| `yarn lint:ts` | TypeScript check |
| `yarn lint:eslint` | ESLint check |
| `yarn lint:prettier` | Prettier check |

| Command | Description |
| -------------------- | ---------------- |
| `make develop` | Initial setup |
| `make test` | Run tests |
| `pnpm lint:ts` | TypeScript check |
| `pnpm lint:eslint` | ESLint check |
| `pnpm lint:prettier` | Prettier check |

## Developer Documentation (develop-docs/)

Expand All @@ -60,7 +69,9 @@ When writing requirements in `develop-docs/`:
2. **Add RFC 2119 Alert**: When creating a new file with requirements, or adding requirements to an existing file, ensure the file has an Alert at the top (after frontmatter) to clarify RFC 2119 usage. If missing, add:
```mdx
<Alert>
This document uses key words such as "MUST", "SHOULD", and "MAY" as defined in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt) to indicate requirement levels.
This document uses key words such as "MUST", "SHOULD", and "MAY" as defined
in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt) to indicate requirement
levels.
</Alert>
```

Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@

## Setting up an Environment

We use Next.js, `yarn` and `volta` to manage the environment.
We use Next.js, `pnpm` and `volta` to manage the environment.

```
make

# Start dev server for user docs
yarn dev
pnpm dev

# Start dev server for developer docs
yarn dev:developer-docs
pnpm dev:developer-docs
```

With that, the repo is fully set up and you are ready to open local docs under http://localhost:3000
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
develop: setup-git
[ -f .env.development ] || cp .env.example .env.development
yarn
pnpm install

setup-git:
ifneq (, $(shell which pre-commit))
Expand All @@ -9,7 +9,7 @@ endif
git config branch.autosetuprebase always

test:
yarn test
pnpm test

preview-api-docs:
bin/preview-api-docs
Expand Down
2 changes: 1 addition & 1 deletion _typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ extend-exclude = [
# Data and configuration files
"*.json", # JSON files have many false positives
"*.lock", # Package lock files
"yarn.lock", # Yarn lock file
"pnpm-lock.yaml", # pnpm lockfile
"package-lock.json", # NPM lock file

# Documentation assets
Expand Down
2 changes: 1 addition & 1 deletion develop-docs/backend/api/public.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ e.g. `/Users/yourname/code/sentry/tests/apidocs/openapi-derefed.json`.

In `sentry-docs`:

1. Run `OPENAPI_LOCAL_PATH=<COPIED_FULL_PATH> DISABLE_THUMBNAILS=1 yarn dev` and substitute
1. Run `OPENAPI_LOCAL_PATH=<COPIED_FULL_PATH> DISABLE_THUMBNAILS=1 pnpm dev` and substitute
`<COPIED_FULL_PATH>` with the path to your local openapi-derefed.json.

Unfortunately changes do not automatically reflect in your local server, so you will need to
Expand Down
Loading
Loading