From 74c9f4b7c0c101ddfa07c5297fdabbb09b4e8a9e Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Wed, 25 Sep 2024 12:14:35 -0500 Subject: [PATCH 1/6] 2.28.0a0 Releasing this now to test the AP on sandbox with the new `JSONData` serialization strategy. --- ...vin_remove_long_deprecated_client_args.rst | 6 -- ...438_kevin_redirect_stdstreams_to_eplog.rst | 7 -- ...30907815+rjmello_allow_client_id_alone.rst | 6 -- ...906_104313_rjmello_support_globus_apps.rst | 28 ------- ...907815_rjmello_deprecate_user_app_name.rst | 6 -- .../20240909_171516_kevin_update_parsl.rst | 4 - .../20240919_155327_chris_json_serializer.rst | 17 ---- .../globus_compute_endpoint/version.py | 2 +- compute_endpoint/setup.py | 2 +- compute_sdk/globus_compute_sdk/version.py | 2 +- docs/changelog.rst | 80 +++++++++++++++++++ 11 files changed, 83 insertions(+), 77 deletions(-) delete mode 100644 changelog.d/20240821_225122_kevin_remove_long_deprecated_client_args.rst delete mode 100644 changelog.d/20240822_230438_kevin_redirect_stdstreams_to_eplog.rst delete mode 100644 changelog.d/20240905_180131_30907815+rjmello_allow_client_id_alone.rst delete mode 100644 changelog.d/20240906_104313_rjmello_support_globus_apps.rst delete mode 100644 changelog.d/20240906_152758_30907815_rjmello_deprecate_user_app_name.rst delete mode 100644 changelog.d/20240909_171516_kevin_update_parsl.rst delete mode 100644 changelog.d/20240919_155327_chris_json_serializer.rst diff --git a/changelog.d/20240821_225122_kevin_remove_long_deprecated_client_args.rst b/changelog.d/20240821_225122_kevin_remove_long_deprecated_client_args.rst deleted file mode 100644 index f5d098adb..000000000 --- a/changelog.d/20240821_225122_kevin_remove_long_deprecated_client_args.rst +++ /dev/null @@ -1,6 +0,0 @@ -Removed -^^^^^^^ - -- Removed ``http_timeout``, ``funcx_home``, and ``task_group_id`` arguments to - :doc:`Client `, that were previously deprecated in - :ref:`v2.3.0 ` (Aug 2023) diff --git a/changelog.d/20240822_230438_kevin_redirect_stdstreams_to_eplog.rst b/changelog.d/20240822_230438_kevin_redirect_stdstreams_to_eplog.rst deleted file mode 100644 index 4c7e6acc4..000000000 --- a/changelog.d/20240822_230438_kevin_redirect_stdstreams_to_eplog.rst +++ /dev/null @@ -1,7 +0,0 @@ -New Functionality -^^^^^^^^^^^^^^^^^ - -- The multi-user endpoint now saves user-endpoint standard file streams (aka - ``stdout`` and ``stderr``) to the UEP's ``endpoint.log``. This makes it much - easier to identity implementation missteps that affect the early UEP boot - process, before the UEP's logging is bootstrapped. diff --git a/changelog.d/20240905_180131_30907815+rjmello_allow_client_id_alone.rst b/changelog.d/20240905_180131_30907815+rjmello_allow_client_id_alone.rst deleted file mode 100644 index 929b9092a..000000000 --- a/changelog.d/20240905_180131_30907815+rjmello_allow_client_id_alone.rst +++ /dev/null @@ -1,6 +0,0 @@ -Bug Fixes -^^^^^^^^^ - -- We no longer raise an exception if a user defines the ``GLOBUS_COMPUTE_CLIENT_ID`` - environment variable without defining ``GLOBUS_COMPUTE_SECRET_KEY``. The reverse, - however, will still raise an exception. diff --git a/changelog.d/20240906_104313_rjmello_support_globus_apps.rst b/changelog.d/20240906_104313_rjmello_support_globus_apps.rst deleted file mode 100644 index 685c0a7e4..000000000 --- a/changelog.d/20240906_104313_rjmello_support_globus_apps.rst +++ /dev/null @@ -1,28 +0,0 @@ -New Functionality -^^^^^^^^^^^^^^^^^ - -- The SDK ``Client`` and ``WebClient`` now support using a ``GlobusApp`` for authentication. - For standard interactive login flows, users can leave the ``app`` argument blank when - initializing the ``Client``, or pass in a custom ``UserApp``. For client authentication, - users can leave the ``app`` argument blank and set the ``GLOBUS_COMPUTE_CLIENT_ID`` and - ``GLOBUS_COMPUTE_CLIENT_SECRET`` environment variables, or pass in a custom ``ClientApp``. - - For more information on how to use a ``GlobusApp``, see the `Globus SDK documentation - `_. - - Users can still pass in a custom ``LoginManager`` to the ``login_manager`` argument, but - this is mutually exclusive with the ``app`` argument. - - E.g., - - .. code-block:: python - - from globus_compute_sdk import Client - from globus_sdk.experimental.globus_app import UserApp - - gcc = Client() - - # or - - my_app = UserApp("my-app", client_id="...") - gcc = Client(app=my_app) diff --git a/changelog.d/20240906_152758_30907815_rjmello_deprecate_user_app_name.rst b/changelog.d/20240906_152758_30907815_rjmello_deprecate_user_app_name.rst deleted file mode 100644 index 17014a81d..000000000 --- a/changelog.d/20240906_152758_30907815_rjmello_deprecate_user_app_name.rst +++ /dev/null @@ -1,6 +0,0 @@ -Deprecated -^^^^^^^^^^ - -- The ``WebClient.user_app_name`` attribute has been marked for deprecation and - will be removed in a future release. Please directly use ``WebClient.app_name`` - instead. diff --git a/changelog.d/20240909_171516_kevin_update_parsl.rst b/changelog.d/20240909_171516_kevin_update_parsl.rst deleted file mode 100644 index 4804639d0..000000000 --- a/changelog.d/20240909_171516_kevin_update_parsl.rst +++ /dev/null @@ -1,4 +0,0 @@ -Changed -^^^^^^^ - -- Bumped ``parsl`` dependency version to `2024.9.9 `_. diff --git a/changelog.d/20240919_155327_chris_json_serializer.rst b/changelog.d/20240919_155327_chris_json_serializer.rst deleted file mode 100644 index ae7ef31e4..000000000 --- a/changelog.d/20240919_155327_chris_json_serializer.rst +++ /dev/null @@ -1,17 +0,0 @@ -New Functionality -^^^^^^^^^^^^^^^^^ - -- Added a new data serialization strategy, ``JSONData``, which serializes/deserializes - function args and kwargs via JSON. Usage example: - - .. code-block:: python - - from globus_compute_sdk import Client, Executor - from globus_compute_sdk.serialize import JSONData - - gcc = Client( - data_serialization_strategy=JSONData() - ) - - with Executor(, client=gcc) as gcx: - # do something with gcx diff --git a/compute_endpoint/globus_compute_endpoint/version.py b/compute_endpoint/globus_compute_endpoint/version.py index 52a98c808..607389760 100644 --- a/compute_endpoint/globus_compute_endpoint/version.py +++ b/compute_endpoint/globus_compute_endpoint/version.py @@ -1,6 +1,6 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.27.1" +__version__ = "2.28.0a0" # TODO: remove after a `globus-compute-sdk` release # this is needed because it's imported by `globus-compute-sdk` to do the version check diff --git a/compute_endpoint/setup.py b/compute_endpoint/setup.py index b4ffdc8f4..dbcb69229 100644 --- a/compute_endpoint/setup.py +++ b/compute_endpoint/setup.py @@ -6,7 +6,7 @@ REQUIRES = [ "requests>=2.31.0,<3", "globus-sdk", # version will be bounded by `globus-compute-sdk` - "globus-compute-sdk==2.27.1", + "globus-compute-sdk==2.28.0a0", "globus-compute-common==0.4.1", "globus-identity-mapping==0.3.0", # table printing used in list-endpoints diff --git a/compute_sdk/globus_compute_sdk/version.py b/compute_sdk/globus_compute_sdk/version.py index 585096b02..fa4c0331c 100644 --- a/compute_sdk/globus_compute_sdk/version.py +++ b/compute_sdk/globus_compute_sdk/version.py @@ -3,7 +3,7 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.27.1" +__version__ = "2.28.0a0" def compare_versions( diff --git a/docs/changelog.rst b/docs/changelog.rst index 4c14ec68e..01d9eab48 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -3,6 +3,86 @@ Changelog .. scriv-insert-here +.. _changelog-2.28.0a0: + +globus-compute-sdk & globus-compute-endpoint v2.28.0a0 +------------------------------------------------------ + +New Functionality +^^^^^^^^^^^^^^^^^ + +- The multi-user endpoint now saves user-endpoint standard file streams (aka + ``stdout`` and ``stderr``) to the UEP's ``endpoint.log``. This makes it much + easier to identity implementation missteps that affect the early UEP boot + process, before the UEP's logging is bootstrapped. + +- The SDK ``Client`` and ``WebClient`` now support using a ``GlobusApp`` for authentication. + For standard interactive login flows, users can leave the ``app`` argument blank when + initializing the ``Client``, or pass in a custom ``UserApp``. For client authentication, + users can leave the ``app`` argument blank and set the ``GLOBUS_COMPUTE_CLIENT_ID`` and + ``GLOBUS_COMPUTE_CLIENT_SECRET`` environment variables, or pass in a custom ``ClientApp``. + + For more information on how to use a ``GlobusApp``, see the `Globus SDK documentation + `_. + + Users can still pass in a custom ``LoginManager`` to the ``login_manager`` argument, but + this is mutually exclusive with the ``app`` argument. + + E.g., + + .. code-block:: python + + from globus_compute_sdk import Client + from globus_sdk.experimental.globus_app import UserApp + + gcc = Client() + + # or + + my_app = UserApp("my-app", client_id="...") + gcc = Client(app=my_app) + +- Added a new data serialization strategy, ``JSONData``, which serializes/deserializes + function args and kwargs via JSON. Usage example: + + .. code-block:: python + + from globus_compute_sdk import Client, Executor + from globus_compute_sdk.serialize import JSONData + + gcc = Client( + data_serialization_strategy=JSONData() + ) + + with Executor(, client=gcc) as gcx: + # do something with gcx + +Bug Fixes +^^^^^^^^^ + +- We no longer raise an exception if a user defines the ``GLOBUS_COMPUTE_CLIENT_ID`` + environment variable without defining ``GLOBUS_COMPUTE_SECRET_KEY``. The reverse, + however, will still raise an exception. + +Removed +^^^^^^^ + +- Removed ``http_timeout``, ``funcx_home``, and ``task_group_id`` arguments to + :doc:`Client `, that were previously deprecated in + :ref:`v2.3.0 ` (Aug 2023) + +Deprecated +^^^^^^^^^^ + +- The ``WebClient.user_app_name`` attribute has been marked for deprecation and + will be removed in a future release. Please directly use ``WebClient.app_name`` + instead. + +Changed +^^^^^^^ + +- Bumped ``parsl`` dependency version to `2024.9.9 `_. + .. _changelog-2.27.1: globus-compute-sdk & globus-compute-endpoint v2.27.1 From 224a3597d89a6f023eba31a9c7aa65adf8f0f277 Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Thu, 26 Sep 2024 13:47:08 -0500 Subject: [PATCH 2/6] 2.28.0a1 --- compute_endpoint/globus_compute_endpoint/version.py | 2 +- compute_endpoint/setup.py | 2 +- compute_sdk/globus_compute_sdk/version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compute_endpoint/globus_compute_endpoint/version.py b/compute_endpoint/globus_compute_endpoint/version.py index 607389760..64d91b139 100644 --- a/compute_endpoint/globus_compute_endpoint/version.py +++ b/compute_endpoint/globus_compute_endpoint/version.py @@ -1,6 +1,6 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a0" +__version__ = "2.28.0a1" # TODO: remove after a `globus-compute-sdk` release # this is needed because it's imported by `globus-compute-sdk` to do the version check diff --git a/compute_endpoint/setup.py b/compute_endpoint/setup.py index dbcb69229..699d79f5f 100644 --- a/compute_endpoint/setup.py +++ b/compute_endpoint/setup.py @@ -6,7 +6,7 @@ REQUIRES = [ "requests>=2.31.0,<3", "globus-sdk", # version will be bounded by `globus-compute-sdk` - "globus-compute-sdk==2.28.0a0", + "globus-compute-sdk==2.28.0a1", "globus-compute-common==0.4.1", "globus-identity-mapping==0.3.0", # table printing used in list-endpoints diff --git a/compute_sdk/globus_compute_sdk/version.py b/compute_sdk/globus_compute_sdk/version.py index fa4c0331c..25388d1fe 100644 --- a/compute_sdk/globus_compute_sdk/version.py +++ b/compute_sdk/globus_compute_sdk/version.py @@ -3,7 +3,7 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a0" +__version__ = "2.28.0a1" def compare_versions( From f2b7a4481a0bb241f17de9168b61f22d94985506 Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Mon, 30 Sep 2024 16:01:21 -0500 Subject: [PATCH 3/6] Update changelog for release 2.28.0 --- docs/changelog.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 01d9eab48..6f087cf9e 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -3,10 +3,10 @@ Changelog .. scriv-insert-here -.. _changelog-2.28.0a0: +.. _changelog-2.28.0: -globus-compute-sdk & globus-compute-endpoint v2.28.0a0 ------------------------------------------------------- +globus-compute-sdk & globus-compute-endpoint v2.28.0 +---------------------------------------------------- New Functionality ^^^^^^^^^^^^^^^^^ From f53abd037f3e823589eeffb5ccfec51d7852b747 Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Mon, 30 Sep 2024 16:05:31 -0500 Subject: [PATCH 4/6] Fix operator precedence in Jupyter checking Update `globus_app.py` to match `login_manager/manager.py` --- compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py b/compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py index 933d6877b..4a398fe14 100644 --- a/compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py +++ b/compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py @@ -39,7 +39,7 @@ def get_globus_app(environment: str | None = None): # The authorization-via-web-link flow requires stdin; the user must visit # the web link and enter generated code. - elif not sys.stdin.isatty() or sys.stdin.closed and not _is_jupyter(): + elif (not sys.stdin.isatty() or sys.stdin.closed) and not _is_jupyter(): # Not technically necessary; the login flow would just die with an EOF # during input(), but adding this message here is much more direct -- # handle the non-happy path by letting the user know precisely the issue From 0116785b9fba42279331266be81c4a4a1b45c526 Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Tue, 1 Oct 2024 16:15:02 -0500 Subject: [PATCH 5/6] Update versions for 2.28.0a2 release --- compute_endpoint/globus_compute_endpoint/version.py | 2 +- compute_endpoint/setup.py | 2 +- compute_sdk/globus_compute_sdk/version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compute_endpoint/globus_compute_endpoint/version.py b/compute_endpoint/globus_compute_endpoint/version.py index 64d91b139..5dd19c26e 100644 --- a/compute_endpoint/globus_compute_endpoint/version.py +++ b/compute_endpoint/globus_compute_endpoint/version.py @@ -1,6 +1,6 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a1" +__version__ = "2.28.0a2" # TODO: remove after a `globus-compute-sdk` release # this is needed because it's imported by `globus-compute-sdk` to do the version check diff --git a/compute_endpoint/setup.py b/compute_endpoint/setup.py index 699d79f5f..fb11cad93 100644 --- a/compute_endpoint/setup.py +++ b/compute_endpoint/setup.py @@ -6,7 +6,7 @@ REQUIRES = [ "requests>=2.31.0,<3", "globus-sdk", # version will be bounded by `globus-compute-sdk` - "globus-compute-sdk==2.28.0a1", + "globus-compute-sdk==2.28.0a2", "globus-compute-common==0.4.1", "globus-identity-mapping==0.3.0", # table printing used in list-endpoints diff --git a/compute_sdk/globus_compute_sdk/version.py b/compute_sdk/globus_compute_sdk/version.py index 25388d1fe..f674993ad 100644 --- a/compute_sdk/globus_compute_sdk/version.py +++ b/compute_sdk/globus_compute_sdk/version.py @@ -3,7 +3,7 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a1" +__version__ = "2.28.0a2" def compare_versions( From 8b652ebf639a50b6d8b065698fc549a836b2f333 Mon Sep 17 00:00:00 2001 From: Chris Janidlo Date: Wed, 2 Oct 2024 10:04:13 -0500 Subject: [PATCH 6/6] Bump versions for release --- compute_endpoint/globus_compute_endpoint/version.py | 2 +- compute_endpoint/setup.py | 2 +- compute_sdk/globus_compute_sdk/version.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compute_endpoint/globus_compute_endpoint/version.py b/compute_endpoint/globus_compute_endpoint/version.py index 5dd19c26e..a184c198b 100644 --- a/compute_endpoint/globus_compute_endpoint/version.py +++ b/compute_endpoint/globus_compute_endpoint/version.py @@ -1,6 +1,6 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a2" +__version__ = "2.28.0" # TODO: remove after a `globus-compute-sdk` release # this is needed because it's imported by `globus-compute-sdk` to do the version check diff --git a/compute_endpoint/setup.py b/compute_endpoint/setup.py index fb11cad93..635617116 100644 --- a/compute_endpoint/setup.py +++ b/compute_endpoint/setup.py @@ -6,7 +6,7 @@ REQUIRES = [ "requests>=2.31.0,<3", "globus-sdk", # version will be bounded by `globus-compute-sdk` - "globus-compute-sdk==2.28.0a2", + "globus-compute-sdk==2.28.0", "globus-compute-common==0.4.1", "globus-identity-mapping==0.3.0", # table printing used in list-endpoints diff --git a/compute_sdk/globus_compute_sdk/version.py b/compute_sdk/globus_compute_sdk/version.py index f674993ad..cfe48227c 100644 --- a/compute_sdk/globus_compute_sdk/version.py +++ b/compute_sdk/globus_compute_sdk/version.py @@ -3,7 +3,7 @@ # single source of truth for package version, # see https://packaging.python.org/en/latest/single_source_version/ -__version__ = "2.28.0a2" +__version__ = "2.28.0" def compare_versions(