Closed
Description
UPDATE Apr '22: We are not looking for external contributions to address these.
Original: #857. Locked to ensure we don't lose focus a second time.
List of papercuts we're currently prioritizing based on their impact. Once these are completed, we will start drafting what v2 looks like as we aim towards modularization.
NOTE: Any item missing link means we must create an issue yet. This is in anticipation of moving the central roadmap back to each respective repository - just haven't had the bandwidth to do any of that.
High impact
- Code quality: Integ test with external dependencies RFC: Mechanism for end2end testing #1226
- Docs: Move code snippets into dedicated python files so they can be linted/formatted then embedded in the docs. It makes highlighting slightly harder but we can achieve consistency and prevent mistakes we keep on making. See docs: fix syntax errors and line highlights #1004, docs(parser): APIGatewayProxyEvent to APIGatewayProxyEventModel #1061 -- @heitorlessa
- Idempotency: Remove data record lock in case of timeout -- @rubenfonseca
Low impact
- Logger: Provide autocomplete custom date formats (ISO8601) for
datefmt
field - Tracer: Typing SubSegment and Context Manager
- Batch: Improve maintainability of batch processing functional tests
- Idempotency: Consider refactoring test setup, potentially DynamoDB Local for functional (not integration)
- Contributions: Pre-configure GitPod and update Contributing guidelines (Poetry didn't work previously; it works now)
Maintenance automation
- Actions: React to labels
size/XL
,size/XXL
by addingtriage
label for maintainers attention, and suggest breaking the PR to reduce the chances of bugs being introduced due to cognitive load - PR verbatim enforcement: Ensure CI fails if PR content doesn't have required acknowledgements
- Actions: Add conditional to catch for a potential future
null
on release workflow. Idea: have an automated mechanism to ensure +1 person reviewed release notes and version
Completed
- Docs: API Gateway sample layout
- Parser: Typing on model subclassing
- Parser: Typing when using envelope
- Event Handler: BaseProxyEvent missing overload to match Proxy Type Request Context
- Tracer: Typing provider when none is passed
- Metrics: Typing SingleMetric context manager
- Tracer: Add method to ignore certain hostname/URLs to be traced
- Docs: Update public Slack invite with new link as the previous one expired
- Event Handler: Do not throw exception if
json_body
doesn't have JSON but returnNone
- MyPy: Address all MyPy errors and enable MyPy at CI level
- Legacy Batch: Delete > 10 messages async
- Layers: Migrate internal CI/CD pipeline dedicated to Lambda Layers to AWS Code*. This will operational effort in maintaining two release processes, and allow us to add additional AWS regions - @am29d owning it
- Project Management: Migrate Powertools Roadmap tasks back to this repository with the new GitHub Projects Beta. This will best represent items we're currently prioritizing, plus automation - @heitorlessa owning it
- Project Management: Refresh our Contributing guide with GitPod.io, more details on what circumstances a PR can be closed/reopened, and expand what behaviors we will not tolerate beyond the general code of conduct - @heitorlessa owning it
- Logger: Lambda Context and state not being explicitly cleared when bringing custom formatters Lambda context data is excluded when using custom formatter and flag clear_state on inject_lambda_context #1042
- End-to-end tests mechanics: Create RFC for mechanism to run e2e tests on merge - @mploski owning it
- This will give us confidence to remove
boto3
(>90% of package size) for Lambda Layers/SAR App
- This will give us confidence to remove
- Tests: Experiment with pytest-benchmark and flaky plugin to retry performance tests that fail due to GitHub Actions CI shared hardware being overutilized at times
- PR linkage: Link PRs to related issue, add
status/staged-next-release
label upon merge - linked PRs will close issues, need to have a second thought on whether this is okay - Changelog append: As PR titles are now consistently good, we need to revisit how Git-chlog might be modified to append to the existing changelog upon PR merge
- Review release process: As mechanisms have been stable, it's time we revisit whether we can automate some manual steps without losing the human communication aspect of a release
- Code quality: End-to-end test RFC: Mechanism for end2end testing #1226
- Docs: Change
Testing your code
docs section to reflect how customers would have to test their code (Batch and Event Handler being good examples to follow) - @cakepietoast owning it - Actions: Lockdown untrusted/3rd party GH Actions to use immutable git sha
- Parser: Defensively pop dict keys in case event has been tampered. SnsSqsEnvelope - [ERROR] KeyError: 'SigningCertURL' #1228