-
Notifications
You must be signed in to change notification settings - Fork 403
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
Current state: pausing new features until end of July to focus on operational excellence #1076
Comments
We would like to share some of the progress we've made around Roadmap and Contributions outlined above.
|
New updates:
|
Today marks the end of our pause for new features 🎉. This means that triaged feature requests and RFCs are now considered - we welcome contributions from the community granted that authors of feature requests/RFCs have the 1st priority. We deeply appreciate everyone's patience while we worked on a number of areas and releases (below), and helped our colleagues with the exciting launch of Lambda Powertools for TypeScript GA. While we will continue to work on many of these internal areas, we're equally excited to get back on improving everyone's developer experience. Last but not least, please help me welcome our new full-time maintainer @rubenfonseca 🥰 - one of many great news we can't wait to share with you this month alone.
DetailsOperational ExcellenceEnd-to-end testing We've completed the first steps of our internal E2E test framework and covered Tracer, Logger, and Metrics. As we began to improve E2E coverage, we realized we should do a lot more to make it easier to write these tests - both for maintainers and avid contributors. Once that settled, we'll publish our definition of functional vs integ vs E2E tests in the new contribution guidelines. We will continue working on this regardless of the end our pause for new features. Release improvements Our release process is now down to one manual step: Draft release notes. We found it to be a good balance between making releases as effortless as possible while keeping the human touch. Our goal remains to ensure everyone understands the value and how to best utilize each release, including highlighting every contribution received no matter the size. Lambda Layers We've completed the migration to GitHub Actions and expanded to all AWS Commercial regions. This reduced our immediate availability of new Lambda Layers to all regions within 5 minutes after PyPi release. We will continue working on this task. We are looking for ways to automate documentation generation for all 22 Lambda Layer ARNs. Once complete, we can create additional layers for example Revamp GitHub Actions automation We refactored all GitHub Actions using inline scripts (simple tasks or not) into standalone GitHub-Script, and started moving into composable workflows with the new reusable workflows feature - this reduced 1/3 of our operational overhead. Additionally, we audited our use of GitHub Actions and followed GitHub Security Guide practices where applicable. RoadmapRoadmap migration We migrated all roadmap and day-to-day activities to the new GitHub Projects - here. The We also publicly documented the roadmap process. It gives an overview on key groups of activities, our status definition, and the process each maintainer will follow. Refresh contribution guidelinesMaintainers process We published our first maintainer's playbook. The intention is to provide more details about how each maintainer is expected to interact with the community, and process they'd keep in mind when doing so. We also now enforce that PRs have a related issue to avoid significant delays, and to account for a balance on customer demand, scope, and maintenance effort. This also automates the process of notifying customers when their change was released with a given version. Pre-configured Cloud based contributor's environment We had limited success in providing a pre-configured GitPod.io instance for contribution due to issues with the pre-commit framework and GitPod's security model. We will continue working on this and break down all tasks in our board to lower the entry bar to contribution. New issue templates We created 3 new issue templates: Static typing (Mypy related), Ask a question (GitHub Discussions), and Maintenance (tech debt related). This also means we removed the option for blank issues to ensure any non-issue remains in GitHub Discussions for helpful threaded conversations. |
Background
AWS Lambda Powertools is a suite of utilities to ease adopting best practices defined in the Well-Architected Serverless Lens. Our mission is to help customers implement these practices as early in their software development cycle as possible. We carefully crafted our Tenets to help govern our decision making, as we make progress towards our mission.
The AWS staff maintaining this project do so in their spare time. A small group of AWS staff volunteers, including Solutions Architects and Professional Services Consultants, governs each Lambda Powertools language separately. We meet regularly to share lessons learned across languages to improve the experience for everyone. This helps us stay focussed on the end-to-end user experience for each language while considering that customers may use multiple languages and AWS services.
Growth
Lambda Powertools for Python became general available in June 2020 with three core features: tracing, structured logging, and asynchronous metrics. Since then, we have launched Lambda Powertools for Java, 11 new utilities for Lambda Powertools for Python, and more recently, a beta for Lambda Powertools for TypeScript.
For Python, we have experienced unprecedented growth, going from 5K to ~800K downloads per month in less than 20 months. This rapid growth has led to a vibrant community building effort. Community submissions now contribute, on average, 50-60% to each release. These contributions vary from documentation, features, bug fixes, Request for Comments (RFC), and blog posts.
It takes a significant amount of our spare time to triage, discuss, review, answer follow-up questions, and merge contributions. As customer activities in our daily jobs increases, our spare time became even scarcer. As with any successful, fast-growing project, we have accumulated technical and project management debt.
As a result, we need to change how we work to make it sustainable for everyone involved: customers, community, and maintainers.
Moving forward
For the AWS Lambda Powertools for Python, we are shifting our focus to Operational Excellence, prioritizing stabilization over new features and enhancements. This focus period will last until the end of July 2022. During this time, we are pausing external contributions as we work on more sustainable mechanisms to communicate and collaborate with the community. We will continue to support bug reports but no longer feature requests until the end of this period.
This allows us to focus on the following activities:
We wish to acknowledge how extremely grateful we are for the work of several individuals who have helped shape Lambda Powertools into what it is today. Your contributions within and outside GitHub help thousands of customers adopt best practices when building serverless applications.
We appreciate your understanding as we focus on this stabilization period. We can't wait to get back to accepting external feature contributions again in a way that responsibly looks after our maintainers' mental well-being.
Kindly, the maintainers of AWS Lambda Powertools for Python.
The text was updated successfully, but these errors were encountered: