Hi folks,
I’d like to give an update on the AWX modernization effort. Before we dive in, let’s briefly recap the goals we defined for refactoring AWX into a pluggable, service-oriented architecture:
- Improved Flexibility: Easier to implement changes and add new features.
- Enhanced Maintainability: Simplified codebase with clear service boundaries.
- Better Code Reuse: More efficient reuse of code across different projects.
- Active Community Participation: Greater opportunity for community members to contribute and shape the project.
Moving away from the refactoring effort
The nature of the work to refactor the AWX codebase meant that the state of the ansible/awx repository has been fundamentally broken.
As part of the approach to the refactoring work, Red Hat engineering used different branches in ansible/awx to complete various phases of the overall effort. All changes are now merged on the devel branch, which is where all work on the codebase is taking place.
In short, the AWX refactoring effort is nearing completion and there is no longer the need to use multiple branches for development. However there is still work to be done in our efforts to modernize the AWX codebase.
Shifting towards developer experience
In the initial post about streamlining AWX releases, we outlined the intent to foster an innovative and collaborative environment for upstream development within the Ansible ecosystem that ultimately results in higher quality code and a better experience for everyone.
That statement is still true today. It succinctly describes our goal with AWX.
We want to make it much easier to contribute to AWX and create customizable AWX builds as we’ve been saying from the very beginning.
The next phase of the modernization effort will focus on providing developer resources. Specifically we want to make it really simple and straightforward for developers to spin up environments and start working with the new plugin architecture.
To kick start this phase, Red Hat will start by creating and improving documentation to assist with creating working development environments. We encourage developers, at all experience levels, who use AWX to contribute to this effort. Documentation will be available from the AWX community docsite.
An example of the type of documentation Red Hat commits to providing are development scenarios and API reference material, such as the new OpenAPI schema. As we move forward with the modernization effort and work towards providing better developer onboarding resources, Red Hat plans to make additional announcements on the forum to give the community more visibility as well as to gather feedback.
Myself and others from the community team will also provide more frequent updates to the community with at least one update every three months.
Summary
Red Hat engineering has completed the work to refactor the AWX codebase. As the modernization effort continues, focus is on enabling developers and lowering the barriers to entry for contributing to the AWX codebase.
When we first announced our plans to streamline AWX releases, we made it clear that our goal isn’t to offer an exact replica of our commercial product for free. Instead we want to define the future of AWX with input and direct collaboration from the community.
This is why focus on the developer experience is central to the next phase of the modernization effort. When Red Hat initially open sourced the Tower codebase as AWX, there had been little to no community development or input. Now that we’re done with the refactoring effort, we see this as an opportunity to do things differently.
Call to action
Reply to this forum post to share your thoughts and help shape the future of AWX. Please also join us in our efforts to improve the documentation for setting up development environments and contributing to the AWX project.
Links in this AWX update series
- Blog: Upcoming Changes to the AWX Project
- Streamlining AWX Releases
- Refactoring AWX into a Pluggable, Service-Oriented Architecture
- Upcoming changes to AWX Operator installation methods
- AWX UI and credential types transitioning to the new pluggable architecture
- AWX modernization: Moving forward (this post)