Topic: Affichage du n° de version

Bonjour,

Serait-il possible à chaque nouveau build ready-to-use d'inclure le n° de version dans 1 des onglets du logiciel Qet (onglet A propos par exemple) afin de savoir quelle version on utilise si on le désire.
exemple pour la rev-1935-x86-win32-readytouse.zip : mettre 0.3a rev 1935

La raison de ma demande est que j'ai passé des schémas à une personne qui était en 0.3a (1ère version), alors que moi je suis en 0.3a-1935.
Les schémas obtenus n'étaient pas identiques car j'utilise certaines fonctions qui ont été débug ou ajoutées depuis la 1ère version.


Merci.

Re: Affichage du n° de version

Faut voir avec Cyril, sous debian je me sert du n° de révision du subversion pour tagger mes builds,
exemple avec des bouts de script.

 laurent@debian:~$ qelectrotech -v
0.30b+svn2347

http://scorpio.kindwolf.org/temp/aboutqet.png

# trouve la derniere revision du trunk
if [ -z "$HEAD" ] ; then
HEAD=$(svn --xml info svn://svn.tuxfamily.org/svnroot/qet/qet/trunk | grep revision=\" | tail -1 | cut -d\" -f2)         #trunk
echo  -e "\033[1;34mdownload source qet-0.30.r$HEAD.\033[m"
fi

sed va changer le texte du patch 03_qet.diff

#tagg quilt patch 03_qet.diff to upstream revision
sed -i 's/0.30b+svn[0-9][0-9][0-9][0-9]/'"0.30b+svn$HEAD"'/' 03_qet.diff

le patch modifié avant de lancer les builds

laurent@debian:~/paquet_qet/debian/patches$ cat 03_qet.diff 
--- qet-0.30.r2347.orig/sources/qet.h
+++ qet-0.30.r2347/sources/qet.h
@@ -26,7 +26,7 @@
        /// QElectroTech version (as string, used to mark projects and elements XML documents)
        const QString version = "0.3";
        /// QElectroTech displayed version
-       const QString displayedVersion = "0.3b";
+       const QString displayedVersion = "0.30b+svn2347";
        QString license();
        /// Orientation (used for electrical elements and their terminals)
        enum Orientation {North, East, South, West};

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: Affichage du n° de version

friskolon wrote:

Bonjour,

Serait-il possible à chaque nouveau build ready-to-use d'inclure le n° de version dans 1 des onglets du logiciel Qet (onglet A propos par exemple) afin de savoir quelle version on utilise si on le désire.
exemple pour la rev-1935-x86-win32-readytouse.zip : mettre 0.3a rev 1935

La raison de ma demande est que j'ai passé des schémas à une personne qui était en 0.3a (1ère version), alors que moi je suis en 0.3a-1935.
Les schémas obtenus n'étaient pas identiques car j'utilise certaines fonctions qui ont été débug ou ajoutées depuis la 1ère version.


Merci.

Bonjour friskolon,

Je pense pouvoir te dire que les prochaines builds Windows serons tagué comme sous les debs, j'y travaille.
Le numéro de version svn apparaîtra dans le menu a propos.
Voila, pour un début ça fonctionne, même si l'on peux mieux faire pour les scripts :p

Cygwin dans VM :
Qet_svn_tagg.sh

#!/bin/bash 
 
# trouve la derniere revision de svn://svn.tuxfamily.org/svnroot/qet/qet/trunk
if [ -z "$HEAD" ] ; then
HEAD=$(svn --xml info svn://svn.tuxfamily.org/svnroot/qet/qet/trunk | grep revision=\" | tail -1 | cut -d\" -f2)         #trunk
echo  -e "\033[1;34mdownload source qelectrotech-0.30.r$HEAD.\033[m"
fi
 
#variables repertoires de travail
#DEFAULT_DIR="/home/laurent"
#TEMP_DIR="/home/laurent"
#svn export
 
#cd $TEMP_DIR
svn export svn://svn.tuxfamily.org/svnroot/qet/qet/trunk qelectrotech_trunk/
 
#tag de la version
cd qelectrotech_trunk/sources
sed -i "s/const QString displayedVersion = \"0.3\"/const QString displayedVersion = \"0.30+svn$HEAD\"/" qet.h
 
exit

Merci à Merlin8282 pour son aide sur sed ;-)

Compilation dans VM:
Qet_build.bat

rem Dossier de travail
set working_directory=%~dp0
//on supprime le qelectrotech.exe dans le repertoire bin
cd /d %working_directory%\packaging_windows\files\bin
del /s *.exe
cd ..
//on supprime les repertoires elements, examples, lang et titleblocks
rd elements /S /Q
rd examples /S /Q
rd lang /S /Q
rd titleblocks /S /Q
//on crée de nouveaux dossiers
MD elements examples lang titleblocks
 
//on se rend dans le working_directory et on supprime l'ancienne version de qelectrotech_trunk
cd /d %working_directory%
rd qelectrotech_trunk  /S /Q
 
//on déplace l'export du svn du trunk qelectrotech et taggé dans le working_directory
move c:\cygwin\home\test\qelectrotech_trunk C:\Users\test\Desktop
cd /d %working_directory%\qelectrotech_trunk
//on lance la compilation
qmake
mingw32-make -j9 -f Makefile.Release
 
//on copie le exe dans le repertoire files/bin
    copy /Y release\qelectrotech.exe ..\packaging_windows\files\bin
 
//on copie les nouveaux dossiers dans le repertoire files
    xcopy /Y elements ..\packaging_windows\files\elements /
    xcopy /Y examples ..\packaging_windows\files\examples /s
    xcopy /Y lang ..\packaging_windows\files\lang /
    xcopy /Y titleblocks ..\packaging_windows\files\titleblocks /
 
 
 
mingw32-make clean         //supprime tous les fichiers inutiles.
exit

Apres il reste plus qu'a lancer le script nsis pour produire l'installateur sur Qet.
Todo:
Ou que je trouve le moyen de le lancer en ligne de commande.
Ajouter des commandes dans le script pour mettre à jour les fichiers de la ReadyToUse, créer l'archive en zip.
(remplacer le .exe dans bin et les dossiers: elements, examples, lang et titleblock dans le squelette)
Upload en ssh des fichiers installateur et ReadyToUse et création d'un répertoire %date  (`date +%y%m%d`) sur le ftp.
ssh + sed pour éditer le %date du script "php dl_link.inc.php" pour le lien "Accéder à la version la plus récente de QElectroTech"
Là ça pourrait p-e être aussi amusant que sous debian pour faire des builds :p
c-a-d tout automatiser sous forme de scripts, pour avoir rien à faire nomicons/grin

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: Affichage du n° de version

Les scripts ne sont pas encore terminés pour automatiser tout ça, mais voila le résultat

http://scorpio.kindwolf.org/temp/Windows_version.png

Download installateur et ReadyToUse
https://download.qelectrotech.org/qet/builds/20131212/

Enjoy!

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: Affichage du n° de version

Si parmi vous il y a des pro du scripting sous Windows je suis ouvert à toutes remarques.
Et vous pouvez envoyez vos patchs sur la ML :-)

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."

Re: Affichage du n° de version

Je crois que je vais me contenter de deux scripts pour l'instant,
appeler le .bat dans le script sh la compilation plante, ce qui est dommage car plus puissant que les commandes cmd du .bat.
(possibilité de tagger la ReadyToUse en qelectrotech-0.3+svn$HEAD-x86-win32-readytouse, upload des fichiers en ssh etc.
appeler le .sh depuis le script .bat à voir: pas grand intérêt à part d’éviter de lancer deux scripts.
Screen appel du .bat dans le script sh sous cygwin, bizarement il prend pas les flags " -fno-ipa-sra" donc ça plante.
http://scorpio.kindwolf.org/temp/cygwin.png





rem Dossier de travail
set working_directory=%~dp0
cd /d %working_directory%\packaging_windows\files\bin
del /s *.exe
cd ..
rd elements /S /Q
rd examples /S /Q
rd lang /S /Q
rd titleblocks /S /Q
MD elements examples lang titleblocks
cd /d %working_directory%\qelectrotech-0.3+svn-x86-win32-readytouse\bin
del /s *.exe
cd ..
rd elements /S /Q
rd examples /S /Q
rd lang /S /Q
rd titleblocks /S /Q
MD elements examples lang titleblocks
cd /d %working_directory%
rd qelectrotech_trunk  /S /Q
move c:\cygwin64\home\laurent\qelectrotech_trunk C:\Users\laurent\Desktop
cd /d %working_directory%\qelectrotech_trunk
qmake
mingw32-make -j9 -f Makefile.Release
rem copie du fichier si la compilation a reussi
if %errorlevel%==0 (
    copy /Y release\qelectrotech.exe ..\packaging_windows\files\bin
    copy /Y release\qelectrotech.exe "..\qelectrotech-0.3+svn-x86-win32-readytouse"\bin
    xcopy /Y elements ..\packaging_windows\files\elements /s
    xcopy /Y elements ..\qelectrotech-0.3+svn-x86-win32-readytouse\elements /
    xcopy /Y examples ..\packaging_windows\files\examples /s
    xcopy /Y examples ..\qelectrotech-0.3+svn-x86-win32-readytouse\examples /s
    xcopy /Y lang\*.qm ..\packaging_windows\files\lang /s
    xcopy /Y lang\*.qm ..\qelectrotech-0.3+svn-x86-win32-readytouse\lang /
    xcopy /Y titleblocks ..\packaging_windows\files\titleblocks /s
    xcopy /Y titleblocks ..\qelectrotech-0.3+svn-x86-win32-readytouse\titleblocks /s
    cd /d %working_directory%\qt_qm
    xcopy /Y  ..\packaging_windows\files\lang /s
    xcopy /Y  ..\qelectrotech-0.3+svn-x86-win32-readytouse\lang /s       
    cd /d %working_directory%\packaging_windows
    makensis.exe QET.nsi
) else (
    echo La compilation a echoue.
)
 
pause

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."