Skip to content

Commit 866178f

Browse files
committed
feat: split release versions
1 parent fdc5813 commit 866178f

34 files changed

Lines changed: 78 additions & 78 deletions

.github/workflows/deploy-api.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Déploie lAPI FastAPI (dossier api/) sur le VPS — venv + systemd + Nginx reload.
1+
# Déploie l'API FastAPI (dossier api/) sur le VPS — venv + systemd + Nginx reload.
22
# La base MariaDB peut être distante (ex. o2switch) : DATABASE_URL dans les secrets.
33
# Sur le VPS : installe xvfb + xauth et lance Uvicorn sous xvfb-run (Chromium fenêtré si VINTED_BROWSER_HEADLESS=false).
44
# Secret optionnel VINTED_BROWSER_HEADLESS : absent → true (historique) ; false → moins flaggé par Vinted sur Xvfb.

.github/workflows/desktop-release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515
jobs:
1616
build-desktop:
1717
name: Build desktop (${{ matrix.platform }})
18-
# Évite lavertissement « actions JS sur Node 20 » (passage Node 24 côté runner GitHub).
18+
# Évite l'avertissement « actions JS sur Node 20 » (passage Node 24 côté runner GitHub).
1919
env:
2020
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
2121
permissions:
@@ -70,7 +70,7 @@ jobs:
7070
working-directory: web
7171
env:
7272
RELEASE_VERSION: 0.1.${{ github.run_number }}
73-
UPDATER_ENDPOINT: https://github.com/${{ github.repository }}/releases/download/desktop/latest.json
73+
UPDATER_ENDPOINT: https://github.com/${{ github.repository }}/releases/latest/download/latest.json
7474
UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }}
7575
run: |
7676
if [ -z "$UPDATER_PUBKEY" ]; then
@@ -129,12 +129,12 @@ jobs:
129129
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
130130
with:
131131
projectPath: web
132-
tagName: desktop
133-
releaseName: "GoupixDex Desktop"
132+
tagName: v0.1.${{ github.run_number }}
133+
releaseName: "GoupixDex Desktop v0.1.${{ github.run_number }}"
134134
releaseBody: |
135135
Build **production** Windows / macOS (Rust `--release`, pas de console cmd au lancement sur Windows).
136136
137-
Installeurs : voir les assets ci-dessous (.exe, .msi, .dmg).
137+
Installeurs : voir les assets de cette version (.exe, .msi, .dmg).
138138
139139
**Version appli :** `0.1.${{ github.run_number }}` (semver patch = numéro de run GitHub Actions, unique à chaque build sur `main`).
140140
releaseDraft: false

api/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class AppSettings(BaseSettings):
4444
supabase_storage_bucket: str | None = None
4545
usd_to_eur: float = 0.92
4646
cors_origins: str = "*"
47-
#: Marge initiale (table ``settings``) à la création dun compte et pour le margin_seeder.
47+
#: Marge initiale (table ``settings``) à la création d'un compte et pour le margin_seeder.
4848
seed_margin_percent: int = Field(default=60, ge=0, le=500)
4949
#: Base PokéWallet ou URL du proxy (ex. https://goupixdex-proxy.dibodev.fr).
5050
poke_wallet_base_url: str = "https://api.pokewallet.io"

api/desktop_vinted_server.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
"""
22
Worker HTTP local (127.0.0.1) : publication Vinted / nodriver sur le PC utilisateur.
33
4-
Les métadonnées et le JWT sont lus sur lAPI distante ; Chrome et nodriver tournent ici.
4+
Les métadonnées et le JWT sont lus sur l'API distante ; Chrome et nodriver tournent ici.
55
66
Lancer depuis le dossier ``api/`` (venv activé) ::
77
88
python desktop_vinted_server.py
99
1010
Variables utiles : ``GOUPIX_VINTED_LOCAL_PORT`` (défaut 18766), ``GOUPIX_REMOTE_API`` (URL API si
11-
le client nenvoie pas ``X-Goupix-Remote-Api``).
11+
le client n'envoie pas ``X-Goupix-Remote-Api``).
1212
"""
1313

1414
from __future__ import annotations
@@ -66,7 +66,7 @@ async def get_user_id_introspected(
6666
raw_token: Annotated[str, Depends(get_bearer_or_query_token)],
6767
remote: Annotated[str, Depends(get_remote_base_flexible)],
6868
) -> int:
69-
"""Valide le JWT via lAPI distante (pas besoin du secret JWT en local)."""
69+
"""Valide le JWT via l'API distante (pas besoin du secret JWT en local)."""
7070
async with httpx.AsyncClient(timeout=30.0) as client:
7171
r = await client.get(
7272
f"{remote}/users/me",
@@ -77,7 +77,7 @@ async def get_user_id_introspected(
7777
if not r.is_success:
7878
raise HTTPException(
7979
status_code=status.HTTP_502_BAD_GATEWAY,
80-
detail="Impossible de joindre lAPI distante pour valider la session.",
80+
detail="Impossible de joindre l'API distante pour valider la session.",
8181
)
8282
return int(r.json()["id"])
8383

api/migrations/run_migrations.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Execute SQL migration files in order (``001_*.sql``, ``002_*.sql``, ...).
22
3-
Chaque fichier nest exécuté quune fois : le nom du fichier est enregistré dans
4-
``schema_migrations``. Les fichiers SQL doivent rester idempotents lorsque cest
3+
Chaque fichier n'est exécuté qu'une fois : le nom du fichier est enregistré dans
4+
``schema_migrations``. Les fichiers SQL doivent rester idempotents lorsque c'est
55
possible (ex. ``CREATE TABLE IF NOT EXISTS``, ``ADD COLUMN IF NOT EXISTS``).
66
"""
77

api/routes/articles.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def bulk_delete_articles(
5151
db: Annotated[Session, Depends(get_db)],
5252
user: Annotated[User, Depends(get_current_user)],
5353
) -> dict[str, Any]:
54-
"""Supprime plusieurs articles appartenant à lutilisateur connecté."""
54+
"""Supprime plusieurs articles appartenant à l'utilisateur connecté."""
5555
unique_ids = list(dict.fromkeys(body.ids))
5656
deleted = article_service.delete_articles_by_ids(db, user.id, unique_ids)
5757
return {"deleted": deleted, "requested": len(unique_ids)}

api/schemas/articles.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ class SoldPatch(BaseModel):
1919

2020

2121
class BulkIdsBody(BaseModel):
22-
"""Suppression groupée darticles (même utilisateur)."""
22+
"""Suppression groupée d'articles (même utilisateur)."""
2323

2424
ids: list[int] = Field(min_length=1, max_length=500)
2525

2626

2727
class VintedBatchStartBody(BaseModel):
28-
"""Lancement dune publication Vinted groupée (une session Chrome)."""
28+
"""Lancement d'une publication Vinted groupée (une session Chrome)."""
2929

3030
article_ids: list[int] = Field(min_length=1, max_length=40)

api/seeders/conditional_seed.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
44
- ``users`` vide → ``user_seeder.py`` (nécessite ``SEED_USER_EMAIL`` / ``SEED_USER_PASSWORD``)
55
- ``margin_settings`` vide (et au moins un utilisateur) → ``margin_seeder.py``
6-
- ``articles`` vide + variable denvironnement ``SEED_DEV_ARTICLES`` truthy → ``article_seeder.py``
6+
- ``articles`` vide + variable d'environnement ``SEED_DEV_ARTICLES`` truthy → ``article_seeder.py``
77
88
À lancer depuis le dossier ``api/`` (CI / VPS après déploiement, ou en local)::
99
@@ -91,7 +91,7 @@ def main() -> None:
9191
elif n_articles == 0 and _env_truthy("SEED_DEV_ARTICLES") and n_users == 0:
9292
print(
9393
"[conditional_seed] articles vides mais aucun utilisateur — "
94-
"article_seeder ignoré (exécutez user_seeder dabord).",
94+
"article_seeder ignoré (exécutez user_seeder d'abord).",
9595
file=sys.stderr,
9696
)
9797
elif n_articles == 0:

api/seeders/run_all.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
"""Force lexécution de tous les seeders (user → margin → articles dev).
1+
"""Force l'exécution de tous les seeders (user → margin → articles dev).
22
33
Pour une base déjà peuplée, préférez ``conditional_seed.py`` (CI / premier déploiement)
4-
qui nexécute chaque script que si la table correspondante est vide (articles : option
4+
qui n'exécute chaque script que si la table correspondante est vide (articles : option
55
``SEED_DEV_ARTICLES``).
66
"""
77

api/services/article_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def article_to_dict(article: Article) -> dict[str, Any]:
5555

5656
def mark_article_published_on_vinted(article_id: int, user_id: int) -> bool:
5757
"""
58-
Marque larticle comme publié sur Vinted (session DB courte, adaptée aux tâches longues).
58+
Marque l'article comme publié sur Vinted (session DB courte, adaptée aux tâches longues).
5959
"""
6060
db = SessionLocal()
6161
try:
@@ -72,7 +72,7 @@ def mark_article_published_on_vinted(article_id: int, user_id: int) -> bool:
7272

7373
def delete_articles_by_ids(db: Session, user_id: int, ids: list[int]) -> int:
7474
"""
75-
Supprime les articles dont lid est dans ``ids`` et ``user_id`` correspond.
75+
Supprime les articles dont l'id est dans ``ids`` et ``user_id`` correspond.
7676
Renvoie le nombre de lignes supprimées.
7777
"""
7878
if not ids:

0 commit comments

Comments
 (0)