aws / aws/aws-toolkit-vscode

project directory structure

Open
#537 1 comment 1 reaction 0 assignees View on GitHub
technical-debt
Dominant language
TypeScript
Stars
2k
Forks
807
Avg merge
10h 12m
Merged PRs (30d)
7

Description

We are not consistent about how we organize our files.

* Why are some utilities in `foo/utilities/`, but others in `foo/`?
* What's the difference between `src/lambda` and `src/shared`? Why is there so much lambda-specific code in `src/shared`?
* Why is `cloudformation.ts` in a separate directory?
* ✅ Why does it export a namespace, when we don't use namespaces anywhere else?
* What really belongs in `sam/cli`? Does anything belong in `sam/`?
* Where should test utilities live? i.e. should we separate `test/shared/fooUtils.test.ts` from `test/shared/fooTestUtils.ts`?
* Why is `test/` a child of `src/` instead of a sibling?
* etc.

We should design a consistent directory structure, document it in-repo, and apply it.

Contributor guide

Open the contributing guide

Research direction

Start by inventorying the layouts and responsibilities of foo/utilities/, foo/, src/lambda, src/shared, cloudformation.ts, sam/cli, sam/, and the test utilities under test/shared/. Review why test/ is under src/ and compare the current arrangements before proposing a consistent structure. Done means the directory structure is applied across the repository and the conventions are documented in-repo.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.