Skip to content
Bill Nelson edited this page Jun 13, 2016 · 20 revisions

What does coala do (for me)?

coala is like a spell and grammar checker for source code. Imagine using LibreOffice Writer to spellcheck something in English. Why should you have to write LibreOfficES to check something written in Spanish? That is what coala tries to fix. Why write the whole thing again if you actually just want another analyzing routine? Thats what bears are for. You want to use clang or pylint on your project? We got you covered. One command and one configuration to lint all languages in your project.

You have an awesome idea for a new kind of code analysis but don't want to write a CLI? Write just the parameters your custom analysis needs and the analysis part, we'll take care of the rest. Everything is handled by coala.

All in all coala does two things:

  • Make it easy to use existing static code analyzers by unifying and simplifying the configs
  • Make it easy to write new routines by offering the interface part and everything but the actual analyzer routine.

Can I Use coala in my Continuous Integration?

Yes! There's a dedicated coala-ci binary that is noninteractive, shows results cleanly in the log and returns error codes if something is wrong.

Why did you Choose the Name?

coala stands for "COde AnaLysis Application", works well with animals and thus is well visualizable, it's easy to memorize.

Is there Corporate Backing Behind coala? What are your intentions?

coala was founded for fun. coala was, is and will always be free software and is developed mostly by students and there's no corporate interest and no CLA. If you want to back us, contact us on our gitter channel.

What sort of analysis does coala do? What languages are supported?

TODO: https://github.com/coala-analyzer/coala-bears/wiki/Supported-languages

An incomplete feature-per-language list is available at https://docs.google.com/spreadsheets/d/1ZJTe1nFsWuKxVdRgHOlpKNI1cLHb4QgY7aAq9tOaa9w/edit#gid=0.

How does coala do language agnostic analysis?

TODO

How do I get Started Using coala?

There's a tutorial to help you get started. If you like, don't like or have a problem with coala ping us on gitter - we're always happy to help you!

If you are willing to contribute to coala, follow this page, created especially for newcomers!

Where can I contact the community?

Most coala development members are available on Gitter. Please feel free to ask any questions that you want to be quickly answered. Besides that we have a community mailing list. We also have a twitter handle @coala_analyzer for updates of features and bears!

I Want to Help! How can I do That?

There are several ways you can start contributing to coala. Some of them are:

  • Star us on GitHub!
  • Tweet about what you like and don't like.
  • File bugs or feature requests - When you discover a bug, please report the bug by filing a new issue. You are also welcome to request new features you may want in coala.
  • Write a bear - writing a simple bear for your favorite language is one of the easier, yet significant, way to start contributing to the community. For a more detailed explanation on how to do this, please click here. We're happy to help you!
  • Fix an issue - while we strive to write error-free code, some bugs inevitably creep in. You can help us fix them by submitting patches. Use our newcomers guide to get started!
  • Test it!
  • Document things you found out that are yet to be brought to light!

Installation is Failing! Help!

Don't panic!

Scroll down the error log, you will probably see something like ValueError: ('Expected version spec in', 'appdirs ~=1.4.0', 'at', ' ~=1.4.0') there. If not, ask us!

If so, you're probably on a Debian with an outdated pip that doesn't support our version specifiers yet. You have to create a virtual environment with a newer pip:

pip3 install virtualenv
virtualenv -p python3 ~/venvs/coala
. ~/venvs/coala/bin/activate
pip install -U pip
pip install coala-bears

should do the job. You have to activate this virtualenv on every terminal session you want to use coala though (tip: add it to bashrc!)

Clone this wiki locally