# Publishing scm-sql-dataset — one-shot runbook

Run these commands **from `Mtech-4th-sem-PROJECT/scm-sql-dataset/`** in a
PowerShell window. Every step is idempotent; a failed step can be re-run.

Assumed identities:
- GitHub: `AniruddhaPKawarase`
- Hugging Face: `AniruddhaAI`

## Step 0 — one-time tool installs

Install if not already present:

```powershell
# GitHub CLI (auth + repo creation from terminal)
winget install --id GitHub.cli

# Hugging Face CLI + huggingface_hub Python library
pip install -U "huggingface_hub[cli]"
```

Then authenticate once:

```powershell
gh auth login          # follow the browser prompt; pick HTTPS + "yes to git"
huggingface-cli login  # paste a token from https://huggingface.co/settings/tokens (Write access)
```

## Step 1 — push to GitHub

```powershell
cd "C:\Users\ANIRUDDHA ASUS\Downloads\Myself\Mtech-4th-sem-PROJECT\scm-sql-dataset"

git init -b main
git add .
git commit -m "SCM-SQL v1.0 — 500 pairs / 556 turn-level trials / 4 domains / 6 complexity levels"

# Create the public repo AND push in one shot
gh repo create AniruddhaPKawarase/scm-sql-dataset `
    --public `
    --description "SCM-SQL: 500-pair supply-chain NL-to-SQL evaluation set (BITS Pilani WILP dissertation, 2026)" `
    --source=. `
    --remote=origin `
    --push
```

Verify: browse to https://github.com/AniruddhaPKawarase/scm-sql-dataset

## Step 2 — push to Hugging Face

Hugging Face datasets live at https://huggingface.co/datasets/<user>/<name>
and use their own git remote.

```powershell
cd "C:\Users\ANIRUDDHA ASUS\Downloads\Myself\Mtech-4th-sem-PROJECT\scm-sql-dataset"

# Create the dataset repo on the Hub (idempotent — safe to re-run)
huggingface-cli repo create scm-sql --type dataset

# Add HF as an extra remote alongside GitHub
git remote add hf https://huggingface.co/datasets/AniruddhaAI/scm-sql

# Push to HF. Uses your huggingface-cli login credentials.
git push hf main
```

Verify: https://huggingface.co/datasets/AniruddhaAI/scm-sql

**Dataset card**: the top of `README.md` already contains the YAML
frontmatter that Hugging Face expects — task categories, language,
tags, licence, size — so the dataset page auto-populates.

## Step 3 — verify Hugging Face `datasets` loader works

Once the HF push completes, from *any* machine with `pip install datasets`:

```python
from datasets import load_dataset
ds = load_dataset("AniruddhaAI/scm-sql", split="test")
print(len(ds), "pairs")
print(ds[0])
```

If the dataset doesn't load out-of-the-box, add a tiny loader script:

```powershell
# Only if the auto-loader fails
python examples/load_dataset.py     # confirms local YAML loads fine
```

Hugging Face may auto-detect the YAML file; if it insists on a parquet
or JSONL form, run:

```powershell
python - << 'PY'
import yaml, json
from pathlib import Path
pairs = yaml.safe_load(Path("data/pilot_500.yaml").read_text(encoding="utf-8"))["pairs"]
with open("data/pilot_500.jsonl", "w", encoding="utf-8") as f:
    for p in pairs:
        f.write(json.dumps(p, ensure_ascii=False) + "\n")
print(len(pairs), "records converted")
PY

git add data/pilot_500.jsonl
git commit -m "data: add JSONL mirror for HF auto-loader"
git push hf main
git push origin main
```

## Step 4 — tag the release

Tag `v1.0` on GitHub so the citation URL points at a stable snapshot:

```powershell
git tag -a v1.0 -m "SCM-SQL v1.0 initial public release"
git push origin v1.0
git push hf v1.0
```

Then edit the GitHub release page: https://github.com/AniruddhaPKawarase/scm-sql-dataset/releases/new?tag=v1.0

## Rollback

If anything is wrong after pushing, you can force-push a fix or delete
the repo:

```powershell
gh repo delete AniruddhaPKawarase/scm-sql-dataset --confirm
huggingface-cli repo delete AniruddhaAI/scm-sql --type dataset --confirm
```