Open benoit-cty opened 2 years ago
@MattiSG @sandcha qu'en pensez-vous ? Si on fait ces changements, il me semble qu'il faut aussi propager cela dans tous les repos openfisca par souci d'homogénéisation.
Si c'est secondaire, on ferme. Mais d'abord peut-être @benoit-cty peux-tu nous dire dans quelle situation tu en as eu besoin.
J'en ai eu besoin pour afficher dans la log et dans le status de l'API budget de LexImpact la version d'OpenFisca utilisée : https://api-simu-etat-prod.leximpact.dev/status
Je m'en suis sorti avec les conseils de Sandcha par:
def status_version_of():
country_package_metadata = tax_benefit_system.get_package_metadata()
country_package_name = country_package_metadata["name"]
country_package_version = country_package_metadata["version"]
return [country_package_name, country_package_version]
Mais ce n'est pas la façon de faire habituelle.
Même si ce n'est pas une obligation d'utiliser version la doc officielle part de cette hypothèse : https://packaging.python.org/en/latest/guides/single-sourcing-package-version/
Une façon qui semble plus systématique pour obtenir la version d'un module est de faire:
import pkg_resources
module_name = "openfisca_france"
module_version = pkg_resources.get_distribution(module_name).version
print(f"{module_name} version: {module_version}")
Et ça fonctionne déjà dans OpenFisca. Donc ma demande est facultative, ce n'est pas une obligation, plus une convention adoptée par les différents projets:
>>> import pandas
>>> pandas.__version__
'1.5.0'
>>> import numpy
>>> numpy.__version__
'1.20.3'
>>> import scipy
>>> scipy.__version__
'1.9.2'
>>> import pytest
>>> pytest.__version__
'5.4.3'
Pour ce qui est de maintenir un même numéro de version dans plusieurs fichiers, il y a BumpVer qui permet de le faire, je l'ai mis en place dans OpenFisca-France-Data : https://github.com/openfisca/openfisca-france-data/commit/17f776ee0be7645e303f68992098fe82d22f398d
Une autre façon d'obtenir le numéro de version:
python setup.py --version
Merci @benoit-cty pour ces détails. Je suis toujours pour normaliser au maximum e tsimplifier la vie. Donc j'ai rien contre mais il faudra mettre à jour les guidelines et avoir en tête que tout le monde n'utilise pas Make (pas dispo au CASD par exemple en standard) que tu utilises pour lancer Bumpver.
@sandcha @MattiSG je vous laisse trancher.
N'étant pas un expert de l'écosystème Python, je n'ai pas d'avis. Si c'est commun comme l'indique @benoit-cty dans https://github.com/openfisca/openfisca-france/issues/1888#issuecomment-1443834315, je suis favorable à ce que cette convention soit respectée. Je pense qu'elle peut l'être indépendamment de Core, d'ailleurs. Je suggère d'ouvrir une issue équivalente dans Core, voire une PR si cette issue est implémentée dans France.
Pour permettre aux utilisateurs de facilement savoir la version d'OpenFisca qu'ils utilisent, je propose d'ajouter dans le init.py:
Pour ne pas faire le changement deux fois, le setup.py deviendrait:
La commande
python ./setup.py --version
fonctionne toujours.Qu'en pensez-vous ?
Contexte
Je m'identifie plus en tant que :