Introduction
Hi everyone 👋,
I am Alessandro, the maintainer of CanCanCan since 2015. I want to present you this new guide for developers.
Since I took over the CanCanCan project in 2015, I felt one of the most urgent things to do was rewriting the documentation: the previous documentation was in a Wiki, but giving free access to everyone to edit it, ended up in a big mess after so many years. Information was all there, but in a very unstructured way.
One of the first things I did was to block the Wiki from free editing and after that, I moved all the wiki within the git repository, so that every update had to go through a Pull Request and code review.
I think documentation is as important as the source code, and therefore should follow the same approval process of the code.
After one year from this decision, I realised that this was not sufficient: I still didn't like the status of the documentation, and I had to explain too often to my colleagues at Renuo the basic mechanisms of this library. And all my colleagues are all very smart people!! So I understood that we were still missing a well structured developer documentation.
I hope you'll appreciate this work and you'll now be able to use CanCanCan at it's maximum potential.
I suggest also experienced CanCanCan developers to read it, since you might find out interesting features that have been recently introduced and you might not be aware of, since they were not previously documented.
Thanks again to all my sponsors, who allowed me to take the time to properly write this documentation, and thanks to all the contributors for your help with this wonderful library ❤️.
If you'd like to sponsor this library, head to https://github.com/sponsors/coorasse. It means a lot.
Thank you,
Head to the Installation chapter.