Skip to content

Commit

Permalink
Merge pull request #191 from globus/release/0.20.0
Browse files Browse the repository at this point in the history
Release v0.20.0
  • Loading branch information
kurtmckee authored Nov 7, 2024
2 parents d49ef55 + 84734fa commit e341731
Show file tree
Hide file tree
Showing 36 changed files with 372 additions and 1,811 deletions.
196 changes: 0 additions & 196 deletions .github/workflows/ci.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

- name: Set target python version
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: "3.11"

Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: "🧪 Test"

on:
pull_request: null
push:
branches:
- "main"
- "production"

jobs:
test:
name: "${{ matrix.name }}"
strategy:
fail-fast: false
matrix:
# These names establish the number of jobs that will run,
# and the actual job configurations will be added by matching "name" keys
# in the "include" section below.
name:
- "Linux"
- "macOS"
- "Windows"
- "Quality"

# The nested list in this single-item list will be added to each job above.
cache-key-hash-files:
-
- "pyproject.toml"
- "requirements/*/requirements.txt"

include:
- name: "Linux"
runner: "ubuntu-latest"
cpythons:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
tox-environments-from-pythons: true
tox-post-environments:
- "py3.8-minimum_flask"
- "py3.12-minimum_flask"

- name: "macOS"
runner: "macos-latest"
cpythons:
- "3.12"
tox-environments-from-pythons: true

- name: "Windows"
runner: "windows-latest"
cpythons:
- "3.12"
tox-environments-from-pythons: true

- name: "Quality"
runner: "ubuntu-latest"
cpythons:
- "3.12" # This must match the Read the Docs interpreter version.
tox-environments:
- "docs"
- "mypy"
cache-paths:
- ".mypy_cache/"

uses: "globus/workflows/.github/workflows/tox.yaml@04b4abd6fcb9b4be7263bc9d6994ae2ada220739" # v1.1
with:
config: "${{ toJSON(matrix) }}"
3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-json
- id: check-added-large-files

- repo: https://github.com/sirosen/texthooks
Expand Down Expand Up @@ -54,7 +53,7 @@ repos:
- id: slyp

- repo: https://github.com/rhysd/actionlint
rev: v1.7.3
rev: v1.7.4
hooks:
- id: actionlint

Expand Down
68 changes: 68 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,74 @@ Unreleased changes are documented in files in the `changelog.d`_ directory.

.. scriv-insert-here
.. _changelog-0.20.0:

0.20.0 — 2024-11-07
===================

Breaking changes
----------------

* Remove the ``globus_action_provider_tools.flask.api_helpers`` module,
and the helpers it provided.

If possible, it is recommended to immediately migrate Action Providers
off of the code in the Flask API helpers module.

If this cannot be done immediately, it is recommended to pin
the Action Provider Tools dependency to ``0.19.1``.

Deprecations
------------

* The ``required_authorizer_expiration_time`` parameter to ``get_authorizer_for_scope`` is deprecated.

Given token expiration and caching lifetimes,
it was not possible for this parameter to have any effect based on its prior documented usage.

Bugfixes
--------

* Action Provider Tools no longer requests Dependent Refresh Tokens
if Access Tokens are sufficient. As a result of this fix,
the AuthState dependent token cache will never contain dependent refresh tokens.

Changes
-------

* ``AuthState.introspect_token()`` will no longer return ``None``
if the token is not active.

Instead, a new exception, ``InactiveTokenError``, will be raised.
``InactiveTokenError`` is a subclass of ``ValueError``.

Code that calls ``AuthState.introspect_token()`` no longer returns ``None``, either,
but will instead raise ``ValueError`` (or a subclass) or a ``globus_sdk.GlobusAPIError``:

* ``AuthState.get_authorizer_for_scope``
* ``AuthState.effective_identity``
* ``AuthState.identities``

* Group caching behavior in the ``AuthState`` class has been improved
to ensure that the cache is checked before any external operations
(e.g., dependent token callouts) are required.
The cache now uses the token hash as its key, rather than a dependent token.

Documentation
-------------

* Remove examples from documentation which relied upon the ``api_helpers`` module.

Development
-----------

* Introduce new scriv categories to better communicate how the project evolves.

The categories are also re-ordered,
which defines how fragments will be ordered in the CHANGELOG.

* Add a changelog fragment template.

.. _changelog-0.19.1:

0.19.1 — 2024-10-22
Expand Down
20 changes: 20 additions & 0 deletions changelog.d/fragment-template.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
..
De-dent what you need.
Delete everything you don't.
{% for category in config.categories %}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

{{ category }}
{{ config.rst_header_chars[1] * (category|length) }}

* Describe your "{{ category }}" change here. EDIT ME!

{%- if category.title() == "Breaking Changes" %}

Document what steps must be taken to account for the breaking change.
If there are multiple breaking changes,
list them in separate bullet points or create additional changelog fragments.

{%- endif %}
{% endfor %}
Loading

0 comments on commit e341731

Please sign in to comment.