# behavedb - Package Name Reservation

This repository contains placeholder packages to reserve the "behavedb" name across multiple package registries.

## Package Registries

- **npm** (JavaScript/Node.js)
- **Cargo** (Rust)
- **PyPI** (Python)

## Installation

### npm (Node.js)

**macOS:**
```bash
# Using Homebrew
brew install node

# Or download from nodejs.org
```

**Windows:**
```bash
# Using winget
winget install OpenJS.NodeJS

# Or download installer from nodejs.org
```

**Linux:**
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install nodejs npm

# Fedora
sudo dnf install nodejs npm

# Arch Linux
sudo pacman -S nodejs npm
```

**Create npm account:** https://www.npmjs.com/signup

### Cargo (Rust)

**macOS / Linux:**
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

**Windows:**
Download and run rustup-init.exe from https://rustup.rs/

**All platforms:**
After installation, restart your terminal and verify:
```bash
rustc --version
cargo --version
```

**Create crates.io account:** https://crates.io/
**Get login token:** https://crates.io/me

### PyPI (Python)

**macOS:**
```bash
# Using Homebrew
brew install python

# macOS usually comes with Python pre-installed
python3 --version
```

**Windows:**
```bash
# Using winget
winget install Python.Python.3.12

# Or download from python.org
```

**Linux:**
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip

# Fedora
sudo dnf install python3 python3-pip

# Arch Linux
sudo pacman -S python python-pip
```

**Install publishing tools (all platforms):**
```bash
pip install build twine
# or
pip3 install build twine
```

**Create PyPI account:** https://pypi.org/account/register/

## Publishing Commands

### npm

```bash
# Login to npm (one time)
npm login

# Publish
npm publish
```

### Cargo (Rust)

```bash
# Login to crates.io (one time)
cargo login <your-token>

# Publish
cargo publish
```

### PyPI (Python)

```bash
# Login to PyPI (one time - creates ~/.pypirc)
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
# You'll be prompted for username and password

# Or use API token in ~/.pypirc:
# [pypi]
# username = __token__
# password = <your-token>

# Build the package
python -m build

# Upload to PyPI
twine upload dist/*
```

## Update Package Information

Before publishing, update the following in each file:

- **package.json**: Add your details if needed
- **Cargo.toml**: Update `authors` field
- **setup.py**: Update `author` and `author_email`
- **pyproject.toml**: Update `authors` section

## Version Updates

To publish a new version, update the version number in:
- `package.json` - npm
- `Cargo.toml` - Cargo
- `setup.py` and `pyproject.toml` - PyPI

## License

MIT
