You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prepare a release for the changes on the current branch. Do the following steps in order:
2
+
3
+
## Step 1 — Understand the changes
4
+
5
+
Run `git diff main...HEAD` and `git log main...HEAD --oneline` to understand what was changed on this branch. Read all modified source files to understand the nature of the changes (new feature, bug fix, breaking change, docs, etc.).
6
+
7
+
## Step 2 — Determine the new version
8
+
9
+
Read `pyproject.toml` to get the current version. Apply SemVer rules based on the changes:
- MINOR bump: new non-breaking features or new public API surface
12
+
- MAJOR bump: breaking changes (changes to existing public API signatures or behavior)
13
+
14
+
Compute the new version string (no leading `v`).
15
+
16
+
## Step 3 — Bump version in pyproject.toml
17
+
18
+
Edit `pyproject.toml` and update `version = "..."` to the new version.
19
+
20
+
## Step 4 — Create PULL_REQUEST.md
21
+
22
+
Create `PULL_REQUEST.md` at the repo root following the structure of `.github/pull_request_template.md`. Fill it in based on what you learned from the diff:
23
+
24
+
-**Description**: clear summary of what changed and why
25
+
-**Related Issue**: leave as `Closes #` with a note to fill in the issue number
26
+
-**Type of Change**: check the relevant boxes (use `[x]`)
27
+
-**How to Test**: concrete steps to verify the change works
28
+
-**Checklist**: check all boxes that apply given the changes made
29
+
-**Breaking Changes**: fill in if applicable, otherwise remove the section
30
+
-**Additional Notes**: any relevant context for reviewers
31
+
32
+
> **Disclaimer:** Do not include SAP-internal or customer-specific information in this PR (e.g. internal system URLs, customer names, tenant IDs, or confidential configurations). This is a public repository.
33
+
34
+
## Step 5 — Create RELEASE.md
35
+
36
+
Create `RELEASE.md` at the repo root using this exact template structure:
37
+
38
+
```
39
+
## [vX.Y.Z] - YYYY-MM-DD
40
+
41
+
### What's New
42
+
- ...
43
+
44
+
### Improvements
45
+
- ...
46
+
47
+
### Bug Fixes
48
+
- ...
49
+
50
+
### Breaking Changes
51
+
> ⚠️ **Important**: This section is critical for users upgrading from previous versions
52
+
- **[Breaking Change]**: ...
53
+
54
+
### Contributors
55
+
...
56
+
```
57
+
58
+
Fill in the version and today's date. Remove sections that don't apply. Infer the content from the diff — be specific about what changed (class names, method names, parameter names) so that users upgrading know exactly what to update.
59
+
60
+
## Step 6 — Summarize
61
+
62
+
Tell the user:
63
+
- The old and new version
64
+
- Which files were created/updated
65
+
- Any sections in PULL_REQUEST.md or RELEASE.md that still need manual input (e.g. issue number, contributors)
-`auth_tokens` and `certificates` are populated by the v2 consumption API
179
187
-`ConsumptionOptions` - Options for v2 destination consumption, controls HTTP headers sent to the Destination Service:
180
188
-`fragment_name?: str` - Fragment to merge into the destination (`X-fragment-name`)
189
+
-`fragment_level?: ConsumptionLevel` - Level hint for the fragment lookup; appended to `fragment_name` as `@level` (e.g., `"my-frag@provider_subaccount"`). Only effective when `fragment_name` is also provided.
181
190
-`fragment_optional?: bool` - If `True`, a missing fragment does not cause an error (`X-fragment-optional`)
182
191
-`tenant?: str` - Tenant subdomain for token retrieval (`X-tenant`)
183
192
-`user_token?: str` - User JWT for OAuth2UserTokenExchange / OAuth2JWTBearer / OAuth2SAMLBearerAssertion (`X-user-token`)
@@ -323,16 +332,25 @@ dest = client.get_destination("my-api", options=options, proxy_enabled=False)
323
332
324
333
# Example 8: V2 API with level parameter for optimized lookup
325
334
client = create_client(instance="default")
326
-
# Search only at instance level
327
-
dest = client.get_destination("my-api", level=Level.SERVICE_INSTANCE)
328
-
# Search only at subaccount level
329
-
dest = client.get_destination("my-api", level=Level.SUB_ACCOUNT)
330
-
# No level specified - searches at instance level as default
335
+
# Search only at provider subaccount level
336
+
dest = client.get_destination("my-api", level=ConsumptionLevel.PROVIDER_SUBACCOUNT)
337
+
# Search only at subscriber subaccount level
338
+
dest = client.get_destination("my-api", level=ConsumptionLevel.SUBACCOUNT)
339
+
# Search only at service instance level
340
+
dest = client.get_destination("my-api", level=ConsumptionLevel.INSTANCE)
0 commit comments