Skip to content

Conversation

sirosen
Copy link
Member

@sirosen sirosen commented Oct 8, 2025

Commits in 4.x which are not in 3.x are listed below.

  • Set version to 4.0.0a1 for v4 development
  • Configure 'Breaking Changes' changelog section (Configure 'Breaking Changes' changelog section #1187)
  • Remove the "default requested scopes" (Remove the "default requested scopes" #1186)
  • Remove base_path from all client classes (Remove base_path from all client classes #1185)
  • Updated CollectionDocument with MissingType
  • Make 'GlobusAPIError.code' default to 'None' (Make 'GlobusAPIError.code' default to 'None' #1190)
  • Simplify custom parsing for TimersAPIError (Simplify custom parsing for TimersAPIError #1191)
  • Bump version and changelog for release
  • Remove the globus_sdk.version module
  • Remove the 'MutableScope' type (Remove the 'MutableScope' type #1198)
  • Add an entry to the upgrading doc for MutableScope
  • Refine upgrade doc on MutableScope
  • Remove legacy "GARE" module aliasing
  • Convert to a csv-table in docs
  • Remove the setter for GlobusAPIError.message (Remove the setter for GlobusAPIError.message #1204)
  • Update flows client classes to use MISSING defaults (Update flows client classes to use MISSING defaults #1205)
  • Remove deprecated aliases for "Timers" (Remove deprecated aliases for "Timers" #1206)
  • Typo-fix from merge: double-set value
  • Remove experimental 'scope_parser' alias
  • Updated GCS client to use MISSING defaults
  • Added changelog
  • Update search client classes to use MISSING defaults (Update search client classes to use MISSING defaults #1207)
  • Update compute and groups clients classes to use MISSING defaults (Update compute and groups clients classes to use MISSING defaults #1212)
  • Bump version and changelog for release
  • Add add_app_transfer_data_access_scope for flows
  • Updated transfer client to use MISSING defaults
  • Added changelog
  • Requested fix: changelog formatting
  • Requested change: revert submission_id check
  • Requested change: remove SDK defaults
  • Requested change: revert filter rule method default
  • Convert the parser perf test to pytest-benchmark
  • Move classproperty to a dedicated private module
  • Move the MISSING sentinel to a dedicated module
  • Move a base64 helper from utils
  • Convert "PayloadWrapper" type to "Payload"
  • Move tools of 'utils' and into '_remarshal'
  • Rename 'utils' to '_utils'
  • Convert GCS payload types from "_set_opt..."
  • Convert Transfer payload types from _set_opt...
  • Add a changelog for cleanup to 'utils'
  • Linting fixes + adjust PR number in changelog
  • Fix lazy import test
  • Apply suggestions from code review
  • Rename "Payload" -> "GlobusPayload"
  • Remove imprecise use of 'Any' in _remarshal
  • Refine the internal naming of remarshal functions
  • Convert the CHANGELOG to Markdown-compatible headers (v4 branch)
  • Remove transfer_client param to data constructors
  • Begin converting Auth clients to use MISSING
  • Update get_identities and JWK methods w/ MISSING
  • Update project and policy usages w/ MISSING
  • Fix errors from AuthClient MISSING updates
  • Typo fix: double-conversion of a value
  • Add changelog for Auth client MISSING conversion
  • Apply suggestions from code review
  • Remove unnecessary backslash continuations
  • Apply suggestions from code review
  • Make tests of provision flag clearer
  • Separate the ScopeParser from Scope
  • Make Scope objects immutable
  • Add sections to upgrading guide about scopes
  • Update all usages of 'Scope.add_dependency'
  • Fix an unannotated dict type under py3.8
  • Refine changelog for scope parsing + immutability
  • Apply suggestions from code review
  • Add minor comment about type-ignore usage
  • Fix a bug recently introduced into a typing test
  • Remove '.mypy_cache' from GHA caching
  • Replace ScopeBuilder types with Scope Collections
  • Simplify the behavior of ScopeCollection types
  • Add documentation on ScopeCollection rewrite
  • Split scope collection docs to improve doc flow
  • Use 'is MISSING' to compare for missing-ness
  • Add a type checking test for MISSING
  • Remove "new in" comment
  • Reflow the new flake8 plugin rule
  • Restructure flake8 plugin to be simpler to read
  • Improve comments on MISSING type checker trick
  • (actions) update PR references
  • Fix compute client imports for 4.x-dev branch structure
  • [pre-commit.ci] auto fixes from pre-commit.com hooks
  • Bump version and changelog for release
  • Rename tokenstorage to token_storage (Rename tokenstorage to token_storage #1252)
  • Move globus_sdk._testing to globus_sdk.testing (Move globus_sdk._testing to globus_sdk.testing #1251)
  • Remove deprecated 'consents' experimental module
  • Fix PR links in changelog (Fix PR links in changelog #1256)
  • Remove the compatibility shim from create_policy (Remove the compatibility shim from create_policy #1257)
  • Replace ScopeCollectionType alias with explicit expansion of types (Replace ScopeCollectionType alias with explicit expansion of types #1259)
  • Create 'globus_sdk._internal', move 'lazy_import'
  • Move classproperty into _internal
  • Move the flake8 extension into _internal
  • Move the sphinx extension into _internal
  • Move guards into _internal
  • Move remarshal into _internal
  • Move serializable into _internal
  • Move utils into _internal
  • Move type definitions into _internal
  • Remove the UUIDLike type alias
  • Improve upgrading guide for optional scope dependencies
  • Remove the experimental GlobusApp aliases
  • Add RequestCallerInfo data object to RequestsTransport.request (Add RequestCallerInfo data object to RequestsTransport.request #1261)
  • (actions) update PR references
  • Fix the PR autofixer job to use fetch-depth=0
  • Remove the experimental login_flows alias
  • Remove deprecated 'oauth2_validate_token' method
  • (actions) update PR references
  • Rename 'function_data' to 'data'
  • Remove 'TimerJob.from_transfer_data' constructor (Remove 'TimerJob.from_transfer_data' constructor #1269)
  • (actions) update PR references
  • Remove the 'oauth2_userinfo' alias
  • Remove ConfidentialAppAuthClient.get_identities
  • (actions) update PR references
  • (actions) update PR references
  • Document 'get_identities' upgrading process
  • Remove 'TransferClient.create_endpoint'
  • Remove GCSClient.connector_id_to_name
  • (actions) update PR references
  • (actions) update PR references
  • (actions) update PR references
  • Remove 'client_id' from 'AuthClient' (Remove 'client_id' from 'AuthClient' #1271)
  • (actions) update PR references
  • Remove Endpoint Activation support (Remove Endpoint Activation support #1279)
  • (actions) update PR references
  • Remove the ComputeClient alias (Remove the ComputeClient alias #1282)
  • (actions) update PR references
  • Remove the "write" endpoint server methods (Remove the "write" endpoint server methods #1284)
  • Remove 'raw_text' (deprecated) (Remove 'raw_text' (deprecated) #1283)
  • (actions) update PR references
  • Remove 'operation_symlink' (deprecated) (Remove 'operation_symlink' (deprecated) #1286)
  • (actions) update PR references
  • Remove deprecated Compute data helpers (Remove deprecated Compute data helpers #1285)
  • (actions) update PR references
  • Bump version and changelog for release
  • Convert 'scopes_to_str' to 'ScopeParser.serialize'
  • Move 'scopes_to_scope_list' to private function
  • Make ScopeParser.serialize handle the empty case
  • Add a changelog for scope normalization updates
  • Make legacy token storage less accessible
  • Move 'v2' token_storage up a level
  • Remove the 'filter_role' param for list_flows (Remove the 'filter_role' param for list_flows #1291)
  • (actions) update PR references
  • Remove SearchClient.update_entry (Remove SearchClient.update_entry #1292)
  • (actions) update PR references
  • (actions) update PR references
  • Remove the "SearchQuery" type
  • Add upgrading doc for 'SearchQuery'
  • (actions) update PR references
  • (actions) update PR references
  • Remove SearchClient.create_entry
  • Add a small section to upgrading doc for 'ingest'
  • Change how BaseClient.transport is customized
  • Introduce RetryCheckCollection
  • Refactor to expose RetryConfiguration
  • Add a changelog for RequestsTransport refactoring
  • Refactor RetryConfig to isolate hook registration
  • Fix minor documentation errors
  • (actions) update PR references
  • (actions) update PR references
  • Update warn_deprecated to emit RemovedInV5Warning
  • (actions) update PR references
  • Bump version and changelog for release
  • Put error text in __notes__ where supported
  • (actions) update PR references
  • Set pytest-xdist parallelism to 0 under tox p
  • Raise TypeError on invalid Scope constructions
  • (actions) update PR references
  • (actions) update PR references
  • Add guidance on 'base_path' to upgrading doc
  • Convert malformed csv-table to simple table
  • Fix doc title for SDK v4 (Fix doc title for SDK v4 #1313)
  • Update '_testing' usages for 4.x
  • Bump version and changelog for release
  • (actions) update PR references
  • Add ScopeCollections to upgrading guide (Add ScopeCollections to upgrading guide #1328)
  • Bump version and changelog for release

m1yag1 and others added 30 commits May 1, 2025 16:25
* Remove the "default requested scopes"

These were the default for login flows and client credentials. When
GlobusApp-driven logins are used, these defaults are not used. They
were only applied for direct use of the login flow and token request
mechanisms for login clients.

One log line has been changed to produce slightly more useful
debug-level logs.

Also, introduce the first v3.x -> v4 upgrading section to the
upgrading doc.

* Fix typing errors and raise on unreachable types

Fix typing errors where `... | None` was passed for
`requested_scopes`.

Additionally, to handle cases in GlobusApp, raise usage errors if an
app is ever doing a login without provided scopes in the authorization
parameters. These conditions aren't unreachable based on the types
which are used, but a user who configures things to reach these
conditions is engaged in explicitly unsupported usage (e.g., trying to
give explicit parameters to a client app which don't include scopes).

* Retitle changelog section
* Removed base_path from client classes

* Removed _base_path_map from RegisteredResponse

* Removed trailing slash enforcement

* Added changelog
In the source tree, the default is changed from `"Error"` to `None`.
In the tests, various direct tests are updated, as are those which
inspect the arguments passed to `super().__init__` and which feed into
the repr for an API error.

There are no paths in the source tree of the SDK itself which depend
upon the old default of `"Error"`.
…ectionDocument

Updated CollectionDocument with MissingType
In particular, remove the special-case `code` default.
Also, make use of subdocument message parsing to capture the `msg`
field of sub-errors.
* Remove the 'MutableScope' type

This is deprecated in 3.x in favor of the 'Scope' type. As part of our
4.0 release, we will be removing the 'MutableScope' type.

This removes the type itself, and then handles all of the cascading
fixes this necessitates.
No update to the upgrading doc is included yet, as we have additional
plans to make changes to the scope interfaces.

* Minor fix to a mypy-test

`Scope.scopes2str` does not exist -- this test was created by a
`MutableScope` replacement but the `Scope` and `MutableScope`
interfaces differ here. Remove the bad test case.
This is a small/minimal entry so that we're guaranteed to have
something to build upon.

It intentionally does not go into detail on how to use `Scope` because
these interfaces are being redesigned.
Fix some phrasing and link to classes.

Co-authored-by: Kurt McKee <39996+kurtmckee@users.noreply.github.com>
…upgrade

Add an entry to the upgrading doc for MutableScope
- Remove `globus_sdk.experimental.auth_requirements_error`
- Remove a test which checks the aliasing
- Add an upgrading doc section on removal of experimental aliases
Co-authored-by: Kurt McKee <39996+kurtmckee@users.noreply.github.com>
This was deprecated under 3.x and is now being removed.

It is sufficiently minor that it probably doesn't warrant a call-out
in the upgrading guide doc.
* Updated flows client to use MISSING defaults

* Added changelog

* Requested changes: removed missing from additional_fields and query_params

* Requested changes: added back orderby comment
Several objects named `Timer*` were exposed in the SDK as deprecated
aliases for their `Timers*` renamed variants. These aliases are here
removed.

Also, delete the `globus_sdk.services.timer` module which aliased
them.

Tests and docs are updated to remove all reference to these old names.

Co-authored-by: Kurt McKee <39996+kurtmckee@users.noreply.github.com>
v3.57.0

Merge resolution against the GCS collection types required rewrites of
the new fields into `MISSING`-style.
'activity_notification_policy' was being set twice. This was an
accidental merge artifact, fixed here.
derek-globus and others added 22 commits September 8, 2025 09:28
This takes the latest 3.x development work (`main`) and merges it into
4.x development (`4.x-dev`).

In particular, this changeset takes globus#1307 and globus#1308 and applies them
against 4.x.

The following changes are made in order to resolve merge conflicts and
produce a good result:
- the deprecated method and parameter from globus#1307 are removed
- the deprecated parameters from globus#1308 are removed
- tests for deprecated behaviors are removed
- the relevant changelogs are removed from the `changelog.d/` directory
- a new changelog.d/ fragment is added to describe the removals
Because this only impacts users who are directly using HTTP methods, the
expected impact of this change is somewhat limited. As such, it is
placed at the end of the guide.

In brief, the guide lists which clients and which methods of said
clients are impacted, as well as giving notes on:

- how the mapping of usages to URIs has changed
- impact to the testing tools
- compatible usage which does the same thing on both versions
@sirosen sirosen added the no-news-is-good-news This change does not require a news file label Oct 8, 2025
@sirosen sirosen merged commit 12056d0 into globus:main Oct 8, 2025
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-news-is-good-news This change does not require a news file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants