Skip to content

Commit f3e3425

Browse files
MatKuhrnewtork
andauthored
docs: [DevOps] Update Release Strategy ADR (#274)
* docs: [DevOps] Update Release Strategy ADR * Update Readme * minor update * Minor updates * Update README.md Co-authored-by: Alexander Dümont <[email protected]> --------- Co-authored-by: Alexander Dümont <[email protected]>
1 parent 6ab1c08 commit f3e3425

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ The SDK simplifies the setup and interaction with SAP AI Core, allowing you to f
2121
- [Run the Application Locally](#run-the-application-locally)
2222
- [Explore Further Capabilities](#explore-further-capabilities)
2323
- [Documentation](#documentation)
24+
- [Build the Project](#build-the-project)
2425
- [FAQs](#faqs)
2526
- [Contribute, Support and Feedback](#contribute-support-and-feedback)
2627
- [Security / Disclosure](#security--disclosure)
@@ -137,6 +138,18 @@ For more detailed information and advanced usage, please refer to the following:
137138

138139
For updating versions, please refer to the [**Release Notes**](docs/release-notes/release-notes-0-to-14.md).
139140

141+
## Build the Project
142+
143+
You can build the project using Maven:
144+
145+
```shell
146+
mvn clean install -DskipTests
147+
```
148+
149+
This will install the current `SNAPSHOT` version of the project into your local Maven repository.
150+
151+
For SAP internal development, you can also use `SNAPSHOT` builds from the [internal](https://int.repositories.cloud.sap/ui/repos/tree/General/proxy-build-snapshots-cloudsdk/com/sap/ai/sdk) and [internet-facing](https://common.repositories.cloud.sap/artifactory/build-snapshots-cloudsdk/com/sap/ai/sdk/) Artifactory.
152+
140153
## FAQs
141154

142155
### _"How to add a custom header to AI Core requests?"_

docs/adrs/005-release-strategy.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@ Since most new features will rely on generated code, the options for Java are li
2727
Testing can be performed against multiple landscapes and can vary based on the type of tests.
2828

2929
- Unit tests may use test data from any landscape (including development landscapes) manually tested with e.g. Bruno.
30-
- E2E tests may use canary or production landscapes.
30+
- E2E tests may use integration, canary or production landscapes.
3131
In case of multiple landscapes:
3232
- GitHub matrix builds can be used to easily testing against multiple landscapes
3333
- For any differences between landscapes, test toggles need to be considered (e.g. `@EnabledIfSystemProperty`)
3434
- Such toggles come with a bit of additional maintenance cost, as they need to be removed once the feature is released to all landscapes
35+
- Alternatively, E2E tests may be executed manually during development against any landscape
3536

3637
## Release
3738

@@ -56,47 +57,45 @@ However, here there would be more freedom in when a feature toggle is enabled fo
5657

5758
We decide as follows:
5859

59-
> 1. New AI SDK versions are released roughly every 2 weeks, shortly after new AI Core versions have been released to _production EU10_.
60-
> 2. Any _publicly available release_ of the AI SDKs must only contain _public API_ for AI Core features available in _production EU10_ under the service plan _extended_.
61-
> 3. E2E tests run against canary EU12 and production EU10 using test toggles.
60+
> 1. New AI SDK versions are released roughly every 2 weeks, shortly after new AI Core versions have been released to **all** landscapes.
61+
> 2. Any _publicly available release_ of the AI SDKs must only contain _public API_ for AI Core features available in **any** landscape under the service plan _extended_.
62+
> 3. E2E tests run automatically against canary only (EU12 for Java and JS, EU10 for Python). Production EU10 can be used for manual test runs.
6263
6364
Further explanations and notes:
6465

6566
- Any features released exclusively under the `sap-internal` plan are not supported.
66-
Similarly, any features released only to specific landscapes (other than prod EU10) are not supported.
67-
- There will be no releases of the SDKs to internal artifactory.
67+
- There will be no stable releases of the SDKs to internal artifactory.
68+
For Java, we deliver SNAPSHOT versions to Artifactory, for JS we deliver canary releases to NPM.
6869
- Please note that the following is allowed:
6970
- Public API in an unreleased SDK version for unreleased AI Core features.
7071
Notably, this will **block** the release of the SDK until the AI Core feature is released publicly.
7172
- Internal code in a released SDK version for unreleased AI Core features.
73+
- Testing against additional landscapes is possible, but requires maintaining test toggles.
7274

7375
### An Example Development Lifecycle Iteration
7476

7577
The following depicts a development flow where the AI SDK development steps are performed as soon as possible.
7678

7779
1. A new AI Core feature is being developed.
78-
2. A PR is raised on the AI SDK with a corresponding implementation, but so far not E2E-tested.
79-
- Potentially aided by unit tests based on test data manually copied from e.g. Bruno.
80+
- (optional) A preview of the changes is created on-demand on the AI SDK.
8081
- Generated code is created from a development version of the relevant spec file.
81-
3. (+2 weeks later) The feature is released to EU12 canary landscape.
82-
4. The AI SDK PR is enhanced:
83-
- With an updated spec file.
84-
- With an E2E test against canary.
85-
5. The AI SDK PR is merged.
86-
6. (+1 week later) The feature is released to EU10 production landscape.
87-
7. The E2E test is updated to now also run against production.
88-
8. The AI SDK is released publicly.
82+
- Potentially aided by unit tests based on test data manually copied from e.g. Bruno.
83+
2. (+2 weeks later) The feature is released to EU12 canary landscape.
84+
3. An AI SDK PR is automatically raised with an updated spec file.
85+
- If required, E2E tests are enhanced to cover the additional feature scope.
86+
4. The AI SDK PR is merged.
87+
5. (+1 week later) The feature is released to EU10 production landscape.
88+
6. The AI SDK is released publicly.
8989

9090
In case of delays in the release process of AI Core:
9191

92-
- If step (3) is delayed, the open PR may be closed and re-opened later
93-
- If step (5) is delayed, we consider 3 options:
92+
- If step (6) is delayed, we consider 3 options:
9493
1. The PR is reverted, together with potentially other related PRs
9594
2. The AI SDK release is delayed equally
9695
3. The AI SDK is released anyway with exceptional PO approval
9796

9897
## Further Links
9998

10099
- The single source of truth for all landscapes is in [mlf-gitops](https://github.tools.sap/MLF-prod/mlf-gitops-prod)
101-
- In particular, we care about the [version of orchestration in Prod EU10](https://github.tools.sap/MLF-prod/mlf-gitops-prod/blob/aws.eu-central-1.prod-eu/current/services/llm-orchestration/source/Chart.yaml)
102-
- [This JIRA ticket](https://jira.tools.sap/browse/AI-44024) tracks releases
100+
- In particular, we care about the [version of orchestration](https://github.tools.sap/MLF-prod/mlf-gitops-prod/blob/aws.eu-central-1.prod-eu/current/services/llm-orchestration/source/Chart.yaml)
101+
- [This JIRA ticket](https://jira.tools.sap/browse/AI-44024) tracks releases

0 commit comments

Comments
 (0)