All Versions
Latest Version
Avg Release Cycle
8 days
Latest Release

Changelog History
Page 6

  • v0.8.3 Changes

    • โšก๏ธ Do not run CheckForUpdates on CI systems and in editor integrations
  • v0.8.2 Changes

    • โ™ป๏ธ Refactor all consistency checks, providing a nice speed improvement (thx @little-bobby-tables)
    • ๐Ÿ‘Œ Improve Elixir 1.5 compatibility
  • v0.8.1 Changes

    • ๐Ÿ›  Fix misleading issue message for LongQuoteBlocks
  • v0.8.0 Changes

    • Load source files in parallel
    • ๐Ÿ‘Œ Improve high memory consumption
    • ๐Ÿ›  Fix comment handling of Charlists, Sigils and Strings
    • 0๏ธโƒฃ LazyLogging now only checks for debug calls by default
    • โž• Add --mute-exit-status CLI switch, which mutes Credo's exit status (this will be used for integration tests as it means that any non-zero exit status results from a runtime error of Credo)
    • โž• Add default param values to mix explain output
    • TagTODO and TagFIXME now also report tags from doc-related module attributes (@doc, @moduledoc, @shortdoc)
    • ๐Ÿ›  Fix false positives for TrailingWhiteSpace
    • ๐Ÿ›  Fix compiler warnings for Sigils


    These changes concern people writing their own checks for Credo.

    • โ™ป๏ธ Credo.SourceFile struct was refactored: source, lines and ast are now stored in ETS tables.
    • Credo.Config struct was replaced by Credo.Execution.
    • run/3 callbacks for Credo.Check are now run/4 callbacks as they have to receive the execution's Credo.Execution struct.

    ๐Ÿ‘• Config Comments replace @lint attributes

    ๐Ÿ‘• @lint attributes are deprecated and will be removed in Credo 0.9.0 because โš  they are causing a compiler warning in Elixir >= 1.4.

    ๐Ÿ‘‰ Users of Credo can now disable individual lines or files for all or just specific checks.

    For now, config comments let you exclude individual files completely

    # credo:disable-for-this-file
    defmodule SomeApp.ThirdPartyCode do

    or deactivate specific lines:

    def my_fun do
      # credo:disable-for-next-line
      IO.inspect :this_is_actually_okay

    or add the check module to exclude just that one check:

    def my_fun do
      # credo:disable-for-next-line Credo.Check.Warning.IoInspect
      IO.inspect :this_is_actually_okay

    or use a Regex to be more flexible which checks to exclude:

    def my_fun do
      # credo:disable-for-next-line /IoInspect/
      IO.inspect :this_is_actually_okay

    Here's a list with the syntax options:

    • # credo:disable-for-this-file - to disable for the entire file
    • # credo:disable-for-next-line - to disable for the next line
    • # credo:disable-for-previous-line - to disable for the previous line
    • # credo:disable-for-lines:<count> - to disable for the given number of lines (negative for previous lines)

    ๐Ÿ†• New checks

    • โ™ป๏ธ Credo.Check.Refactor.LongQuoteBlocks
  • v0.7.4 Changes

    • ๐Ÿ›  Fix false positives in SpacesAroundOperators
    • ๐Ÿ›  Fix --all CLI switch
    • Always enforce strict mode for <filename>:<line_no>
    • ๐Ÿ‘Œ Improve docs on checks
    • 0๏ธโƒฃ Disable MultiAliasImportRequireUse by default

    Disabled checks

    • Credo.Check.Consistency.MultiAliasImportRequireUse
  • v0.7.3 Changes

    • ๐Ÿ›  Fix filename annotation when using --read-from-stdin
    • ๐Ÿ›  Fix filename handling on Windows
    • ๐Ÿ›  Fix consistency checks triggered by contents of sigils
    • ๐Ÿ›  Fix consistency checks triggered by contents of charlists

    ๐Ÿ†• New check

    • โš  Credo.Check.Warning.LazyLogging
  • v0.7.2 Changes

    • ๐Ÿ›  Fix @lint attribute deprecation hint
    • ๐Ÿ›  Fix filename handling bug for Windows
    • ๐Ÿ›  Fix flycheck formatting
    • โž• Add param to ignore strings/heredocs in TrailingWhiteSpace

    ๐Ÿ†• New check

    • Credo.Check.Readability.SpaceAfterCommas
  • v0.7.1 Changes

    • ๐Ÿ›  Fix --config_nameCLI switch
    • ๐Ÿ›  Fix UI.wrap_at/2 for Unicode strings
    • ๐Ÿ›  Fix false positive for ModuleNames
  • v0.7.0 Changes

    • โž• Added deprecation hint about @lint attributes
    • ๐Ÿ›  Fixed file inclusion/exclusion bug
    • ๐Ÿ›  Fixed false positives in SpaceAroundOperators
    • ๐Ÿ—„ Deprecated NameRedeclarationBy* checks
    • ๐Ÿ›  Fixed false positives in PipeChainStart
    • ๐Ÿ”„ Changed AppendSingleItem's priority and make it opt-in
    • ๐Ÿ“‡ Renamed NoParenthesesWhenZeroArity to ParenthesesOnZeroArityDefs
    • ๐Ÿ›  Fixed a bug in ParenthesesOnZeroArityDefs

    โž• Added/deprecated checks

    • โš  Credo.Check.Warning.MapGetUnsafePass
    • โ™ป๏ธ Credo.Check.Refactor.AppendSingleItem
    • Credo.Check.Readability.Semicolons

    0๏ธโƒฃ Switched some checks to opt-in by default

    • Credo.Check.Readability.Specs
    • โ™ป๏ธ Credo.Check.Refactor.ABCSize
    • โ™ป๏ธ Credo.Check.Refactor.VariableRebinding
    • โš  Credo.Check.Warning.MapGetUnsafePass
    • โš  Credo.Check.Warning.NameRedeclarationByAssignment
    • โš  Credo.Check.Warning.NameRedeclarationByCase
    • โš  Credo.Check.Warning.NameRedeclarationByDef
    • โš  Credo.Check.Warning.NameRedeclarationByFn
  • v0.6.1 Changes

    • ๐Ÿ›  Fixed false positives for StringSigils in heredocs
    • ๐Ÿ›  Fixed a bug in SourceFile.column