Hi,
I’m Brad (@cidrblock) from the Ansible DevTools team. We work with the community to pull together tools that make developing Ansible content faster, more efficient, and with more consistency. We also work with the Red Hat Community of Practice to ensure content is following “good” practices. You’re probably familiar with some of our tools such as ansible-lint, molecule, and the Ansible VS Code extension, and recently, we announced a new effort around simplifying the installation and discovery of these tools with the Ansible development tools package
As we gear up for the coming new year, we want to share with you all some of what we’re working on and ways we can collaborate to improve the lives of Ansible collection maintainers and other content developers, whether you are on Linux, macOS or Windows.
Where we are today - the pain points
While we’re proud of the developer tools we have today, we realize that there are many other bits of tooling that exist, especially around how to create and test your Collection. Each of these tools offers a different experience, and teams are spending a lot of time maintaining these tools. With this much variety (and inconsistency), we know it’s confusing and making it more difficult for people to focus on what matters, which is automating.
You can see the variation in tools that people see from the October forum poll. We see a similar trend from comments in the recently-completed 2024 Ansible Survey. Developers see multiple tools doing the same thing, difficulties setting up these tools, or choosing amongst multiple options that make it especially difficult for newcomers to start adopting the tools.
Beyond the plethora of tooling, we also have maintainability issues with ansible-test, one of the most used testing tools. ansible-test started out as a tool to use with ansible-core, long before Collections existed. While the Core team has extended it over time to cover some Collections testing, it’s getting more difficult to maintain and extend that tool for all we need it to do for collections and ansible-core.
Where we’d like to get to
So before we get into the ideas we have of how to improve all of this, we want to say upfront that we want to establish a predictable communication and collaboration mechanism between the community and the Red Hat teams working on these projects. We’ll be using the forum to share ideas, get feedback, and work together to help solve some of the biggest pain points for content developers in Ansible.
Unifying the content developer approach
While each developer can choose how to create their content, we in DevTools want to ensure the tools we offer utilizes and embraces the Python ecosystem. This means moving to standard tooling where it exists and has a much larger user base.
For DevTools, we’re focused on creating a great experience when using our VS Code extension, as our preferred IDE. This means integrating all our developer tools inside the VS Code extension. Think of it as a wrapper to provide that unified experience. All the logic is inside the individual tools, so we can emphasize a consistent experience in VS Code, CI, or from the command line.
Beyond the focus on VS Code and the Ansible Language Server, we also realize we’ve got various tools we want to consolidate.
Different developers, different needs
We know we have experienced content developers and new content developers. So we’ll be focusing on supporting those new users by providing sensible scaffolding (and matching documentation). We’ll need your help deciding what ‘sensible’ means here. If you’re already using some of the different scaffolding tools, where do you see ‘bloat’ for community developers, or missing pieces?
We also recognize that people develop from laptops or workstations running Linux, macOS, and Windows. We want all of those experiences to be good. This is more achievable when we’ve reduced the number of tools that the teams are supporting, so we can focus on extending and improving the unified tooling on those three operating systems. Improving the experience on macOS and Windows is something we will be working on in early 2025. Stay tuned for future discussions on the forum as we ramp up.
Focus areas
There are a lot of places we can focus our efforts in the coming year, but we’re considering improvements for:
- Creating Ansible content: playbooks, collections, roles and modules
- Testing Collections
- Releasing Collections
- Publishing Collections to Galaxy & Automation Hub
- Providing a consistent cross-OS developer experience
Our approach will be to present our plans here in the forum, and gather feedback and ideas on how we can consolidate on a ‘preferred’ set of tooling. This may mean enhancing some of the existing DevTools with features from the other tooling, and deprecating some of those other tools.
We may also create new tools to help where existing tooling such as ansible-test has reached some limits.
Through all of this, we want to create a community of collaborators to ensure we’re focused on what helps both community and enterprise content developers.
Call to action - Keeping the community involved
We want your feedback! We’ve presented some of our initial thoughts, so add your comments on all this via discussion on this forum post. Going forward, we’ll continue to provide updates and ask for your feedback and collaboration as we dig more deeply into the focus areas here.
- Where would you like to see our tooling do in 18 months?
- What currently works well?
- What are your biggest pain points?
The next Ansible Contributors Summit will take place on Wednesday 5th February 2025, as part of CfgMgmtCamp in Ghent Belgium, 3-5th February 2025, where we will have members of the DevTools team on hand to listen to your feedback and host a discussion on these topics.
We in DevTools are also committed to ensuring developers, whether community or enterprise, have a way to keep up with proposed changes, and an opportunity to provide feedback on the impact of those changes. Stay tuned for ideas on how we can provide that!
Thanks, we look forward to working more closely with you all.
Brad
Related links
- Ansible Development Tools homepage (ansible-lint, molecule, and so on)
- Ansible Language Server
- Forum poll for tools used by collection developers
- Forum posts tagged devtools