Frequently Asked Questions

This is a list of frequently asked questions, aiming to answer any possiblequestions by newcomers or even contributors.

Table of Contents

What does coala do (for me)?

coala is like a spell and grammar checker for source code. It offers onecommand and one configuration to lint all languages in your project.

In short coala does two things:

  • Makes it easy to use existing static code analyzers such as clang,pylint(and many others) by unifying and simplifying the configs
  • Makes it easy to write new routines by offering the interface part andeverything but the actual analyzer routine. Write just the parametersyour custom analysis needs and the analysis part, we’ll take care of the rest

Can I Use coala in my Continuous Integration?

Yes! There’s an argument –ci that runs the coala binary in non-interactivemode, which shows results cleanly in the log and returns error codesif something goes wrong. List of the exit codes and their meanings:Exit Codes.

Why did you choose the name?

coala stands for “COde AnaLysis Application”, works well with animals and thusis 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 andis developed mostly by students and there’s no corporate interest and no CLA.If you want to back us, contact us on ourgitter channel.

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

A list of all analysis routines and supported languages isfully browsable.

For a top level view on what languages support what kind of analysis roughly,consult this link.

There are also generic bears, which can be applied language independently onyour code. Their capabilities and information can be seenhere.

What is a bear anyway?

A bear is a routine that is used by coala to check your codefor lint issues. A group of these routines(bears) is used for definingcertain quality requirements in various languages. A bear can analyse codefor potential problems, calculate metrics and even provide corrections foryour code. While many of these bears for various languages are shipped alongwith coala, you can easily write some of your own.

How do I get started with coala?

If you’re looking to get started using coala, we have afull tutorialthat will teach you everything you need to know to use coala.

If you’re willing to contribute and become a part of our coalaian community,we have written a newcomers guide that will helpyou fix an issue on your own, just by following and understanding theindications.It is meant for newcomers, and it does not require you to have any precedentknowledge regarding coala.

How do I get in touch with the coala team?

We are very active on ourgitter channeland will try to respond to any question in a matter of minutes.However, for a full list of how to get in touch with us, consultthis link.

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 supportour version specifiers yet. You have to create a virtual environment witha newer pip:

  1. pip3 install virtualenv
  2. virtualenv -p python3 ~/venvs/coala
  3. . ~/venvs/coala/bin/activate
  4. pip install -U pip
  5. pip install coala-bears

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

What are those things failing/passing on my Pull Request?

We use a few checks to make sure your Pull Request is ready to be merged intoour master branch. Right now we use 7 of those checks:

  • review/gitmate/commit Checks this particular commit has any new gitmateissues.
  • review/gitmate/pr Checks whether your code respects our styling (PEP8),doesn’t contain unneeded newlines, trailing whitespace, etc. Basically it islike running coala over your code, so to fix this, simply run $ coalabefore pushing! In case you have multiple commits, and the issue is in oneof them, the status will still be failed, so be careful to run $ coalabefore making each commit.
  • review/gitmate/manual This one is the only one that is manual, this canbe given by any coala member and shows that the commit has been reviewed andhas no problems, so it is ready to be merged. It can be done by commentingack commit_sha. For more information about the whole process, we haveit all documentedhere.
  • codecov/project This one checks whether all your code is being tested. Wecannot merge anything that may not work or may broke somewhere, so to avoidobvious bugs we use this. To fix it, write doctests or unittests for yourfunctions / classes.
  • ci/circleCI This is one of the two containers we use to continuouslytest the code. It basically runs all the tests and checks your code in acontainer, checking that the tests pass on the container. This one is forLinux, it runs Ubuntu 12.04.
  • continuous-integration/appveyor/pr This one does the same as the oneabove, but for Windows, both 32 and 64bits versions.

What is coala Community Code of Conduct?

The coala team and community is made up of a mixture ofprofessionals and volunteers from all over the world. Diversity isone of our huge strengths, but it can also lead to communicationissues and unhappiness. To that end, we have a few groundrules that we ask people to adhere to. A guide to make it easier toenrich all of us and the technical communities in which we participate.This code of conduct applies to all spaces managed by the coala project.

If you believe someone is violating the code of conduct, we ask thatyou report it by emailing community AT coala DOT io. In general:

  • Be friendly and patient.
  • Be welcoming.
  • Be considerate.
  • Be respectful.
  • Be careful in the words that you choose.
  • When we disagree, try to understand why.For more information refer Code of Conduct.