Hola,
ja he fet els deures ;)
Com vam comentar a la última TUC, estaria bé compartir algunes tasques
invoke. Ara bé, no tothom utilitzarà les mateixes tasques, doncs hi
han "diferentes" formes de treballar. Per exemple:
* Insta·lar un mòdul de Tryton: al directorio modules? via pip? via
pip+hg? ....?
* Aplicar patch de
tryton.org? Per exemple nosaltres els patch els
apliquem en branques propies dins del mateix repo. Nan crec que
apliquen un diff al instal·lar.
Ara bé, hi han moltes altres tasques que son comunes. I es poden compartir.
= Un tasks de molts tasks =
Mirant la documentació de invoke he trobat importar modules com a collections:
http://docs.pyinvoke.org/en/0.11.1/concepts/namespaces.html#importing-modules-as-collections
Veureu que es molt senzill la idea.
1- He creat dos repos d'exemples. Aquests repos d'exemple son dos
repos que es treballaria en comú/comparir.
* modules
* gal
* ....
D'aquesta manera, podem anar afegint tasques segons on toqui o creant
nous repos i no crear un "tasks enorme".
Per exemple un altre repo seria per exemple fer "tasques" amb repos hg
(canvi branca, update...).
Finalment tindriem el nostre propi repo o projecte tasks. Aquest
projecte importariem les tasques comunes i que volem fer ús.
Per exemple:
from invoke import Collection
# import here your tryton tasks projects
import trytontasks_modules
import trytontasks_gal
ns = Collection()
ns.add_collection(Collection.from_module(trytontasks_modules, name='modules'))
ns.add_collection(Collection.from_module(trytontasks_gal, name='gal'))
I d'aquesta manera quan faig:
$ invoke -l
Available tasks:
gal.create Create Gal Database
modules.list List modules
I per rular la tasca:
$ invoke modules.list
List modules and repos
Com podeu veure estic treballant amb tasques que he descarregat a
partir de dos repos. El tasks/__init__.py seria la nostra
personalització.
Per "instal·lar" es molt senzill.
1- Descarregar el nostre tasks (via hg o altre sistema). Jo us
adjunt-ho un exemple.
2- Instal·lar el requirements.txt. Us adjunt-ho un exemple. Com
veureu, faig un hg+https dels repos.
I ja el tinc rulant.
= Tasques =
El següent punt seria fer un llistat de tasques que serien comunes i
quines no. Potser paso ara la "pilota" a la gent de Nan que el seu
projecte de tasks està "mes farcit" de tasques i segur que poden fer
neteja ;)
Espero que us agradi la idea.
--
Raimon Esteve - @raimonesteve
// Cloud Tryton - OpenERP
www.zzsaas.com
// DOC:
http://doc.zzsaas.com
www.zikzakmedia.com