awslabs / awslabs/amazon-dynamodb-tools

Consider revamping to a command-oriented folder structure

Open
#138 2 comments 1 reaction 0 assignees View on GitHub
bulk_executor help wanted
Dominant language
Python
Stars
181
Forks
50
Avg merge
4h 11m
Merged PRs (30d)
36

Description

Right now commands live in a folder structure like this:

client/src/python_modules/CMDNAME
server/src/python_modules/CMDNAME

When you write a new command you put things in two places. But increasingly we want more things about each command: tests, documentation, AI skill definitions, etc.

Perhaps we should think about:

commands/CMDNAME/client/...
commands/CMDNAME/server/...
commands/CMDNAME/test
commands/CMDNAME/README.md
commands/CMDNAME/SKILL.md

Then "installation" of a new command is just putting a new folder in the right place.

The bootstrap logic would have to make the right zip based on a wildcard commands/*/server/* but that's doable.

Maybe also have a shared system where things like the rate limiter would go, divided into server-side deployed or client-side executed?

shared/client/rate-limiter/...
shared/server/rate-limiter/...

We are where we are because we wrote the server side. Then realized we wanted a client-side piece as well. And now I'm wondering where to put command-specific docs and unit tests. I've always envisioned each command as its own pluggable playground. Perhaps the folder structure should match this.

Contributor guide

Open the contributing guide

Research direction

Start by mapping the existing client/src/python_modules and server/src/python_modules command locations, then inspect the bootstrap logic that creates the server zip. Compare that structure with the proposed commands/* and shared/* layout. Done means the project has an agreed folder design and a defined migration or implementation plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
developer-experience, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.