Skip to content

Conversation

@alexrashed
Copy link
Member

@alexrashed alexrashed commented Jan 26, 2026

TL/DR

With this PR changes how we are performing the plux entrypoint detection in localstack-core. The entrypoints are - from now on - part of the commits and tracked in SCM. They are detected at commit time rather than on build-time.
A linting step in CI is introduced to make sure that the plux.ini is always up-to-date.

Motivation

In order to facilitate a scalable multi-namespace package setup, we need to make sure that all our build steps are properly integrated into the build process. Ultimately, we need to be able to just create a package with python -m build.
Up until now, we used the default mode of plux which scans the package for entrypoints at build time. This means that - at build time - we have to have all (dev) dependencies available.
This is causing quite some issues when trying to closely integrate the build process with the native Python build process, because PEP 517 explicitly states that build frontends should create isolated build environments only with the build dependencies.

Changes

This PR changes how we use plux, specifically when we perform the entrypoint detection / scan the modules for plux plugins. Instead of performing the scan at build time, this PR switches the entrypoint_build_mode to manual (as introduced in localstack/plux#31) which has the following implications:

  • Entrypoints are now manually managed in a plux.ini which is version controlled in git and needs to be kept up to date with the code with every commit.
  • Entrypoints are not generated anymore at build time, which resolves a lot of devx issues and simplifies the pipelines.
  • A step has been added to the linting, ensuring that the plux.ini is up-to-date with the code.

Future improvements

As a follow up, we could try to implement a simple reconciliation feature for plux to enable a fast pre-commit hook.

TODO

@alexrashed alexrashed added this to the 4.14 milestone Jan 26, 2026
@alexrashed alexrashed requested a review from simonrw as a code owner January 26, 2026 11:20
@alexrashed alexrashed added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jan 26, 2026
@alexrashed alexrashed added the docs: skip Pull request does not require documentation changes label Jan 26, 2026
@alexrashed alexrashed added the notes: skip Pull request does not have to be mentioned in the release notes label Jan 26, 2026
@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results - Preflight, Unit

23 084 tests   21 225 ✅  6m 24s ⏱️
     1 suites   1 859 💤
     1 files         0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (MA/MR) - Preflight, Unit

23 084 tests   21 225 ✅  6m 14s ⏱️
     1 suites   1 859 💤
     1 files         0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@alexrashed alexrashed force-pushed the switch-to-plux-ini-2 branch from a6ec08b to 205b04a Compare January 26, 2026 11:24
@alexrashed alexrashed force-pushed the switch-to-plux-ini-2 branch from 205b04a to 0a58f57 Compare January 26, 2026 11:28
@github-actions
Copy link

github-actions bot commented Jan 26, 2026

S3 Image Test Results (AMD64 / ARM64)

    2 files  ±0      2 suites  ±0   8m 30s ⏱️ +56s
  552 tests ±0    500 ✅ ±0   52 💤 ±0  0 ❌ ±0 
1 104 runs  ±0  1 000 ✅ ±0  104 💤 ±0  0 ❌ ±0 

Results for commit 0fa16df. ± Comparison against base commit 31add71.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (amd64, MA/MR) - Acceptance

7 tests   5 ✅  3m 1s ⏱️
1 suites  2 💤
1 files    0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (amd64) - Acceptance

7 tests   5 ✅  3m 0s ⏱️
1 suites  2 💤
1 files    0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (MA/MR) - Alternative Providers

586 tests   326 ✅  17m 50s ⏱️
  1 suites  260 💤
  1 files      0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results - Alternative Providers

586 tests   326 ✅  18m 11s ⏱️
  1 suites  260 💤
  1 files      0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (amd64, MA/MR) - Integration, Bootstrap

    5 files      5 suites   2h 37m 42s ⏱️
5 597 tests 5 039 ✅ 558 💤 0 ❌
5 603 runs  5 039 ✅ 564 💤 0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

Test Results (amd64) - Integration, Bootstrap

    5 files      5 suites   2h 36m 39s ⏱️
5 597 tests 5 039 ✅ 558 💤 0 ❌
5 603 runs  5 039 ✅ 564 💤 0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Jan 26, 2026

LocalStack Community integration with Pro

    2 files      2 suites   1h 57m 47s ⏱️
5 176 tests 4 788 ✅ 388 💤 0 ❌
5 178 runs  4 788 ✅ 390 💤 0 ❌

Results for commit 0fa16df.

♻️ This comment has been updated with latest results.

Copy link
Member

@thrau thrau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @alexrashed for driving this!

i just want to share here that i appreciate we're moving forward with this, but also emphasize that i see this as a provisional solution to unblock us. a long term solution is something like we sketched out in localstack/plux#36. see also the "Future Work" session in localstack/plux#31

@alexrashed
Copy link
Member Author

Yeah, sounds good to me! When we have a more integrated / convenient (but PEP-517-compliant) entrypoint_build_mode, I'm very happy to move on to use that! 💯
But for now, I actually think that this PR specifically doesn't really have an influence on the DevX, since devs right now need to run make entrypoints or manually run a pip install when writing code that changes plugins anyways.
From a developer perspective, imho this change really just introduces an SCM tracked file and eliminates some issues we are already having when depending on runtime dependencies for the entrypoint detection (see changeset, specifically in the Dockerfiles and the GitHub workflows).

Copy link
Member

@dfangl dfangl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@alexrashed alexrashed force-pushed the switch-to-plux-ini-2 branch from 54802c8 to 48849ce Compare January 27, 2026 11:03
@alexrashed alexrashed force-pushed the switch-to-plux-ini-2 branch from 48849ce to 0fa16df Compare January 29, 2026 09:36
@localstack localstack deleted a comment from localstack-bot Jan 29, 2026
@alexrashed alexrashed merged commit 0073e19 into main Jan 30, 2026
74 of 75 checks passed
@alexrashed alexrashed deleted the switch-to-plux-ini-2 branch January 30, 2026 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs: skip Pull request does not require documentation changes notes: skip Pull request does not have to be mentioned in the release notes semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants