624cc4f Jul 6, 2016
@acrmp @tas50 @lamont-granquist @odcinek @miketheman
609 lines (398 sloc) 46.8 KB

FoodCritic Changelog:

7.0.1 (2016-07-06)

Full Changelog

Merged pull requests:

7.0.0 (2016-07-05)

Full Changelog

Implemented enhancements:

  • Remove support for Ruby 2.0 #465 (tas50)
  • Remove chef version support for Chef 0.7, 0.8, 0.9, and 0.10 #464 (tas50)
  • Add chef 12.11.18 metadata and make it the default #461 (tas50)
  • FC032 allow the new :before timing on resource notifications in Chef >= 12.6.0 #441 (gnjack)
  • New cookbook_maintainer api methods #248 (miguelcnf)

Merged pull requests:

  • Resolve a few simple Rubocop lint / performance cops #463 (tas50)
  • Remove unnecessary requires #460 (tas50)

v6.3.0 (2016-05-16)

Full Changelog

Implemented enhancements:

  • Add Chef 12.10.24 metadata and release 6.3.0 #456 (tas50)

v6.2.0 (2016-04-26)

Full Changelog

Implemented enhancements:

  • Add 12.9.38 metadata and make it the default chef version #452 (tas50)

v6.1.1 (2016-04-08)

Full Changelog

Implemented enhancements:

  • Use latest gherkin for faster installs #447 (jkeiser)

v6.1.0 (2016-04-06)

Full Changelog

Implemented enhancements:

  • Don't require cucumber and rubocop to run rake #444 (jkeiser)
  • Add metadata for Chef 12.7.2 and update instructions #427 (tas50)
  • Add 12.8.1 metadata + update metadata process #438 (tas50)

Merged pull requests:

  • Include gemspec and Gemfiles in distributed gem for ease of working with / running tests #443 (jkeiser)
  • Test on Ruby 2.3.0 #439 (tas50)
  • Rake.last_comment was depreciated in Rake11. #434 (gkuchta)

v6.0.1 (2016-02-22)

Full Changelog

Implemented enhancements:

Fixed bugs:

v6.0.0 (14 January, 2016)

Features:

  • Added FC055 to ensure that metadata.rb contains a maintainer
  • Added FC056 to ensure that metadata.rb contains a maintainer_email
  • Added FC057 to ensure that library providers include use_inline_resources
  • Added FC058 to ensure that library providers that include use_inline_resources and action_

    methods

  • Added FC059 to ensure that LWRPs include use_inline_resources

  • Added FC060 to ensure that LWRPs don't use bad action methods

  • Added FC061 to ensure that the cookbook version is valid

  • Added FC062 to ensure that metadata includes a version

  • Added FC063 to ensure that a cookbook doesn't depend on itself in the metadata
  • Added DSL metadata for Chef 12.5.1 and 12.6.0
  • Added new chef11 and chef12 tags for rules related to changes in those Chef releases
  • Added Oracle as an equivalent platform for the RHEL platform family in FC024
  • Removed the Mustache pin to 0.99 in the Gemfile since we require Ruby 2.0+ now

Bugfixes:

  • Renamed FC045 from 'Consider setting cookbook name in metadata' to 'Metadata does not contain cookbook name' as Chef 12 requires name metadata
  • Renamed FC015 from 'Consider converting definition to a LWRP' to 'Consider converting definition to a Custom Resource' since 12.5+ Custom Resources are a prefered pattern over LWRPs now
  • Changed FC045's annoyances tag to a correctness tag as name in metadata is now a requirement not an annoyance
  • Fixed the Rake tasks
  • Fixed FC048 incorrectly firing when a method name included "system"

5.0.0 (17 September, 2015)

Features:

Bugfixes:

  • Fixed node.force_default and node.force_override along with many other methods on Chef::Node::Attribute that Chef::Node#method_missing was forwarding methods to. (related issue).
  • merge default options before check instead of during intialization (in Rake task) (related issue).
  • Fix UTF-8 errors in template checking (related issue).
  • Make FC041 smarter about CURL usage (related issue).
  • pinned moustache gem to 0.99 for ruby 1.9.3 compatibility Thanks @jdmundrawala
  • Added metadata for missing Chef 11 versions. Thanks @jdmundrawala
  • FC044: Avoid bare attribute keys would fire on parameterized attributes. Thanks @odcinek
  • FC048: Prefer Mixlib::ShellOut would false positive on system attribute of user resource. Thanks @odcinek
  • Handle flagging binary files properly. Thanks @odcinek
  • FC002: Avoid string interpolation where not required would erroneously trigger on heredoc on ruby 2.2 Thanks @ryansouza and @odcinek

Other:

  • 1.9.3 is removed from the travis matrix and no longer supported (related issue).
  • 1.9.3 compat is removed from the gemspec (v4.0.0 will be the last version that will install on 1.9.3) (related issue).
  • removed cookbooks no longer present in the chef-cookbooks repo from regression tests

4.0.0 (12th June, 2014)

Features:

Bugfixes:

Other:

  • Ruby 1.9.2 support has been removed.
  • The default DSL metadata version has been bumped to 11.10.4 (related issue). Thanks @kmshultz.

3.0.3 (13th October, 2013)

Bugfixes:

3.0.2 (5th October, 2013)

Bugfixes:

3.0.1 (25th September, 2013)

Other:

  • Rake version constraint removed to make packaging easier for users who deploy foodcritic alongside Omnibus Chef.

3.0.0 (14th September, 2013)

Features:

Bugfixes:

Other:

  • This release introduces breaking changes to programmatic use of foodcritic.

2.2.0 (10th July, 2013)

Features:

  • Additional rules may now be shipped as gems. Files matching the path foodcritic/rules/**/*.rb will be loaded if the --search-gems option is specified (related issue). Thanks to @rteabeault for implementing this feature.
  • You can now control the rules applied to individual cookbooks by including a .foodcritic file at the root of your cookbook with the tags you want checked (related issue). Thanks to @sabat for implementing this feature.
  • The project license is now included in the built gem (related issue). Thanks @stefanor.
  • Foodcritic no longer uses the rak gem to generate output with context (related issue). Thanks to @stefanor for re-implementing context output to remove this dependency.
  • A man page is now included with foodcritic in ronn-format. Thanks @stefanor.

Bugfixes:

2.1.0 (17th April, 2013)

Features:

  • DSL metadata will now reflect the version of Chef selected with --chef-version. For example this means that FC009: Resource attribute not recognised will warn about attributes not present in the specified version of Chef.

Bugfixes:

Other:

  • Known to run on MRI 2.0.0 - added to Travis CI matrix.

2.0.1 (31st March, 2013)

Bugfixes:

  • Matches that should be ignored were not if the rule implementation used the cookbook block (related issue).
  • FC033: Missing Template would warn incorrectly when the template resource was nested within another resource (related issue). Thanks @justinforce.
  • The #resource_attributes API method now copes with nested resources.

2.0.0 (24th March, 2013)

Features

  • Support added for ignoring individual matches. To ignore a match add a comment to the affected line in your cookbook of the format # ~FC006 (related issue). Big thanks to @grosser.
  • Command line help now specifies the tag to use to fail the build on any rule match (related issue). Thanks @grosser.
  • FC046: Attribute assignment uses assign unless nil rule added (related issue). Thanks @jaymzh.

Bugfixes:

Other:

  • The --repl command line flag has been removed. This feature little used and was problematic for users attempting to use newer versions of pry or guard (related issue). Thanks @jperry, @miketheman, @jtimberman.
  • The os_command? api method has been removed.
  • The deprecated cookbook_path and valid_path? methods have been removed. This may cause breakage if you are using foodcritic programatically from Ruby. Please update your code to use the cookbook_paths and valid_paths? methods instead.
  • Added regression test for expected output against opscode-cookbooks. Run bundle exec rake regressions to perform this test.

1.7.0 (27th December, 2012)

Features

Bugfixes:

1.6.1 (31st August, 2012)

Bugfixes:

1.6.0 (28th August, 2012)

Bugfixes:

  • Removed FC035: Template uses node attribute directly. For a discussion of the reasons for removal see the related issue.

1.5.1 (21st August, 2012)

Bugfixes:

  • Remove pry-doc dependency to resolve pry version conflict.

1.5.0 (21st August, 2012)

Features:

Bugfixes:

  • FC020: Conditional execution string attribute looks like Ruby rule has been removed as unreliable.
  • The #attribute_access API method now correctly allows a type of :any.
  • The #notifications API method now supports notifications enclosed in braces (related issue).
  • Ensure command-line help is shown when an invalid option is passed. Thanks to @juanje for finding and fixing this issue.

1.4.0 (15th June, 2012)

Features:

Bugfixes:

1.3.1 (9th June, 2012)

Bugfixes:

  • Changes made to support multiple cookbook paths in 1.3.0 broke compatibility with earlier versions of the linting API. This release restores compatibility with third party code that uses the linter #cookbook_path or #valid_path? methods.
  • The Nokogiri dependency constraint has been locked to 1.5.0 again as Nokogiri 1.5.3 also appears to segfault in certain circumstances.

1.3.0 (21st May, 2012)

Features:

Bugfixes:

Other:

1.2.0 (21st April, 2012)

Features:

Bugfixes:

1.1.0 (25th March, 2012)

Features:

Bugfixes:

  • The cookbook_name method now reflects the cookbook name if specified in metadata. This prevents a warning from being shown by FC007: Ensure recipe dependencies are reflected in cookbook metadata if the cookbook is in a differently named directory.
  • The declared_dependencies method previously would intermix version strings in the list of cookbook names.

Other:

  • Chef 0.10.10 will include a new DSL method for defining a default_action for resources. Rule FC016: LWRP does not declare a default action has been updated to recognise the DSL change.
  • Nokogiri dependency constraint changed to no longer lock to 1.5.0 as their next release should include the fix for custom XPath functions.

1.0.1 (15th March, 2012)

Bugfixes:

  • Nokogiri 1.5.1 and 1.5.2 cause a segfault so prevent their use until a fix is released (related issue). Thanks @miah.

1.0.0 (4th March, 2012)

Features:

  • New -I option added to specify the path to your own custom rules (related issue).
  • The Rule API was previously not supported and subject to change without warning. From this release it will now follow the same versioning policy as the command line interface.
  • A version flag (--version or -V) has been added (related issue).

Bugfixes:

0.11.1 (29th February, 2012)

Bugfixes:

  • Foodcritic could fail to activate yajl-json in some circumstances, failing with a runtime error. Whether this occurred was dependent on the version of yajl-ruby activated by Chef, which would vary dependent on the other gems installed on the system. See the related issue for more information. Thanks @jaymzh for identifying the issue and striving to get Foodcritic playing well with Omnibus.

0.11.0 (22nd February, 2012)

Bugfixes:

0.10.0 (20th February, 2012)

Features:

  • Performance improvements.
  • FC023: Prefer conditional attributes rule added. Stolen from @ampledata with thanks.
  • New -S option added to allow an alternate search grammar to be specified.

Other:

  • Chef is no longer loaded at startup for performance reasons. Foodcritic now ships with Chef DSL metadata.

0.9.0 (26th January, 2012)

Features:

Bugfixes:

Other:

0.8.1 (20th January, 2012)

Bugfixes:

0.8.0 (19th January, 2012)

Features:

Other:

  • Rule 'FC016: LWRP does not declare a default action' was incorrectly checking the provider for a default action rather than the resource. Removed this rule temporarily to avoid showing false positives. A user has patched this and will be submitting a pull request shortly.

0.7.0 (31st December, 2011)

Features:

  • New -f option added to allow you to specify which warnings should result in the build being failed. See the new documentation on using Foodcritic in Continuous Integration for more information.
  • New -r option added to drop you into the Pry REPL to interactively develop rules. See the updated documentation on Writing a new rule for more information.

Bugfixes:

Other:

  • Project features now run much faster, running in-process by default. You can set an environment variable (FC_FORK_PROCESS) to specify that Cucumber runs should match the earlier behaviour and spawn a separate process using Aruba.

0.6.0 (18th December, 2011)

Features:

Bugfixes:

0.5.2 (15th December, 2011)

Bugfixes:

  • Fix JSON version range for compatibility with Bundler / Chef 0.10.6. (related issue). Thanks @dysinger.

0.5.1 (14th December, 2011)

Features:

  • Relaxed Ruby version constraint so we can run on 1.9.2 (related issue). Yay. Thanks @someara.

0.5.0 (13th December, 2011)

Features:

0.4.0 (10th December, 2011)

Features:

Bugfixes:

  • Fixed typo in FC004 feature description (related issue). Thanks @smith.
  • Prevented statements within nested resource blocks from being interpreted as resource attributes.

0.3.0 (4th December, 2011)

Features:

  • Significantly slower! But now you can write rules using xpath or css selectors.
  • FC006: File mode rule added.
  • FC007: Undeclared recipe dependencies rule added.

0.2.0 (1st December, 2011)

Bugfixes:

  • Removed 'FC001: Use symbols in preference to strings to access node attributes' until a policy mechanism is introduced (related issue). Thanks @jtimberman

0.1.0 (30th November, 2011)

Initial version.