Skip to content

chore: update roadmap #1531

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 13 additions & 20 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
- [Triage New Issues](#triage-new-issues)
- [Triage Bug Reports](#triage-bug-reports)
- [Triage RFCs](#triage-rfcs)
- [Run end to end tests](#run-end-to-end-tests)
- [Releasing a new version](#releasing-a-new-version)
- [Drafting release notes](#drafting-release-notes)
- [Run end to end tests](#run-end-to-end-tests)
- [Releasing a documentation hotfix](#releasing-a-documentation-hotfix)
- [Maintain Overall Health of the Repo](#maintain-overall-health-of-the-repo)
- [Manage Roadmap](#manage-roadmap)
Expand All @@ -28,7 +28,6 @@
- [Is that a bug?](#is-that-a-bug)
- [Mentoring contributions](#mentoring-contributions)
- [Long running issues or PRs](#long-running-issues-or-prs)
- [E2E framework](#e2e-framework)
- [Automation](#automation)

## Overview
Expand All @@ -42,7 +41,6 @@ This is document explains who the maintainers are (see below), what they do in t
| Maintainer | GitHub ID | Affiliation |
| ------------------ | ------------------------------------------- | ----------- |
| Andrea Amorosi | [dreamorosi](https://github.com/dreamorosi) | Amazon |
| Sara Gerion | [saragerion](https://github.com/saragerion) | Amazon |
| Alexander Schueren | [am29d](https://github.com/am29d) | Amazon |

## Emeritus
Expand All @@ -51,6 +49,7 @@ Previous active maintainers who contributed to this project.

| Maintainer | GitHub ID | Affiliation |
| -------------------------- | --------------------------------------------- | ----------- |
| Sara Gerion | [saragerion](https://github.com/saragerion) | Amazon |
| Florian Chazal | [flochaz](https://github.com/flochaz) | Amazon |
| Chadchapol Vittavutkarnvej | [ijemmy](https://github.com/ijemmy) | Booking.com |
| Alan Churley | [alan-churley](alan-churley) | CloudCall |
Expand Down Expand Up @@ -151,7 +150,7 @@ This allows you to have control over the commit message although it should match

Manage [labels](#labels), review issues regularly, and create new labels as needed by the project. Remove `triage` label when you're able to confirm the validity of a request, a bug can be reproduced, etc. Give priority to the original author for implementation, unless it is a sensitive task that is best handled by maintainers.

Make sure issues are assigned to our [board of activities](https://github.com/orgs/awslabs/projects/76/) and have the right [status](https://docs.powertools.aws.dev/lambda-typescript/latest/roadmap/#roadmap-status-definition).
Make sure issues are assigned to our [board of activities](https://github.com/orgs/aws-powertools/projects/7) and have the right [status](https://docs.powertools.aws.dev/lambda-typescript/latest/roadmap/#roadmap-status-definition).

Use our [labels](#labels) to signal good first issues to new community members, and to set expectation that this might need additional feedback from the author, other customers, experienced community members and/or maintainers.

Expand Down Expand Up @@ -188,6 +187,12 @@ When necessary, be upfront that the time to review, approve, and implement a RFC

An example of a successful RFC: [#447](https://github.com/aws-powertools/powertools-lambda-typescript/issues/447)

### Run end to end tests

E2E tests should be ran before every merge to `main` or manually via [run-e2e-tests workflow](https://github.com/aws-powertools/powertools-lambda-typescript/actions/workflows/run-e2e-tests.yml) before making a release.

To run locally, you need [AWS CDK CLI](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) and an [account bootstrapped](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) (`cdk bootstrap`). With a default AWS CLI profile configured, or `AWS_PROFILE` environment variable set, run `npm run test:e2e -ws`. For more information on how the tests are structured, see [Integration Tests](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/CONTRIBUTING.md#integration-tests).

### Releasing a new version

🚧 WIP 🚧
Expand All @@ -200,10 +205,6 @@ Make sure the `tag` field reflects the new version you're releasing, the target

You'll notice we group all changes based on their [labels](#labels) like `type/feature`, `type/bug`, `type/documentation`, etc.

**I spotted a typo or incorrect grouping - how do I fix it?**

Edit the respective PR title and update their [labels](#labels). Then run the [Release Drafter workflow](https://github.com/aws-powertools/powertools-lambda-typescript/actions/workflows/release-drafter.yml) to update the Draft release.

**All looking good, what's next?**

The best part comes now. Replace the placeholder `[Human readable summary of changes]` with what you'd like to communicate to customers what this release is all about. Rule of thumb: always put yourself in the customers shoes.
Expand All @@ -218,17 +219,13 @@ These are some questions to keep in mind when drafting your first or future rele

Once you're happy, hit `Publish release` 🎉🎉🎉.

This will kick off the [Publish docs on release](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/.github/workflows/publish-docs-on-release.yml) workflow and within a few minutes you should see the latest version in PyPi, and all issues labeled as `pending-release` will be closed and notified.

### Run end to end tests

E2E tests should be ran before every merge to `main` or manually via [run-e2e-tests workflow](https://github.com/aws-powertools/powertools-lambda-typescript/actions/workflows/run-e2e-tests.yml) before making a release.

To run locally, you need [AWS CDK CLI](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) and an [account bootstrapped](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) (`cdk bootstrap`). With a default AWS CLI profile configured, or `AWS_PROFILE` environment variable set, run `npm run test:e2e -ws`.
This will kick off the [Publish docs on release](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/.github/workflows/publish-docs-on-release.yml) workflow that will will notify all the issues labeled as `status/pending-release` of the new release.

### Releasing a documentation hotfix

You can rebuild the latest documentation without a full release via this [GitHub Actions Workflow](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/.github/workflows/publish-docs-on-release.yml). Choose `Run workflow`, keep `main` as the branch, and input the latest Powertools for AWS Lambda (TypeScript) version available i.e. `v1.4.1`.
You can rebuild the latest documentation without a full release via this [GitHub Actions Workflow](https://github.com/aws-powertools/powertools-lambda-typescript/blob/main/.github/workflows/rebuild-latest-docs.yml).

Choose `Run workflow`, keep `main` as the branch, and input the latest Powertools for AWS Lambda (TypeScript) version available i.e. `v1.4.1`.

This workflow will update both user guide and API documentation.

Expand Down Expand Up @@ -296,10 +293,6 @@ Try offering a 1:1 call in the attempt to get to a mutual understanding and clar

In the rare cases where both parties don't have the bandwidth or expertise to continue, it's best to use the `status/on-hold` label. By then, see if it's possible to break the PR or issue in smaller chunks, and eventually close if there is no progress.

## E2E framework

🚧 WIP 🚧

## Automation

🚧 WIP 🚧
31 changes: 20 additions & 11 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
## Overview

This is our public roadmap that outlines the high level direction we are working towards, namely [Themes](#themes). We update this document when our priorities change: security and stability is our top priority.
This is our public roadmap that outlines the high level direction we are working towards, namely [Themes](#themes). We update this document when our priorities change, however security and stability is always our top priority.

[See our latest list of activities »](https://github.com/orgs/awslabs/projects/76/views/2){target="_blank"}
[See our latest list of activities »](https://github.com/orgs/aws-powertools/projects/7){target="_blank"}

## Themes

!!! info "Operational Excellence is priority number 1."

Themes are key activities maintainers are focusing on, besides bug reports. These are updated periodically and you can get an idea of the overall progress in the [Milestones section](https://github.com/aws-powertools/powertools-lambda-typescript/milestones){target="_blank"}.

### New utilities
### Feature Parity

After going GA, we want to start working on new utilities, specifically but not limited to the most commonly asked: **(1)** [Idempotency](https://github.com/aws-powertools/powertools-lambda-typescript/issues/447) and **(2)** [Parameters](https://github.com/aws-powertools/powertools-lambda-typescript/issues/846).
We want to close the gap between this version of Powertools for AWS Lambda and the [Python version](https://github.com/aws-powertools/powertools-lambda-python). This means that in the fullness of time, we want to have the same or equivalent features in both versions.

### Lambda Layers
In the first half of 2023 we have released the [Parameters utility](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/10), and are working on Idempotency. We are currently running a private beta for Idempotency, and plan on releasing the [public beta around July 2023](https://github.com/aws-powertools/powertools-lambda-typescript/milestone/7) at the latest.

We want to publish and maintain public Lambda Layers.
For the second half of 2023, we are considering implementing one or more of the following utilities (in no particular order):
- Batch Processing (Status: [RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1082))
- Validation (Status: [RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/508))
- Parser (Status: [RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1334))
- Event Handler (Status: [RFC](https://github.com/aws-powertools/powertools-lambda-typescript/issues/413))

Work on this area is mostly complete and layers are already available in all commercial regions, however we still have some [work to do around automation](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1124).
If any of these utilities are important to you, please let us know by upvoting the issue, leaving a comment under the RFCs, or by joining the discussion in our [Discord community](https://discord.gg/B8zZKbbyET){target="_blank"}.

### ES Modules support
### Version 2 release

Another one of the most requested features is [ES Modules support](https://github.com/aws-powertools/powertools-lambda-typescript/issues/521). This topic requires some in-depth investigation to understand how to move forward and how to deal with some of our upstream dependencies.
Over the past year, we have gathered a number of feature requests and improvements that we want to implement but that are not backwards compatible with the current API surface. We are planning to release a new major version of the library by the end of 2023, which will include some of these changes.

When the time comes, we might open a RFC to discuss options.
The following are some of the changes we are considering:
- **ES Modules support ([#521](https://github.com/aws-powertools/powertools-lambda-typescript/issues/521))** - Thanks to the work of the community we have been able to validate the feasibility of dual support for CommonJS and ES Modules. We are currently working on a plan to implement this.
- **TypeScript 5.x support ([#1375](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1375))** - This new version of TypeScript brings breaking changes to the experimental decorators API, which we use in our core utilities. We need to investigate the impact of this change and how to best support it.
- **Support for 3rd party observability providers ([#1500](https://github.com/aws-powertools/powertools-lambda-typescript/issues/1500))** - Many of our customers would like to use Powertools for AWS to send logs, traces, and metrics to providers other than Amazon CloudWatch. At the moment we are investigating the feasibility of this for the Logger utility, while the Python version of Powertools for AWS Lambda is considering this also for Tracer and Metrics.

We have not yet decided on the final list of features that will be included in this release, if you have any suggestions please let us know by commenting on [this discussion](https://github.com/aws-powertools/powertools-lambda-typescript/discussions/1269) or upvoting existing suggestions.

### Improve operational excellence

Expand All @@ -42,7 +51,7 @@ graph LR
<i>Visual representation</i>
</center>

Within our [public board](https://github.com/orgs/awslabs/projects/76/views/3){target="_blank"}, you'll see the following values in the `Status` column:
Within our [public board](https://github.com/orgs/aws-powertools/projects/7){target="_blank"}, you'll see the following values in the `Status` column:

* **Ideas**. Incoming and existing feature requests that are not being actively considered yet. These will be reviewed when bandwidth permits and based on demand.
* **Backlog**. Accepted feature requests or enhancements that we want to work on.
Expand Down