Swift Package Manager (SPM) offre plusieurs moyens de contrôler la version de Swift pour votre package. Voici un guide complet sur la gestion des versions de Swift à l’aide de SPM :

Spécification de la version des outils Swift

Le moyen le plus direct de contrôler la version de Swift pour votre package est de spécifier la version des outils Swift au début de votre fichier Package.swift. Cette déclaration détermine la version minimale de Swift requise pour compiler votre package.

Pour définir la version des outils Swift, ajoutez la ligne suivante tout en haut de votre fichier Package.swift :

// swift-tools-version:5.5

Cette ligne indique que votre package nécessite Swift 5.5 ou une version ultérieure. Vous pouvez spécifier toute version valide de Swift, comme :

// swift-tools-version:5.0
// swift-tools-version:5.3
// swift-tools-version:5.7

La version des outils Swift affecte plusieurs aspects de votre package :

  • Elle détermine la version de l’API PackageDescription disponible pour votre manifeste.
  • Elle fixe la version minimale des outils Swift nécessaires pour utiliser votre package.
  • Elle définit la version de compatibilité du langage Swift pour la compilation des sources de votre package.
let package = Package(
    name: "MyPackage",
    // ...
    swiftLanguageVersions: [.v5]
)

Cette configuration vous permet de déclarer la compatibilité avec des versions spécifiques du langage Swift. Vous pouvez spécifier plusieurs versions si nécessaire :

Versions de Swift spécifiques aux plateformes

Si votre package doit prendre en charge différentes versions de Swift sur différentes plateformes, vous pouvez utiliser le paramètre platforms pour spécifier les versions minimales de déploiement :

let package = Package(
    name: "MyPackage",
    platforms: [
        .macOS(.v10_15),
        .iOS(.v13),
        .tvOS(.v13),
        .watchOS(.v6)
    ],
    // ...
)

Bien que cela ne contrôle pas directement la version de Swift, cela garantit que votre package est compatible avec les versions de Swift disponibles sur ces versions de plateforme.

Gestion des dépendances

Lors de l’ajout de dépendances à votre package, vous pouvez contrôler indirectement la version de Swift en spécifiant les exigences de version :

dependencies: [
    .package(url: "https://github.com/example/package.git", from: "1.0.0")
]

En choisissant des dépendances qui prennent en charge des versions spécifiques de Swift, vous pouvez garantir la compatibilité avec la version de Swift souhaitée.

Bonnes Pratiques

  • Utilisez la dernière version stable : En général, il est recommandé d’utiliser la dernière version stable de Swift, sauf si vous avez des raisons spécifiques de ne pas le faire.
  • Compatibilité ascendante : Si possible, maintenez la compatibilité avec les anciennes versions de Swift pour rendre votre package plus accessible.
  • Mises à jour régulières : Gardez votre package à jour avec les nouvelles versions de Swift pour bénéficier des améliorations de performance et des nouvelles fonctionnalités.
  • Tests : Testez toujours votre package avec différentes versions de Swift pour garantir la compatibilité.
  • Documentation : Documentez clairement les exigences de version de Swift dans votre fichier README pour les autres développeurs.

En utilisant ces techniques, vous pouvez efficacement contrôler et gérer les versions de Swift pour votre package SPM, assurant ainsi la compatibilité et tirant parti des fonctionnalités linguistiques appropriées pour votre projet.

Categorized in:

SPM,