Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SDK_VERSION=$(shell grep '^__version__' src/globus_sdk/version.py | cut -d '"' -f2)
SDK_VERSION=$(shell grep '^version' pyproject.toml | head -n 1 | cut -d '"' -f2)

# these are just tox invocations wrapped nicely for convenience
.PHONY: lint test docs all-checks
Expand Down
4 changes: 2 additions & 2 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
- Decide on the new version number and create a branch;
`git checkout -b release-$SDK_VERSION`

- Update the version in `src/globus_sdk/version.py`
- Update the version in `pyproject.toml`

- Update metadata and changelog, then verify changes in `changelog.rst`

Expand All @@ -28,7 +28,7 @@ $EDITOR changelog.rst
```

- Add changed files;
`git add changelog.d/ changelog.rst src/globus_sdk/version.py`
`git add changelog.d/ changelog.rst pyproject.toml`

- Commit; `git commit -m 'Bump version and changelog for release'`

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Breaking Changes
~~~~~~~~~~~~~~~~

- The SDK version is no longer available in ``globus_sdk.version.__version__``. (:pr:`NUMBER`)

Packages that want to query the SDK version must use ``importlib.metadata``:

.. code-block:: python

import importlib.metadata

GLOBUS_SDK_VERSION = importlib.metadata.distribution("globus_sdk").version
22 changes: 10 additions & 12 deletions changelog.d/check-version-is-new.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,22 @@
import re
import sys

if sys.version_info >= (3, 11):
import tomllib
else:
# Older Python versions
import tomli as tomllib

PATTERN_FORMAT = "^v{version}\\s+\\({date}\\)$"
CHANGELOG_D = os.path.dirname(__file__)
REPO_ROOT = os.path.dirname(CHANGELOG_D)


def parse_version():
# single source of truth for package version
version_string = ""
version_pattern = re.compile(r'__version__ = "([^"]*)"')
with open(os.path.join(REPO_ROOT, "src", "globus_sdk", "version.py")) as f:
for line in f:
match = version_pattern.match(line)
if match:
version_string = match.group(1)
break
if not version_string:
raise RuntimeError("Failed to parse version information")
return version_string
with open(os.path.join(REPO_ROOT, "pyproject.toml"), "rb") as f:
pyproject = tomllib.load(f)

return pyproject["project"]["version"]


def get_header_re(version):
Expand Down
6 changes: 3 additions & 3 deletions docs/upgrading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ the globus-sdk at the same time, consider adding this snippet:

.. code-block:: python

import globus_sdk
import importlib.metadata

GLOBUS_SDK_VERSION = tuple(globus_sdk.__version__.split("."))
GLOBUS_SDK_MAJOR_VERSION = int(GLOBUS_SDK_VERSION[0])
GLOBUS_SDK_VERSION = importlib.metadata.distribution("globus_sdk").version
GLOBUS_SDK_MAJOR_VERSION = int(GLOBUS_SDK_VERSION.split(".")[0])

This will parse the Globus SDK version information into a tuple and grab the
first element (the major version number) as an integer.
Expand Down
7 changes: 2 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "globus-sdk"
version = "4.0.0a1"
authors = [
{ name = "Globus Team", email = "support@globus.org" },
]
Expand Down Expand Up @@ -36,7 +37,6 @@ dependencies = [
# python versions older than 3.9 don't have importlib.resources
'importlib_resources>=5.12.0; python_version<"3.9"',
]
dynamic = ["version"]

[project.readme]
file = "README.rst"
Expand Down Expand Up @@ -100,9 +100,6 @@ globus_sdk = [
]
"globus_sdk.login_flows.local_server_login_flow_manager.html_files" = ["*.html"]

[tool.setuptools.dynamic.version]
attr = "globus_sdk.__version__"

# non-packaging tool configs follow

[tool.pytest.ini_options]
Expand Down Expand Up @@ -149,7 +146,7 @@ exclude_lines =[
]

[tool.scriv]
version = "literal: src/globus_sdk/version.py: __version__"
version = "literal: pyproject.toml: project.version"
format = "rst"
output_file = "changelog.rst"
entry_title_template = 'v{{ version }} ({{ date.strftime("%Y-%m-%d") }})'
Expand Down
2 changes: 1 addition & 1 deletion scripts/rtd-pre-sphinx-build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

VERSION=$(grep '^__version__' src/globus_sdk/version.py | cut -d '"' -f2)
VERSION=$(grep '^version' pyproject.toml | head -n 1 | cut -d '"' -f2)

case "$READTHEDOCS_VERSION_TYPE" in
external)
Expand Down
4 changes: 3 additions & 1 deletion src/globus_sdk/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import importlib.metadata
import logging
import sys

Expand All @@ -6,7 +7,8 @@
default_getattr_implementation,
load_all_tuple,
)
from .version import __version__ # noqa: F401

__version__ = importlib.metadata.distribution("globus_sdk").version


def _force_eager_imports() -> None:
Expand Down
3 changes: 2 additions & 1 deletion src/globus_sdk/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ from .services.transfer import (
TransferData,
)
from .utils import MISSING, MissingType
from .version import __version__

__version__ = "x.y.z"

def _force_eager_imports() -> None: ...

Expand Down
2 changes: 1 addition & 1 deletion src/globus_sdk/tokenstorage/v1/file_adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import typing as t

import globus_sdk
from globus_sdk.version import __version__
from globus_sdk import __version__

from .base import FileAdapter

Expand Down
2 changes: 1 addition & 1 deletion src/globus_sdk/tokenstorage/v1/sqlite_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import typing as t

import globus_sdk
from globus_sdk.version import __version__
from globus_sdk import __version__

from .base import FileAdapter

Expand Down
2 changes: 1 addition & 1 deletion src/globus_sdk/tokenstorage/v2/json.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import json
import typing as t

from globus_sdk.version import __version__
from globus_sdk import __version__

from .base import FileTokenStorage
from .token_data import TokenStorageData
Expand Down
3 changes: 1 addition & 2 deletions src/globus_sdk/tokenstorage/v2/sqlite.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
import textwrap
import typing as t

from globus_sdk import exc
from globus_sdk.version import __version__
from globus_sdk import __version__, exc

from .base import FileTokenStorage
from .token_data import TokenStorageData
Expand Down
3 changes: 1 addition & 2 deletions src/globus_sdk/transport/_clientinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@

import typing as t

from globus_sdk import exc
from globus_sdk.version import __version__
from globus_sdk import __version__, exc

_RESERVED_CHARS = ";,="

Expand Down
3 changes: 1 addition & 2 deletions src/globus_sdk/transport/requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@

import requests

from globus_sdk import config, exc, utils
from globus_sdk import __version__, config, exc, utils
from globus_sdk.authorizers import GlobusAuthorizer
from globus_sdk.transport.encoders import (
FormRequestEncoder,
JSONRequestEncoder,
RequestEncoder,
)
from globus_sdk.version import __version__

from ._clientinfo import GlobusClientInfo
from .retry import (
Expand Down
3 changes: 0 additions & 3 deletions src/globus_sdk/version.py

This file was deleted.

2 changes: 1 addition & 1 deletion tests/functional/tokenstorage/v1/test_simplejson_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

import pytest

from globus_sdk import __version__
from globus_sdk.tokenstorage import SimpleJSONFileAdapter
from globus_sdk.version import __version__

IS_WINDOWS = os.name == "nt"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

import pytest

from globus_sdk import __version__
from globus_sdk.tokenstorage import JSONTokenStorage, SimpleJSONFileAdapter
from globus_sdk.version import __version__

IS_WINDOWS = os.name == "nt"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
"_serializable",
"_types",
"utils",
"version",
),
)
def test_module_does_not_require_requests(module_name):
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/tokenstorage/v1/test_simplejson_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import pytest

from globus_sdk import __version__ as sdkversion
from globus_sdk.tokenstorage import SimpleJSONFileAdapter
from globus_sdk.version import __version__ as sdkversion


def test_simplejson_reading_bad_data(tmp_path):
Expand Down