Skip to content

Commit 0bd2204

Browse files
authored
docs: Add version policy page and llms.txt, enable privacy plugin, fix formatting (#1823)
* Add llms.txt. Update Roadmap. * Remove new label from Workshop link. * Enable privacy plugin and llms.txt to navigation bar resources. * Add Versioning policy page. * Update site_url in mkdocs.yml. Fix formatting issues in validation.md. * Add versioning.md to llms.txt.
1 parent 8dcdddf commit 0bd2204

File tree

7 files changed

+147
-16
lines changed

7 files changed

+147
-16
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ Desktop.ini
9999

100100
docs/node_modules
101101
docs/.cache
102+
.cache
102103
docs/public
103104
/example/.aws-sam/
104105
/example/HelloWorldFunction/.aws-sam/
@@ -112,4 +113,4 @@ build/
112113
.terraform*
113114
terraform.tfstate*
114115

115-
powertools-idempotency/dynamodb-local-metadata.json
116+
powertools-idempotency/dynamodb-local-metadata.json

docs/processes/versioning.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: Versioning and maintenance policy
3+
description: Versioning and maintenance policy for Powertools for AWS Lambda (Python)
4+
---
5+
6+
### Overview
7+
8+
This document outlines the maintenance policy for Powertools for AWS Lambda and their underlying dependencies. AWS regularly provides Powertools for AWS Lambda with updates that may contain new features, enhancements, bug fixes, security patches, or documentation updates. Updates may also address changes with dependencies, language runtimes, and operating systems. Powertools for AWS Lambda is published to package managers (e.g. PyPi, NPM, Maven, NuGet), and are available as source code on GitHub.
9+
10+
We recommend users to stay up-to-date with Powertools for AWS Lambda releases to keep up with the latest features, security updates, and underlying dependencies. Continued use of an unsupported Powertools for AWS Lambda version is not recommended and is done at the user’s discretion.
11+
12+
!!! info "For brevity, we will interchangeably refer to Powertools for AWS Lambda as "SDK" _(Software Development Toolkit)_."
13+
14+
### Versioning
15+
16+
Powertools for AWS Lambda release versions are in the form of X.Y.Z where X represents the major version. Increasing the major version of an SDK indicates that this SDK underwent significant and substantial changes to support new idioms and patterns in the language. Major versions are introduced when public interfaces _(e.g. classes, methods, types, etc.)_, behaviors, or semantics have changed. Applications need to be updated in order for them to work with the newest SDK version. It is important to update major versions carefully and in accordance with the upgrade guidelines provided by AWS.
17+
18+
### SDK major version lifecycle
19+
20+
The lifecycle for major Powertools for AWS Lambda versions consists of 5 phases, which are outlined below.
21+
22+
- **Developer Preview** (Phase 0) - During this phase, SDKs are not supported, should not be used in production environments, and are meant for early access and feedback purposes only. It is possible for future releases to introduce breaking changes. Once AWS identifies a release to be a stable product, it may mark it as a Release Candidate. Release Candidates are ready for GA release unless significant bugs emerge, and will receive full AWS support.
23+
- **General Availability (GA)** (Phase 1) - During this phase, SDKs are fully supported. AWS will provide regular SDK releases that include support for new features, enhancements, as well as bug and security fixes. AWS will support the GA version of an SDK for _at least 24 months_, unless otherwise specified.
24+
- **Maintenance Announcement** (Phase 2) - AWS will make a public announcement at least 6 months before an SDK enters maintenance mode. During this period, the SDK will continue to be fully supported. Typically, maintenance mode is announced at the same time as the next major version is transitioned to GA.
25+
- **Maintenance** (Phase 3) - During the maintenance mode, AWS limits SDK releases to address critical bug fixes and security issues only. An SDK will not receive API updates for new or existing services, or be updated to support new regions. Maintenance mode has a _default duration of 6 months_, unless otherwise specified.
26+
- **End-of-Support** (Phase 4) - When an SDK reaches end-of support, it will no longer receive updates or releases. Previously published releases will continue to be available via public package managers and the code will remain on GitHub. The GitHub repository may be archived. Use of an SDK which has reached end-of-support is done at the user’s discretion. We recommend users upgrade to the new major version.
27+
28+
!!! note "Please note that the timelines shown below are illustrative and not binding"
29+
30+
![Maintenance policy timelines](https://docs.aws.amazon.com/images/sdkref/latest/guide/images/maint-policy.png)
31+
32+
### Dependency lifecycle
33+
34+
Most AWS SDKs have underlying dependencies, such as language runtimes, AWS Lambda runtime, or third party libraries and frameworks. These dependencies are typically tied to the language community or the vendor who owns that particular component. Each community or vendor publishes their own end-of-support schedule for their product.
35+
36+
The following terms are used to classify underlying third party dependencies:
37+
38+
- [**AWS Lambda Runtime**](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html): Examples include `java17`, `nodejs20.x`, `python3.13`, etc.
39+
- **Language Runtime**: Examples include Java 17, Python 3.13, NodeJS 20, .NET Core, etc.
40+
- **Third party Library**: Examples include Jackson Project, AWS X-Ray SDK, AWS Encryption SDK, etc.
41+
42+
Powertools for AWS Lambda follows the [AWS Lambda Runtime deprecation policy cycle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy), when it comes to Language Runtime. This means we will stop supporting their respective deprecated Language Runtime _(e.g., `java8`)_ without increasing the major SDK version.
43+
44+
!!! note "AWS reserves the right to stop support for an underlying dependency without increasing the major SDK version"
45+
46+
### Communication methods
47+
48+
Maintenance announcements are communicated in several ways:
49+
50+
- A pinned GitHub Request For Comments (RFC) issue indicating the campaign for the next major version. The RFC will outline the path to end-of-support, specify campaign timelines, and upgrade guidance.
51+
- AWS SDK documentation, such as API reference documentation, user guides, SDK product marketing pages, and GitHub readme(s) are updated to indicate the campaign timeline and provide guidance on upgrading affected applications.
52+
- Deprecation warnings are added to the SDKs, outlining the path to end-of-support and linking to the upgrade guide.
53+
54+
To see the list of available major versions of Powertools for AWS Lambda and where they are in their maintenance lifecycle, see the [version support matrix](#version-support-matrix).
55+
56+
### Version support matrix
57+
58+
| SDK | Major version | Current Phase | General Availability Date | Notes |
59+
| -------------------------------- | ------------- | -------------------- | ------------------------- | ------------------------------------------------------------------------------------------------- |
60+
| Powertools for AWS Lambda (Java) | 1.x | General Availability | 11/04/2020 | See [Release notes](https://github.com/aws-powertools/powertools-lambda-java/releases/tag/v1.0.0) |

docs/requirements.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
mkdocs-git-revision-date-plugin==0.3.2
22
mkdocs-macros-plugin==1.3.7
3+
mkdocs-llmstxt==0.2.0

docs/requirements.txt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
#
55
# pip-compile --generate-hashes --output-file=requirements.txt requirements.in
66
#
7+
beautifulsoup4==4.13.3 \
8+
--hash=sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b \
9+
--hash=sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16
10+
# via
11+
# markdownify
12+
# mkdocs-llmstxt
713
click==8.1.8 \
814
--hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \
915
--hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a
@@ -37,6 +43,14 @@ markdown==3.7 \
3743
--hash=sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2 \
3844
--hash=sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803
3945
# via mkdocs
46+
markdown-it-py==3.0.0 \
47+
--hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \
48+
--hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb
49+
# via mdformat
50+
markdownify==1.1.0 \
51+
--hash=sha256:32a5a08e9af02c8a6528942224c91b933b4bd2c7d078f9012943776fc313eeef \
52+
--hash=sha256:449c0bbbf1401c5112379619524f33b63490a8fa479456d41de9dc9e37560ebd
53+
# via mkdocs-llmstxt
4054
markupsafe==3.0.2 \
4155
--hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \
4256
--hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \
@@ -102,6 +116,14 @@ markupsafe==3.0.2 \
102116
# via
103117
# jinja2
104118
# mkdocs
119+
mdformat==0.7.22 \
120+
--hash=sha256:61122637c9e1d9be1329054f3fa216559f0d1f722b7919b060a8c2a4ae1850e5 \
121+
--hash=sha256:eef84fa8f233d3162734683c2a8a6222227a229b9206872e6139658d99acb1ea
122+
# via mkdocs-llmstxt
123+
mdurl==0.1.2 \
124+
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
125+
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
126+
# via markdown-it-py
105127
mergedeep==1.3.4 \
106128
--hash=sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8 \
107129
--hash=sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307
@@ -121,6 +143,10 @@ mkdocs-get-deps==0.2.0 \
121143
mkdocs-git-revision-date-plugin==0.3.2 \
122144
--hash=sha256:2e67956cb01823dd2418e2833f3623dee8604cdf223bddd005fe36226a56f6ef
123145
# via -r requirements.in
146+
mkdocs-llmstxt==0.2.0 \
147+
--hash=sha256:104f10b8101167d6baf7761942b4743869be3d8f8a8d909f4e9e0b63307f709e \
148+
--hash=sha256:907de892e0c8be74002e8b4d553820c2b5bbcf03cc303b95c8bca48fb49c1a29
149+
# via -r requirements.in
124150
mkdocs-macros-plugin==1.3.7 \
125151
--hash=sha256:02432033a5b77fb247d6ec7924e72fc4ceec264165b1644ab8d0dc159c22ce59 \
126152
--hash=sha256:17c7fd1a49b94defcdb502fd453d17a1e730f8836523379d21292eb2be4cb523
@@ -213,11 +239,17 @@ pyyaml-env-tag==0.1 \
213239
six==1.17.0 \
214240
--hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \
215241
--hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81
216-
# via python-dateutil
242+
# via
243+
# markdownify
244+
# python-dateutil
217245
smmap==5.0.2 \
218246
--hash=sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5 \
219247
--hash=sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e
220248
# via gitdb
249+
soupsieve==2.6 \
250+
--hash=sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb \
251+
--hash=sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9
252+
# via beautifulsoup4
221253
super-collections==0.5.3 \
222254
--hash=sha256:907d35b25dc4070910e8254bf2f5c928348af1cf8a1f1e8259e06c666e902cff \
223255
--hash=sha256:94c1ec96c0a0d5e8e7d389ed8cde6882ac246940507c5e6b86e91945c2968d46
@@ -226,6 +258,10 @@ termcolor==2.5.0 \
226258
--hash=sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8 \
227259
--hash=sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f
228260
# via mkdocs-macros-plugin
261+
typing-extensions==4.13.2 \
262+
--hash=sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c \
263+
--hash=sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef
264+
# via beautifulsoup4
229265
watchdog==6.0.0 \
230266
--hash=sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a \
231267
--hash=sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2 \

docs/roadmap.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ Security and operational excellence take precedence above all else. This means b
1818
Our top priority is to establish the processes and infrastructure needed for a fully automated and secure end-to-end release process of new versions to Maven Central.
1919

2020
- [ ] Implement GitHub workflows and create infrastructure to release to Maven Central
21-
- [ ] Implement end-to-end tests
22-
- [ ] Implement [OpenSSF Scorecard](https://openssf.org/projects/scorecard/){target="\_blank"}
21+
- [x] [Implement end-to-end tests](https://github.com/aws-powertools/powertools-lambda-java/issues/1815){target="\_blank"}
22+
- [x] Implement [OpenSSF Scorecard](https://openssf.org/projects/scorecard/){target="\_blank"}
2323

2424
#### `v2` Release: Consistency and Ecosystem (p1)
2525

@@ -28,26 +28,28 @@ As part of a new major version `v2` release, we prioritize the Java project's co
2828
##### Core Utilities
2929

3030
- [ ] [Review public interfaces and reduce public API surface area](https://github.com/aws-powertools/powertools-lambda-java/issues/1283){target="\_blank"}
31-
- [ ] [Release Logging `v2` module](https://github.com/aws-powertools/powertools-lambda-java/issues/965){target="\_blank"}
32-
- [ ] [Support high resolution metrics](https://github.com/aws-powertools/powertools-lambda-java/issues/1041){target="\_blank"}
31+
- [x] [Release Logging `v2` module](https://github.com/aws-powertools/powertools-lambda-java/issues/965){target="\_blank"} allowing customers to choose the logging framework and adding support for logging deeply nested objects as JSON
32+
- [x] [Support high resolution metrics](https://github.com/aws-powertools/powertools-lambda-java/issues/1041){target="\_blank"}
3333

3434
##### Ecosystem
3535

36-
- [ ] [Add GraalVM support](https://github.com/aws-powertools/powertools-lambda-java/issues/764){target="\_blank"}
36+
- [x] [Add GraalVM support for core utilities](https://github.com/aws-powertools/powertools-lambda-java/issues/764){target="\_blank"}
3737
- [ ] [Implement priming using CRaC to improve AWS Snapstart support](https://github.com/aws-powertools/powertools-lambda-java/issues/1588){target="\_blank"}
3838
- [ ] [Evaluate integration with popular Java frameworks such as Micronaut, Spring Cloud Function, or Quarkus](https://github.com/aws-powertools/powertools-lambda-java/issues/1701){target="\_blank"}
3939

4040
##### Other
4141

42-
- [ ] [Validation module integration with HTTP requests](https://github.com/aws-powertools/powertools-lambda-java/issues/1298){target="\_blank"}
43-
- [ ] [Support validation module from within the batch module](https://github.com/aws-powertools/powertools-lambda-java/issues/1496){target="\_blank"}
44-
- [ ] Documentation: Review and improve documentation to be consistent with other runtimes
42+
- [x] [Validation module integration with HTTP requests](https://github.com/aws-powertools/powertools-lambda-java/issues/1298){target="\_blank"}
43+
- [x] [Support validation module from within the batch module](https://github.com/aws-powertools/powertools-lambda-java/issues/1496){target="\_blank"}
44+
- [x] [Add support for parallel processing in Batch Processing utility](https://github.com/aws-powertools/powertools-lambda-java/issues/1540){target="\_blank"}
45+
- [ ] [Documentation: Review and improve documentation to be consistent with other runtimes](https://github.com/aws-powertools/powertools-lambda-java/issues/1352){target="\_blank"}
4546

4647
#### Feature Parity (p2)
4748

4849
If priorities `p0` and `p1` are addressed, we will also focus on feature parity of non-core utilities. This allows customers to achieve better standardization of their development processes across different Powertools runtimes.
4950

5051
- [ ] [Re-evaluate if there is a need for adding a lightweight customer Powertools event handler](https://github.com/aws-powertools/powertools-lambda-java/issues/1103){target="\_blank"}
52+
- [ ] [Add comprehensive GraalVM support for all utilities](){target="\_blank"}
5153
- [ ] [Add Feature Flags module](https://github.com/aws-powertools/powertools-lambda-java/issues/1086){target="\_blank"}
5254
- [ ] [Add S3 Streaming module](https://github.com/aws-powertools/powertools-lambda-java/issues/1085){target="\_blank"}
5355
- [ ] Add support for Data Masking during JSON serialization

docs/utilities/validation.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,8 @@ While it is easier to specify a json schema file in the classpath (using the not
176176
}
177177
```
178178

179-
**NOTE**: It's not a requirement to validate both inbound and outbound schemas - You can either use one, or both.
179+
!!! note
180+
It is not a requirement to validate both inbound and outbound schemas - You can either use one, or both.
180181

181182
### Validate function
182183

@@ -206,13 +207,14 @@ You can also gracefully handle schema validation errors by catching `ValidationE
206207
}
207208
```
208209

209-
**NOTE**: Schemas are stored in memory for reuse, to avoid loading them from file each time.
210+
!!! note
211+
Schemas are stored in memory for re-use, to avoid loading them from file each time.
210212

211213
## Built-in events and responses
212214

213215
For the following events and responses, the Validator will automatically perform validation on the content.
214216

215-
** Events **
217+
**Events**
216218

217219
Type of event | Class | Path to content |
218220
------------------------------------------------- | ------------------------------------------------- | -------------------------------------------------
@@ -230,7 +232,7 @@ For the following events and responses, the Validator will automatically perform
230232
SNS | SNSEvent | `Records[*].Sns.Message`
231233
SQS | SQSEvent | `Records[*].body`
232234

233-
** Responses **
235+
**Responses**
234236

235237
Type of response | Class | Path to content (envelope)
236238
------------------------------------------------- | ------------------------------------------------- | -------------------------------------------------

mkdocs.yml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
site_name: Powertools for AWS Lambda (Java)
22
site_description: Powertools for AWS Lambda (Java)
33
site_author: Amazon Web Services
4-
site_url: https://docs.powertools.aws.dev/lambda-java/
4+
site_url: https://docs.powertools.aws.dev/lambda/java/
55
nav:
66
- Homepage: index.md
77
- Changelog: changelog.md
8-
- Workshop 🆕: https://s12d.com/powertools-for-aws-lambda-workshop" target="_blank
8+
- Workshop: https://s12d.com/powertools-for-aws-lambda-workshop" target="_blank
99
- FAQs: FAQs.md
1010
- Roadmap: roadmap.md
1111
- Core utilities:
@@ -25,6 +25,10 @@ nav:
2525
- utilities/sqs_batch.md
2626
- Processes:
2727
- processes/maintainers.md
28+
- processes/versioning.md
29+
- Resources:
30+
- "llms.txt": ./llms.txt
31+
- "llms.txt (full version)": ./llms-full.txt
2832

2933
theme:
3034
name: material
@@ -83,6 +87,31 @@ plugins:
8387
- git-revision-date
8488
- search
8589
- macros
90+
- privacy
91+
- llmstxt:
92+
markdown_description: Powertools for AWS Lambda (Java) is a developer toolkit to implement Serverless best practices and increase developer velocity. It provides a suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier.
93+
full_output: llms-full.txt
94+
sections:
95+
Project Overview:
96+
- index.md
97+
- changelog.md
98+
- FAQs.md
99+
- roadmap.md
100+
Core Utilities:
101+
- core/logging.md
102+
- core/metrics.md
103+
- core/tracing.md
104+
Utilities:
105+
- utilities/idempotency.md
106+
- utilities/parameters.md
107+
- utilities/large_messages.md
108+
- utilities/batch.md
109+
- utilities/validation.md
110+
- utilities/custom_resources.md
111+
- utilities/serialization.md
112+
Processes:
113+
- processes/maintainers.md
114+
- processes/versioning.md
86115

87116
extra_css:
88117
- stylesheets/extra.css

0 commit comments

Comments
 (0)