[création] Créer un package venant de github
[création] Créer un package venant de github
Bonjour,
Cela fait un moment que je développe un petit soft pour trier des vidéos de toute sorte. Après environ un an de développement, je pense qu'il est suffisament stable pour que je me préoccupe de le packager, mais je n'ai jamais fait ça. Je ne sais pas vraiment par où commencer.
Le code est dispo sur github à cette adresse : https://github.com/rififi/triator
C'est du python, avec quelques dépendances. Certaines dans les dépôts extra/community, d'autres des modules python installables grâce à pip.
Est-ce que vous pourriez m'indiquer la marche à suivre et me donner quelques conseils ?
Bien à vous.
Cela fait un moment que je développe un petit soft pour trier des vidéos de toute sorte. Après environ un an de développement, je pense qu'il est suffisament stable pour que je me préoccupe de le packager, mais je n'ai jamais fait ça. Je ne sais pas vraiment par où commencer.
Le code est dispo sur github à cette adresse : https://github.com/rififi/triator
C'est du python, avec quelques dépendances. Certaines dans les dépôts extra/community, d'autres des modules python installables grâce à pip.
Est-ce que vous pourriez m'indiquer la marche à suivre et me donner quelques conseils ?
Bien à vous.
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [création] Créer un package venant de github
Salut,
Si tu as une version stable, il te suffit de te baser sur le PKGBUILD-python.proto fourni par le paquet abs.
Si c'est la version de développement que tu souhaites partager, tu couples le PKGBUILD pour python avec celui pour git, sachant qu'il y a un certain nombre de commodités qui figurent sur le wiki et pas encore dans abs:
https://wiki.archlinux.org/index.php/Ar ... guidelines
Plus les standards à respecter, etc..
Standard_paquetage
N'hésite pas à nous montrer ton PKGBUILD, bien sûr.
Si tu as une version stable, il te suffit de te baser sur le PKGBUILD-python.proto fourni par le paquet abs.
Si c'est la version de développement que tu souhaites partager, tu couples le PKGBUILD pour python avec celui pour git, sachant qu'il y a un certain nombre de commodités qui figurent sur le wiki et pas encore dans abs:
https://wiki.archlinux.org/index.php/Ar ... guidelines
Plus les standards à respecter, etc..
Standard_paquetage
N'hésite pas à nous montrer ton PKGBUILD, bien sûr.

«The following statement is not true. The previous statement is true.» 

Re: [création] Créer un package venant de github
Merci pour ta réponse. C'est excessivement compliqué j'ai l'impression..
Déjà il va falloir que je modifie un peu mon code. Est-ce qu'il y a des "standards" à respecter pour les données utilisateurs d'un programme ? Par exemple, mon script crée des miniatures et des mosaïques pour les vidéos qu'il trie. Où dois-je mettre ces images ? dans /home/user/.monProgramme ?
Et ensuite, j'avoue ne pas bien comprendre. Les modules que j'utilise dans mon code, où est-ce que je les mets ? Je ne parle pas des miens, juste ceux qui ne sont pas dans les libs standards, je parle de ceux que l'on peut installer avec pip. Est-ce que je dois joindre ces fichiers dans mon paquet ?
Déjà il va falloir que je modifie un peu mon code. Est-ce qu'il y a des "standards" à respecter pour les données utilisateurs d'un programme ? Par exemple, mon script crée des miniatures et des mosaïques pour les vidéos qu'il trie. Où dois-je mettre ces images ? dans /home/user/.monProgramme ?
Et ensuite, j'avoue ne pas bien comprendre. Les modules que j'utilise dans mon code, où est-ce que je les mets ? Je ne parle pas des miens, juste ceux qui ne sont pas dans les libs standards, je parle de ceux que l'on peut installer avec pip. Est-ce que je dois joindre ces fichiers dans mon paquet ?
- benjarobin
- Maître du Kyudo
- Messages : 17576
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [création] Créer un package venant de github
Pour le stockage de donnée, ceci doit clairement être fait dans le home de l'utilisateur.
- Tout ce qui est temporaire, tu peux le caser dans .cache/tonprogramme/
- Les données généré non temporaire, tu peux le mettre dans .local/share
- La configuration dans .config/...
S'il n'existe pas de paquet sur AUR alors il suffit d'en créer pour chaque module.djipey a écrit : Les modules que j'utilise dans mon code, où est-ce que je les mets
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [création] Créer un package venant de github
Il faut effectivement que ton programme s'installe proprement et gère ce genre de choses.djipey a écrit :Déjà il va falloir que je modifie un peu mon code. Est-ce qu'il y a des "standards" à respecter pour les données utilisateurs d'un programme ? Par exemple, mon script crée des miniatures et des mosaïques pour les vidéos qu'il trie. Où dois-je mettre ces images ? dans /home/user/.monProgramme ?
Je n'en ai pas vu dans ton lien, mais un script d'installation python me semble pertinent (ça je sais pas faire par contre, python 'connais pas ^^).
Après faire le PKGBUILD est quasi-trivial.
«The following statement is not true. The previous statement is true.» 

Re: [création] Créer un package venant de github
@benjarobin, tu veux dire qu'il faut que je crée un paquet AUR pour chaque module que j'utilise ?S'il n'existe pas de paquet sur AUR alors il suffit d'en créer pour chaque module.
Et en ce qui concerne les données utilisateurs, je ne peux pas les mettre dans /home/user/.monProg ? Certains programmes le font (est-ce que c'est bien ?) et j'avoue que j'aime bien. Ça évite d'avoir 5000 fichiers à trouver quand on désinstalle complètement.
- benjarobin
- Maître du Kyudo
- Messages : 17576
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [création] Créer un package venant de github
Oui, si ces modules n'existe pas déjà sur AUR.djipey a écrit :@benjarobin, tu veux dire qu'il faut que je crée un paquet AUR pour chaque module que j'utilise ?
Mais apparemment ton programme ne requière aucun module qui n'est pas présent dans les dépôts officiels
Pour informations j'ai ceci comme paquets python2 d'installés (Une grosse partie est surement inutile pour ton programme)
Code : Tout sélectionner
pyqt4-common
python-dbus-common
python2
python2-cairo
python2-cheetah
python2-dateutil
python2-dbus
python2-distribute
python2-feedparser
python2-gobject2
python2-markdown
python2-pygments
python2-pyopenssl
python2-pyqt4
python2-sip
python2-six
python2-unidecode
python2-urwid
python2-yenc
Pour éviter toute confusion :djipey a écrit :Ça évite d'avoir 5000 fichiers à trouver quand on désinstalle complètement
- Pacman ne touche à aucun fichier dans le home, donc une désinstallation ne fera rien à ces fichiers.
- Après je t'avoue que c'est plus pratique de tout mettre dans .monprog, mais tu peux mettre au moins les fichiers temporaire dans .cache
Personnellement j'arrive à lancer le programme, en patchant les lignes avant 122 car sinon j'ai
Code : Tout sélectionner
Démarrage du programme
Traceback (most recent call last):
File "gui.py", line 1786, in <module>
main()
File "gui.py", line 1782, in main
ex = Fenetre()
File "gui.py", line 57, in __init__
self.restoreSettings()
File "gui.py", line 122, in restoreSettings
self.waiting_list = [ int(each_vid) for each_vid in self.waiting_list ]
TypeError: 'QVariant' object is not iterable
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Re: [création] Créer un package venant de github
Ok, je mettrai les fichiers dans .cache.
Comme modules j'ai besoin de:
Et en plus de imagemagick, un paquet du dépot extra. Je vais vérifier que tous ces modules sont bien dans AUR. C'est du python 3.
Ensuite pour le bug c'est bien possible, je crois que j'avais ça aussi. Il est normalement résolu dans la branche unstable. Par contre, que veux-tu dire pour les accents ?
Et pour finir, je dois donc faire un script d'install en python ?
Comme modules j'ai besoin de:
Code : Tout sélectionner
functools
PyQt4
sqlite3
datetime
random
logging
unidecode
dateutil
fnmatch
json
subprocess
collections
Ensuite pour le bug c'est bien possible, je crois que j'avais ça aussi. Il est normalement résolu dans la branche unstable. Par contre, que veux-tu dire pour les accents ?
Et pour finir, je dois donc faire un script d'install en python ?
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [création] Créer un package venant de github
Ou en tous cas, placer tes scripts correctement dans l'arborescence du système: usr/bin , usr/share, lib/python (voir wiki) si besoin, etc.. Plus simple avec un installateur.djipey a écrit :t pour finir, je dois donc faire un script d'install en python ?
«The following statement is not true. The previous statement is true.» 

- benjarobin
- Maître du Kyudo
- Messages : 17576
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [création] Créer un package venant de github
Intéressant, en effet c'est du python3. Cela fonctionne un peu mieux en tout cas 
Donc pas besoin de créer de paquet, tout existe déjà (Tous les paquets viennent des dépôts officiels, sauf python-unidecode qui vient de AUR), coté python3 j'ai donc ceci

Donc pas besoin de créer de paquet, tout existe déjà (Tous les paquets viennent des dépôts officiels, sauf python-unidecode qui vient de AUR), coté python3 j'ai donc ceci
Code : Tout sélectionner
mysql-python
pygtk
pyqt4-common
python
python-dateutil
python-dbus
python-dbus-common
python-pyqt4
python-sip
python-six
python-unidecode
python-xdg
wxpython
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Re: [création] Créer un package venant de github
Ok. Pour l'installateur en python, est-ce que vous auriez un point de départ ?
J'ai trouvé ça : http://sametmax.com/creer-un-setup-py-e ... -sur-pypi/, c'est un blog que j'aime beaucoup et qui m'aide. Est-ce que c'est adaptable au cas présent, ce qu'ils font pour le setup.py ?
J'ai trouvé ça : http://sametmax.com/creer-un-setup-py-e ... -sur-pypi/, c'est un blog que j'aime beaucoup et qui m'aide. Est-ce que c'est adaptable au cas présent, ce qu'ils font pour le setup.py ?
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [création] Créer un package venant de github
Je t'ai dit, python je n'y connais rien.
Donc ton tuto convient certainement.
Tu as la doc officielle aussi:
http://docs.python.org/3/distutils/setupscript.html
Et probablement que le plus facile est de passer par un environnement de développement (Eclipse ou autre, je ne sais pas ce qui se fait avec python), tu auras des assistants.
Je t'ai parlé de ça pour que tu aies un logiciel facilement «packageable» et propre, peu importe la distribution, hein... Mais tu peux faire autrement.

Donc ton tuto convient certainement.
Tu as la doc officielle aussi:
http://docs.python.org/3/distutils/setupscript.html
Et probablement que le plus facile est de passer par un environnement de développement (Eclipse ou autre, je ne sais pas ce qui se fait avec python), tu auras des assistants.
Je t'ai parlé de ça pour que tu aies un logiciel facilement «packageable» et propre, peu importe la distribution, hein... Mais tu peux faire autrement.
«The following statement is not true. The previous statement is true.» 
