-
Notifications
You must be signed in to change notification settings - Fork 99
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
Auto-fix the code formatting #1060
Conversation
89c28f4
to
cfc2694
Compare
cfc2694
to
e3a05e7
Compare
I don't think I spend enough time on the France codebase for my opinion to be relevant. The E251 rule ( Should be up to @guillett @benjello @claireleroy @frtomas (and others regular contributors) to discuss what good practice they want to adopt for this repo 🙂 (Aussi, pour information, le language par défaut des discussions sur OpenFisca-France est le français 🇫🇷 ⭐️ ⭐️ 😉 ) |
Je préfère vraiment que l'on garde des espaces autour des signes |
mon opinion :
Pour l'outil black, ce qui me paraît pratique c'est qu'il fait le formatage automatique, et que sa configuration est minime (et je serai pour qu'il n'y en ai pas, pour garder la config par défaut). |
J'ai ouvert une issue sur le dépôt de openfisca-code: openfisca/openfisca-core#706 Je pense qu'il est pertinent que cette discussion continue là-bas, afin d'impliquer un peu plus de monde dans la prise de décision, et d'adopter la même décision sur les deux dépôts. |
Les contraintes des bases de codes varient d'un projet à un autre. Il me parait pertinent de rappeler le contexte spécifique d'OpenFisca-France. Le code d'OpenFisca-France a vocation à être lu par beaucoup de monde : développeurs.ses bien sûr mais aussi économistes, juristes, journalistes et finalement toutes personnes intéressées par le système socio-fiscal français. Je suis favorable à prendre des libertés et à s'écarter des conventions de formatage Python si cela facilite la lecture du code. Les espaces autour des Cela étant dit, il me parait important de remettre en place un linter et la nécessité d'une configuration spécifique à OpenFisca-France me parait justifié. My 2cts. |
Je suis d'accord en théorie, et en même temps :
Par expérience il est très difficile d'arriver à un consensus sur ce genre de question, justement parce que les préférences personnelles, habitudes et expériences des uns et des autres prennent de l'importance, et peuvent cliver. Donc la décision se prend en général soit : J'essaie de ne pas avoir d'avis personnel sur la mise en forme, et ne suis ni pour ni contre les espaces autour des
|
Au nom de 1) et 2), j'aimerais que l'on garde les espaces autour des |
Il me semble que Des idées @benjello ? |
@magopian : désolé, je n'en vois pas mais je ne suis vraiment pas une référence. |
@benjello, je comprends le problème de formatage pour les espaces mais pas pour "l'indentation plutôt que l'alignement lors de l'ouverture de parenthèses avec parenthèse fermante au niveaux des items" ; pourrais-tu filer un lien à une section du diff de cette PR qui met en évidence l'indentation que tu préfères versus l'indentation générée par De ça, il faudra regarder quelles règles de Merci d'avance. |
@guillett : je n'ai pas regardé. J'ai juste mentionné les points sur lesquels je suis prêt à argumenter longtemps et que j'ai souvent rencontré dans les formateurs des éditeurs par exemple. Donc si cela n'est pas apparu, go for it. |
Le concept, le principe de base de Ni gofmt ni elm-format ne permettent la moindre configuration, avec l'argument fort qui est "Il est utile pour une communauté d'avoir un seul et même style. Et il est donc souhaitable que chaque projet adopte le même style que celui de la communauté. Et donc si un projet veut bénéficier des avantages de l'outil de formattage, il devra adopter le même style que celui de la communauté". Il me semble même qu'en GO il n'est pas possible de ne pas adopter gofmt. |
@benjello est-ce que ce sont des arguments basés sur tes préférences personnelles ? C'est totalement acceptable au nom de 1/ et 2/ comme indiqué plus haut, du moment qu'il est accepté que 1/ ou 2/ font loi sur ce dépôt ! Peut-être que Par ailleurs, il ne me semble pas que autopep8 soit largement utilisé dans la communauté, mais je peux me tromper, je n'en suis plus très proche depuis deux ans. |
Une remarque supplémentaire : la communauté OpenFisca != la communauté Python |
Malheureusement, il me semble que flake8 ne peut que vérifier, pas corriger (ce qui veut dire qu'en tant qu'humains on doit continuer à faire un travail de robot). La seule solution que je connaisse est autopep8 et pycodestyle que j'ai cités plus haut, mais je ne sais pas si ils permettent les espaces autour des Si c'est la solution prise, je veux bien que quelqu'un prenne le relai pour investiguer ça, et je ferme cette PR. |
J'ai promis une réponse à @magopian. La voici: je pense que ne pas avoir d'espaces autour des Mais je veux être constructif. Donc je renvois la balle ;-) @magopian : j'ai lu la doc de black. Le but est d'avoir le moins de lignes de différences possibles mais le reformatage qu'il propose sont un peu loin de ce que l'économiste moyen intervenant sur openfisca ferait (et ce que j'estime lisible) donc même si je comprends l'intérêt pour une personne qui fait du python à longueur de journée, je pense que l'on se tromperait de cible. |
Je veux bien passer un peu de temps pour explorer les alternatives à black, dès que j'aurais terminé avec les chantiers déjà ouverts (sans doute semaine prochaine) |
@magopian D'après ce que j'ai cru comprendre,
|
Je peux me tromper, mais ces configurations permettent uniquement d'ignorer, pas de "auto fix". |
En effet, ces configs auto-fixent le hang-close (parenthèse fermante au niveaux des items) mais pas les deux autres... |
Après explorer les offres disponibles, en prenant en compte les retours de @benjello et @magopian, voici ma conclusion : ce n'est pas possible de renforcer le style désiré out-of-the-box. J'ai testé :
Ma proposition : suivre la solution * Quand je dis last mile, je veux dire que la solution autopep8 n'est pas exclusive par rapport au style désiré, mais tout simplement que, comme le soulève @magopian, ces cas seront tout simplement ignorés. Qu'en pensez-vous ? 👍 👎 |
Le sujet a aussi été discuté sur core: openfisca/openfisca-core#706 Je pense aussi qu'autopep8 serait un bon premier pas. Pour l'instant il n'y a aucun linting ni formatting sur France, et ça parait être une bonne première étape. |
Toujours ok si mes lignes rouges sont respectées ;-) |
J'ai aussi testé Pylint. Bottom line:
(cf, Q6) Le risque de bikeshedding me semble important. Collectivement, comment évaluez-vous la valeur ajoutée qu'apporte le travail sur cette PR ? Et êtes-vous bien certain·e·s que le nombre de commentaires sur cette PR (proxy pour l'énergie investie dans la discussion) soit en rapport avec cette valeur ajoutée ? En particulier, quand vous la comparez aux autres PR ouvertes sur ce dépôt qui ont reçu moins de 26 commentaires… C'est à dire, en fait, toutes les autres. |
Personnellement je trouve que le manque de style explicite, donc de linting c'est en général un déterrent à la revue.
Je crois que le fait qu'il ait autant nombre de commentaires c'est en réalité un proxy sur la valeur que cela a pour des différents contributeurs et contributrices. Tans les contributions, les revues, comme les commentaries étant faits pour une grande partie sui generis , bona fide et pro bono, sont à mon humble opinion de bons et de mouvais indices :
(Ce que ne nie pas la valeur de celle-ci). Au-delà de ça, je partage la caution sur le bikeshedding, et ajoute donc ma proposition d'utiliser |
Remplacé par #1135 |
Fixes #1057
This PR is based on #1056 and shouldn't be merged before it.
This is highly debatable. And I know that creating a pull request modifying the code formatting is highly frowned upon.
So, I'm sorry. Also, don't hesitate to simply close this PR if you feel it's not a good idea!
Side note: the formatting is only checked on py3 because:
1/ black is only available for py3
2/ black can also reformat py2 code
3/ it's the same codebase, so no need to re-check in both builds (py2 AND py3)