Open probitaille opened 5 months ago
Merci pour les consignes. En effet, gitinspector pose problème sous Windows. Tu proposes d'utiliser WSL qui n'est pas vraiment Windows (il y a beaucoup de problèmes qu'on peut avoir avec WSL lorsqu'on l'installe, et j'ai peur que ça crée plus de difficultés).
As-tu validé tes consignes avec les mêmes personnes qui ont eu des difficultés? Est-ce que tu es sûr que ça répond à leur besoin? Je n'ai pas le temps en ce moment de faire cette validation malheureusement.
J'ai pu reproduire ceci sur mon ordinateur de bureau et ma tablette Windows Surface. Les étapes sont bonnes, mais la configuration de chacun peut changer (ex: installation différente de Python). Cela reste encore à vérifier auprès des étudiants.
Le problème avec gitinspector c'est que le projet ne semble plus maintenu et n'est plus compatible avec les récentes versions de Python (incompatible avec 3.7+).
Il faudra éventuellement trouver une autre solution.
J'ai proposé une solution pour Windows ici https://github.com/ejwa/gitinspector/issues/213#issuecomment-922379023
Je viens de valider et ça résout le problème toujours (si Python est moderne, p.ex. 3.12 -- le changement ne fait rien pour Python 3.10).
Ma solution est l'automatisation du changement de code source que tu documentes dans cette PR je crois.
windows-patch.sh
#!/bin/bash
# If this file exists
# sed -i means: inline replace (overwrite file)
# replace .install(True) with .install()
PATCHFILE="${USERPROFILE}/AppData/Roaming/npm/node_modules/gitinspector/gitinspector/localization.py"
POSIX_PATH=`cygpath $PATCHFILE`
if test -f $POSIX_PATH; then
echo $POSIX_PATH
sed -i s'/.install(True)/.install()/' $POSIX_PATH
fi
Je pourrais faire un commit de ce fichier dans le dépôt contributions et on peut inclure une étape pour les gens qui sont sur Windows, mais ça doit être exécuté dans un git bash (je n'ai pas fait une solution pour windows avec une ligne de commande).
Voici les étapes pour windows:
npm install -g gitinspector
git clone https://gist.github.com/fuhrmanator/b5b098470e7ec4536c35ca1ce3592853 contributions
# installer Python >= 3.12 https://www.python.org/downloads/
cd contributions
# appliquer le patch (une fois seulement)
./windows-patch.sh
Après, le script fonctionne (il y a des warnings avec Python 3.11 installé sur ma machine avec Inkscape - je déteste la config de Python sauf les environnement virtuels):
$ ./contributions.sh ../sga-equipe-g02-equipe-4/
gitinspector running on ../sga-equipe-g02-equipe-4/: patience...
C:/Program Files/Inkscape/lib/python3.11/subprocess.py:1016: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdout = io.open(c2pread, 'rb', bufsize)
ContributionsÉquipeTest.html
C:/Program Files/Inkscape/lib/python3.11/subprocess.py:1016: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdout = io.open(c2pread, 'rb', bufsize)
ContributionsÉquipeModèles.html
C:/Program Files/Inkscape/lib/python3.11/subprocess.py:1016: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdout = io.open(c2pread, 'rb', bufsize)
ContributionsÉquipeDocs.html
C:/Program Files/Inkscape/lib/python3.11/subprocess.py:1016: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdout = io.open(c2pread, 'rb', bufsize)
ContributionsÉquipeTypeScript.html
C:/Program Files/Inkscape/lib/python3.11/subprocess.py:1016: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdout = io.open(c2pread, 'rb', bufsize)
ContributionsÉquipeViews.html
Bref, c'est une solution plus simple si on l'inclut dans le dépôt de contributions. Qu'en penses-tu @probitaille ?
Puisqu'un fichier .sh ne peut pas s'exécuter directement dans Windows, je propose cette alternative:
windows-patch.bat
@echo off
:: Activer l'expansion différée des variables, nécessaires pour évaluer correctement les variables
:: à chaque itération ou condition dans les blocs de commandes (comme if et for)
setlocal enabledelayedexpansion
:: Définir le chemin du fichier à patcher
set PATCHFILE=%USERPROFILE%\AppData\Roaming\npm\node_modules\gitinspector\gitinspector\localization.py
:: Vérifier si le fichier existe
if exist "%PATCHFILE%" (
echo %PATCHFILE%
:: Utiliser PowerShell pour effectuer le remplacement en ligne
powershell -Command "(Get-Content -path '%PATCHFILE%') -replace '\.install\(True\)', '.install()' | Set-Content -path '%PATCHFILE%'"
echo Success : Le fichier %PATCHFILE% a été modifié.
) else (
:: Afficher un message d'erreur si le fichier n'existe pas
echo Erreur : Le fichier %PATCHFILE% n'existe pas.
)
endlocal
pause
Ça semble bien fonctionner avec les autres étapes. Je viens d'essayer sur ma tablette Windows (différent de mon ordinateur de bureau qui était déjà bien configuré). J'ai cependant les mêmes warnings que toi.
Puisqu'un fichier .sh ne peut pas s'exécuter directement dans Windows
Le .sh fonctionne bien sur Windows si on le roule dans Git bash (ce qui est normalement installé lorsqu'on installe Git sur Windows). D'ailleurs, le script pour générer les rapports est aussi dans un .sh, alors je ne comprends pas pourquoi changer ça?
Comment as-tu roulé contributions.sh
?
Dans mon cas j'utilise WSL (Windows Subsystem for Linux) pour tout ce qui est en lien avec des commandes Linux.
OK, je crois qu'il vaudrait mieux être plus explicite qu'un script bash nécessite un shell (git) bash sous Windows.
De nombreux étudiants ont posé des questions ou ont signalés des problèmes pour utiliser gitinspector sous Windows.
J'ai donc ajouté des instructions et documenté 2 problèmes fréquents avec l'outil.