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

V2.28.0 #1674

Merged
merged 7 commits into from
Oct 2, 2024
Merged

V2.28.0 #1674

Show file tree
Hide file tree
Changes from 6 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

This file was deleted.

This file was deleted.

This file was deleted.

28 changes: 0 additions & 28 deletions changelog.d/20240906_104313_rjmello_support_globus_apps.rst

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions changelog.d/20240909_171516_kevin_update_parsl.rst

This file was deleted.

17 changes: 0 additions & 17 deletions changelog.d/20240919_155327_chris_json_serializer.rst

This file was deleted.

2 changes: 1 addition & 1 deletion compute_endpoint/globus_compute_endpoint/version.py
Original file line number Diff line number Diff line change
@@ -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.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
Expand Down
2 changes: 1 addition & 1 deletion compute_endpoint/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.0",
"globus-compute-common==0.4.1",
"globus-identity-mapping==0.3.0",
# table printing used in list-endpoints
Expand Down
2 changes: 1 addition & 1 deletion compute_sdk/globus_compute_sdk/sdk/auth/globus_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion compute_sdk/globus_compute_sdk/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.0"


def compare_versions(
Expand Down
80 changes: 80 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,86 @@ Changelog

.. scriv-insert-here

.. _changelog-2.28.0:

globus-compute-sdk & globus-compute-endpoint v2.28.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.

- 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
<https://globus-sdk-python.readthedocs.io/en/stable/experimental/examples/oauth2/globus_app.html>`_.

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(<your endpoint UUID>, 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 <reference/client>`, that were previously deprecated in
:ref:`v2.3.0 <changelog-2.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 <https://pypi.org/project/parsl/2024.9.9/>`_.

.. _changelog-2.27.1:

globus-compute-sdk & globus-compute-endpoint v2.27.1
Expand Down
Loading