atoum has two release managers
What is atoum?
Short introduction: atoum is a simple, modern and intuitive unit testing framework for PHP. Originally created by Frédéric Hardy, a good friend, it has grown thanks to many contributors.
No one can say that atoum is not simple or intuitive. The framework
offers several awesome features and is more like a meta unit testing
framework. Indeed, the “user-land” of atoum, I mean all the assertions
API (“this is an integer and it is equal to…”) is based on a very
flexible mechanism, handled or embedded in runners, reporters etc. Thus,
the framework is very extensible. You can find more informations in the
README.md
of the project: Why
atoum?.
Several important projects or companies use atoum. For instance, Pickle, the PHP Extension installer, created by Pierre Joye, another friend (the world is very small 😉) use atoum for its unit tests. Another example with M6Web, the geeks working at M6, the most profitable private national French TV channel, also use atoum. Another example, Mozilla is using atoum to test some of their applications.
Where is the cap'tain?
Since the beginning, Frédéric has been a great leader for the project. He has inspired many people, users and contributors. In real life, on stage, on IRC… its personality and charisma were helpful in all aspects. However, leading such a project is a challenging and nerve-wracking daily work. I know what I am talking about with Hoa. Hopefully for Frédéric, some contributors were here to help.
Where to go cap'tain?
However, having contributors do not create a community. A community is a group of people that share something together. A project needs a community with strong connections. They do no need to all look at the same direction, but they have to share something. In the case of atoum, I would say the project has been victim of its own success. We have seen the number of users increasing very quickly and the project was not yet ready for such a massive use. The documentation was not ready, a lot of features were not finalized, there were few contributors and the absence of a real community did not help. Put all these things together, blend them together and you obtain a bomb 😄. The project leaders were under a terrible pressure.
In these conditions, this is not easy to work. Especially when users ask for new features. The needs to have a roadmap and people taking decisions were very strong.
When the community acts
After a couple of months under the sea, we have decided that we need to create a structure around the project. An organization. Frédéric is not able to do everything by himself. That's why 2 release managers have been elected: Mikaël Randy and I. Thank you to Julien Bianchi, another friend 😉, for having organized these elections and being one of the most active contributor of atoum!
Our goal is to define the roadmap of atoum:
- what will be included in the next version and what will not,
- what features need work,
- what bugs or issues need to be solved,
- etc.
Well, a release manager is a pretty common job.
Why 2? To avoid the bus effect and delegate. We all have a family, friends, jobs and side projects. With 2 release managers, we have 2 times more time to organize this project, and it deserves such an amount of time.
The goal is also to organize the community if it is possible. New great features are coming and they will allow more people to contribute and build their “own atoum”. See below.
Features to port!
Everything is not defined at 100% but here is an overview of what is coming.
First of all, you will find the latest issues and bugs we have to close before the first release.
Second, you will notice the version number… 1.0.0. Yes! atoum will have tags! After several discussions (#261, #300, #342, #349…), even if atoum is rolling-released, it will have tags. And with the semver format. More informations on the blog of Julien Bianchi: atoum embraces semver.
Finally, a big feature is the Extension API, that allows to write extension, such as:
atoum/visibility-extension
, allows to override methods visibility; example:
Now you will be able to test your protected and private methods!
atoum/bdd-extension
, allows to write tests with the behavior-driven development style and vocabulary; example:
Even the output looks familiar:
atoum/json-schema-extension
, allows to validate JSON payloads against a schema; example:
atoum/praspel-extension
, allows to use Praspel inside atoum: automatically generate and validate advanced test data and unit tests; example:
Here, we have generated a string based on its regular expression. Reminder, you might have seen this on this blog: Generate strings based on regular expressions.
Fun fact: the atoum/json-schema-extension
is tested with atoum
obviously and… atoum/praspel-extension
!
Conclusion
atoum has a bright future with exciting features! We sincerely hope this new direction will gather existing and new contributors 😄.
❤️ open-source!