Skip to content
Open
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
163 changes: 163 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Contributing to Tent of Trials

Thank you for your interest in contributing to Zeroeye! This document provides guidelines for contributing to this project.

## Table of Contents

- [Getting Started](#getting-started)
- [Local Setup](#local-setup)
- [Build Instructions](#build-instructions)
- [Testing](#testing)
- [Pull Request Workflow](#pull-request-workflow)
- [Code Style](#code-style)
- [Bounty Program](#bounty-program)

## Getting Started

### Prerequisites

- Python 3.9+
- Node.js 18+
- Rust toolchain (for Frailbox modules)
- Docker (optional, for containerized builds)

### Clone the Repository

```bash
git clone https://github.com/NemoMi/zeroeye.git
cd zeroeye
```

## Local Setup

### 1. Install Dependencies

```bash
# Python dependencies
pip install -r requirements.txt

# Frontend dependencies
cd frontend
npm install
cd ..

# Rust dependencies (for Frailbox)
cargo fetch
```

### 2. Configure Environment

```bash
# Copy and edit the environment file
cp .env.example .env

# Set your configuration
export ZEROEYE_ENV=development
```

### 3. Run Build Script

```bash
python3 build.py
```

This validates the project structure and generates diagnostic artifacts in the `diagnostic/` directory.

## Build Instructions

### Frontend (TypeScript/React)

```bash
cd frontend
npm run build
npm run preview
```

### Backend (Python)

```bash
python3 -m pytest tests/
```

### Frailbox (Rust/C Modules)

```bash
cd frailbox
cargo build --release
```

### Market (Go)

```bash
cd market
go build ./...
```

## Testing

Run all tests:

```bash
# Python tests
python3 -m pytest

# Frontend tests
cd frontend && npm test

# Frailbox tests
cd frailbox && cargo test
```

## Pull Request Workflow

1. **Fork** the repository
2. **Create a branch** from `main`:
```bash
git checkout -b feature/your-feature-name
```
3. **Make your changes** and commit with clear messages
4. **Push** your branch to your fork
5. **Open a Pull Request** targeting `NemoMi/zeroeye:main`
6. **Link** any related issues in your PR description
7. **Include** the generated diagnostic `.logd` artifact from `diagnostic/build-XXX.logd`
8. **Reference** `.editorconfig` for code style consistency

### PR Template

When opening a PR, include:
- Link to `pull_request_template.md` (if exists)
- Description of changes
- Related issue numbers
- Screenshots (if UI changes)

## Code Style

This project follows `.editorconfig` for consistent coding styles:

- Indentation: 2 spaces (JavaScript/TypeScript)
- Indentation: 4 spaces (Python)
- Line endings: LF
- Trim trailing whitespace
- Final newline at end of files

Please ensure your editor respects the `.editorconfig` file in the repository root.

## Bounty Program

This project offers bounties for specific contributions:

- **Documentation bounties**: README improvements, CONTRIBUTING.md, API docs
- **Feature bounties**: New modules, integrations, tools
- **Bug fix bounties**: Critical fixes, security patches

Check the repository issues labeled with `bounty` for available opportunities.

## Additional Resources

- [README.md](README.md) - Project overview
- [docs/](docs/) - Additional documentation
- [diagnostic/](diagnostic/) - Build diagnostics and validation artifacts

## Questions?

Feel free to open an issue if you have questions about contributing.
Loading