diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..013e2290 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +* @awslabs/aws-lambda-powertools-net diff --git a/.github/auto_assign.yml b/.github/auto_assign.yml index 76ce2be1..1c26a055 100644 --- a/.github/auto_assign.yml +++ b/.github/auto_assign.yml @@ -2,7 +2,7 @@ addReviewers: true # Set to true to add assignees to pull requests -addAssignees: true +#addAssignees: true # A list of reviewers to be added to pull requests (GitHub user name) reviewers: @@ -12,7 +12,7 @@ reviewers: # A number of reviewers added to the pull request # Set 0 to add all the reviewers (default: 0) -numberOfReviewers: 1 +numberOfReviewers: 0 # A number of assignees to add to the pull request diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml index 2461fd15..14b893f6 100644 --- a/.github/boring-cyborg.yml +++ b/.github/boring-cyborg.yml @@ -3,27 +3,43 @@ labelPRBasedOnFilePath: area/common: - libraries/src/AWS.Lambda.Powertools.Common/* - libraries/src/AWS.Lambda.Powertools.Common/**/* - area/logger: + area/logging: - libraries/src/AWS.Lambda.Powertools.Logging/* - libraries/src/AWS.Lambda.Powertools.Logging/**/* - area/tracer: - - libraries/src/AWS.Lambda.Powertools.Tracing/* - - libraries/src/AWS.Lambda.Powertools.Tracing/**/* - area/metrics: - - libraries/src/AWS.Lambda.Powertools.Metrics/* - - libraries/src/AWS.Lambda.Powertools.Metrics/**/* - area/tracer: + area/tracing: - libraries/src/AWS.Lambda.Powertools.Tracing/* - libraries/src/AWS.Lambda.Powertools.Tracing/**/* area/metrics: - libraries/src/AWS.Lambda.Powertools.Metrics/* - libraries/src/AWS.Lambda.Powertools.Metrics/**/* + area/parameters: + - libraries/src/AWS.Lambda.Powertools.Parameters/* + - libraries/src/AWS.Lambda.Powertools.Parameters/**/* + area/Idempotency: + - libraries/src/AWS.Lambda.Powertools.Idempotency/* + - libraries/src/AWS.Lambda.Powertools.Idempotency/**/* documentation: - docs/* - docs/**/* - mkdocs.yml + github-actions: + - .github/workflows/* + - .github/workflows/**/* + - .github/dependabot.yml + - .github/boring-cyborg.yml + - .github/release-drafter.yml + - .github/semantic.yml + - .github/stale.yml + - .github/mergify.yml + + github-templates: + - .github/ISSUE_TEMPLATE/* + - .github/PULL_REQUEST_TEMPLATE.md + - .github/.chglog/* + - .github/.chglog/**/* + internal: - .github/* - .github/**/* @@ -35,6 +51,7 @@ labelPRBasedOnFilePath: - CONTRIBUTING.md - CODE_OF_CONDUCT.md - LICENSE + - MAINTAINERS.md tests: - libraries/tests/* @@ -45,10 +62,14 @@ labelPRBasedOnFilePath: firstPRWelcomeComment: > Thanks a lot for your first contribution! Please check out our contributing guidelines and don't hesitate to ask whatever you need. + In the meantime, check out the #python channel on our Powertools for AWS Lambda Discord: [Invite link](https://discord.gg/B8zZKbbyET) + # Comment to be posted to congratulate user on their first merged PR firstPRMergeComment: > Awesome work, congrats on your first merged pull request and thank you for helping improve everyone's experience! # Comment to be posted to on first time issues firstIssueWelcomeComment: > - Thanks for opening your first issue here! We'll come back to you as soon as we can. \ No newline at end of file + Thanks for opening your first issue here! We'll come back to you as soon as we can. + + In the meantime, check out the #python channel on our Powertools for AWS Lambda Discord: [Invite link](https://discord.gg/B8zZKbbyET) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 4fb0323f..0620a5aa 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -24,14 +24,17 @@ categories: labels: - 'internal' - 'dependencies' + - 'chore' exclude-labels: - 'skip-changelog' -tag-template: 'v$NEXT_PATCH_VERSION' +tag-template: '$NEXT_PATCH_VERSION' template: | - ## Changes + ## Summary **[Human readable summary of changes]** + ## Changes + $CHANGES ## This release was made possible by the following contributors: diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 91af90a4..0d259826 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -43,6 +43,7 @@ This is document explains who the maintainers are (see below), what they do in t | ----------------- | --------------------------------------------- | ----------- | | Stephen Liedig | [sliedig](https://github.com/sliedig) | Amazon | | Amir Khairalomoum | [amirkaws](https://github.com/amirkaws) | Amazon | +| Henrique Graca | [hjgraca](https://github.com/hjgraca) | Amazon | ## Emeritus diff --git a/docs/roadmap.md b/docs/roadmap.md index 2059fd26..78a0e4c1 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -2,17 +2,72 @@ 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. -[See our latest list of activities »](https://github.com/orgs/awslabs/projects/56/views/1?query=is%3Aopen+sort%3Aupdated-desc){target="_blank"} +[See our latest list of activities »](https://github.com/orgs/awslabs/projects/105/views/4?query=is%3Aopen+sort%3Aupdated-desc){target="_blank"} ## Themes -Themes are key activities maintainers are focusing on, besides bug reports. These are updated periodically and you can find the latest [under Epics in our public board](https://github.com/orgs/awslabs/projects/51/views/11?query=is%3Aopen+sort%3Aupdated-desc){target="_blank"}. +!!! info "Operational Excellence is priority number 1." -### Revamp roadmap +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/awslabs/aws-lambda-powertools-dotnet/milestones){target="_blank"}. -We are beta testing the [new GitHub Projects Beta](https://github.com/orgs/awslabs/projects/56/views/1?query=is%3Aopen+sort%3Aupdated-desc){target="_blank"} to provide more visibility on our current activities. This also includes new GitHub Issue Forms Beta to streamline feature requests, bug reports, RFCs, etc., including a new mechanism to add external links like `Ask a Question`. +### New utilities -Once complete, we will repurpose our [central roadmap repository](https://github.com/awslabs/aws-lambda-powertools-roadmap){target="_blank"} to provide a landing page for all Powertools for AWS Lambda languages, including an experiment to better highlight feature parity across them. +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/awslabs/aws-lambda-powertools-dotnet/issues/164), **(2)** [Parameters](https://github.com/awslabs/aws-lambda-powertools-dotnet/issues/160) and **(3)** [Batch](https://github.com/awslabs/aws-lambda-powertools-dotnet/issues/168). + +### Improve operational excellence + +We continue to work on increasing operational excellence to remove as much undifferentiated heavylifting for maintainers, so that we can focus on delivering features that help you. + +This means improving our automation workflows, and project management, and test coverage. + +## Roadmap status definition + +
+```mermaid +graph LR + Ideas --> Backlog --> Work["Working on it"] --> Merged["Coming soon"] --> Shipped +``` +Visual representation +
+ +Within our [public board](https://github.com/orgs/awslabs/projects/105/views/3?query=is%3Aopen+sort%3Aupdated-desc){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. +* **Working on it**. Features or enhancements we're currently either researching or implementing it. +* **Coming soon**. Any feature, enhancement, or bug fixes that have been merged and are coming in the next release. +* **Shipped**. Features or enhancements that are now available in the most recent release. +* **On hold**. Features or items that are currently blocked until further notice. +* **Pending review**. Features which implementation is mostly completed, but need review and some additional iterations. + +> Tasks or issues with empty `Status` will be categorized in upcoming review cycles. + +## Process + +
+```mermaid +graph LR + PFR[Feature request] --> Triage{Need RFC?} + Triage --> |Complex/major change or new utility?| RFC[Ask or write RFC] --> Approval{Approved?} + Triage --> |Minor feature or enhancement?| NoRFC[No RFC required] --> Approval + Approval --> |Yes| Backlog + Approval --> |No | Reject["Inform next steps"] + Backlog --> |Prioritized| Implementation + Backlog --> |Defer| WelcomeContributions["help-wanted label"] +``` +Visual representation +
+ +Our end-to-end mechanism follows four major steps: + +* **Feature Request**. Ideas start with a [feature request](https://github.com/awslabs/aws-lambda-powertools-dotnet/issues/new?assignees=&labels=feature-request%2Ctriage&projects=&template=feature_request.yml&title=Feature+request%3A+TITLE){target="_blank"} to outline their use case at a high level. For complex use cases, maintainers might ask for/write a RFC. + * Maintainers review requests based on [project tenets](index.md#tenets){target="_blank"}, customers reaction (👍), and use cases. +* **Request-for-comments (RFC)**. Design proposals use our [RFC issue template](https://github.com/awslabs/aws-lambda-powertools-dotnet/issues/new?assignees=&labels=RFC%2Ctriage&projects=&template=rfc.yml&title=RFC%3A+TITLE){target="_blank"} to describe its implementation, challenges, developer experience, dependencies, and alternative solutions. + * This helps refine the initial idea with community feedback before a decision is made. +* **Decision**. After carefully reviewing and discussing them, maintainers make a final decision on whether to start implementation, defer or reject it, and update everyone with the next steps. +* **Implementation**. For approved features, maintainers give priority to the original authors for implementation unless it is a sensitive task that is best handled by maintainers. + +??? info "See [Maintainers](https://github.com/awslabs/aws-lambda-powertools-dotnet/blob/develop/MAINTAINERS.md) document to understand how we triage issues and pull requests, labels and governance." ## Disclaimer