Tryton Tasks

48 views
Skip to first unread message

Raimon Esteve

unread,
Dec 14, 2015, 9:53:20 AM12/14/15
to tryt...@googlegroups.com
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
tasks.tar.gz

Raimon Esteve

unread,
Dec 14, 2015, 9:58:06 AM12/14/15
to tryt...@googlegroups.com
Per cert, ho donava per suposat. Personalment sempre treballo en un
entorn virtualenv de python. Per tant, abans d'instal·lar res, cal
crear el entorn de virtualenv, mes si feu proves :P

els dos repos que he posat com exemple:

https://bitbucket.org/trytonspain/trytontasks-gal
https://bitbucket.org/trytonspain/trytontasks-modules

Raimon Esteve

unread,
Dec 14, 2015, 10:57:16 AM12/14/15
to tryt...@googlegroups.com
Hola,

us deixo un exemple mes detallat que he treballat amb modules:

* obtenir el config dels modules
* llistar info dels modules

(trytontaskstests)resteve@canigo:~/virtualenv/trytontaskstests$ invoke -l
Available tasks:

gal.create Create Gal Database
modules.config Clone config repo
modules.info Info config modules

(trytontaskstests)resteve@canigo:~/virtualenv/trytontaskstests$ invoke
modules.config
'modules.config' did not receive all required positional arguments!

(trytontaskstests)resteve@canigo:~/virtualenv/trytontaskstests$ invoke
--help modules.config
Usage: inv[oke] [--core-opts] modules.config [--options] [other tasks here ...]

Docstring:
Clone config repo

Options:
-b STRING, --branch=STRING
-r STRING, --repo=STRING

(trytontaskstests)resteve@canigo:~/virtualenv/trytontaskstests$ invoke
modules.config https://bitbucket.org/zikzakmedia/tryton-config -b
source
Repo ./config Updated to Revision:source <- canviar revision per branch.

(trytontaskstests)resteve@canigo:~/virtualenv/trytontaskstests$ invoke
modules.info -c trytonspain.cfg
71 modules
account_bank hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank
./trytond/trytond/modules default
account_bank_statement hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank_statement
./trytond/trytond/modules default
account_bank_statement_account hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank_statement_account
./trytond/trytond/modules default
account_bank_statement_counterpart hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank_statement_counterpart
./trytond/trytond/modules default
account_bank_statement_csv hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank_statement_csv
./trytond/trytond/modules default
account_bank_statement_es_csb43 hg
ssh://h...@bitbucket.org/trytonspain/trytond-account_bank_statement_es_csb43
./trytond/trytond/modules default
.....

Raimon Esteve

unread,
Jan 7, 2016, 5:10:39 PM1/7/16
to tryt...@googlegroups.com
Hola

he creat tres tasques per la "rutina del SAO"

sao.install Install SAO
sao.grunt Grunt SAO
sao.locales Locales SAO

https://bitbucket.org/trytonspain/trytontasks-sao

(nota: el repo/directori sao ha d'estar el mateix nivell que tasks).

Salutacions

Raimon

Raimon Esteve

unread,
Jan 11, 2016, 5:30:44 PM1/11/16
to tryt...@googlegroups.com
Hola

he creat tres tasques per la generació de User DOC:

doc.install Install User DOC
doc.make Make User DOC
doc.build Build User DOC (html, singlehtml...)


Alhora al trytond-doc he inclòs un config.py.template com a base per
doc.make el cregui

Usage: inv[oke] [--core-opts] doc.make [--options] [other tasks here ...]

Docstring:
Make User DOC

Options:
-c STRING, --copyright=STRING
-d STRING, --doc-path=STRING
-l STRING, --lang=STRING
-m STRING, --modules=STRING
-p STRING, --project-name=STRING
-s STRING, --source-doc=STRING
-u STRING, --user-doc-path=STRING
-v STRING, --version=STRING

nota:
per la v3.8 cal aplicar el PR
https://bitbucket.org/nantic/trydoc/pull-requests/3/upgrade-38

Salutacions

Albert Cervera i Areny

unread,
Jan 12, 2016, 12:28:54 PM1/12/16
to tryt...@googlegroups.com
El dia 7 de gener de 2016, 23:10, Raimon Esteve
<res...@zikzakmedia.com> ha escrit:
> Hola
>
> he creat tres tasques per la "rutina del SAO"
>
> sao.install Install SAO
> sao.grunt Grunt SAO
> sao.locales Locales SAO
>
> https://bitbucket.org/trytonspain/trytontasks-sao

Mola!

>
> (nota: el repo/directori sao ha d'estar el mateix nivell que tasks).
>
> Salutacions
>
> Raimon



--
Albert Cervera i Areny
http://www.NaN-tic.com
Tel. 93 553 18 03

Albert Cervera i Areny

unread,
Jan 12, 2016, 12:29:26 PM1/12/16
to tryt...@googlegroups.com
2016-01-11 23:30 GMT+01:00 Raimon Esteve <res...@zikzakmedia.com>:
> Hola
>
> he creat tres tasques per la generació de User DOC:
>
> doc.install Install User DOC
> doc.make Make User DOC
> doc.build Build User DOC (html, singlehtml...)
>

Potser m'he perdut alguna cosa però això ja hi havia accions que ho feien, no?

>
> Alhora al trytond-doc he inclòs un config.py.template com a base per
> doc.make el cregui
>
> Usage: inv[oke] [--core-opts] doc.make [--options] [other tasks here ...]
>
> Docstring:
> Make User DOC
>
> Options:
> -c STRING, --copyright=STRING
> -d STRING, --doc-path=STRING
> -l STRING, --lang=STRING
> -m STRING, --modules=STRING
> -p STRING, --project-name=STRING
> -s STRING, --source-doc=STRING
> -u STRING, --user-doc-path=STRING
> -v STRING, --version=STRING
>
> nota:
> per la v3.8 cal aplicar el PR
> https://bitbucket.org/nantic/trydoc/pull-requests/3/upgrade-38
>
> Salutacions



Raimon Esteve

unread,
Jan 12, 2016, 2:04:28 PM1/12/16
to tryt...@googlegroups.com
El dia 12 de gener de 2016, 18:29, Albert Cervera i Areny
<alb...@nan-tic.com> ha escrit:
> 2016-01-11 23:30 GMT+01:00 Raimon Esteve <res...@zikzakmedia.com>:
>> Hola
>>
>> he creat tres tasques per la generació de User DOC:
>>
>> doc.install Install User DOC
>> doc.make Make User DOC
>> doc.build Build User DOC (html, singlehtml...)
>>
>
> Potser m'he perdut alguna cosa

suposo que el primer correu de tots.... que explicava com treballar
"amb paquets" de tasques.

https://groups.google.com/d/msg/tryton-ca/0o4baIrIjHw/t-cGJPCBDAAJ

> però això ja hi havia accions que ho feien, no?

En el cas de DOC, una part m'he inspirat del vostre repo tryton-tasks,
i l'he extret com "a paquet".

Per exemple, la doc només ho vull activar en local, no per cada client
per no dependre de sphinx & co cada virtualenv. El que he fet es:

try:
import trytontasks_userdoc
userdoc = True
except:
userdoc = False

if userdoc:
ns.add_collection(Collection.from_module(trytontasks_userdoc, name='doc'))

Raimon Esteve

unread,
Jan 20, 2016, 8:13:48 AM1/20/16
to tryt...@googlegroups.com
Hola,

i amb aquestes dues tasques, els últims que crec que per part meva necessito:

Gal:

gal.create Create new Gal Database (PostgreSQL)
gal.install Install modules and create data

gal.dump Dump PSQL Database to SQL file
gal.restore Create PSQL Database and restore SQL file
gal.dropdb Drop PSQL Database

La part de creació base dades + data, al usar proteus, és lent i triga
molt (molt, es molt). Lo millor es una vagada fet "gal.create +
gal.install", feu un dump i cada cop carregar el SQL resultat
(restore). És més ràpid.

Tests:

tests.test Run Tryton test module/s
tests.pyflakes Run pyflakes in module/s

el coverage no ho he implementat.

Com sempre, cada una d'aquestes comandes, amb --help, hi han els paràmetres.

Us deixo aquí un exemple del vostres tasks/__init__.py Aquí podeu
personalizar i compartir altres tasques.

https://bitbucket.org/snippets/trytonspain/kE979
Reply all
Reply to author
Forward
0 new messages