Skip to content

Commit 1af5d5c

Browse files
authored
Merge branch 'master' into master
2 parents 6439bb4 + fe4b88b commit 1af5d5c

30 files changed

+955
-83
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: "Automation: Notify issues for release"
2+
on:
3+
release:
4+
types:
5+
- published
6+
workflow_dispatch:
7+
inputs:
8+
version:
9+
description: Which version to notify issues for
10+
required: false
11+
12+
# This workflow is triggered when a release is published
13+
jobs:
14+
release-comment-issues:
15+
runs-on: ubuntu-20.04
16+
name: Notify issues
17+
steps:
18+
- name: Get version
19+
id: get_version
20+
run: echo "version=${{ github.event.inputs.version || github.event.release.tag_name }}" >> $GITHUB_OUTPUT
21+
22+
- name: Comment on linked issues that are mentioned in release
23+
if: |
24+
steps.get_version.outputs.version != ''
25+
&& !contains(steps.get_version.outputs.version, 'a')
26+
&& !contains(steps.get_version.outputs.version, 'b')
27+
&& !contains(steps.get_version.outputs.version, 'rc')
28+
uses: getsentry/release-comment-issues-gh-action@v1
29+
with:
30+
github_token: ${{ secrets.GITHUB_TOKEN }}
31+
version: ${{ steps.get_version.outputs.version }}

.github/workflows/release.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,20 @@ jobs:
1818
runs-on: ubuntu-latest
1919
name: "Release a new version"
2020
steps:
21+
- name: Get auth token
22+
id: token
23+
uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
24+
with:
25+
app-id: ${{ vars.SENTRY_RELEASE_BOT_CLIENT_ID }}
26+
private-key: ${{ secrets.SENTRY_RELEASE_BOT_PRIVATE_KEY }}
2127
- uses: actions/[email protected]
2228
with:
23-
token: ${{ secrets.GH_RELEASE_PAT }}
29+
token: ${{ steps.token.outputs.token }}
2430
fetch-depth: 0
2531
- name: Prepare release
2632
uses: getsentry/action-prepare-release@v1
2733
env:
28-
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_PAT }}
34+
GITHUB_TOKEN: ${{ steps.token.outputs.token }}
2935
with:
3036
version: ${{ github.event.inputs.version }}
3137
force: ${{ github.event.inputs.force }}

.github/workflows/test-integrations-misc.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
strategy:
2828
fail-fast: false
2929
matrix:
30-
python-version: ["3.6","3.8","3.12","3.13"]
30+
python-version: ["3.6","3.7","3.8","3.12","3.13"]
3131
# python3.6 reached EOL and is no longer being supported on
3232
# new versions of hosted runners on Github Actions
3333
# ubuntu-20.04 is the last version that supported python3.6
@@ -73,6 +73,10 @@ jobs:
7373
run: |
7474
set -x # print commands that are executed
7575
./scripts/runtox.sh "py${{ matrix.python-version }}-trytond-latest"
76+
- name: Test typer latest
77+
run: |
78+
set -x # print commands that are executed
79+
./scripts/runtox.sh "py${{ matrix.python-version }}-typer-latest"
7680
- name: Generate coverage XML (Python 3.6)
7781
if: ${{ !cancelled() && matrix.python-version == '3.6' }}
7882
run: |
@@ -153,6 +157,10 @@ jobs:
153157
run: |
154158
set -x # print commands that are executed
155159
./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-trytond"
160+
- name: Test typer pinned
161+
run: |
162+
set -x # print commands that are executed
163+
./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-typer"
156164
- name: Generate coverage XML (Python 3.6)
157165
if: ${{ !cancelled() && matrix.python-version == '3.6' }}
158166
run: |

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Changelog
22

3+
## 2.19.2
4+
5+
### Various fixes & improvements
6+
7+
- Deepcopy and ensure get_all function always terminates (#3861) by @cmanallen
8+
- Cleanup chalice test environment (#3858) by @antonpirker
9+
10+
## 2.19.1
11+
12+
### Various fixes & improvements
13+
14+
- Fix errors when instrumenting Django cache (#3855) by @BYK
15+
- Copy `scope.client` reference as well (#3857) by @sl0thentr0py
16+
- Don't give up on Spotlight on 3 errors (#3856) by @BYK
17+
- Add missing stack frames (#3673) by @antonpirker
18+
- Fix wrong metadata type in async gRPC interceptor (#3205) by @fdellekart
19+
- Rename launch darkly hook to match JS SDK (#3743) by @aliu39
20+
- Script for checking if our instrumented libs are Python 3.13 compatible (#3425) by @antonpirker
21+
- Improve Ray tests (#3846) by @antonpirker
22+
- Test with Celery `5.5.0rc3` (#3842) by @sentrivana
23+
- Fix asyncio testing setup (#3832) by @sl0thentr0py
24+
- Bump `codecov/codecov-action` from `5.0.2` to `5.0.7` (#3821) by @dependabot
25+
- Fix CI (#3834) by @sentrivana
26+
- Use new ClickHouse GH action (#3826) by @antonpirker
27+
328
## 2.19.0
429

530
### Various fixes & improvements

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
copyright = "2019-{}, Sentry Team and Contributors".format(datetime.now().year)
3232
author = "Sentry Team and Contributors"
3333

34-
release = "2.19.0"
34+
release = "2.19.2"
3535
version = ".".join(release.split(".")[:2]) # The short X.Y version.
3636

3737

requirements-linting.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ pre-commit # local linting
1717
httpcore
1818
openfeature-sdk
1919
launchdarkly-server-sdk
20+
typer

scripts/ready_yet/main.py

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
import time
2+
import re
3+
import sys
4+
5+
import requests
6+
7+
from collections import defaultdict
8+
9+
from pathlib import Path
10+
11+
from tox.config.cli.parse import get_options
12+
from tox.session.state import State
13+
from tox.config.sets import CoreConfigSet
14+
from tox.config.source.tox_ini import ToxIni
15+
16+
PYTHON_VERSION = "3.13"
17+
18+
MATCH_LIB_SENTRY_REGEX = r"py[\d\.]*-(.*)-.*"
19+
20+
PYPI_PROJECT_URL = "https://pypi.python.org/pypi/{project}/json"
21+
PYPI_VERSION_URL = "https://pypi.python.org/pypi/{project}/{version}/json"
22+
23+
24+
def get_tox_envs(tox_ini_path: Path) -> list:
25+
tox_ini = ToxIni(tox_ini_path)
26+
conf = State(get_options(), []).conf
27+
tox_section = next(tox_ini.sections())
28+
core_config_set = CoreConfigSet(
29+
conf, tox_section, tox_ini_path.parent, tox_ini_path
30+
)
31+
(
32+
core_config_set.loaders.extend(
33+
tox_ini.get_loaders(
34+
tox_section,
35+
base=[],
36+
override_map=defaultdict(list, {}),
37+
conf=core_config_set,
38+
)
39+
)
40+
)
41+
return core_config_set.load("env_list")
42+
43+
44+
def get_libs(tox_ini: Path, regex: str) -> set:
45+
libs = set()
46+
for env in get_tox_envs(tox_ini):
47+
match = re.match(regex, env)
48+
if match:
49+
libs.add(match.group(1))
50+
51+
return sorted(libs)
52+
53+
54+
def main():
55+
"""
56+
Check if libraries in our tox.ini are ready for Python version defined in `PYTHON_VERSION`.
57+
"""
58+
print(f"Checking libs from tox.ini for Python {PYTHON_VERSION} compatibility:")
59+
60+
ready = set()
61+
not_ready = set()
62+
not_found = set()
63+
64+
tox_ini = Path(__file__).parent.parent.parent.joinpath("tox.ini")
65+
66+
libs = get_libs(tox_ini, MATCH_LIB_SENTRY_REGEX)
67+
68+
for lib in libs:
69+
print(".", end="")
70+
sys.stdout.flush()
71+
72+
# Get latest version of lib
73+
url = PYPI_PROJECT_URL.format(project=lib)
74+
pypi_data = requests.get(url)
75+
76+
if pypi_data.status_code != 200:
77+
not_found.add(lib)
78+
continue
79+
80+
latest_version = pypi_data.json()["info"]["version"]
81+
82+
# Get supported Python version of latest version of lib
83+
url = PYPI_PROJECT_URL.format(project=lib, version=latest_version)
84+
pypi_data = requests.get(url)
85+
86+
if pypi_data.status_code != 200:
87+
continue
88+
89+
classifiers = pypi_data.json()["info"]["classifiers"]
90+
91+
if f"Programming Language :: Python :: {PYTHON_VERSION}" in classifiers:
92+
ready.add(lib)
93+
else:
94+
not_ready.add(lib)
95+
96+
# cut pypi some slack
97+
time.sleep(0.1)
98+
99+
# Print report
100+
print("\n")
101+
print(f"\nReady for Python {PYTHON_VERSION}:")
102+
if len(ready) == 0:
103+
print("- None ")
104+
105+
for x in sorted(ready):
106+
print(f"- {x}")
107+
108+
print(f"\nNOT ready for Python {PYTHON_VERSION}:")
109+
if len(not_ready) == 0:
110+
print("- None ")
111+
112+
for x in sorted(not_ready):
113+
print(f"- {x}")
114+
115+
print("\nNot found on PyPI:")
116+
if len(not_found) == 0:
117+
print("- None ")
118+
119+
for x in sorted(not_found):
120+
print(f"- {x}")
121+
122+
123+
if __name__ == "__main__":
124+
main()

scripts/ready_yet/requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
requests
2+
tox

scripts/ready_yet/run.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env bash
2+
3+
# exit on first error
4+
set -xe
5+
6+
reset
7+
8+
# create and activate virtual environment
9+
python -m venv .venv
10+
source .venv/bin/activate
11+
12+
# Install (or update) requirements
13+
python -m pip install -r requirements.txt
14+
15+
# Run the script
16+
python main.py

scripts/split-tox-gh-actions/split-tox-gh-actions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
"potel",
133133
"pure_eval",
134134
"trytond",
135+
"typer",
135136
],
136137
}
137138

0 commit comments

Comments
 (0)