{"action":"created","issue":{"url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/3998","repository_url":"https://api.github.com/repos/zestedesavoir/zds-site","labels_url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/3998/labels{/name}","comments_url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/3998/comments","events_url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/3998/events","html_url":"https://github.com/zestedesavoir/zds-site/pull/3998","id":190591292,"number":3998,"title":"[Discussion][WIP] Code style","user":{"login":"vhf","id":2022803,"avatar_url":"https://avatars.githubusercontent.com/u/2022803?v=3","gravatar_id":"","url":"https://api.github.com/users/vhf","html_url":"https://github.com/vhf","followers_url":"https://api.github.com/users/vhf/followers","following_url":"https://api.github.com/users/vhf/following{/other_user}","gists_url":"https://api.github.com/users/vhf/gists{/gist_id}","starred_url":"https://api.github.com/users/vhf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vhf/subscriptions","organizations_url":"https://api.github.com/users/vhf/orgs","repos_url":"https://api.github.com/users/vhf/repos","events_url":"https://api.github.com/users/vhf/events{/privacy}","received_events_url":"https://api.github.com/users/vhf/received_events","type":"User","site_admin":false},"labels":[{"id":411494457,"url":"https://api.github.com/repos/zestedesavoir/zds-site/labels/Feedback","name":"Feedback","color":"006b75","default":false},{"id":468810622,"url":"https://api.github.com/repos/zestedesavoir/zds-site/labels/S-Refactorisation","name":"S-Refactorisation","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":20,"created_at":"2016-11-20T23:12:19Z","updated_at":"2016-11-21T14:35:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/zestedesavoir/zds-site/pulls/3998","html_url":"https://github.com/zestedesavoir/zds-site/pull/3998","diff_url":"https://github.com/zestedesavoir/zds-site/pull/3998.diff","patch_url":"https://github.com/zestedesavoir/zds-site/pull/3998.patch"},"body":"| Q                                   | R\r\n| ----------------------------------- | -------------------------------------------\r\n| Type de modification                | évolution\r\n| Ticket(s) (_issue(s)_) concerné(s)  | -\r\n\r\n**Ne pas merger pour l'instant, on discute.**\r\n\r\nIl y a deux choses qui m'embêtent dans notre code base: \r\n\r\n1. Le temps qu'on perd à corriger le style après le passage travis de flake8\r\n2. La grosse incohérence de style de notre codebase. (L'indentation différente partout, les guillemets différentes partout, etc.)\r\n\r\nIl existe des outils qui peuvent régler tout ça pour nous, mais on continue à perdre notre temps précieux à s'occuper de ces détails à la main. Je dis détails parce que peaufiner le style est un travail de détail. \r\n\r\nAvoir un style cohérent est tout sauf un détail, c'est une grande aide à la lecture et donc à la compréhension, et ne pas avoir à se soucier du style enlève également une chose à vérifier lors du code review des PRs.\r\n\r\nJe propose qu'on utilise `yapf`. C'est du python, c'est édité et maintenu par google. Ça tiendra python3 évidemment aussi.\r\n\r\nJe propose donc : \r\n\r\n### Dans un premier temps\r\n\r\nAvec cette PR on ajoute au `Makefile` un target `make format`. On pourra le mettre dans nos pré-commit hooks, ou le lancer à la main. Derrière on garde flake8 dans travis au cas où, ça mange pas de pain.\r\n\r\nAvant de merger je lancerai un coup de bouzin pour tout corriger.\r\n\r\n### Dans un second temps\r\n\r\nOn ajoute [`flake8-quotes`](https://github.com/zheller/flake8-quotes) aux dev-deps, et je corrige vite fait le tout à la main. Les auteurs de PRs pourront simplement rebaser, de toute façon ça fait belle lurette qu'on ne laisse plus passer les `\"` **sauf s'ils enclosent une `'`**.\r\n\r\n* `print \"la\"  # nope`\r\n* `print 'la'  # ok`\r\n* `print \"l'a\"  # ok`\r\n\r\nÇa nous évite les `\\'` moches, et c'est par défaut dans beaucoup de codebases, c'est un standard ou presque.\r\n\r\n---\r\n\r\n### Qu'en pensez-vous ?\r\n\r\n(Vous aimez perdre votre temps à corriger flake ou à changer les quotes quand je relis vos PRs ? :-° )\r\n\r\n---\r\n\r\nBonus : devinez pourquoi travis est pas content de cette PR."},"comment":{"url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/comments/261954156","html_url":"https://github.com/zestedesavoir/zds-site/pull/3998#issuecomment-261954156","issue_url":"https://api.github.com/repos/zestedesavoir/zds-site/issues/3998","id":261954156,"user":{"login":"vhf","id":2022803,"avatar_url":"https://avatars.githubusercontent.com/u/2022803?v=3","gravatar_id":"","url":"https://api.github.com/users/vhf","html_url":"https://github.com/vhf","followers_url":"https://api.github.com/users/vhf/followers","following_url":"https://api.github.com/users/vhf/following{/other_user}","gists_url":"https://api.github.com/users/vhf/gists{/gist_id}","starred_url":"https://api.github.com/users/vhf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vhf/subscriptions","organizations_url":"https://api.github.com/users/vhf/orgs","repos_url":"https://api.github.com/users/vhf/repos","events_url":"https://api.github.com/users/vhf/events{/privacy}","received_events_url":"https://api.github.com/users/vhf/received_events","type":"User","site_admin":false},"created_at":"2016-11-21T14:35:02Z","updated_at":"2016-11-21T14:35:02Z","body":"> Bref, est ce que c'est vraiment finir avec des règles de style contraignantes que tu veux ?\r\n\r\nNon, ce que je veux c'est arrêter de perdre du temps à régler à la main des problèmes qu'un outil fait mieux et plus rapidement qu'un humain.\r\n\r\n> alors qu'on a essayé de faire pour le mieux, avec les outils qu'on utilisait à l'époque\r\n\r\nC'est pas parce qu'on a essayé de faire au mieux qu'on a obtenu la situation idéale. En l'occurence, c'est très incohérent, corriger à la main est pénible et prend énormément de temps. Relire les PRs pour scruter les problèmes de style et commenter chacun d'entre eux prend également du temps à 2 personnes pour rien : le temps de lire, de faire un commentaire par problème, puis le temps de lire les commentaires, et de les corriger. Puis on recommence.\r\n\r\nSi vraiment tu formates ton code à la main par plaisir, je suppose que cette PR ne te concerne pas. Tu pourras simplement continuer à te contenter de corriger à la main chaque fois que travis ne sera pas content. C'est pas un problème.\r\n\r\nTu mets des trucs entre guillemets\r\n\r\n> \"tu codes comme un cochon\"\r\n> \"c'est de la merde ce que vous avez fait, va falloir rattraper vos erreurs\"\r\n\r\npour faire croire que je suis désagréable ou malpoli, et c'est pas très honnête de ta part. Je sais que tu prends très mal tout ce qui touche à ce à quoi tu contribues, mais c'est pas une raison pour mettre des mots dans ma bouche ou pour me faire passer pour un malpoli désagréable. [Quand je dis que je suis **en faveur** de refactoriser du code que tu as écrit, tu te plains que je le dis pas de façon sympa. Derrière tu laisses des commentaires disant de façon péremptoire \"ça n'as rien à faire dans cette PR\".](https://imgur.com/a/agq1A)\r\n\r\nJe t'invite à reconsidérer la façon dont tu t'identifies au code que tu écris, et à calmer un peu le jeu niveau effets de style. Personne ne te \"gueule dessus\". Personne ne traite ton travail de \"merde\". Personne ne te dit que tu codes \"comme un cochon\". Personne ne dit que tu fais \"mal [t]on boulot\". Personne ne dit que le code actuel est \"incorrect\".\r\n\r\nA aucun moment je ne vise quelqu'un. Je ne fais même aucun reproche. J'ai dit que ça m'embêtait qu'on perde du temps à formater du code, et que la codebase manquait de cohérence sur plusieurs points, détaillés plus loin avec plein de screenshots. Je ne juge pas les contributions. J'observe depuis un moment que c'est très incohérent de 1, et que ça nous fait perdre du temps de 2. Je propose de régler ça vite et bien, sans effort."}}
{"actor":{"display_login":"vhf"}}