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

Mise à jour protobuf de gtfs-rt #4357

Merged
merged 3 commits into from
Dec 9, 2024
Merged

Mise à jour protobuf de gtfs-rt #4357

merged 3 commits into from
Dec 9, 2024

Conversation

ptitfred
Copy link
Contributor

@ptitfred ptitfred commented Dec 5, 2024

No description provided.

@ptitfred ptitfred requested a review from a team as a code owner December 5, 2024 16:21
Copy link
Contributor

@thbar thbar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mes excuses @ptitfred, j'ai mix format un peu en mode automatique pour arriver à diff'er, mais j'aurais du t'en parler avant.

Au final je me rends compte de différentes choses en essayant de lire le diff:

  • le 0.12.0 qui passe en 0.13.0 est lié à la dépendance protobuf, mais elle semble être en 0.12.0

"protobuf": {:hex, :protobuf, "0.12.0", "58c0dfea5f929b96b5aa54ec02b7130688f09d2de5ddc521d696eec2a015b223", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "75fa6cbf262062073dd51be44dd0ab940500e18386a6c4e87d5819a58964dc45"},

ce point m'étonne du coup

et par ailleurs je ne vois pas de stratégie de versioning côté spécification GTFS-RT, je suis étonné, et notre check va taper aussi directement dans master.

Le seul ajout étant un champ optionnel ça n'est pas gênant, mais ça m'interpelle par ailleurs.

@AntoineAugusti
Copy link
Member

Il n'y a malheureusement pas de versioning et un changelog imparfait pour GTFS ou GTFS-RT google/transit#288 C'est dommage et étonnant. D'où le fait qu'on soit sur master. On suit les mises à jour du fichier car on décode des flux avec ça et on a déjà eu des erreurs 500 dans le passé quand des valeurs d'enum n'étaient pas reconnues.

Il n'y a pas de mailing list claire pour annoncer les bumps non plus. On a fait remonter ce besoin en point mensuel MobilityData.

Le bump de Protobuf semble être manquant dans le mix.lock, pourrais-tu regarder @ptitfred ?

@ptitfred
Copy link
Contributor Author

ptitfred commented Dec 5, 2024

Il n'y a malheureusement pas de versioning et un changelog imparfait pour GTFS ou GTFS-RT google/transit#288 C'est dommage et étonnant. D'où le fait qu'on soit sur master. On suit les mises à jour du fichier car on décode des flux avec ça et on a déjà eu des erreurs 500 dans le passé quand des valeurs d'enum n'étaient pas reconnues.

Si mes souvenirs sont bons, le protobuf impose de fait des montées de versions rétro compatibles, donc peu de risque à être à jour.

Le bump de Protobuf semble être manquant dans le mix.lock, pourrais-tu regarder @ptitfred ?

Bien vu, je regarde ça demain matin.

@thbar
Copy link
Contributor

thbar commented Dec 6, 2024

Je viens de me rappeler d'une chose 😄 un peu spécifique à escript, du coup je partage.

Bumper le fichier lock n'a pas d'impact sur la version affichée dans le fichier (protoc_gen_elixir_version: "0.12.0"), pour une raison un peu "spécifique" (méthode d'installation des escript). La commande utilisée pour installer le plugin proto pour Elixir est (voir ici):

mix escript.install hex protobuf

La commande installe la version la plus récente disponible sur hex.pm (0.13.0 actuellement).

mix.lock n'est pas lu par cette opération.

C'est ce qui génère un diff avec beaucoup + de changements liés à ça, qu'au bump de la spécification GTFS-RT:

-  use Protobuf, enum: true, protoc_gen_elixir_version: "0.12.0", syntax: :proto2
+  use Protobuf, enum: true, protoc_gen_elixir_version: "0.13.0", syntax: :proto2

On peut installer une version spécifique (doc de mix.escript install) avec:

mix escript.install hex protobuf 0.12.0

(ou bien une commande composite qui irait demander à l'application sa version de protobuf)

et là, on obtiendra a priori un diff bien plus réduit.

Ça crée de la confusion ailleurs:

This would remove this indirection and at the same time enable:
(...)
No potential version difference between protobuf installed in the project and the escript installed globally.

Après rien de grave de toute façon, la version spécifiée n'est qu'indicative et n'empêche pas (actuellement au moins) de fonctionner avec 0.12.0 si 0.13.0 a été utilisé pour générer le code, mais ça me semblait utile de partager ça.

@AntoineAugusti
Copy link
Member

PR initiale de changement du fichier Protobuf google/transit#434

@AntoineAugusti
Copy link
Member

@thbar Merci pour les explications ! Je me souvenais qu'il y avait une commande spécifique mais je ne savais pas que c'était décorellé de notre gestion de dépendances habituelle. C'est bien de le savoir et dommage.

On pourrait adapter la commande pour la lancer avec la version qu'on a défini, à voir si ça vaut le coup.

@ptitfred
Copy link
Contributor Author

ptitfred commented Dec 6, 2024

Hmmm vous semblez dire que j'ai pas utilisé la bonne version de protobuf et du plugin elixir.

@thbar
Copy link
Contributor

thbar commented Dec 6, 2024

Hmmm vous semblez dire que j'ai pas utilisé la bonne version de protobuf et du plugin elixir.

Je crois que c'est ça, mais que c'est inhérent à ce qui est recommandé par la lib actuellement !

@thbar
Copy link
Contributor

thbar commented Dec 6, 2024

(et à nouveau: j'ai partagé ça pour qu'on soit conscient du truc, mais y'a a priori zéro impact court terme si ce n'est la lisibilité du diff, les tests passent etc je n'ai pas l'impression que ça aie un impact au moins via nos tests CI)

@ptitfred
Copy link
Contributor Author

ptitfred commented Dec 9, 2024

J'ai regénéré avec protoc-gen-elixir 0.12 et formatté le code elixir, ça produit une diff bien plus raisonnable.

Copy link
Contributor

@thbar thbar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top ! Merci @ptitfred, en conservant la version d'origine c'est bien plus facile à lire.

@ptitfred ptitfred enabled auto-merge December 9, 2024 11:22
@ptitfred ptitfred added this pull request to the merge queue Dec 9, 2024
Merged via the queue into master with commit 9e7f64d Dec 9, 2024
4 checks passed
@ptitfred ptitfred deleted the update-gtfs-rt branch December 9, 2024 11:27
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.

3 participants