Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

libjs-jquery, fichier jquery.min.js non minifié. Est-ce un bug ?

16 réponses
Avatar
Francois Lafont
Bonjour à tous,

Sur Debian Wheezy, après avoir installé le paquet libjs-jquery, j'ai ceci :

~$ ll /usr/share/javascript/jquery/
total 260
drwxr-xr-x 2 root root 4096 oct. 7 01:32 .
drwxr-xr-x 3 root root 4096 oct. 7 01:32 ..
-rw-r--r-- 1 root root 252880 nov. 15 2012 jquery.js
lrwxrwxrwx 1 root root 13 nov. 15 2012 jquery.lite.js -> jquery.min.js
lrwxrwxrwx 1 root root 9 nov. 15 2012 jquery.min.js -> jquery.js
lrwxrwxrwx 1 root root 13 nov. 15 2012 jquery.pack.js -> jquery.min.js
-rw-r--r-- 1 root root 5 mai 23 2012 version.txt

Autrement dit, le fichier jquery.min.js qui, comme son nom l'indique,
est censé est être minifié [1] ne l'est pas du tout et n'est rien d'autre
qu'un lien symbolique vers le fichier jquery.js qui lui est une version
non minifiée bien sûr de jquery.

Sur Debian Jessie par exemple, j'ai pu constater en revanche qu'on retrouve
bien le comportement attendu où jquery.js et jquery.min.js sont bien 2
fichiers « indépendants » avec jquery.min.js qui est effectivement minifié.

Est-ce que je peux considérer le cas de Wheezy comme un bug ?

[1] Pour ceux qui, comme moi, ne sont pas super calés en web, la minification
d'un js consiste à supprimer l'indentation, les espaces inutiles (et sans doute
à appliquer d'autres optimisations que j'ignore) pour obtenir un fichier tenant
en général sur une ou deux lignes maximum, le tout dans un but d'optimisation
du chargement des pages web. C'est apparemment une pratique vraiment courante
et normale pour le javascript.

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: https://lists.debian.org/m10bl2$3d4$1@ger.gmane.org

10 réponses

1 2
Avatar
Francois Lafont
Le 07/10/2014 11:27, Francois Lafont a écrit :

Est-ce que je peux considérer le cas de Wheezy comme un bug ?



Après quelques recherches, voici mes conclusions :

1. Oui c'est un bug de la version 1.7.2+dfsg-1 du paquet libjs-jquery
disponible sur Wheezy.

2. Ce bug est manifestement corrigé dans la version 1.7.2+dfsg-3.2
du paquet qui est disponible sous Jessie (mais pas sous Wheezy).

3. Si j'entame une procédure de bugreport, l'outil reportbug
me signale que je suis en train de signaler un bug sur une
version "pas à jour" du paquet (la 1.7.2+dfsg-1) et que les
archives Debian contiennent une version plus récente (la
1.7.2+dfsg-3.2 donc). Le programme reportbug me répond alors :

« Do you still want to file a report [y|N|q|?]? »

4. J'en conclus que c'est donc bien un bug de la version « Wheezy »
du paquet mais qu'il est inutile que je fasse un bugreport car
le bug est déjà résolu dans une version « Jessie » du paquet (non
disponible sur Wheezy par défaut, hélas) et je ne peux pas espérer
une mise à jour du paquet sur Wheezy, car ce n'est pas en soi une
faille de sécurité.

J'ai bon ?

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/m10kig$qtl$
Avatar
Christophe
Bonsoir,

Le 07/10/2014 13:59, Francois Lafont a écrit :

Est-ce que je peux considérer le cas de Wheezy comme un bug ?



Après quelques recherches, voici mes conclusions :

1. Oui c'est un bug de la version 1.7.2+dfsg-1 du paquet libjs-jquery
disponible sur Wheezy.




Je prendrais le problème sous un autre angle :
Pourquoi diable vouloir utiliser jquery depuis un paquet debian ?

Dans l'ordre :

* Installer un serveur Web depuis un package : oui, c'est clairement
fait pour.

* Installer une appli web depuis un package (phpMyAdmin, cacti, ou
autre) destinée à être utilisée par le serveur Web, p ourquoi pas, mais
ça commence à être discutable.

* Installer jQuery, qui est utilisé dans les applis Web, la, par con tre,
j'ai du mal à comprendre le but (dans l'énorme majorité de s cas, les
applis Web fournissent directement le .js, de la version qui va bien).

S'il y a un package, c'est qu'il y a probablement une raison, mais j'ai
vraiment du mal à voir laquelle.

@+
Christophe.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Francois Lafont
Bonsoir,

Le 08/10/2014 21:40, Christophe a écrit :

Je prendrais le problème sous un autre angle :
Pourquoi diable vouloir utiliser jquery depuis un paquet debian ?

Dans l'ordre :

* Installer un serveur Web depuis un package : oui, c'est clairement fait pour.

* Installer une appli web depuis un package (phpMyAdmin, cacti, ou autre) destinée à être utilisée par le serveur Web, pourquoi pas, mais ça commence à être discutable.

* Installer jQuery, qui est utilisé dans les applis Web, la, par contre, j'ai du mal à comprendre le but (dans l'énorme majorité des cas, les applis Web fournissent directement le .js, de la version qui va bien).



Je suis assez d'accord.

En fait, je posais la question parce que justement je me suis fait un paquet
Debian pour une appli qui a besoin de jquery. Du coup, au départ j'ai fait
comme tu le dis, à savoir inclure le fichier jquery.js dans le paquet, mais
lors du build, j'avais un affreux warning de lintian qui me disait en gros :

« malheureux, tu utilises la lib jquery par tes propres moyens alors que
tu dois utiliser le paquet Debian qui est fait pour ça ! »

alors j'ai obtempéré. Le paquet s'installe sous Jessie à la base mais il peut
s'installer aussi sous Wheezy et c'est à ce moment là que j'ai découvert que
sous Wheezy le jquery.min.js n'était pas du tout minifié alors que sous Jessie
c'était bien le cas.

<pub éhontée>
Au passage, j'en profite d'ailleurs pour signaler sur cette liste de diffusion
que je recherche officiellement un parrain Debian Développeur qui aura la
gentillesse de bien vouloir pousser ce paquet dans les archives Debian. ;)

Le paquet est là: http://mentors.debian.net/package/xia
Homepage de l'appli: http://images-actives.crdp-versailles.fr/beta/index_en.html
http://images-actives.crdp-versailles.fr/beta/index.html
</pub éhontée>

Voilà. ;)

--
François Lafont

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/m14kpe$pop$
Avatar
Sébastien NOBILI
Le mercredi 08 octobre 2014 à 21:40, Christophe a écrit :
Je prendrais le problème sous un autre angle :
Pourquoi diable vouloir utiliser jquery depuis un paquet debian ?

Dans l'ordre :

* Installer un serveur Web depuis un package : oui, c'est clairement fait
pour.



Moi aussi.

* Installer une appli web depuis un package (phpMyAdmin, cacti, ou autre)
destinée à être utilisée par le serveur Web, pourquoi pas, mais ça commence
à être discutable.



Pas forcément. Tu cites phpMyAdmin, je reste donc sur cet exemple. Si j'ai
besoin d'un phpMyAdmin sur un serveur de prod, il me semble préférable de
l'installer depuis les dépôts pour les raisons suivantes :
- l'installation est simplifiée (joli boulot d'intégration par les
développeurs Debian),
- la sécurité m'est assurée à moindre frais (ça arrive dans les dépôts) et
avec un niveau de qualité adapté au contexte (prod),
- une mise-à-jour de sécurité ne va pas m'obliger à reconfigurer des
éléments ou désactiver de nouvelles fonctionnalités que je ne voudrais pas
(on est en stable, donc on garde le même niveau de fonctionnalité au gré
des mises-à-jour),
- je choisirai le moment qui me convient le mieux pour passer à la version
suivante (mise-à-jour vers la future stable quand elle sera publiée).

* Installer jQuery, qui est utilisé dans les applis Web, la, par contre,
j'ai du mal à comprendre le but (dans l'énorme majorité des cas, les applis
Web fournissent directement le .js, de la version qui va bien).



L'application Web que j'ai installée (voir mon explication au paragraphe
précédent) a peut-être besoin de bibliothèques JavaScript (je ne sais pas si
c'est le cas de phpMyAdmin, je ne l'utilise pas) et dans ce cas, plusieurs
approches possibles :
- chacune fournit sa propre version de jQuery (donc effort de maintenance
multiplié, risques de trouver des bugs dans l'une qu'on n'aurait pas dans
l'autre);
- Debian fournit une version de jQuery que tout le monde utilise et donc
tout le monde a les mêmes bugs (mais surtout les mêmes corrections de bugs)
et l'effort est mutualisé.

Pour relativiser tout ça, je comprends tout à fait l'intérêt d'un jQuery
(peut-être un peu ancien) commun à toutes les applications Web fournies sous
forme de paquet dans Debian, mais je n'aurais (en tout cas je n'ai encore jamais
eu) l'idée d'utiliser cette version dans le cadre du développement d'une
application Web déployée d'une autre façon.

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Christophe
Bonsoir,

Le 09/10/2014 11:07, Sébastien NOBILI a écrit :

Pour relativiser tout ça, je comprends tout à fait l'inté rêt d'un jQuery
(peut-être un peu ancien) commun à toutes les applications We b fournies sous
forme de paquet dans Debian, mais je n'aurais (en tout cas je n'ai enco re jamais
eu) l'idée d'utiliser cette version dans le cadre du développ ement d'une
application Web déployée d'une autre façon.




J'entends bien tes arguments.

Toutefois, au job et à ses clients hébergés, il m'apparait rare que deux
applications Web utilisent la même version de jQuery (package debian ou
pas).
Par la même occasion, les chemins utilisés pour l'inclusion du
javascript diffèrent dans quasi toutes les applications que j'ai pu voir.
Question purement rhétorique : une norme existe pour cela ?.

Une version 1.7 comme celle proposée par le package, encore moins.
Surtout quand il s'agit de personnes qui font du "Front End".

@+
Christophe.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Sébastien NOBILI
Bonjour,

Le jeudi 09 octobre 2014 à 22:11, Christophe a écrit :
Par la même occasion, les chemins utilisés pour l'inclusion du javascript
diffèrent dans quasi toutes les applications que j'ai pu voir.
Question purement rhétorique : une norme existe pour cela ?.



Je n'ai jamais creusé la question, mais je ne pense pas qu'il existe une norme.
L'intérêt de ça est d'optimiser la gestion du cache des navigateurs.

Tu inclus dans ta page une URL « jquery-<version>.js » et tu demandes au serveur
Web de lui affecter une validité infinie (dans la pratique ~100 ans). Le
navigateur ne demandera plus jamais ce fichier et le piochera dans son cache.

Tu optimises le temps de réponse du site (de l'application) et la charge de ton
serveur qui n'aura même pas à répondre HTTP-304 (Not Modified) étant donné que
le client ne lui demandera même pas le fichier.

Quand tu mets à jour la bibliothèque, tu n'as qu'à référencer la nouvelle
version dans ta page, donc l'URL change et le navigateur vient la télécharger.

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Vincent Besse
On Fri, 10 Oct 2014 11:36:36 +0200
Sébastien NOBILI wrote:


Tu inclus dans ta page une URL « jquery-<version>.js  » et tu demandes au serveur
Web de lui affecter une validité infinie (dans la pratique ~100 ans) . Le
navigateur ne demandera plus jamais ce fichier et le piochera dans son ca che.

Tu optimises le temps de réponse du site (de l'application) et la ch arge de ton
serveur qui n'aura même pas à répondre HTTP-304 (Not Modif ied) étant donné que
le client ne lui demandera même pas le fichier.

Quand tu mets à jour la bibliothèque, tu n'as qu'à ré férencer la nouvelle
version dans ta page, donc l'URL change et le navigateur vient la té lécharger.




Au risque de dire une grosse ânerie, je suis pas développeur web,
est-ce que du coup le navigateur ne va pas garder en cache ad vitam
aeternam (~100 ans) des versions obsolètes de ladite bibliothèque à
chaque changement de version?

Vincent

--
La musique adoucit-elle les moeurs? Testez-vous sur:
http://soundcloud.com/ouhena
http://www.reverbnation.com/koslow

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Sébastien NOBILI
Le vendredi 10 octobre 2014 à 11:58, Vincent Besse a écrit :
Au risque de dire une grosse ânerie, je suis pas développeur web,
est-ce que du coup le navigateur ne va pas garder en cache ad vitam
aeternam (~100 ans) des versions obsolètes de ladite bibliothèque à
chaque changement de version?



Je connais pas précisément la politique d'expiration du cache (qui de plus
varie d'un navigateur à l'autre), mais oui, il y a un risque.

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Philippe Gras
Le 10 oct. 14 à 11:58, Vincent Besse a écrit :

On Fri, 10 Oct 2014 11:36:36 +0200
Sébastien NOBILI wrote:


Tu inclus dans ta page une URL « jquery-<version>.js » et tu
demandes au serveur
Web de lui affecter une validité infinie (dans la pratique ~100
ans). Le
navigateur ne demandera plus jamais ce fichier et le piochera dans
son cache.

Tu optimises le temps de réponse du site (de l'application) et la
charge de ton
serveur qui n'aura même pas à répondre HTTP-304 (Not Modified)
étant donné que
le client ne lui demandera même pas le fichier.

Quand tu mets à jour la bibliothèque, tu n'as qu'à référencer la
nouvelle
version dans ta page, donc l'URL change et le navigateur vient la
télécharger.






Oui, c'est comme ça que ça se passe.

Au risque de dire une grosse ânerie, je suis pas développeur web,
est-ce que du coup le navigateur ne va pas garder en cache ad vitam
aeternam (~100 ans) des versions obsolètes de ladite bibliothèque à
chaque changement de version?



Oui, le navigateur le garde en cache, mais on s'en fout : c'est le
navigateur du client ;-)

Vincent

--
La musique adoucit-elle les moeurs? Testez-vous sur:
http://soundcloud.com/ouhena
http://www.reverbnation.com/koslow

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet
"unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
Avatar
Sébastien NOBILI
Le vendredi 10 octobre 2014 à 13:56, Philippe Gras a écrit :
>Au risque de dire une grosse ânerie, je suis pas développeur web,
>est-ce que du coup le navigateur ne va pas garder en cache ad vitam
>aeternam (~100 ans) des versions obsolètes de ladite bibliothèque à
>chaque changement de version?

Oui, le navigateur le garde en cache, mais on s'en fout : c'est le
navigateur du client ;-)



Je ne l'ai pas osée celle-là, pourtant ça m'a démangé :-D

Seb

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: https://lists.debian.org/
1 2