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

version.py convention #8

Open
jhagege opened this issue Jul 12, 2018 · 3 comments
Open

version.py convention #8

jhagege opened this issue Jul 12, 2018 · 3 comments

Comments

@jhagege
Copy link

jhagege commented Jul 12, 2018

Thanks for this great repo.
I'm trying to understand what is the advantage of fetching the version using version.py vs. setting it directly in setup.py

version=Version('1.0.0').number, vs
version=1.0.0,

@mtchavez
Copy link
Owner

I suppose this approach could be re-vamped in some way. The Version class is mostly set up so that it can be locked down in the code. It can be useful to have a class for the version of your package so that you can do any checks in the code for branching logic, deprecation warnings, etc. I am open to seeing if there are better ways at doing this if you have any suggestions.

@jhagege
Copy link
Author

jhagege commented Jul 18, 2018

Your explanation makes a lot of sense.

Although I don't manage to fetch the version number once the package is installed.
i.e:

# setup.py
setuptools.setup(
    name="mypackage",
    version=Version("1.0.0-rc.2").number,
)

pip install -r requirements.txt

from mypackage.version import Version
print(Version.number)

but I get

AttributeError: type object 'Version' has no attribute 'number'

@mtchavez
Copy link
Owner

Number is an instance method so you would have to do Version('1.0.0-rc.2').number to get a string of the version. In other languages I have done this where it allows you to get the parts of the version i.e. major, minor, patch. Thinking this could maybe be cleaned up a bit.

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

No branches or pull requests

2 participants