2013-07-17 15 views
12

Consideriamo di utilizzare Minilla o Dist :: Milla per il nostro sviluppo perl. La dichiarazione delle dipendenze viene effettuata tramite cpanfile. Mi aspettavo di trovare una definizione esatta di cosa e come può essere dichiarato. MaDove posso trovare la definizione del formato cpanfile?

  • perldoc cpanfile: mostra solo l'utilizzo principale. La sezione 'VEDERE ANCHE' non aiuta.

  • perldoc Module :: CPANfile: uguale a cpanfile.

  • perldoc cpanfile-faq: nessuna spiegazione della sintassi esatta o un link ad esso, solo

DSL sintassi familiare

Si tratta di un nuovo tipo di file, ma il formato e la sintassi non è completamente nuova. I metadati che può dichiarare sono esattamente un sottoinsieme di "Prereqs" in Meta Spec CPAN.

La sintassi prende in prestito molto da Module :: Install. Modulo :: Installa è un ottimo modo per dichiarare facilmente i metadati del modulo come il nome, l'autore e le dipendenze del . Il formato cpanfile è semplicemente quello di estrarre le dipendenze in un file separato, il che significa che la maggior parte degli sviluppatori è familiare con la sintassi.

Qualcuno sa dove trovare un esatto descrizione dello cpanfile sintassi/formato?

+2

Da nessuna parte. Urla a miyagawa. :) – hobbs

+1

@hobbs: Non voglio urlare. Il mondo non è perfetto, così come Perl e il suo mondo. Sono stato sorpreso di non trovare la documentazione. – katastrophos

risposta

6

Ho installato Module::CPANFile e perldoc cpanfile e perldoc cpanfile-faq erano disponibili.

Il POD per cpanfile stati:

[the] cpanfile specification (this document) is based on Ruby's 
Gemfile http://gembundler.com/man/gemfile.5.html specification. 

Il link nella pagina di manuale cpanfile è rotto. Si dovrebbe puntare a: http://bundler.io/v1.3/man/gemfile.5.html

cpanfile è stato progettato per "compatibile" con la sintassi Module::Install DSL ed è "trasformabile in CPAN :: :: Meta PreReqs" e ispirato da CPAN::Meta Spec v.2 ecc

quanto ho capito cpanfile è un po 'un "meta-formato" e si inserisce in una gamma di approcci TIMTOWTDI (vedere miyagawa's blog describing cpanfile), compatibile con Module::Install e principalmente auto-documentante.Ad esempio, se esegui mymeta-cpanfile all'interno di una directory con i file META, verrà creato un cpanfile per te; è possibile scrivere uno script che descriva i prerequisiti da CPAN::Meta::Prereqs e quindi $file->save('cpanfile'); per scrivere un cpanfile.

Per quanto riguarda Dist::Milla, nel tutorial (vedi POD incluso con Dist::Milla) Miyagawa sottolinea che "Se si decide di costruire manualmente [a] nuova cpanfile, il formato è per lo più compatibile con Module::Install 's requisito DSL". Il tutorial fornisce anche un breve esempio.

penso che sarebbe giusto chiedere miyagawa di chiarire lo status e casi d'uso della specifica cpanfile/formato nella documentazione per la distribuzione. Questo e altri esempi potrebbero rispondere a domande come la tua. Ha già svolto il lavoro principalmente su questo - non è tutto in un solo posto.

+2

Che cosa significa "basato su"? Stessa sintassi, stessa semantica, caratteristiche perl estese ...? Mi piacerebbe leggere il formato esatto/definizione PER PERL o che devo leggere la spec rubino gemma ;-)! Btw. il collegamento è rotto. – katastrophos

+1

@katastrophos: Ma non hai scritto un problema per il link non funzionante - beh, l'ho fatto. –

+0

@SlavenRezic: hai ragione. Usando questo link verrai reindirizzato su http://bundler.io/man/gemfile.5.html che è un sito "pagina non trovata". Devi andare alla pagina principale e iniziare la ricerca da lì (cosa che non ho fatto). – katastrophos