Skip to content

Conversation

@danirod
Copy link

@danirod danirod commented Nov 11, 2017

A lot of noisy deprecations are being logged during site compilation when building a Jekyll site. I have been able to reproduce this for a few Jekyll versions. During compilation, the following message is logged several times per build:

Deprecation: Called by ["/usr/local/rvm/gems/ruby-2.3.5/gems/jekyll-3.6.2/lib/jekyll/document.rb:374:in `method_missing'"].
Deprecation: Document#tags is now a key in the #data hash.

It appears that the more pages in the main loop, the more times this message is logged. When serving a site using the --watch option, there are so many deprecation warnings that it makes hard to debug other issues with the site or to inspect the logs.

This PR fixes this behaviour by using the new syntax proposed in Jekyll to access the categories and the tags for a post, removing the deprecation messages.

I've successfully tested this to work by using the test suite provided with this gem and by using a patched version of octopress-paginate with this PR applied to build my site and in both cases the deprecation messages are gone. CI tests will still fail because the test suite has other unrelated errors.

At some point, Jekyll moved the categories and tags for a post into the
data hash, deprecating the accessors. Using p.categories or p.tags
for accessing the list of categories or tags for a post p has been
deprecated for a while, being the data hash p['categories'] / p['posts']
the preferred way for accesing those parameters.

This commit uses the data hash instead of the accessors to avoid the
noisy deprecation warnings that log a lot of warnings during the
compilation of a site.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant