coala provides a unified command-line interface for linting and fixing all your code, regardless of the programming languages you use.

Overview
https://cloud.githubusercontent.com/assets/5716520/24838296/a9cf5f04-1d45-11e7-855c-47b816ce1e09.png

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."John F. Woods


Linux Build Status Windows Build status macOS Build Status codecov.io Documentation Status AGPL OpenHub


coala provides a unified interface for linting and fixing code with a single configuration file, regardless of the programming languages used. You can use coala from within your favorite editor, integrate it with your CI, get the results as JSON, or customize it to your needs with its flexible configuration syntax.

coala supports popular programming languages including Python, C/C++, Java, JavaScript, CSS, and several others out of the box.

Install coala | Get Involved | Chat | Roadmap | Blog | Twitter

'Throughput Graph'
Issues
  • .coafile: Add section for YML

    .coafile: Add section for YML

    New section for YML files only.

    Fixes https://github.com/coala/coala/issues/4372

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    type/bug importance/high difficulty/newcomer process/pending review area/CI size/S difficulty/low difficulty/medium area/results area/core importance/critical area/documentation area/tests 
    opened by mykromo 118
  • coala_main.py: Fix E501:10:80:line too long

    coala_main.py: Fix E501:10:80:line too long

    …2:462:12:no newline at end of file

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    process/pending review size/XS 
    opened by richardson-souza 81
  • Development_Setup.rst: Rephrase instructions

    Development_Setup.rst: Rephrase instructions

    Adds brief description about "Installing from Git" section.

    Closes https://github.com/coala/coala/issues/3903.

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    size/XS difficulty/medium importance/medium 
    opened by EverWinter23 70
  • coala: Add file caching and remove Tagging

    coala: Add file caching and remove Tagging

    With --caching the user can run coala only on those files that had changed since the last time coala was run. This should improve the running time of coala.

    process/approved size/XXL cool and awesome review carefully! 
    opened by adtac 63
  • WIP: .coafile: Add RSTCheckBear in rst section

    WIP: .coafile: Add RSTCheckBear in rst section

    This adds RSTCheckBear in rst section of coafile to avoid corrupt code blocks

    Closes: https://github.com/coala/coala/issues/3824

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [ ] I read the commit guidelines and I've followed them.
    • [ ] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    status/blocked process/wip size/XS status/stale 
    opened by mishra-sid 61
  • Ud/sec inherit

    Ud/sec inherit

    Checklist

    Reviewers

    process/pending review size/XXL review carefully! 
    opened by Udayan12167 61
  • logging

    logging

    So, this is how the logging can look like. It seems that logging may be more dependant on printers than was initially thought, so the printer will probably have to be passed in either way. Not sure, how much this is better.

    process/approved size/XL review carefully! 
    opened by Uran198 59
  • .coafile: Use RSTcheckBear and update .coafile

    .coafile: Use RSTcheckBear and update .coafile

    Update .coafile with RSTcheckBear.

    Closes https://github.com/coala/coala/issues/4209

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    importance/high process/pending review status/blocked size/L difficulty/low area/documentation review carefully! status/stale 
    opened by mridubhatnagar 55
  • coafileTest: check last 100 commits

    coafileTest: check last 100 commits

    Fix the shortlog regex and add test to check the regex against the last 100 commits

    Fixes https://github.com/coala/coala/issues/3587

    Checklist

    Reviewers

    process/wip size/L review carefully! status/stale 
    opened by affanv14 54
  • .coafile: Adds PycodestyleBear

    .coafile: Adds PycodestyleBear

    PycodestyleBear is added to the [autopep8] section of the global .coafile to run after the PEP8Bear and find problems omitted by the first.

    Closes https://github.com/coala/coala/issues/3242

    Checklist

    Reviewers

    process/pending review size/XXL review carefully! 
    opened by lucianbc 53
  • Added an example to Writing_Good_Commits.rst

    Added an example to Writing_Good_Commits.rst

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    process/approved size/XS status/stale 
    opened by karansingh1559 51
  • " An unknown error occurred. This is a bug. We are sorry for the inconvenience. Please contact the developers"

    Overview Description

    As I was working through the getting started tutorial and tried to run this code coala --files=src/\*.c --bears=SpaceConsistencyBear --save, I got the following output:

    An unknown error occurred. This is a bug. We are sorry for the inconvenience. Please contact the developers for assistance. During execution of coala an exception was raised. This should never happen. When asked for, the following information may help investigating:
    [INFO][10:49:06] Exception was:
    Traceback (most recent call last):
    
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/coalib/coala.py", line 35, in main
        from coalib.output.ConsoleInteraction import (
    
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/coalib/output/ConsoleInteraction.py", line 13, in <module>
        from coalib.misc.DictUtilities import inverse_dicts
    
      File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/coalib/misc/DictUtilities.py", line 1, in <module>
        from collections import defaultdict, Iterable, OrderedDict
    
    ImportError: cannot import name 'Iterable' from 'collections' (/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)
    

    After reading about a similar issue in the past, I ran pip install 'setuptools==17.0' but that still didn't resolve the issue.

    Steps to Reproduce

    1. git clone https://github.com/coala/coala-tutorial
    2. cd coala-tutorial
    3. coala --files=src/*.c --bears=SpaceConsistencyBear --save
    4. pip install 'setuptools==17.0'

    Expected Results

    "Please enter a value for the setting "use_spaces" (True if spaces
    are to be used instead of tabs.) needed by SpaceConsistencyBear
    for section "cli"
    
    opened by alisonqiu 0
  • Please invite me to the GitHub Community Organization

    Please invite me to the GitHub Community Organization

    Hi! My name is Tran Nguyen Thuong Truong - come from VietNam with open-source code love. I want to join your organization to learn more and more and woking with all friend Thank you very much!

    opened by thuongtruong1009 0
  • Please invite me to the GitHub Community Organization

    Please invite me to the GitHub Community Organization

    I'm a Web Dev enthusiast & a junior pursuing my Bachelors in Computer Science & Engineering. I'm interested in Web Development, Machine Learning & DevOps & I enjoy learning new things & stuff as well as I'm a Frontend Devloper with experience building Dynamic & Static Web pages. I am always interested in learning the answers to how, why, and what relates to the Technologies around me.

    Looking forward to learn, collaborating, and growing as a community.

    opened by Jyoti-prakash-rout 0
  • Changed matlab extensions to a tuple in language definition

    Changed matlab extensions to a tuple in language definition

    Fixes #5914

    Checklist

    • [x] I read the commit guidelines and I've followed them.
    • [x] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    opened by avats-dev 1
  • Removed unused Imports

    Removed unused Imports

    GeneratePatchesActionTest.py: Removed unused Imports ShowAppliedPatchesActionTest.py: Removed unused Imports

    This removes the double and unused Imports.

    Fixes https://github.com/coala/coala/issues/6036

    For short term contributors: we understand that getting your commits well defined like we require is a hard task and takes some learning. If you look to help without wanting to contribute long term there's no need for you to learn this. Just drop us a message and we'll take care of brushing up your stuff for merge!

    Checklist

    • [ ] I read the commit guidelines and I've followed them.
    • [ ] I ran coala over my code locally. (All commits have to pass individually. It is not sufficient to have "fixup commits" on your PR, our bot will still report the issues for the previous commit.) You will likely receive a lot of bot comments and build failures if coala does not pass on every single commit!

    After you submit your pull request, DO NOT click the 'Update Branch' button. When asked for a rebase, consult coala.io/rebase instead.

    Please consider helping us by reviewing other peoples pull requests as well:

    The more you review, the more your score will grow at coala.io and we will review your PRs faster!

    opened by dante381 1
Releases(0.11.0)
  • 0.11.0(May 22, 2017)

                                                       /ss.
                                 -+ooooyhhsoo+++/-...-d+``oy-
                             `:sNMMMMMMMMMMMMMMMMMMMMMMMMNMMMs
                           .sNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd`
                         :hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:
                       +mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN.
                     /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNN-
                   /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMhd
                 `yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmNMMMMMMMMMMm
                `dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh  :smMMMMMMMN
                sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNh+. ./ohNMmh
               -NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmy/.
              -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMds/.
              hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd----:oyyyNMMMMMMMyo+-
             `MMMMMMMMMMMMMMMMMMMMMMMMMdMMMMMMMo   `+ydMMMMMMMMMMMMMNs-
             /MMMMMMMMMMMMMMMMMMMMMdo.``-/sMMMM+.omMMMMMMMMMMMMMMMMMMMMh:
             /MMMMMMMMMMMMMMMMMMMs.       oMMMhyMMMMMMMMMMMMMMMMMMMMMMMMMh`
              yNMMMMMMMMMMMMMMMMM/        yMMmmMMMMMMMMMmyo///oyNMMMMMMMMMs
               +mMMMMMMMMMMMMMMMMy         /dMMMMMMMMMd:  ./+/-  :dMMMMMMMd
               `oMMMMMMMMMMMMMMMMd`        .MMMMMMMMMh  .dMMMMMm:  hMMMMMMM:
              oNMMMMMMMMMMMMMMMMMM:        :MMMMMMMMM:  hMMMMMMMm  :MMMMMMM/
            :NMMMMMMMMMMMMMMMMMMMM/        -MMMMMMMMMo  -NMMMMMN/  oMMMMMMM/
            -mMMMMMMdhdMMMMMMMMMMM/`       `dMMMMMMMMM+   :oso/`  oMMMMMMMM:
             :NMMMN.   :dMMMMMMMMM+         :MMMMMMMMMMmo:`   .:smMMMMMMMNo
              .yNMMh:   .mMMMMMMMMd          hMMMMMMMMMMMMMMMMMMMMMMMMMMd.
                 ``       .:////++:           oNMMMMMMMMMMMMMMMMMMMMMMd+`
                                                -+syhhdmmmNNNNNmdhss/.
    

    This release was brought to you by 65 contributors contributing 141 commits.

    The name of this release is BrewBear to highlight the improvements made to our dependency management system, including the addition of brew support for mac users. Mac has been an officially supported platform for a long time and we would like to draw attention to this often overlooked fact. Support has also been added for conda and cargo allowing bears which use linters available from those package managers to manage their dependencies.

    Initial next generation core code has been merged and will be integrated over the coming releases. Until then, please use the current API.

    We have added a release candidate system to our release process to allow users to easily test changes in the latest pre-release version of coala. Instructions for obtaining the rc package will be posted for each minor/major release to the coala gitter channel, blog, and twitter. We encourage all users interested in checking out new features or helping to test these pre-releases on their projects. If you do find a regression in a release candidate, please report it to the issue tracker with the word Regression somewhere in the title.

    Breaking Changes

    • coala now exits with a non zero exit code when error level results are logged. If you relied on coala logging in scripts or other automated systems please modify them to work with the new behavior. You can find all exit codes here. PR #3905

    General

    • Section Inheritance had been added to the coafile parsing. With this change we are deprecating implicit default section inheritance. Instead, you can now have definite section inheritance by using the . in the section title. Append operators are now supported allowing addition of values to inherited section. See the Explicit Setting Inheritance section of the docs for a syntax example and detailed instructions
    • The section name cli is reserved for cli arguments and should not be used in the coala configuration file (coafile). If you are currently using it in a configuration file, coala will warn you.
    • coala now outputs absolute file paths when a bear fails. This should make debugging bear failures easier when using custom bears.

    Usability

    • A new placeholder, source_lines, has been added to the coala --format option. Use it to output the affected lines in the source file when a result occurs.
    • Bears are displayed alphabetically when listed using --show-bears.
    • coala outputs a warning if a setting is overridden in the same section since this is probably not what the user intended.
    • --format is handled correctly when --ci is specified, outputting formatted output without asking questions. Issue#3999
    • coala will report the version of the dependency required when the version check fails. Issue#3982

    Bear Developers

    • @linter decorator works with global bears. See our bear writing docs for more information on how to write a global bear with the @linter decorator.
    • Bear.DownloadCachedFile raises exceptions when the download fails. Please see the requests library docs for a complete list of possible exceptions that will need to be handled.
    • The deprecate_settings decorator now supports multiple deprecations of the same setting. Issue #3537
    • A new SEE_MORE attribute has been added to the Bear class. Use it to attribute (usually by linking the main page) the original tool in linter bears.
    • Unified Diff support has been added to the Diff result, linter and display mechanisms.

    Bugfixes

    • Caching has been fixed to work correctly. Results are only cached when a bear successfully runs. A bear which fails in the middle of a run will not have a result cached anymore. This should make flushing the cache manually mostly unnecessary for end users. PR#3722
    • Non-optional settings check settings from dependent bears now. Previously, it would error because the dependency would not have its settings satisfied. Issue#3149
    • The Result object now handles None values of TextPosition properly. Previously, it would return arbitrary results which would impact bear authors. Issue#3094
    • A few problems when using coala in systems with incomplete locales data have been fixed. This was common in Docker containers. Issue#3906
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0rc2(May 12, 2017)

  • 0.11.0rc1(Apr 27, 2017)

    Shortlog

    • Major changes to exitcode behavior(see docs)
    • default .coafile section will be deprecated soon. Please stop using it now!
    • Initial next gen core code has been commited, however it has not been activated
    • New logging handlers
    • Better aspects support has been added, still not ready for general usage
    • Empty results are not cached. End users shouldn't have to run with --flush-cache anymore
    • coala should now be able to output in unified-diff format
    • golang now has coalang doc bindings (?)
    • coafiles can now use the append (+=) operator to inherit from other sections
    • ...and much more
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Feb 5, 2017)

                       `++-    -o+`                   
                -oo:  :yhho    ohhy:  :oo.            
                :hhhoohhh+      +hhhoohhy:            
            ``.--shhhhhy:        /yhhhhho--..`        
           +hhhhhhhhhhh+          ohhhhhhhhhhh/       
           `/+/////+hhhh/        +hhhy+///////`       
                    -yhhhs     hshhhy-                
       .os/           hhhhy-  -yhhhh           +ss.   
       .yhho           shhho``ohhhs          `ohhy`   
        -yhhs`          +hhhsshhh+          `shhy-    
      .::shhhs++/+yhy////shhhhhhs////yhy++++yhhho::-  
     /hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh/ 
      -::shhhs++++yhy////shhhhhhs          +shhhs::.  
        -yhhs`          +hhhsshhh+          `shhy-    
       .yhho`          shhho``ohhhs           ohhy.   
       .ss+           hhhhy   -yhhhh           /so.   
                    -yhhhs      shhhy-                
           `///////+yhhh+        /hhhh+/////+/`       
           /hhhhhhhhhhho          +hhhhhhhhhhh+       
            `..--ohhhhhy/        :yhhhhhs--.``        
                :hhhoohhh+      +hhhoohhh:            
                -oo:  :yhho    ohhy:  :oo-            
                       `+o-    -++`
    

    For this release we had 168 commits contributed by 66 unique contributors over 2.5 months.

    The name of this release is PolarBear to reflect changes we have made to our release process. We have implemented a release freeze before all releases to serve as a testing period for all staged changes. This should also help us keep releases on schedule.

    This release is an enhancement release which brings the usual slew of improvements to documentation and API. We have started preparing the codebase for the big changes that are outlined in the cEPs like section inheritance and the next generation core.

    Known Bugs

    • Results are cached even if a bear does not run. This can lead to empty results where there should be errors. To temporarily deal with this run coala with the --flush-cache option

    General

    • Test cases have been improved across the board so they catch more errors before production.
    • Log output via json has been added which is accessible by using the --log-json option.
    • coala domain has been changed from coala-analyzer.org to coala.io. Please file a bug if you find any broken links or instances of the old url.

    Usability

    • emacs has been added to list of editors that coala supports.
    • coala will now output a warning if you specify an editor that is not known.
    • The noqa keyword used by other linters as an ignore keyword is now supported as a coala ignore keyword.
    • libclang-py3 update to 3.4 is known to cause problems for some users. Please uninstall and reinstall it if coala tells you there is a version mismatch in libclang-py3.
    • C# now has proper language support and should work with AnnotationBear and all other bears which require language configuration.

    Deprecations

    • change_line method in Diff.py has been deprecated and has been scheduled for removal.
    • format_str setting has been completely removed after being deprecated last release. Use format instead to specify a formatting string.

    Developers

    • Travis has been enabled for developers to test their changes on their own CI.
    • Bears will now check for prerequisites using specified requirements before running. Either override check_prequisites in the bear or write a new requirement class if you wish to have a custom check.
    • When a language is not known by coala, an Unknown language will be used.
    • @linter decorator now warns when using unsupported or anonymous capture groups.
    • New dependency_management package has been created to contain package manager and dependency classes used by coala. All of the old *Requirement classes have been moved here. Some new dependencies classes are CabalRequirement and MavenRequirement. Developers should add requirement classes there now for the requirement types they wish to support.
    • DistributionRequirement can now check if a package is installed in many popular linux distros.
    • Diffs are able to add a single line using the add_line method now.
    • Language class ignores leading and trailing spaces in language lookups.
    • Language class should auto-complete when using languages that have been defined.

    Docs

    • A Code of Conduct has been added. This will guide conflict resolution if the need ever arises.
    • API docs are now part of the coala repository.
    • Developer contribution documentation has received a major update

    Bugfixes

    • Fixed an issue where using linter bears on windows had thrown an exception. Issue 3323
    • coala -c (config file) option properly supports specifying directories. Previously it has thrown an exception. Issue 3221
    • Documentation status github badge has been fixed.
    • Console interaction uses a unicode dot to represent spaces instead of the bullet for better cross platform rendering. Issue 2751
    • Language class raises proper exception to fix hasattr behavior. Issue 3160
    • Ignore statements in multi-line comments should be supported properly now. Issue 3441
    Source code(tar.gz)
    Source code(zip)
  • 0.9.1(Dec 28, 2016)

    This bugfix release addressed the following issues:

    • The installer has been fixed to only install on supported python versions. Issue #3310 Issue #3383
    • The format_str option to specify a format string has ben restored to coala run in format mode. This is deprecated and was only restored to provide plug-in developers a grace period to switch to the replacement setting format. Issue #3303
    • Setuptools was removed from our requirements list because having it only only caused dependency problems for other packages installed on the system coala Bears Issue #751
    • PyPrint dependency was updated to a version which does not pull in setuptools anymore.
    • API change: An auto-apply disable option was added to run_coala to fix issue detection by unattended services that use coala when the coafile contains a default_action Issue #3212
    • A few specific language class behaviors were changed. This should only affect developers Pull #3175 Pull #3167
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Nov 22, 2016)

                       __
                 o#'9MMHb':'-,o,
              .oH":HH$' "' ' -*R&o,
             dMMM*""'`'      .oM"HM?.
           ,MMM'          "HLbd< ?&H\
          .:MH ."\          ` MM  MM&b
         . "*H    -        &MMMMMMMMMH:
         .    dboo        MMMMMMMMMMMM.
         .   dMMMMMMb      *MMMMMMMMMP.
         .    MMMMMMMP        *MMMMMP .
              `#MMMMM           MM6P ,
          '    `MMMP"           HM*`,
           '    :MM             .- ,
            '.   `#?..  .       ..'
               -.   .         .-
                 ''-.oo,oo.-''
    

    For this release only we had 58 different contributors from all around the globe contributing way over 200 commits over 2.5 months to coala.

    The name of this release is GlobalBear to honour our GlobalBear class and leave a statement on how global the community grows: gone are the days when we visit conferences and we have to explain the project to all the people. More and more people know the project before we meet them and this is great! This is a huge step in our conquest to take over the world!

    The GlobalBear class serves our users by providing project wide "global" analysis. This release it will probably make its last appearance because it will be deprecated in favour of a more sophisticated concept in the near future.

    We have also worked a lot towards building our dream of letting users declare code analysis configuration completely language independently: to take a sneak peek at what we want to do, check this out. You will see that the first aspects are already in our source code and that bears can already associate results with them so future versions of coala will be able to tell the user a plethora of facts around the type of issue pointed out.

    For users, we have added a lot of usability improvements as well as for example the ability to merge patches within one line: if you previously had to run coala multiple times because of patch conflicts, this is likely not the case anymore!

    As a Bear writer you now have access to our Language facilities: they will give you facts about programming languages that you analyse so you can build truly language independent bears. Also, you now can use http://api.coala.io/ to get more information about our classes and functions you work with.

    Command Line Interface Changes:

    • coala-ci and coala-json have been deprecated. You can now use coala --non-interactive and coala --json respectively.
    • Multiple patches within one line, even from different bears, can be automatically merged by coala.
    • coala returns the exitcode 2 when not passing any --bears or --files as well as when no section is enabled and nothing was done.
    • coala can now automatically add Ignore ...Bear comments to your source code. Simply use the Add ignore comment action when offered.
    • Users can press enter to dismiss a result by default.
    • Result action descriptions have been compressed to make them easier readable.
    • The section name is now displayed when asking the user for missing settings.
    • coala --non-interactive shows results and patches by default now.
    • coala-dbus has been removed as it wasn't used by anyone.
    • A --no-color argument allows to run coala with uncoloured results.
    • Log messages are printed on stderr now.
    • coala --json doesn't output log messages in JSON anymore. This is a technical issue. Log messages can easily be fetched from the stderr stream.
    • Some performance improvements could be achieved.
    • A lot more strings, like roger or no way are allowed for boolean values. (https://github.com/coala/coala/commit/728b7b02da8ca8f91b91c67784872244c0820a77)

    Bear API Changes:

    • LanguageDefinition has been deprecated. Use coalib.bearlib.languages.Language instead. Consult http://api.coala.io/en/latest/coalib.bearlib.languages.html#module-coalib.bearlib.languages.Language for usage hints.
    • The deprecated Lint class has now been removed.
    • The CondaRequirement has been removed.
    • The multiple constructor for PackageRequirement classes has been removed.
    • A deprecate_bear decorator is now available so bears can be renamed seamlessly.
    • The Diff object has now dedicated functions to replace, insert and remove SourceRange objects.

    Bug Fixes:

    • A glob cornercase has been fixed. (https://github.com/coala/coala/issues/2664)
    • An issue where empty patches have been shown to the user has been fixed. (https://github.com/coala/coala/issues/2832)
    • Wrong handling of periods when changing casing has been fixed. (https://github.com/coala/coala/issues/2696)
    • A caching bug where results have not been shown to the user has been fixed. (https://github.com/coala/coala/issues/2987)

    Documentation:

    • API documentation is now available at http://api.coala.io/

    Internal Changes:

    • Deprecated parameters are stored in the function metadata.
    • Python builtin logging is now used.
    • Numerous changes to get started on https://coala.io/cep5 have been implemented. The first aspects are already defined in coalib.bearlib.aspects and bears can already append aspects to results.
    • coalang files now have an alias dictionary.
    Source code(tar.gz)
    Source code(zip)
  • 0.8.1(Sep 4, 2016)

    coala 0.8.1

    This bugfix release addressed the following issues:

    • The cache will be correctly invalidated when changing section targets now. (https://github.com/coala-analyzer/coala/issues/2708)
    • Dependencies are resolved before asking the user for needed values. This will only affect custom bears that have dependencies that require settings. (https://github.com/coala-analyzer/coala/issues/2709)
    • PyPrint was updated from 0.2.4 to 0.2.5.
    • PipRequirement uses sys.executable instead of hardcoded python. This will only affect coala or bear developers.
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Aug 22, 2016)

    coala 0.8.0 - grizzly

                   -                         
                 `Ns      :s-               
            .     mMd`     :Nd.             
           :h     /ss/`     +md.            
           dN`    :NMMMy`  .ymmy. -+`       
           dM+    dMMMMMm`.NMMMMN. +Mo      
        `  -sddy: yMMMMMM/+MMMMMMo  dMo     
       s/  +MMMMMy.dMMMMM-:MMMMMM+ -yhs`    
      .Ms  /MMMMMMo /hdh:  oMMMMh`+MMMMm.   
      -MN.  hMMMMMh  `/osssoos+-  dMMMMMs   
       oyhho.+mMMm:+dMMMMMMMMMm+  sMMMMMs   
       mMMMMMy``` dMMMMMMMMMMMMMh.`sMMMh`   
       yMMMMMMy  `MMMMMMMMMMMMMMMMy:..`     
       `yMMMMMd  yMMMMMMMMMMMMMMMMMMMMNh+`  
         .ohhs-+mMMMMMMMMMMMMMMMMMMMMMMMMd  
            .yMMMMMMMMMMMMMMMMMMMMMMMMMMMh  
            mMMMMMMMMMMMMMMMMMMMMMMMMMMMh`  
            yMMMMMMMMMMMMMMMNhssssyyyso-    
             /dMMMMMMMMMNy+.                
               ./syhys/-                    
    

    For this release, we have had 46 developers from around the world contributing over 150 commits in the last 9 weeks.

    Improving the API available for bear writers is one of the areas we've focused on for this release, with several new and exciting features. General performance has also been improved heavily with some major changes under the hood. The documentation has also been worked on, with an emphasis on user-friendliness and design.

    There have also been major internal changes in preparation for the complete decentralization of bears, which would allow the installation of individual bears.

    Below are some of the important changes introduced for this release:

    New Features

    • coala now supports syntax highlighting in results!
    • Questions are now printed in color; this will improve visibility when a lot of text is written to the screen.
    • coala-json now supports --show-bears and --filter-by-language
    • Added a --show-capabilities flag that displays the types of issues coala can detect and fix for a particular language.
    • Display the line number when a line is missing; this could happen if a bear that had run previously overwrites it.

    For Bear Writers

    • Bears now have a new REQUIREMENTS attribute which will be used to automatically resolve bear dependencies. This includes:
      • Native requirements (from package managers such as apt-get, dnf, pacman, ...)
      • Conda requirements
      • Python requirements through pip
      • go requirements
      • Ruby requirements through gem
      • NodeJS requirements through npm
      • RScript requirements
      • Julia requirements
    • Language independent documentation parsing routines: these can be used to make bears for linting documentation without having to worry about the language.
    • coalang now supports C, C++, CSS, Java, Python3 and Vala.
    • A new bear creation tool has been released: with this tool, it's easier than ever before to create external linter based bears for coala!
    • A new ASCIINEMA_URL attribute has been added to bears. This should contain an URL to an asciinema video displaying the bear's capabilities in action.
    • Bear results may now have a confidence parameter: this is supposed to quantify the confidence, on a scale of 1 to 100, the bear has when flagging results.
    • A deprecate_settings decorator has been created to deprecate old, unsupported bear parameters. Please see here for an example usage.
    • Code Simplification has been added to the set of possible fixes that bears can offer.

    Bug Fixes

    • Fixed an issue where errors were generated for lines containing only a single tab character. Issue #2180
    • Fixed an issue with question where stray escape characters may be present. Issue #2546
    • Group questions about missing values in a coafile by bears. Issue #2530
    • An issue where an exception was raised wrongly when the same diff was generated multiple times has been fixed. PR #2465

    Performance

    • Caching is now enabled by default. This is a huge performance improvement for HDD users - we've seen a 2x improvement when coala is run on coala. To disable caching run coala with the --disable-caching flag.
    • An issue where coala takes over 2 seconds to print the help manual through --help has been fixed. Issue #2344
    • A small performance improvement from reusing already loaded file contents.

    Documentation

    • A complete overhaul to the README page with a focus on design and readability.
    • A new FAQ page has been created.
    • Various other documentation pages have been improved with new resources, better explanations, and some corrections.
    • The whole documentation has been moved to a separate repository. Please file any documentation related issues over there.

    Regressions

    • Dropped Python 3.3 support

    Internal Changes

    • There has been a shift of several modules from coala to coala-utils. This includes the whole StringProcessing library, ContextManagers, and some decorators.
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Jun 22, 2016)

              ,o8b,         .o88Oo._
             P    d        d8P         .ooOO8bo._
            d'    p        88                  '*Y8bo.
           .Y    ."         YA                      '*Y8b   __
       db, d" _ooQ.dPQ,     YA                        68o68**8Oo.
     .8'  YI.Y"   b   B      "8D                       *"'    "Y8o
    .Y    ;L 8,    Yq.8       Y8     'YB                       .8D
    B .db_.L  q,   q "q       '8               d8'             8D
    8"    qp   8,  8           8       d8888b          d      AY
           8    ",dP           Y,     d888888         d'  _.oP"
           "q    8;             q.    Y8888P'        d8
            '8    b              "q.  `Y88P'       d8"
             'D,  ,8                Y           ,o8P
               'odY'                     oooo888P"
    

    (Release logo by Fabian Neuschmidt)

    For this release, 32 people from all over the world have contributed about 200 commits over almost two months.

    The focus of this release is certainly on the usability of coala. Usability testing has made us aware of some important difficulties, users have to face when trying out coala. We have implemented a lot of countermeasures to lower this barrier.

    The changelog below summarizes the most important user facing changes. Not listed are especially lots of internal improvements and documentation fixes.

    New Features:

    • Shell Autocompletion
    • Patches are shown without prompting the user if small enough, otherwise diffstats.
    • Bears have metadata and can be browsed. Browse the bear documentation repository for more information on all the bears.
    • Lots of usability improvements! coala will suggest using certain options if no meaningful configuration was supplied.
    • The help was revamped completely and is way easier to read.
    • A --verbose alias is available for -L DEBUG.
    • The default_actions setting accepts globs for bears now.
    • The --apply-patches argument was added to automatically apply all patches.
    • coala supports experimental caching. This can lower the run time to a fraction of the time needed to perform the full analysis. It will be enabled by default in the next release. To use it, invoke coala with --changed-files.
    • Bear showing is divided into a new set of settings: --show-bears shows all bears, --filter-by-language allows to filter them, --show-details and --show-description allow changing verbosity of the output.

    Feature Removals:

    • Tagging was removed.
    • linter does no longer show the executable of the bear by default.

    Performance Improvements:

    • Globs will be internally cached now so they don't need to be retranslated every time. This may show improvements of several seconds when working with a large set of files.
    • coala supports experimental caching. See New Features for more information.
    • coala does not delete *.orig files on startup anymore. This was a huge performance hit especially on HDDs or big file trees. The cleanup can be performed manually by running coala-delete-orig. Instead coala will keep track of *.orig files more smartly.

    Bugfixes:

    • **.py can again be used instead **/*.py.
    • If errors happen before the initialization of logging, tracebacks will be shown.

    For bear writers:

    • Bears can have a number of attributes now, including author information, supported languages or categories. A requirements attribute will help generating requirements definition files more easily in the future.
    • The linter wrapper provides a result_severity and a result_message parameter now.
    • Bears can now delete and rename files.
    • The LanguageDefinition doesn't need a language_family anymore to load language definitions.
    • Results can be created directly from the Bear class more conveniently with self.new_result(...).
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Apr 28, 2016)

     .o88Oo._                                .".      "     .".
    d8P         .ooOO8bo._                   dPo.    O#O   .oPb
    88                  '*Y8bo.              88o.   .o#o.  .o88
    YA                      '*Y8b   __       Y88o.   .8.  .o88Y
     YA                        68o68**8Oo.    W8888O888888888W
      "8D                       *"'    "Y8o    w8888'88'8888w
       Y8     'YB                       .8D     `o88:88:88o'
       '8               d8'             8D       .O8`88'8O.
        8       d8888b          d      AY        oO8I88I8Oo
        Y,     d888888         d'  _.oP"         oO8|88|Oo
         q.    Y8888P'        d8                 oO8.88.8Oo
          "q.  `Y88P'       d8"                  .oO.88.Oo.
            Y           ,o8P                    .oO888888Oo.
                  oooo888P"                    .oO8      8Oo.
                                               +oO8+    +8Oo+
                                               'bo.      .od'
    

    This release is shaped a lot by working on high quality bear writing tools. Our codebase has matured further (improved tests, various internal improvements) and key features for writing and organizing bears were introduced.

    Over the last 1.5 months, 22 unique contributors have helped us at the coala core project.

    This time, the release logo is carefully hand crafted by Max Scholz!

    New features:

    • Smart globbing: use backslashes without an extra escape now if they don't escape delimiters.
    • Results now can have additional information appended.
    • Bears expose information on which languages they support. You can query for bears e.g. with coala --show-language-bears C++ for C++.

    Bugfixes:

    • Linters suppress the output correctly now when checking for linter availibility. (https://github.com/coala-analyzer/coala/issues/1888)
    • The result filter algorithms can handle file additions and deletions now. (https://github.com/coala-analyzer/coala/issues/1866)
    • Ignore statements without a stop statement are now accepted as well (https://github.com/coala-analyzer/coala/issues/2003).

    For bear writers:

    • A tutorial for managing bear dependencies is available in our documentation now.
    • The Result object has a field additional_info which can be used to give an elaborate description of the problem.
    • A typechain() function is now available for easy conditional type conversion. (https://github.com/coala-analyzer/coala/issues/1859)
    • Bears have a name() shortcut now which provides the bear class name.
    • A get_config_directory() function is available that returns the root directory of the project guessed by coala or provided (overridden) by the user.
    • A new linter decorator makes it even easier to write new linter wrappers. (https://github.com/coala-analyzer/coala/issues/1928)

    Notable internal/API changes:

    • FunctionMetadata has a new merge function that can be used to merge function signatures and documentation comments.
    Source code(tar.gz)
    Source code(zip)
  • 0.5.2(Mar 24, 2016)

    Minor bugfixes:

    • Linter prerequisite output is suppressed now
    • the filter_results function had some problems in some cases which have been fixed.
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Mar 17, 2016)

     .o88Oo._
    d8P         .ooOO8bo._
    88                  '*Y8bo.
    YA                      '*Y8b   __
     YA                        68o68**8Oo.
      "8D                       *"'    "Y8o
       Y8     'YB                       .8D
       '8               d8'             8D
        8       d8888b          d      AY
        Y,     d888888         d'  _.oP"
        ,q.    Y8888P'        d8,
        d "q.  `Y88P'       d8" b
        Y,   Y           ,o8P  ,Y
        8q.       oooo888P"   .p8
        8 "qo._           _.op" 8
        8   '"P8866ooo6688P"'   8
        8                       8
        8                       8
        8.                     .8
        "b                     d"
        'b                     d'
         8                     8
         q.                   .p
          q.                 .p
          "qo._           _.op"
            '"P8866ooo6688P"'
    

    With this release we declare coala proudly as beta. Most features are now available and coala is ready for daily use.

    All bears have been moved out of coala into the coala-bears package. If you want to develop bears for coala, you can now install it without the bears just as before. If you want to use the coala official bears, make sure to install the coala-bears package and if needed follow the instructions to install linters needed by the bears for your language.

    According to git shortlog -s -n 5fad168.. 56 people contributed to this release. We sadly cannot name all the new coalaians here but every single one of them helped making coala as awesome and polished as it is today.

    New features:

    • --no-config allows to ignore existing coafiles in the current directory. (https://github.com/coala-analyzer/coala/issues/1838)
    • In-file ignore directives now support globs. (https://github.com/coala-analyzer/coala/issues/1781)
    • coala-json supports the --relpath argument so the JSON output can be moved to other systems reasonably. (https://github.com/coala-analyzer/coala/issues/1593)
    • --bear-dirs are now searched recursively. They are also added to the Python PATH so imports relative to a given bear directory work. (https://github.com/coala-analyzer/coala/issues/1711, https://github.com/coala-analyzer/coala/issues/1712)
    • coala-format exposes the {severity_str} so you can get a human readable severity in your self formatted result representation. (https://github.com/coala-analyzer/coala/issues/1313)
    • Spaces and tabs are highlighted in the CLI to make whitespace problems obvious. (https://github.com/coala-analyzer/coala/issues/606)
    • Actions that are not applicable multiple times are not shown after applying them anymore. (https://github.com/coala-analyzer/coala/issues/1064)
    • Documentation about how to add coala as a pre commit hook has been added: http://coala.readthedocs.org/en/latest/Users/Git_Hooks.html
    • Actions emit a success message now that is shown to the user and improves usability and intuitivity of actions.
    • A warning is emitted if a bear or file glob does not match any bears or files.
    • coala-json supports now a --text-logs argument so you can see your logs in realtime, outside the JSON output if requested. You can output the JSON output only into a file with the new -o argument. (https://github.com/coala-analyzer/coala/issues/847, https://github.com/coala-analyzer/coala/issues/846)
    • coala-ci yields a beautiful output now, showing the issues noninteractively. (https://github.com/coala-analyzer/coala/issues/1256)
    • A coala-delete-orig script is now available to delete autogenerated backup files which were created when a patch was applied. This is called automatically on every coala run. (https://github.com/coala-analyzer/coala/issues/1253)
    • The --limit-files CLI argument was introduced which is especially useful for writing performant editor plugins.

    Exitcode changes:

    • coala returns 5 if patches were applied successfully but no other results were yielded, i.e. the code is correct after the execution of coala but was not before.
    • coala returns 4 now if executed with an unsupported python version.

    Bugfixes:

    • The appdirs module is now used for storing tagged data. (https://github.com/coala-analyzer/coala/issues/1805)
    • Package version conflicts are now handled with own error code 13. (https://github.com/coala-analyzer/coala/issues/1748)
    • Previously inputted values for actions are not stored any more if the action fails. (https://github.com/coala-analyzer/coala/issues/1825)
    • coala doesn't crash any more on Windows when displaying a diff. Happened due to the special chars used for whitespace-highlighting Windows terminals do not support by default. (https://github.com/coala-analyzer/coala/issues/1832)
    • Escaped characters are written back to the .coafile correctly. (https://github.com/coala-analyzer/coala/issues/921)
    • coala-json doesn't show logs when invoked with -v or -h anymore (https://github.com/coala-analyzer/coala/issues/1377)
    • Keyboard interrupts are handled more cleanly. (https://github.com/coala-analyzer/coala/issues/871)
    • Tagging will only emit a warning if the data directory is not writable instead of erroring out. (https://github.com/coala-analyzer/coala/issues/1050)
    • Unicode handling has been improved. (https://github.com/coala-analyzer/coala/issues/1238)
    • Cases where --find-config has not found the configuration correctly have been resolved. (https://github.com/coala-analyzer/coala/issues/1246)
    • Some cases, where result ignoring within files didn't work have been resolved. (https://github.com/coala-analyzer/coala/issues/1232)

    For bear writers:

    • A new built-in type is available from Setting for using inside run() signature: url.
    • Lint based bears have a new argument which can be set to test whether a command runs without errors. This can be used to check for example the existence of a Java module. (https://github.com/coala-analyzer/coala/issues/1803)
    • The CorrectionBasedBear and Lint class have been merged into the new and more powerful Lint class to make linter integration even easier. It also supports you if you need to generate an actual configuration file for your linter.
    • LocalBearTestHelper as well as the verify_local_bear have been revamped to make it even easier to test your bears and debug your tests.
    • File dictionaries are now given as tuples and are thus not modifyable.
    • A number of new tutorials about bear creation have been written.
    • Bears can now be registered at coala and thus be distributed as own packages.

    Notable internal changes:

    • API documentation is now available at http://coala.readthedocs.org/en/latest/API/modules.html
    • coala switched to PyTest. Our old own framework is no longer maintained. (https://github.com/coala-analyzer/coala/issues/875)
    • As always loads of refactorings to make the code more stable, readable and beautiful!
    • The main routines for the coala binaries have been refactored for less redundancy. If you are using them to interface to coala directly, please update your scripts accordingly.
    • Loads of new integration tests have been written. We're keeping our 100% test coverage promise even for all executables now.
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Jan 30, 2016)

        88        .o88Oo._
       8 |8      d8P         .ooOO8bo._
      8  | 8     88                  '*Y8bo.
      8\ | /8    YA                      '*Y8b   __
     8  \|/ 8     YA                        68o68**8Oo.
     8\  Y  8      "8D                       *"'    "Y8o
     8 \ | /8       Y8     'YB                       .8D
    8   \|/ /8     '8               d8'             8D
    8\   Y / 8       8       d8888b          d      AY
    8 \ / /  8       Y,     d888888         d'  _.oP"
    8  \|/  8         q.    Y8888P'        d8
    8   Y   8          "q.  `Y88P'       d8"
     8  |  8             Y           ,o8P
      8 | 8                    oooo888P"
    

    New features:

    • Auto-apply can be enabled/disabled through the autoapply setting in a coafile.
    • Auto-applied actions print the actual file where something happened.
    • A new bear was added, the GitCommitBear! It allows to check your current commit message at HEAD from git!
    • Filenames of results are now printed relatively to the execution directory. (https://github.com/coala-analyzer/coala/issues/1124)

    Bugfixes:

    • coala-json outputted results for file-ranges that were excluded. (https://github.com/coala-analyzer/coala/issues/1165)
    • Auto-apply actions that failed are now marked as unprocessed so the user can decide manually what he wants to do with them. (https://github.com/coala-analyzer/coala/issues/1202)
    • SpaceConsistencyBear: Fixed misleading message when newline at EOF is missing. (https://github.com/coala-analyzer/coala/issues/1185)
    • Results from global bears slipped through our processing facility. Should not happen any more.
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Dec 30, 2015)

    coala 0.3.0

    (You can read the release announcement on http://wordpress.schuirmann.eu/2015/12/coala-platypus/)

    We are dropping Python 3.2 support (and so PyPy). Also we are removing translations, the default language is English.

    This release contains these following feature changes:

    • Auto-apply feature added! Results can directly be processed without user interaction specifying the desired action!
    • A missing coafile that is explicitly wanted through the --config flag throws an error instead of a warning. Only default coafile names (ending with .coafile) raise a warning.
    • Various new bears integrating existing linter tools, e.g. for C/C++, Python, Ruby, JSON and many more!
    • Allow to ignore files inside the coafile.
    • Results can now be stored and tagged with an identifier for accessing them later.
    • OpenEditorAction lets the user edit the real file instead of a temporary one.
    • All usable bears can now be shown with --show-all-bears.
    • Only # is supported for comments in the configuration file syntax.
    • Multiple actions can now be executed on the CLI.
    • Patches can now be shown on the CLI.
    • A coala-format binary was added that allows customized formatting for results to ease integration in other systems.
    • Printing utilities have moved into the PyPrint library.

    New bears:

    • Lots! Just do coala -A to find out about them!

    Bear API changes:

    • A bear can implement check_prerequisites to determine whether it can execute in the current runtime.
    • The PatchResult class was merged into the Result class.

    Bear changes:

    • SpaceConsistencyBear offers more verbose and precise information about the problem.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jul 25, 2015)

     .o88Oo._
    d8P         .ooOO8bo._
    88                  '*Y8bo.
                          '*Y8b   __
     YA                        68o68**8Oo.     _.o888PY88o.o8
      "8D                       *"'    "Y8o.o88P*'         Y.
       Y8     'YB                       .8D                 Y.
       '8               d8'             8D             o     8
        8       d8888b          d      AY   o               d'
        Y,     d888888         d'  _.oP"         d88b       8
         q.    Y8888P'        d8       Y,       d8888       P
          "q.  `Y88P'       d8"         q.      Y888P     .d'
             Y           ,o8P            "q      `"'    ,oP
                  oooo888P"               `Y         .o8P"
                                              8ooo888P"
    

    This release features the following feature changes:

    • --find-config flag: Searches for .coafile in all parent directories.
    • Add code clone detection bears and algorithms using CMCD approach.
    • Console color gets properly disabled now for non-supporting platforms (like Windows).
    • coala results can be outputted to JSON format using the coala-json command.
    • Automatically add needed flags to open a new process for some editors.
    • Save backup before applying actions to files.
    • Return nonzero when erroring or yielding results.
    • Write newlines before beginning new sections in coafiles when appropriate.
    • The default_coafile can now be used for arbitrary system-wide settings.
    • coala can now be configured user-wide with a ~/.coarc configuration file.
    • Manual written documentation is now hosted at http://coala.rtfd.org/.
    • Changed logging API in Bears (now: debug/warn/err).
    • clang python bindings were added to the bearlib.
    • Exitcodes were organized and documented. (http://coala.readthedocs.org/en/latest/Users/Exit_Codes/)
    • Handling of EOF/Keyboard Interrupt was improved.
    • Console output is now colored.
    • Bears can now easily convert settings to typed lists or dicts.
    • Bears have no setUp/tearDown mechanism anymore.
    • Colons cannot be used for key value seperation in configuration files anymore as that clashes with the new dictionary syntax. Use = instead.
    • The --job-count argument was removed for technical reasons. It will be re-added in the near future.
    • A --show-bears parameter was added to get metainformation of bears.
    • The coala versioning scheme was changed to comply PEP440.
    • coala --version now gives the version number. A released dev version has the build date appended, 0 for local versions installed from source.
    • A coala-dbus binary will now be installed that spawns up a dbus API for controlling coala. (Linux only.)
    • The StringProcessing libary is there to help bear writers deal with regexes and similar things.
    • A new glob syntax was introduced and documented. (http://coala.readthedocs.org/en/latest/Users/Glob_Patterns/)
    • The --apply-changes argument was removed as its concept does not fit anymore.
    • Bears can now return any iterable. This makes it possible to yield results.

    New bears:

    • ClangCloneDetectionBear
    • LanguageToolBear
    • PyLintBear

    Infrastructural changes:

    • Tests are executed with multiple processes.
    • Branch coverage raised to glorious 100%.
    • We switched from Travis CI to CircleCI as Linux CI.
    • AppVeyor (Windows CI) was added.
    • Travis CI was added for Mac OS X.
    • Development releases are automatically done from master and available via pip install coala --pre.
    • Rultor is now used exclusively to push on master. Manual pushes to master are not longer allowed to avoid human errors. Rultor deploys translation strings to Zanata and the PyPI package before pushing the fastforwarded master.

    Internal code changes:

    • Uncountable bugfixes.
    • Uncountable refactorings touching the core of coala. Code has never been more beautiful.

    We are very happy that 7 people contributed to this release, namely Abdeali Kothari, Mischa Krüger, Udayan Tandon, Fabian Neuschmidt, Ahmed Kamal and Shivani Poddar (sorted by number of commits). Many thanks go to all of those!

    coala's code base has grown sanely to now over 12000 NCLOC with almost half of them being tests.

    We are happy to announce that Mischa Krüger is joining the maintainers team of coala.

    Furthermore we are happy to announce basic Windows and Mac OS X support. This would not have been possible without Mischa and Abdeali. coala is fully tested against Python 3.3 and 3.4 on Windows and 3.2, 3.3, 3.4 and Pypy3 on Mac while not all builtin bears are tested. coala is also tested against Pypy3 and Python 3.5 beta (in addition to 3.3 and 3.4) on Linux.

    Note that this is a prerelease, thus this release will be supported with only important bugfixes for limited time (at least until 0.3.0 is released).

    Released by Rultor 1.56.2, see build log

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1-alpha(Feb 23, 2015)

    This patch release fixes a major usability issue where data entered into the editor may be lost.

    coala 0.1 provides basic functionality. It is not feature complete but already useful according to some people.

    For information about the purpose of coala please look at the README provided with each source distribution.

    Note that this is a prerelease, thus this release will be supported with only important bugfixes for limited time (at least until 0.2.0 is released). Linux is the only supported platform.

    Documentation for getting started with coala is provided here: https://github.com/coala-analyzer/coala/blob/v0.1.0-alpha/TUTORIAL.md

    If you want to write static code analysis routines, please check out this guide: https://github.com/coala-analyzer/coala/blob/v0.1.0-alpha/doc/getting_involved/WRITING_BEARS.md

    We love bugs - if you find some, be sure to share it with us: https://github.com/coala-analyzer/coala/issues

    Source code(tar.gz)
    Source code(zip)
    coala-0.1-1.noarch.rpm(119.90 KB)
    coala-0.1.linux-x86_64.tar.gz(91.52 KB)
    coala-0.1.linux-x86_64.zip(159.63 KB)
    source-coala-0.1.tar.gz(52.16 KB)
    source-coala-0.1.zip(76.11 KB)
  • v0.1.0-alpha(Feb 21, 2015)

    Attention: This release has known major bugs when using the "open editor" action. See #316. This is fixed in the 0.1.1-alpha version.

    coala 0.1 provides basic functionality. It is not feature complete but already useful according to some people.

    For information about the purpose of coala please look at the README provided with each source distribution.

    Note that this is a prerelease, thus this release will be supported with only important bugfixes for limited time (at least until 0.2.0 is released). Linux is the only supported platform.

    Documentation for getting started with coala is provided here: https://github.com/coala-analyzer/coala/blob/v0.1.0-alpha/TUTORIAL.md

    If you want to write static code analysis routines, please check out this guide: https://github.com/coala-analyzer/coala/blob/v0.1.0-alpha/doc/getting_involved/WRITING_BEARS.md

    We love bugs - if you find some, be sure to share it with us: https://github.com/coala-analyzer/coala/issues

    Source code(tar.gz)
    Source code(zip)
    coala-0.1-1.noarch.rpm(119.76 KB)
    coala-0.1.linux-x86_64.tar.gz(91.36 KB)
    coala-0.1.linux-x86_64.zip(159.52 KB)
    source-coala-0.1.tar.gz(52.10 KB)
    source-coala-0.1.zip(76.05 KB)
Owner
coala development group
coala development group
Inspects Python source files and provides information about type and location of classes, methods etc

prospector About Prospector is a tool to analyse Python code and output information about errors, potential problems, convention violations and comple

Python Code Quality Authority 1.6k Apr 4, 2022
A very minimalistic python module that lets you track the time your code snippets take to run.

Clock Keeper A very minimalistic python module that lets you track the time your code snippets take to run. This package is available on PyPI! Run the

Rajdeep Biswas 1 Jan 19, 2022
Metrinome is an all-purpose tool for working with code complexity metrics.

Overview Metrinome is an all-purpose tool for working with code complexity metrics. It can be used as both a REPL and API, and includes: Converters to

null 20 Jan 12, 2022
Collects all accepted (partial and full scored) codes submitted within the given timeframe and saves them locally for plagiarism check.

Collects all accepted (partial and full scored) codes submitted within the given timeframe of any contest.

ARITRA BELEL 2 Dec 28, 2021
Turn your Python and Javascript code into DOT flowcharts

Notes from 2017 This is an older project which I am no longer working on. It was built before ES6 existed and before Python 3 had much usage. While it

Scott Rogowski 2.4k Apr 5, 2022
Print a directory tree structure in your Python code.

directory-structure Print a directory tree structure in your Python code. Download You can simply: pip install directory-structure Or you can also: Cl

Gabriel Stork 40 Mar 9, 2022
Robocop is a tool that performs static code analysis of Robot Framework code.

Robocop Introduction Documentation Values Requirements Installation Usage Example Robotidy FAQ Watch our talk from RoboCon 2021 about Robocop and Robo

marketsquare 87 Mar 27, 2022
CodeAnalysis - Static Code Analysis: a code comprehensive analysis platform

TCA, Tencent Cloud Code Analysis English | 简体中文 What is TCA Tencent Cloud Code A

Tencent 1.1k Apr 2, 2022
Alarmer is a tool focus on error reporting for your application.

alarmer Alarmer is a tool focus on error reporting for your application. Installation pip install alarmer Usage It's simple to integrate alarmer in yo

long2ice 19 Dec 27, 2021
Python package to parse and generate C/C++ code as context aware preprocessor.

Devana Devana is a python tool that make it easy to parsing, format, transform and generate C++ (or C) code. This tool uses libclang to parse the code

null 5 Apr 3, 2022
Find dead Python code

Vulture - Find dead code Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code bases. If you r

Jendrik Seipp 2.1k Apr 9, 2022
Code audit tool for python.

Pylama Code audit tool for Python and JavaScript. Pylama wraps these tools: pycodestyle (formerly pep8) © 2012-2013, Florent Xicluna; pydocstyle (form

Kirill Klenov 868 Apr 1, 2022
The uncompromising Python code formatter

The Uncompromising Code Formatter “Any color you like.” Black is the uncompromising Python code formatter. By using it, you agree to cede control over

Python Software Foundation 26.8k Apr 3, 2022
A static type analyzer for Python code

pytype - ? ✔ Pytype checks and infers types for your Python code - without requiring type annotations. Pytype can: Lint plain Python code, flagging c

Google 3.7k Apr 5, 2022
Learning source code review, spot vulnerability, find some ways how to fix it.

Learn Source Code Review Learning source code review, spot vulnerability, find some ways how to fix it. WordPress Plugin Authenticated Stored XSS on C

Shan 11 Sep 1, 2021
An app to show the total number of lines of code written by an user.

Lines of code Have you ever wondered how many lines of code you wrote in github? This tool will calculate it for you! To calculate the total number of

B.Jothin kumar 10 Jan 26, 2022
Find usage statistics (imports, function calls, attribute access) for Python code-bases

Python Library stats This is a small library that allows you to query some useful statistics for Python code-bases. We currently report library import

Francisco Massa 13 Mar 15, 2022
This is a Python program to get the source lines of code (SLOC) count for a given GitHub repository.

This is a Python program to get the source lines of code (SLOC) count for a given GitHub repository.

Nipuna Weerasekara 2 Mar 10, 2022
A simple stopwatch for measuring code performance with static typing.

A simple stopwatch for measuring code performance. This is a fork from python-stopwatch, which adds static typing and a few other things.

Rafael 2 Feb 18, 2022