Supprime éléments obsolètes

This commit is contained in:
Emmanuel Viennet 2022-10-10 10:47:56 +02:00
parent 92cda27fb6
commit bc696dc817

View File

@ -1,6 +1,9 @@
# Configuration d'un environnement de développement # Configuration d'un environnement de développement
Quelques indications pour développer avec ScoDoc 7.x, à adapter à vos goûts et outils. Quelques indications pour développer avec ScoDoc, à adapter à vos goûts et outils.
Commencez par lire
[Installation du code pour lesdéveloppeurs](https://scodoc.org/git/ScoDoc/ScoDoc#pour-les-d%C3%A9veloppeurs)
# Machine virtuelle # Machine virtuelle
@ -26,10 +29,10 @@ En général, vous préférez développer sur la machine hôte pour disposer de
### Éditeur de texte / IDE ### Éditeur de texte / IDE
Si vous êtes expérimenté, vous avez vos outils préférés. Mais si vous débutez, Si vous êtes expérimenté, vous avez vos outils préférés. Mais si vous débutez,
surtout pour un environnement de développement distant (le code développé tourne surtout pour un environnement de développement distant (le code développé tourne
dans une machine virtuelle ou réelle séparée de votre machine de burea), nous dans une machine virtuelle ou réelle séparée de votre machine de bureau), nous
vous conseillons **VS Code** avec le module vous conseillons **VS Code** avec le module
[*Remote-SSH*](https://code.visualstudio.com/docs/remote/ssh). Ceci vous évite [*Remote-SSH*](https://code.visualstudio.com/docs/remote/ssh). Ceci vous évite
de fastidieuses configurations de partage de fichiers entre les machine, il de fastidieuses configurations de partage de fichiers entre les machines, il
suffit d'une connexion SSH fonctionnelle. suffit d'une connexion SSH fonctionnelle.
### Configuration réseau de VirtualBox ### Configuration réseau de VirtualBox
@ -37,7 +40,7 @@ suffit d'une connexion SSH fonctionnelle.
La VM a besoin d'accéder à Internet pour l'installation, et aussi pour les mises La VM a besoin d'accéder à Internet pour l'installation, et aussi pour les mises
à jour et peut-être certains tests que vous voudrez lancer. L'accès à la VM à jour et peut-être certains tests que vous voudrez lancer. L'accès à la VM
depuis l'hôte doit être possible via un réseau privé interne (car vous ne serez depuis l'hôte doit être possible via un réseau privé interne (car vous ne serez
pas toujours conencté à Internet, et ne souhaitez pas que l'on accède à votre pas toujours connecté à Internet, et ne souhaitez pas que l'on accède à votre
serveur de test de l'extérieur). serveur de test de l'extérieur).
Modifier la config réseau via l'UI graphique de VirtualBox, la VM étant éteinte. Modifier la config réseau via l'UI graphique de VirtualBox, la VM étant éteinte.
@ -56,14 +59,17 @@ Dans le Debian, j'utilise `/etc/network/interfaces`
allow-hotplug enp0s3 allow-hotplug enp0s3
iface enp0s3 inet dhcp iface enp0s3 inet dhcp
(le `enp0s3` désigne chez moi l'`Adapter 1`, mais c'est susceptible de changer. Normalement, l'installeur créé ce fichier ) (le `enp0s3` désigne chez moi l'`Adapter 1`, mais c'est susceptible de changer.
Normalement, l'installeur a créé ce fichier )
Pour lancer l'interface externe , quand on a besoin d'accéder à Internet depuis Pour lancer l'interface externe , quand on a besoin d'accéder à Internet depuis
la VM (en fait assez rarement): la VM:
dhclient enp0s8 dhclient enp0s8
ici `enp0s8` correspond à l'`Adapter 2`. Si vous travaillez sur une machine fixe avec connexion permanente, vous pouvez dans Debian activer cette interface constamment (modifier `/etc/network/interfaces`). ici `enp0s8` correspond à l'`Adapter 2`. Si vous travaillez sur une machine fixe
avec connexion permanente, vous pouvez dans Debian activer cette interface
constamment (modifier `/etc/network/interfaces`).
### Noms des machines ### Noms des machines
Modifier le `/etc/hosts` (ou équivalent) de l'hôte, et y ajouter l'IP de votre VM, par exemple (adapter l'IP !): Modifier le `/etc/hosts` (ou équivalent) de l'hôte, et y ajouter l'IP de votre VM, par exemple (adapter l'IP !):
@ -78,69 +84,4 @@ Code propose un module dédié très simple et performant, mais tout montage de
type `sshfs`peut aussi faire l'affaire). type `sshfs`peut aussi faire l'affaire).
Une autre solution est de laisser le source (clone git) sur l'hôte, et de
partager ce répertoire avec la VM. Dans VirtualBox / config. VM / Dossiers
partagés, ajouter un partage. Par exemple, vous mettez vos sources sur l'hôte
dans `~/src`, et dans la VM sur `/src`.
Dans ScoDoc, `/opt/scodoc/Products/ScoDoc` est alors un lien symbolique vers
votre `src/ScoDoc`.
#### Détails sur les partages avec VirtualBox
Pour pouvoir utiliser des liens symboliques dans le partage:
VBoxManage setextradata "Debian11" VBoxInternal2/SharedFoldersEnableSymlinksCreate/src 1
Attention, VirtualBox gère mal les droits/permissions du répertoire partagé. les utilisateurs linux (dans la VM) doit être dans le groupe `vboxsf`:
usermod -a -G vboxsf root
Typiquement, les fichiers sources vus de la VM ont les droits
-rwxrwx--- 1 root vboxsf 129579 Feb 1 15:04 ZNotes.py
alors que le même fichier sera vu de l'hôte
-rw-r--r-- 1 viennet staff 127K Feb 1 15:04 ../ScoDoc/ZNotes.py
Compte-tenu de ces différences, je préfères utiliser git sur l'hôte.
Il arrive (?) que Virtual Box change les droits unix sur les fichiers partagés. Dans ce cas, j'utilise, sur l'hôte
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
# Interaction avec ScoDoc 7 (ancien ScoDoc, avant l'été 2021)
ScoDoc 7 utilise Zope, et ce n'est pas un environnement commode pour débugguer.
Pour avoir un terminal interactif permettant de jouer avec ScoDoc, lancer
cd /opt/scodoc/Product/ScoDoc
scotests/scointeractive.sh DEPT
`DEPT` est un département existant.
Ce script lance ScoDoc et charge `debug.py`.
Vous pouvez lancer un script avant d'entrer en mode interactif, par exemple
scotests/scointeractive.sh -r DEPT scotests/test_capitalisation.py
(voir plus d'exemples dans le répertoire `scotests`).
## problèmes de verrous
Zope créé un verrou pour ne jamais avoir deux process accédant à sa base de données objet à la fois. Celà empêche de lancer les scripts intercatif si un serveur ScoDoc est lancé, ce qui est ennuyeux quand on debugue. On peut, sur une machine de développement seulement, contourner cela en hackant le code du serveur:
Éditer (après installation normale sur votre serveur de développement):
/opt/zope213/lib/python2.7/site-packages/zc/lockfile
Ligne 56, méthode `_lock_file`
ajouter juste
return