feat(sdk): monorepo repository to add new otel plugin package#397
feat(sdk): monorepo repository to add new otel plugin package#397SilanHe wants to merge 17 commits into
Conversation
3b74d87 to
7bded69
Compare
There was a problem hiding this comment.
I haven't actually tested this one but it looks quite reasonable. I had to work a little more closely with AI on this one.
|
|
||
| - **SDK only:** `sdk-v<version>` (e.g., `sdk-v1.6.0`) | ||
| - **OTel only:** `otel-v<version>` (e.g., `otel-v0.3.0`) | ||
| - **Both packages in a single release:** comma-separate the sub-tags (e.g., `sdk-1.6.0,otel-0.3.0`) |
There was a problem hiding this comment.
This wouldn't be practically doable when we have more packages (e.g. testing, etc) in this repo and we want to release all of them. And also the version dependency becomes less obvious, e.g. otel-0.3.0 requires sdk-1.6.0+ and a future version otel-0.4.0 requires sdk-1.7.0+.
There was a problem hiding this comment.
For the tags, this is the best approach we've got. At the moment, with the number of packages we have this is currently doable. We can re-evaluate if we exceed tag size limits. We can always only bump and release one package at a time.
For the dependency tree, the source of truth should be the pyproject.toml for the package.
|
linting and tests failed. |
Ah sorry, I was still working through the different worklows, there was an issue with a workflow which would check out the testing sdk into the root. Then the root testing scripts would pick up the testing sdk pyproject.toml |
Issue #, if available:
Description of changes:
Monorepo Restructure
The repo was converted from a single-package layout to a monorepo with a
packages/directory:src/,tests/,examples/,pyproject.toml) intopackages/aws-durable-execution-sdk-python/New Package: OpenTelemetry Instrumentation
A new package was added at
packages/aws-durable-execution-sdk-python-otel/(v0.1.0):CI & Workflow Updates
ci.yml— Loops over allpackages/*/directories for format checks, type checking, tests, and buildsci-checks.sh— Iterates over aPACKAGESarray instead of running checks at the repo rootpypi-publish.yml— Uses a matrix strategy to build and publish each package independently; per-package artifact namessync-package.yml— Deleted (no longer needed)deploy-examples.yml/integration-tests.yml— Minor path adjustmentsDocumentation
CONTRIBUTING.mdcdinto package dirs before running hatchRELEASING.md(new)sdk-vX.Y.Z,otel-vX.Y.Z), PyPI publishing flow, release notes format, pre-publish checklistREADME.md(new)Misc
.gitignore— Relaxed example build/zip patterns from root-anchored to relative (works with nested layout)By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.