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
9 changes: 6 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@ on: [push]

jobs:
test:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Python 3.12
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Install dependencies
run: make pre-build

Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,19 @@ on:

jobs:
deploy:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Python 3.12
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Set up bun
uses: oven-sh/setup-bun@v1

Expand Down
38 changes: 31 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ Thanks for your interest in contributing! This guide will help you get started.
Before you begin, make sure you have the following installed:

- **Node.js** (v18 or later) - [Download](https://nodejs.org/)
- **Python 3** - [Download](https://www.python.org/downloads/)
- **Bun** - A fast JavaScript runtime and package manager. Install it with:
```bash
curl -fsSL https://bun.sh/install | bash
```
Or see [bun.sh](https://bun.sh/) for other installation methods.
- **uv** - A fast Python package manager. Install it with:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Or via Homebrew: `brew install uv`. See [docs.astral.sh/uv](https://docs.astral.sh/uv/) for details.

## Project Structure

Expand All @@ -30,7 +34,15 @@ Good First Issue has two main components:
cd good-first-issue
```

2. **Set up sample data files**
2. **Set up Python environment**

```bash
uv sync --all-extras
```

This creates a virtual environment and installs all dependencies.

3. **Set up sample data files**

The front-end app needs data files to display repositories. Copy the sample files to get started:

Expand All @@ -43,13 +55,13 @@ Good First Issue has two main components:
- `generated.json` - Repository metadata (stars, issues, languages, etc.)
- `tags.json` - Language tags for filtering

3. **Install dependencies**
4. **Install frontend dependencies**

```bash
bun install
```

4. **Start the development server**
5. **Start the development server**

```bash
bun dev
Expand All @@ -62,13 +74,25 @@ Good First Issue has two main components:
To run the data sanity tests:

```bash
python -m pytest gfi/test_data.py
uv run python gfi/test_data.py
```

To run type checking:

```bash
uv run mypy gfi/*.py
```

Or run both with:

```bash
make test
```

Or using unittest directly:
## Formatting Code

```bash
python gfi/test_data.py
make format
```

## Making Changes
Expand Down
11 changes: 5 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
.ONESHELL:
pre-build:
pip install --upgrade poetry
poetry install --no-root
uv sync --all-extras

build:
bun install
bun generate

generate:
poetry run python gfi/populate.py
uv run python gfi/populate.py

generate-prod:
bun install
bun sync down
bun generate

test:
poetry run python gfi/test_data.py
poetry run mypy gfi/*.py
uv run python gfi/test_data.py
uv run mypy gfi/*.py

format:
poetry run ruff format .
uv run ruff format .
bunx prettier --write .

.DEFAULT_GOAL := build
Binary file modified bun.lockb
Binary file not shown.
Loading