Gestionnaire de dépendances pour le langage Crystal.
Les applications et bibliothèques Crystal doivent avoir à leur racine un fichier shard.yml
ressemblant à ceci :
name : shards
version : 0.1.0
dependencies :
openssl :
github : datanoise/openssl.cr
branch : master
development_dependencies :
minitest :
git : https://github.com/ysbaddaden/minitest.cr.git
version : ~> 0.3.1
license : MIT
Lorsque les bibliothèques sont installées à partir de référentiels Git, le référentiel doit avoir des balises de version suivant un format de type Semver, préfixées par un v
. Exemples : v1.2.3
, v2.0.0-rc1
ou v2017.04.1
.
Veuillez consulter le SPEC pour plus de détails sur le format shard.yml
.
Shards est généralement distribué avec Crystal lui-même (par exemple les packages Homebrew et Debian). Alternativement, un package shards
peut être disponible pour votre système.
Vous pouvez télécharger une archive tar source à partir de la même page (ou cloner le référentiel), puis exécuter make release=1
et copier bin/shards
dans votre PATH
. Par exemple /usr/local/bin
.
Vous êtes maintenant prêt à créer un shard.yml
pour vos projets (voir détails dans SPEC). Vous pouvez taper shards init
pour créer un exemple de fichier shard.yml
pour votre projet.
Exécutez shards install
pour installer vos dépendances, ce qui verrouillera vos dépendances dans un fichier shard.lock
. Vous devez vérifier à la fois shard.yml
et shard.lock
dans le contrôle de version, afin que shards install
installent toujours des versions verrouillées, permettant ainsi des installations reproductibles sur tous les ordinateurs.
Exécutez shards --help
pour répertorier les autres commandes avec leurs options.
Bon piratage !
Ces exigences ne sont nécessaires que pour compiler des fragments.
Cristal
Veuillez vous référer à https:// crystal-lang.org/install/ pour obtenir des instructions relatives à votre système d'exploitation.
molinillo
Le fragment molinillo
doit être sur le chemin du cristal. Il est disponible sur https://github.com/cristal-lang/cristal-molinillo Vous pouvez l'installer soit avec un binaire shards
préexistant (en exécutant shards install
), soit simplement consulter le référentiel à l' lib/crystal-molinillo
( make lib
).
Libyeml
Sur Debian/Ubuntu Linux, vous pouvez installer le package libyaml-dev
.
Sous Mac OS X, vous pouvez l'installer en utilisant homebrew avec brew install libyaml
puis assurez-vous d'avoir /usr/local/lib
dans votre variable d'environnement LIBRARY_PATH
(par exemple : export LIBRARY_PATH="/usr/local/lib:$LIBRARY_PATH"
). Veuillez ajuster le chemin en fonction de votre installation Homebrew.
asciidocteur
Nécessaire pour créer des pages de manuel.
Il est fortement recommandé d'utiliser make
pour créer des fragments et les développer. Le Makefile
contient des recettes pour la compilation et les tests. Construire avec make
garantit également que la dépendance source molinillo
est installée. Vous n'avez pas besoin de vous en occuper vous-même.
Exécutez make bin/shards
pour construire le binaire.
release=1
pour une version release (applique des optimisations)static=1
pour les liens statiques (fonctionne uniquement avec musl-libc)debug=1
pour des informations de débogage symbolique complètes Exécutez make install
pour installer le binaire. Le chemin cible peut être ajusté avec PREFIX
(par défaut : PREFIX=/usr/bin
).
Exécutez make test
pour exécuter les suites de tests :
make test_unit
exécute des tests unitaires ( ./spec/unit
)make test_integration
exécute des tests d'intégration ( ./spec/integration
) sur bin/shards
Exécutez make docs
pour créer les pages de manuel.
Ce référentiel contient une configuration pour devenv.sh qui facilite la configuration d'un environnement reproductible avec tous les outils nécessaires à la construction et aux tests.
devenv shell
pour obtenir un shell avec un environnement de développement Un crochet pour l’activation automatique du shell est également inclus. Si direnv
est installé, l'environnement devenv se charge automatiquement dès l'entrée dans le dossier repo.
Sous licence Apache, version 2.0. Voir LICENCE pour plus de détails.