Metadata-Version: 2.4
Name: deploy_pkg
Version: 0.0.8
Summary: One-shot bootstrap & deploy script for Python packages (git+GitHub+PyPI).
Author-email: Baptiste Ferrand <bferrand.maths@gmail.com>
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: toml>=0.10
Requires-Dist: requests>=2
Requires-Dist: python-dotenv>=1
Dynamic: license-file

# deploy_pkg

> 🚀 Le couteau suisse « one-shot » pour publier un paquet Python en un seul appel.

`deploy_pkg` automatise **tout** le pipeline :  
– bootstrap de projet (pyproject/README/licence/git…)  
– création de dépôt GitHub + push + tag  
– build Python & éventuel frontend npm  
– installation locale (_editable_)  
– publication PyPI via Twine  

Aucune interaction : lance et profite !

---

## Installation

```bash
pip install deploy-pkg
```

ou en local :

```bash
git clone https://github.com/<toi>/deploy_me.git
cd deploy_me
pip install -e .
```

---

## Pré-requis

| Outil               | Rôle                                  |
|---------------------|---------------------------------------|
| **git**             | versionnage + push GitHub             |
| **Python ≥ 3.8**    | exécution du script                   |
| **GITHUB_TOKEN**    | droits `repo` + `user:email`          |
| _(optionnel)_ **npm** | build du dossier `frontend/` (si présent) |

Crée un fichier `.env` :

```env
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# PKG_NAME=override_nom_paquet   # (facultatif)
```

---

## Usage

Dans le dossier de **ton** projet (vide ou existant) :

```bash
deploy-pkg            # ou : python -m deploy_pkg
```

Le script :

1. installe les dépendances manquantes (`build`, `twine`, …)  
2. crée les fichiers de base s’ils n’existent pas  
3. incrémente le patch de version (`0.0.X → 0.0.X+1`)  
4. construit le paquet (`python -m build`)  
5. `pip install -U -e .`  
6. init git / commit / tag / push  
7. upload `dist/*` sur PyPI  

> **Boom !** Ton paquet est en ligne et déjà installé à jour sur ta machine.

---

## Exemples

### Publier un tout nouveau projet

```bash
mkdir awesome
cd awesome
deploy-pkg
# => crée pyproject, README, etc. puis publie automatiquement
```

### Publier un projet déjà existant

```bash
cd awesome
git status         # doit être propre
deploy-pkg
# => bump version, build, push, upload
```

---

## Dépendances runtime

- `requests`
- `toml`
- `python-dotenv`

Les outils « build » (`build`, `twine`) sont installés à la volée si absents.

---

## Pourquoi pas un simple *Makefile* ?

Parce que :

- tu oublies toujours une étape (« Twine ? tag git ? bump ?… »)  
- ça détecte et installe ce qu’il manque (git, deps Python, npm)  
- aucun copier-coller : **un fichier, une commande, fini**.

---

## Contribuer

Les MR / PR sont les bienvenues.  
Avant de pousser :

```bash
python -m pip install -e ".[dev]"
pytest
```

---

## Licence

MIT – fais-en bon usage, améliore-le, partage-le !
