Guide de démarrage et de configuration d'un projet open source

1. Structure des répertories et présentation du projet

La structure typique du projet open source DiffusionTrack se présente comme suit :

DiffusionTrack/
│
├── .gitignore           # Règles pour ignorer les fichiers dans Git
├── Dockerfile           # Spécifications pour construire l'image Docker
├── README.md            # Documentation principale du projet
│
├── docs/                # Documentation complémentaire
│   └── ...
│
├── scripts/             # Scripts utilitaires pour le projet
│   ├── start.sh         # Script d'initialisation et de lancement
│   └── ...
│
├── src/                 # Code source de l'application
│   ├── main.py          # Point d'entrée principal
│   ├── ...
│   └── ...
│
└── tests/               # Suite de tests automatisés
    ├── ...
    └── ...

  • .gitignore : Fichier listant les chemins et motifs à exclure du suivi de version par Git.
  • Dockerfile : Fichier d'instructions pour assembler l'image conteneur de l'application.
  • README.md : Document de référence décrivant les fonctionnalités, l'installation et l'utilisation.
  • docs/ : Emplacement dédié à la documentation technique détaillée.
  • scripts/ : Regroupemant des fichiers de script pour les opérations courantes.
  • src/ : Contient le code source exécutable de l'application.
  • tests/ : Héberge le code permettant de valider le fonctionnement du projet.

2. Démarrage de l'application

Le script principal pour lancer l'application se trouve dans scripts/start.sh. Ce fichier orchestre l'exécution.

Voici un exemple de contenu réécrit :

#!/usr/bin/env bash

# Définition d'une variable d'environnement pour l'application
export APPLICATION_MODE="development"

# Vérification de l'environnement Python
if ! command -v python3 &> /dev/null; then
    echo "Python 3 est requis mais n'est pas installé."
    exit 1
fi

# Lancement du programme principal avec un paramètre
python3 ./src/main.py --config ./settings.json

Pour exécuter ce script, il faut d'abord lui accorder les droits d'exécution :

chmod u+x scripts/start.sh
./scripts/start.sh

3. Gestion de la configuration

La configuration du projet est souvent centralisée dans un fichier dédié. Imaginons un fichier settings.json placé à la racine.

Voici un exemple de configuration alternative utilisant un format JSON :

{
    "database": {
        "connexion_string": "postgresql://utilisateur:motdepasse@localhost:5432/mabase",
        "pool_size": 10
    },
    "logging": {
        "level": "INFO",
        "file_path": "/var/log/diffusiontrack/app.log"
    },
    "feature_flags": {
        "enable_beta_interface": false,
        "max_upload_size_mb": 25
    }
}

Dans le code source (par exemple dans main.py), on chargera cette configuration en utilisant un module standard :

import json
import sys

def load_configuration(config_path="settings.json"):
    try:
        with open(config_path, 'r', encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        print(f"ERREUR : Fichier de configuration '{config_path}' introuvable.")
        sys.exit(1)
    except json.JSONDecodeError as e:
        print(f"ERREUR : Format JSON invalide dans '{config_path}'. Détail : {e}")
        sys.exit(1)

if __name__ == "__main__":
    app_config = load_configuration()
    # Utilisation de app_config['database']['connexion_string'] etc.
    print("Application démarrée avec succès.")

Étiquettes: DiffusionTrack Shell Python JSON Configuration

Publié le 26 juillet à 14h24