2012-12-30 1 views
7

Julia a un système de conditionnement basé sur des référentiels Git avec des répertoires spécifiques (squelette de paquet obtenu avec Pkg.new("MyPackage")), et un fichier METADATA qui liste les paquets et les serveurs git qu'ils peuvent trouvé sur.Le (s) moyen (s) le plus simple pour rendre un paquet Julia disponible aux autres

Pkg.init() initialise une installation Julia locale avec la liste par défaut de package, mais quelles sont les étapes exactes à écrire dans sa documentation de package afin de permettre aux utilisateurs potentiels de l'essayer avec Pkg.add("MyPackage"); require("MyPackage")?

Répondre

5

Tout code de source de paquet peut être placé manuellement dans .julia/MyPackage. Cela peut être effectué en décompressant un fichier ou en extrayant manuellement la source du package de son référentiel. Une fois cela fait, require("MyPackge") fonctionnera, tout comme avec tous les paquets officiels.

Si vous voulez que les utilisateurs essayent Pkg.add ("MyPackage"), vous devrez leur fournir votre propre référentiel METADATA. Clonez le dépôt officiel, ajoutez votre propre paquet comme d'habitude. Ensuite, demandez aux utilisateurs d'initialiser leur installation de package julia avec Pkg.init("url to metdata git repository"). Une fois cela fait, Pkg.add("MyPackage") va installer le paquet à partir de son propre dépôt git privé.

+0

Merci. Nous y arrivons ;-). Comment cela fonctionne-t-il lorsque plusieurs personnes proposent de distribuer des paquets de cette façon (c'est-à-dire que plusieurs personnes fourchent les METADATA officiels pour ajouter leur propre paquet)? – lgautier

+0

Je ne pense pas qu'il y ait beaucoup de considération pour plusieurs personnes forçant METADATA à distribuer leurs propres paquets. La méthode que j'ai décrite ci-dessus est vraiment pour tester temporairement un développement initial d'un paquet. Une fois que vous êtes prêt à distribuer un paquet à une base d'utilisateurs plus large, vous devez ajouter le paquet à la METADATA officielle. Il prend une simple requête de pull github, et les exigences ne sont pas du tout onéreuses (Seulement que le nom soit unique et raisonnable). La source réelle du paquet continue à être sous votre propre git. Une raison pour laquelle vous ne voulez pas ajouter un paquet aux métadonnées officielles? – aviks

+0

Il existe différentes situations dans lesquelles une commutation facile entre des collections de référentiels ou une hiérarchie de collections de référentiels pour rechercher un package est souhaitable. Une situation est celle des gens derrière un rideau de fer d'entreprise partageant des paquets internes, tout en voulant aussi aller chercher des paquets publics. Sinon, je n'ai pas de raison particulière de ne pas soumettre une demande d'extraction pour mon colis. Je vais le faire sous peu, merci pour la réponse (s). – lgautier

1

Pour mes propres paquets, je me sers du passe-partout suivant:

Le paquet FILL_ME_IN est disponible via le système de package Julia. Si vous ne l'avez jamais utilisé le système de package avant, vous devez exécuter les éléments suivants:

require("pkg")

Pkg.init()

Pkg.add("FILL_ME_IN")

Si vous avez une bibliothèque existante de paquets, vous pouvez Tirez le paquet FILL_ME_IN dans votre bibliothèque en utilisant des commandes similaires:

require("pkg")

Pkg.add("FILL_ME_IN")

+0

Merci. Je suppose que FILL_ME_IN se réfère à ce que l'on appelle "MyPackage" dans la question, et suppose que ce paquet est listé dans la METADATA par défaut fournie avec "pkg". Ma question est "comment puis-je rendre son propre paquet facilement accessible aux autres?", Et non "comment puis-je tirer un paquet listé dans les METADATA officielles?". – lgautier

Questions connexes