2007-04-19 20:47:59 +00:00
|
|
|
"""
|
2007-04-30 20:06:09 +00:00
|
|
|
Decentralized storage grid.
|
2007-04-19 20:47:59 +00:00
|
|
|
|
2012-03-08 23:17:19 +00:00
|
|
|
community web site: U{https://tahoe-lafs.org/}
|
2007-04-19 20:47:59 +00:00
|
|
|
"""
|
2021-03-30 15:05:49 +00:00
|
|
|
from __future__ import absolute_import
|
|
|
|
from __future__ import division
|
|
|
|
from __future__ import print_function
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
from future.utils import PY2
|
|
|
|
if PY2:
|
|
|
|
# Don't import future str() so we don't break Foolscap serialization on Python 2.
|
|
|
|
from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, max, min # noqa: F401
|
|
|
|
from past.builtins import unicode as str
|
2019-03-30 15:58:02 +00:00
|
|
|
|
2019-08-13 19:11:01 +00:00
|
|
|
__all__ = [
|
|
|
|
"__version__",
|
|
|
|
"full_version",
|
|
|
|
"branch",
|
|
|
|
"__appname__",
|
|
|
|
"__full_version__",
|
|
|
|
]
|
2010-05-23 22:11:57 +00:00
|
|
|
|
2007-05-04 03:14:07 +00:00
|
|
|
__version__ = "unknown"
|
|
|
|
try:
|
2020-12-26 16:22:39 +00:00
|
|
|
# type ignored as it fails in CI
|
|
|
|
# (https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/1647/workflows/60ae95d4-abe8-492c-8a03-1ad3b9e42ed3/jobs/40972)
|
|
|
|
from allmydata._version import __version__ # type: ignore
|
2007-05-04 03:14:07 +00:00
|
|
|
except ImportError:
|
2013-04-25 01:14:50 +00:00
|
|
|
# We're running in a tree that hasn't run update_version, and didn't
|
|
|
|
# come with a _version.py, so we don't know what our version is.
|
|
|
|
# This should not happen very often.
|
|
|
|
pass
|
|
|
|
|
|
|
|
full_version = "unknown"
|
|
|
|
branch = "unknown"
|
|
|
|
try:
|
2020-12-26 16:22:39 +00:00
|
|
|
# type ignored as it fails in CI
|
|
|
|
# (https://app.circleci.com/pipelines/github/tahoe-lafs/tahoe-lafs/1647/workflows/60ae95d4-abe8-492c-8a03-1ad3b9e42ed3/jobs/40972)
|
|
|
|
from allmydata._version import full_version, branch # type: ignore
|
2013-04-25 01:14:50 +00:00
|
|
|
except ImportError:
|
|
|
|
# We're running in a tree that hasn't run update_version, and didn't
|
|
|
|
# come with a _version.py, so we don't know what our full version or
|
|
|
|
# branch is. This should not happen very often.
|
2007-05-04 03:14:07 +00:00
|
|
|
pass
|
2007-04-19 20:47:59 +00:00
|
|
|
|
2016-08-08 01:46:59 +00:00
|
|
|
__appname__ = "tahoe-lafs"
|
versioning: include an "appname" in the application version string in the versioning protocol, and make that appname be controlled by setup.py
It is currently hardcoded in setup.py to be 'allmydata-tahoe'. Ticket #556 is to make it configurable by a runtime command-line argument to setup.py: "--appname=foo", but I suddenly wondered if we really wanted that and at the same time realized that we don't need that for tahoe-1.3.0 release, so this patch just hardcodes it in setup.py.
setup.py inspects a file named 'src/allmydata/_appname.py' and assert that it contains the string "__appname__ = 'allmydata-tahoe'", and creates it if it isn't already present. src/allmydata/__init__.py import _appname and reads __appname__ from it. The rest of the Python code imports allmydata and inspects "allmydata.__appname__", although actually every use it uses "allmydata.__full_version__" instead, where "allmydata.__full_version__" is created in src/allmydata/__init__.py to be:
__full_version__ = __appname + '-' + str(__version__).
All the code that emits an "application version string" when describing what version of a protocol it supports (introducer server, storage server, upload helper), or when describing itself in general (introducer client), usese allmydata.__full_version__.
This fixes ticket #556 at least well enough for tahoe-1.3.0 release.
2009-02-12 00:18:16 +00:00
|
|
|
|
2016-08-08 01:46:59 +00:00
|
|
|
# __full_version__ is the one that you ought to use when identifying yourself
|
|
|
|
# in the "application" part of the Tahoe versioning scheme:
|
2012-03-08 23:17:19 +00:00
|
|
|
# https://tahoe-lafs.org/trac/tahoe-lafs/wiki/Versioning
|
2009-02-13 05:37:38 +00:00
|
|
|
__full_version__ = __appname__ + '/' + str(__version__)
|
2020-07-02 18:31:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Install Python 3 module locations in Python 2:
|
|
|
|
from future import standard_library
|
|
|
|
standard_library.install_aliases()
|
2020-10-01 14:48:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Monkey-patch 3rd party libraries:
|
|
|
|
from ._monkeypatch import patch
|
|
|
|
patch()
|
|
|
|
del patch
|