Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajout de consignes pour utiliser gitinspector sous Windows #132

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

probitaille
Copy link
Collaborator

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.

@fuhrmanator
Copy link
Owner

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.

@probitaille
Copy link
Collaborator Author

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.

@fuhrmanator
Copy link
Owner

J'ai proposé une solution pour Windows ici ejwa/gitinspector#213 (comment)

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 ?

@probitaille
Copy link
Collaborator Author

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.

@fuhrmanator
Copy link
Owner

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?

@probitaille
Copy link
Collaborator Author

Dans mon cas j'utilise WSL (Windows Subsystem for Linux) pour tout ce qui est en lien avec des commandes Linux.

@fuhrmanator
Copy link
Owner

OK, je crois qu'il vaudrait mieux être plus explicite qu'un script bash nécessite un shell (git) bash sous Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants