Skip to content

Commit ed57999

Browse files
authored
Merge branch 'main' into fix-tox-deps
2 parents 4ce4fbb + a29ad8a commit ed57999

File tree

8 files changed

+101
-41
lines changed

8 files changed

+101
-41
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/bash -e
2+
3+
sed -i "/\[stable\]/{n;s/version=.*/version=$1/}" eachdist.ini
4+
sed -i "/\[prerelease\]/{n;s/version=.*/version=$2/}" eachdist.ini
5+
6+
./scripts/eachdist.py update_patch_versions \
7+
--stable_version=$1 \
8+
--unstable_version=$2 \
9+
--stable_version_prev=$3 \
10+
--unstable_version_prev=$4
11+

.github/workflows/prepare-patch-release.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,18 @@ jobs:
4040
exit 1
4141
fi
4242
43+
stable_version_prev="$stable_major_minor.$((stable_patch))"
44+
unstable_version_prev="0.${unstable_minor}b$((unstable_patch))"
4345
stable_version="$stable_major_minor.$((stable_patch + 1))"
4446
unstable_version="0.${unstable_minor}b$((unstable_patch + 1))"
4547
4648
echo "STABLE_VERSION=$stable_version" >> $GITHUB_ENV
4749
echo "UNSTABLE_VERSION=$unstable_version" >> $GITHUB_ENV
50+
echo "STABLE_VERSION_PREV=$stable_version_prev" >> $GITHUB_ENV
51+
echo "UNSTABLE_VERSION_PREV=$unstable_version_prev" >> $GITHUB_ENV
4852
4953
- name: Update version
50-
run: .github/scripts/update-version.sh $STABLE_VERSION $UNSTABLE_VERSION
54+
run: .github/scripts/update-version-patch.sh $STABLE_VERSION $UNSTABLE_VERSION $STABLE_VERSION_PREV $UNSTABLE_VERSION_PREV
5155

5256
- name: Set up Python 3.9
5357
uses: actions/setup-python@v5

.github/workflows/release.yml

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -118,36 +118,3 @@ jobs:
118118
# the step below is creating a pull request against main
119119
ref: main
120120

121-
- name: Copy change log updates to main
122-
env:
123-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
124-
run: |
125-
echo "VERSION=${STABLE_VERSION}\/${UNSTABLE_VERSION}" >> $GITHUB_ENV
126-
echo "RELEASE_TAG=$STABLE_VERSION" >> $GITHUB_ENV
127-
./scripts/merge_changelog_to_main.sh
128-
129-
- name: Use CLA approved github bot
130-
run: .github/scripts/use-cla-approved-github-bot.sh
131-
132-
- name: Create pull request against main
133-
env:
134-
# not using secrets.GITHUB_TOKEN since pull requests from that token do not run workflows
135-
GITHUB_TOKEN: ${{ secrets.OPENTELEMETRYBOT_GITHUB_TOKEN }}
136-
run: |
137-
message="Copy change log updates from $GITHUB_REF_NAME"
138-
body="Copy log updates from \`$GITHUB_REF_NAME\`."
139-
branch="opentelemetrybot/copy-change-log-updates-from-${GITHUB_REF_NAME//\//-}"
140-
141-
if [[ -z $PRIOR_VERSION_WHEN_PATCH ]]; then
142-
if git diff --quiet; then
143-
echo there are no updates needed to the change log on main, not creating pull request
144-
exit 0 # success
145-
fi
146-
fi
147-
148-
git commit -a -m "$message"
149-
git push origin HEAD:$branch
150-
gh pr create --title "$message" \
151-
--body "$body" \
152-
--head $branch \
153-
--base main

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2020

2121
### Fixed
2222

23+
- `opentelemetry-instrumentation-httpx`: instrument_client is a static method again
24+
([#3003](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3003))
25+
2326
### Breaking changes
2427

2528
- `opentelemetry-instrumentation-sqlalchemy` teach instruments version

instrumentation/opentelemetry-instrumentation-confluent-kafka/README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ Installation
1919
References
2020
----------
2121

22-
* `OpenTelemetry confluent-kafka/ Tracing <https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/confluent-kafka/confluent-kafka.html>`_
22+
* `OpenTelemetry confluent-kafka/ Tracing <https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/confluent_kafka/confluent_kafka.html>`_
2323
* `OpenTelemetry Project <https://opentelemetry.io/>`_

instrumentation/opentelemetry-instrumentation-httpx/src/opentelemetry/instrumentation/httpx/__init__.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -938,8 +938,9 @@ async def _handle_async_request_wrapper( # pylint: disable=too-many-locals
938938

939939
return response
940940

941+
@classmethod
941942
def instrument_client(
942-
self,
943+
cls,
943944
client: typing.Union[httpx.Client, httpx.AsyncClient],
944945
tracer_provider: TracerProvider = None,
945946
request_hook: typing.Union[
@@ -996,7 +997,7 @@ def instrument_client(
996997
client._transport,
997998
"handle_request",
998999
partial(
999-
self._handle_request_wrapper,
1000+
cls._handle_request_wrapper,
10001001
tracer=tracer,
10011002
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
10021003
request_hook=request_hook,
@@ -1008,7 +1009,7 @@ def instrument_client(
10081009
transport,
10091010
"handle_request",
10101011
partial(
1011-
self._handle_request_wrapper,
1012+
cls._handle_request_wrapper,
10121013
tracer=tracer,
10131014
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
10141015
request_hook=request_hook,
@@ -1021,7 +1022,7 @@ def instrument_client(
10211022
client._transport,
10221023
"handle_async_request",
10231024
partial(
1024-
self._handle_async_request_wrapper,
1025+
cls._handle_async_request_wrapper,
10251026
tracer=tracer,
10261027
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
10271028
async_request_hook=async_request_hook,
@@ -1033,7 +1034,7 @@ def instrument_client(
10331034
transport,
10341035
"handle_async_request",
10351036
partial(
1036-
self._handle_async_request_wrapper,
1037+
cls._handle_async_request_wrapper,
10371038
tracer=tracer,
10381039
sem_conv_opt_in_mode=sem_conv_opt_in_mode,
10391040
async_request_hook=async_request_hook,

instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,13 +910,20 @@ def test_suppress_instrumentation_new_client(self):
910910

911911
self.assert_span(num_spans=0)
912912

913-
def test_instrument_client(self):
913+
def test_instrument_client_called_on_the_instance(self):
914914
client = self.create_client()
915915
HTTPXClientInstrumentor().instrument_client(client)
916916
result = self.perform_request(self.URL, client=client)
917917
self.assertEqual(result.text, "Hello!")
918918
self.assert_span(num_spans=1)
919919

920+
def test_instrument_client_called_on_the_class(self):
921+
client = self.create_client()
922+
HTTPXClientInstrumentor.instrument_client(client)
923+
result = self.perform_request(self.URL, client=client)
924+
self.assertEqual(result.text, "Hello!")
925+
self.assert_span(num_spans=1)
926+
920927
def test_instrumentation_without_client(self):
921928
HTTPXClientInstrumentor().instrument()
922929
results = [

scripts/eachdist.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,16 @@ def setup_instparser(instparser):
237237
"releaseargs", nargs=argparse.REMAINDER, help=extraargs_help("pytest")
238238
)
239239

240+
patchreleaseparser = subparsers.add_parser(
241+
"update_patch_versions",
242+
help="Updates version numbers during patch release, used by maintainers and CI",
243+
)
244+
patchreleaseparser.set_defaults(func=patch_release_args)
245+
patchreleaseparser.add_argument("--stable_version", required=True)
246+
patchreleaseparser.add_argument("--unstable_version", required=True)
247+
patchreleaseparser.add_argument("--stable_version_prev", required=True)
248+
patchreleaseparser.add_argument("--unstable_version_prev", required=True)
249+
240250
fmtparser = subparsers.add_parser(
241251
"format",
242252
help="Formats all source code with black and isort.",
@@ -655,6 +665,27 @@ def update_dependencies(targets, version, packages):
655665
)
656666

657667

668+
def update_patch_dependencies(targets, version, prev_version, packages):
669+
print("updating patch dependencies")
670+
if "all" in packages:
671+
packages.extend(targets)
672+
673+
# PEP 508 allowed specifier operators
674+
operators = ["==", "!=", "<=", ">=", "<", ">", "===", "~=", "="]
675+
operators_pattern = "|".join(re.escape(op) for op in operators)
676+
677+
for pkg in packages:
678+
search = rf"({basename(pkg)}[^,]*?)(\s?({operators_pattern})\s?)(.*{prev_version})"
679+
replace = r"\g<1>\g<2>" + version
680+
print(f"{search=}\t{replace=}\t{pkg=}")
681+
update_files(
682+
targets,
683+
"pyproject.toml",
684+
search,
685+
replace,
686+
)
687+
688+
658689
def update_files(targets, filename, search, replace):
659690
errors = False
660691
for target in targets:
@@ -687,10 +718,12 @@ def release_args(args):
687718
versions = args.versions
688719
updated_versions = []
689720

721+
# remove excluded packages
690722
excluded = cfg["exclude_release"]["packages"].split()
691723
targets = [
692724
target for target in targets if basename(target) not in excluded
693725
]
726+
694727
for group in versions.split(","):
695728
mcfg = cfg[group]
696729
version = mcfg["version"]
@@ -707,6 +740,40 @@ def release_args(args):
707740
update_changelogs("-".join(updated_versions))
708741

709742

743+
def patch_release_args(args):
744+
print("preparing patch release")
745+
746+
rootpath = find_projectroot()
747+
targets = list(find_targets_unordered(rootpath))
748+
cfg = ConfigParser()
749+
cfg.read(str(find_projectroot() / "eachdist.ini"))
750+
751+
# remove excluded packages
752+
excluded = cfg["exclude_release"]["packages"].split()
753+
targets = [
754+
target for target in targets if basename(target) not in excluded
755+
]
756+
757+
# stable
758+
mcfg = cfg["stable"]
759+
packages = mcfg["packages"].split()
760+
print(f"update stable packages to {args.stable_version}")
761+
762+
update_patch_dependencies(
763+
targets, args.stable_version, args.stable_version_prev, packages
764+
)
765+
update_version_files(targets, args.stable_version, packages)
766+
767+
# prerelease
768+
mcfg = cfg["prerelease"]
769+
packages = mcfg["packages"].split()
770+
print(f"update prerelease packages to {args.unstable_version}")
771+
update_patch_dependencies(
772+
targets, args.unstable_version, args.unstable_version_prev, packages
773+
)
774+
update_version_files(targets, args.unstable_version, packages)
775+
776+
710777
def test_args(args):
711778
clean_remainder_args(args.pytestargs)
712779
execute_args(

0 commit comments

Comments
 (0)