Awesome Ruby has a "changelog" section under all projects. You can find it next to the "Repo" button in the header. There are two features that make it unique.

  1. It is an aggregation of parsed "CHANGELOG.md" files and releases information from Github. This way, it is easier to see all changes in a single place and a uniform style.
  2. All changelogs are "emojified". This helps with identifying each change easier. Emojification is achieved by parsing each line and applying a specific emoji based on the first word or some other tokens.

The combination of the above two makes gem changelogs on Awesome Ruby unique.

As you know, an example is worth a 1,000 words πŸš€

Changelog examples

  • drone 1.3.0 (August 20, 2019)

    βž• Added

    πŸ›  Fixed

  • Jekyll 4.0.0 (August 20, 2019)

    Major Enhancements

    • ⬇️ Drop ruby 2.3 (#7454)
    • ⬇️ Drop support for Ruby 2.1 and 2.2 (#6560)
    • ⬇️ Drop support for older versions of Rouge (#6978)
    • ⬇️ Drop support for pygments as syntax-highlighter (#7118)
    • ⬇️ Drop support for Redcarpet (#6987)
    • ⬇️ Drop support for rdiscount (#6988)
    • ⬇️ Drop support for jekyll-watch-1.4.0 and older (#7287)
    • Incorporate relative_url filter in link tag (#6727)
    • ⬆️ Upgrade kramdown dependency to v2.x (#7492)
    • ⬆️ Upgrade jekyll-sass-converter to v2.x - Sassc + sourcemaps (#7778)
    • ⬆️ Upgrade i18n to v1.x (#6931)
    • βž• Add Jekyll::Cache class to handle caching on disk (#7169)
    • Cache converted markdown (#7159)
    • Cache: Do not dump undumpable objects (#7190)
    • 0️⃣ Cache matched defaults sets for given parameters (#6888)
    • Ignore cache directory (#7184)
    • Add Site#in_cache_dir helper method (#7160)
    • βœ‚ Remove 'cache_dir' during jekyll clean (#7158)
    • πŸ“œ Cache parsed Liquid templates in memory (#7136)
    • Only read layouts from source_dir or theme_dir (#6788)
    • πŸ‘ Allow custom sorting of collection documents (#7427)
    • Always exclude certain paths from being processed (#7188)
    • βœ‚ Remove Jekyll::Utils#strip_heredoc in favor of a Ruby > 2.3 built in (#7584)
    • Incorporate relative_url within post_url tag (#7589)
    • βœ‚ Remove patch to modify config for kramdown (#7699)

    Minor Enhancements

    • ✨ Enhance --blank scaffolding (#7310)
    • πŸ‘‰ Use jekyll-compose if installed (#6932)
    • Disable Liquid via front matter (#6824)
    • πŸ”§ Configure cache_dir (#7232)
    • ISO week date drops (#5981)
    • πŸ›  Fix custom 404 page for GitHub pages (#7132)
    • Load config file from within current theme-gem (#7304)
    • Suggest re-running command with --trace on fail (#6551)
    • πŸ‘Œ Support for binary operators in where_exp filter (#6998)
    • Automatically load _config.toml (#7299)
    • βž• Add vendor folder to a newly installed site's .gitignore (#6968)
    • Output Jekyll Version while debugging (#7173)
    • πŸ“ Memoize computing excerpt's relative_path (#6951)
    • Skip processing posts that can not be read (#7302)
    • πŸ“ Memoize the return value of Site#documents (#7273)
    • 0️⃣ Cache globbed paths in front matter defaults (#7345)
    • Cache computed item property (#7301)
    • Cleanup Markdown converter (#7519)
    • Do not process Liquid in post excerpt when disabled in front matter (#7146)
    • Liquefied link tag (#6269)
    • ⚑️ Update item_property to return numbers as numbers instead of strings (#6608)
    • πŸ‘‰ Use .markdown extension for page templates (#7126)
    • βž• Add support for *.xhtml files (#6854)
    • πŸ‘ Allow i18n v0.9.5 and higher (#7044)
    • Ignore permission error of /proc/version (#7267)
    • Strip extra slashes via Jekyll.sanitized_path (#7182)
    • 🚚 Site template: remove default config for markdown (#7285)
    • βž• Add a custom inspect string for StaticFile objects (#7422)
    • Remind user to include gem in the Gemfile on error (#7476)
    • 0️⃣ Search Front matter defaults for Page objects with relative_path (#7261)
    • πŸ”’ Lock use of tzinfo gem to v1.x (#7521, #7562)
    • Utilize absolute paths of user-provided file paths (#7450)
    • Detect nil and empty values in objects with where filter (#7580)
    • πŸŽ‰ Initialize mutations for Drops only if necessary (#7657)
    • ⬇️ Reduce Array allocations via Jekyll::Cleaner (#7659)
    • Encode and unencode urls only as required (#7654)
    • ⬇️ Reduce string allocations with better alternatives (#7643)
    • ⬇️ Reduce allocations from Jekyll::Document instances (#7625)
    • βž• Add type attribute to Document instances (#7406)
    • ⬇️ Reduce allocations from where-filter (#7653)
    • πŸ“ Memoize SiteDrop#documents to reduce allocations (#7697)
    • βž• Add PathManager class to cache interim paths (#7732)
    • βœ‚ Remove warnings and fixes for deprecated config (#7440)
    • Delegate --profile tabulation to terminal-table (#7627)

    πŸ› Bug Fixes

    • πŸ”’ Security: fix include bypass of EntryFilter#filter symlink check (#7226)
    • Theme gems: ensure directories aren't symlinks (#7419)
    • βž• Add call to unused method validate_options in commands/serve.rb (#7122)
    • Check if scope applies to type before given path (#7263)
    • Document two methods, simplify one of the methods (#7270)
    • Check key in collections only if it isn't "posts" (#7277)
    • Interpolate Jekyll::Page subclass on inspection (#7203)
    • Measure the no. of times a template gets rendered (#7316)
    • ⬇️ Reduce array traversal in Jekyll::Reader (#7157)
    • Re-implement handling Liquid blocks in excerpts (#7250)
    • Documents should be able to render their date (#7404)
    • πŸ›  Fix Interpreter warning from Jekyll::Renderer (#7448)
    • Loggers should accept both numbers and symbols (#6967)
    • Replace regex arg to :gsub with a string arg (#7189)
    • Dont write static files from unrendered collection (#7410)
    • Excerpt handling of custom and intermediate tags (#7382)
    • πŸ”„ Change future post loglevel to warn to help user narrow down issues (#7527)
    • πŸ– Handle files with trailing dots in their basename (#7315)
    • πŸ›  Fix unnecessary allocations via StaticFileReader (#7572)
    • Don't check if site URL is absolute if it is nil (#7498)
    • Avoid unnecessary duplication of pages array (#7272)
    • Memoize Site#post_attr_hash (#7276)
    • πŸ“ Memoize Document#excerpt_separator (#7569)
    • Optimize Document::DATE_FILENAME_MATCHER to match valid filenames (#7292)
    • Escape valid special chars in a site's path name (#7568)
    • Replace name in Page#inspect with relative_path (#7434)
    • ⚠ Log a warning when the slug is empty (#7357)
    • Push Markdown link refs to excerpt only as required (#7577)
    • πŸ›  Fix broken include_relative usage in excerpt (#7633)
    • πŸŽ‰ Initialize and reset glob_cache only as necessary (#7658)
    • Revert memoizing Site#docs_to_write and #documents (#7684)
    • Backport #7684 for v3.8.x: Revert memoizing Site#docs_to_write and refactor #documents (#7689)
    • Backport #7213 and #7633 for v3.8.x: Fix broken include_relative usage in excerpt (#7690)
    • Don't read symlinks in site.include in safe mode (#7711)
    • Replace String#=~ with String#match? (#7723)
    • ⚑️ Update log output for an invalid theme directory (#7679)
    • βœ‚ Remove configuration of theme sass files from Core (#7290)
    • Actually conditionally include liquid-c (#7792)
    • βœ… Test number_like regex on stringified property (#7788)

    πŸ›  Development Fixes

    • ⬆️ Upgrade liquid-c to v4.0 (#7375)
    • ⬆️ Bump RuboCop to v0.71.0 (#7687)
    • πŸ’Ž Target Ruby 2.4 syntax (#7583)
    • πŸ›  Fix: RuboCop offenses (#7769)
    • πŸ‘‰ Use communicative method parameters (#7566)
    • Scan assert_equal methods and rectify any offenses with a custom RuboCop cop (#7130)
    • βœ… CI: Test with Ruby 2.6 (#7438)
    • βœ… CI: Test with Ruby 2.6 on AppVeyor (#7518)
    • ⚑️ CI: Update RuboCop config (#7050)
    • πŸ“„ CI: Add a script to profile docs (#7540)
    • πŸ‘― CI(Appveyor): shallow clone with 5 last commits (#7312)
    • βœ… CI: Test with oldest and latest Ruby only (#7412)
    • ⚑️ CI: Update excludes for CodeClimate Analyses (#7365)
    • πŸ”’ CI: Lock Travis to Bundler-1.16.2 (#7144)
    • βœ… CI: Bump tested version of JRuby to 9.2.7.0 (#7612)
    • ⚑️ CI: Do not install docs on updating gems on Travis (#7706)
    • ⚑️ Update gemspec (#7425)
    • deps: relax version constraint on classifier-reborn gem (#7471)
    • ⚑️ deps: update yajl-ruby (#7278)
    • πŸ’Ž deps: bump yajl-ruby to v1.4.0 (#6976)
    • Create symlink only if target is accessible (#7429)
    • Switch to :install_if for wdm gem (#7372)
    • βž• Add cucumber feature to test include_relative tag (#7213)
    • ♻️ Small benchmark refactoring (#7211)
    • πŸ›  Fix incorrectly passed arguments to assert_equal (#7134)
    • πŸ›  fix up refute_equal call (#7133)
    • πŸ›  Fix RuboCop offences in test files (#7128)
    • πŸ‘‰ Use assert_include (#7093)
    • πŸš€ Remember to release docs gem (#7066)
    • 🚚 Useless privates removed (#6768)
    • βœ… Load Rouge for TestKramdown (#7007)
    • ⚑️ Update instructions for releasing docs Gem (#6975)
    • πŸ’Ž We are not using Ruby 2.2 anymore (#6977)
    • βœ‚ Remove unnecessary Jekyll::Page constant (#6770)
    • βœ‚ Remove unused error class (#6511)
    • βž• Add a Cucumber feature for post_url tag (#7586)
    • πŸ— Generate a "TOTAL" row for build-profile table (#7614)
    • ♻️ Refactor Jekyll::Cache (#7532)
    • Store list of expected extnames in a constant (#7638)
    • πŸ— Profile allocations from a build session (#7646)
    • ⚑️ Update small typo in contributing.md (#7671)
    • βœ‚ Remove override to Jekyll::Document#respond_to? (#7695)
    • ⚑️ Update TestTags in sync with Rouge v3.4 (#7709)
    • πŸ‘‰ Use regexp to filter special entries (#7702)
    • ⬇️ Reduce Array objects generated from utility method (#7749)
    • ⚑️ Update mime.types (#7756)
    • Replace redundant Array#map with Array#each (#7761)
    • Reduce allocations by using #each_with_object (#7758)
    • πŸ“ Memoize fallback_data for Drop (#7728)
    • πŸ‘‰ Use String#end_with? to check if entry is a backup (#7701)

    πŸ“š Documentation

    • ♻️ Refactor docs (#7205)
    • βž• Add a link to Giraffe Academy's tutorial (#7325)
    • Do not advise users to install Jekyll outside of Bundler (#6927)
    • βœ‚ Remove documentation for using Redcarpet (#6990)
    • 🍎 Install Docs that Work on MacOS 10.14 (#7561)
    • βž• Add Installation Instructions for Ubuntu (#6925)
    • Don't prompt for sudo when installing with Ubuntu WSL (#6781)
    • Installation instructions for Fedora (#7198)
    • ⚑️ Update Windows install docs (#6926)
    • List all standard liquid filters (#7333)
    • List all static files variables (#7002)
    • πŸ‘Œ Improve how to include Rouge stylesheets (#7752)
    • πŸ”Œ Mention CommonMark plugins (#7418)
    • βž• Add TSV to list of supported _data files. (#7168)
    • πŸš€ How to deploy using pre-push git hook (#7179)
    • Hosting with AWS Amplify (#7510)
    • πŸš€ CircleCI deployment through CircleCI v2 (#7024)
    • GitHub Pages: use themes from other repos (#7112)
    • Document page.dir and page.name (#7373)
    • Document custom tag blocks (#7359)
    • Document converter methods (#7289)
    • Document {{ page.collection }} (#7430)
    • Document Jekyll Filters with YAML data (#7335)
    • Document where Jekyll looks for layouts in a site (#7564)
    • πŸ”Œ plugin: liquid tag jekyll-flickr (#6946)
    • πŸ”Œ plugin: jekyll-target-blank (#7046)
    • πŸ”Œ plugin: json-get. (#7086)
    • πŸ”Œ plugin: jekyll-info (#7091)
    • πŸ”Œ plugin: jekyll-xml-source (#7114)
    • πŸ”Œ plugin: jekyll-firstimage filter (#7127)
    • πŸ”Œ plugin: CAT (#7011)
    • Resources: Statictastic (#7593)
    • Resources: Bonsai Search (#7543)
    • Resources: Formspark (#7601)
    • Resources: Jekpack(#7598)
    • Resources: formX (#7536)
    • Resources: 99inbound's Jekyll post (#7348)
    • Resources: CloudSh (#7497)
    • Community: DEV Community's Jekyll tag (#7139)
    • πŸ‘‰ Showcase: developer.spotify.com (#7217)
    • πŸ‘‰ Showcase: Isomer (#7300)
    • Add version number for group_by_exp doc (#6956)
    • πŸ“š Updated nginx configuration for custom-404-page documentation (#6994)
    • Clarify definition of 'draft' (#7037)
    • _drafts need to be contained within the custom collection directory (#6985)
    • ⚑️ Updated to supported version (#7031)
    • βž• Add Hints for some Improved Travis Config in Doc (#7049)
    • ⚑️ Update travis-ci.md to point out "this is an example Gemfile" (#7089)
    • 🐧 Instructions to view theme’s files under Linux (#7095)
    • πŸ‘‰ Use a real theme in the example (#7125)
    • ⚑️ Update docs about post creation (#7138)
    • πŸŽ‰ Initialize upgrading doc for v4.0 (#7140)
    • βž• Add version badge for date filters with ordinal (#7162)
    • Corrected sample usage of postfiles (#7181)
    • πŸ“¦ Resolve "Unable to locate package ruby2.4" error (#7196)
    • πŸ’… Correct stylesheet url in tutorial step 7 (#7210)
    • βœ‚ Removes quotes from markdown for assets (#7223)
    • Clarified front matter requirement (#7234)
    • Explicit location of where to create blog.html (#7241)
    • πŸ— Reference the build command options that allows multiple config files (#7266)
    • βž• Add more issue template(s) and pull request template (#7269)
    • πŸ‘· Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
    • πŸ›  Fix broken Contributors link in README.markdown (#7200)
    • βž• Add title tag to item in RSS template (#7282)
    • βž• Add link tag to item in RSS template (#7291)
    • βœ‚ Remove redundant instruction comment (#7342)
    • πŸ”Œ Textile is only supported through a converter plugin (#7003)
    • βž• Add recursive navigation tutorial (#7720)
    • βœ‚ Remove installation instructions with Homebrew (#7381)
    • πŸ›  Fix dead link and misleading prose (#7383)
    • πŸ›  Fix content management section (#7385)
    • πŸ’Ž Apply ruby official guide documents (#7393)
    • Fix group_by_exp filter example (#7394)
    • βœ‚ Remove alt attribute from a tags (#7407)
    • πŸ›  Fix BASH code-block in ubuntu.md (#7420)
    • zlib is missing (#7428)
    • πŸ›  Fixed unnecessary aticles and pronouns (#7466)
    • Store SSL key and cert in site source (#7473)
    • πŸ›  Fix typo in tutorial for converting existing site (#7524)
    • Check if var exists before include tag (#7530)
    • πŸ“„ Clarify docs on collections regarding the need for front matter (#7538)
    • πŸ›  Fix incorrect Windows path in themes.md (#7525)
    • βž• Addresses bundle not found. (#7351)
    • ⚑️ Update the contribution docs for draft pull requests (#7619)
    • Data file section adds TSV (#7640)
    • 0️⃣ Indicate where the _sass folder is by default (#7644)
    • πŸ“„ Docs: add version tags to new placeholders (#5981) for permalinks (#7647)
    • πŸš€ Solve "GitHub Page build failure" in 10-deployment.md (#7648)
    • πŸ›  fix link to Site Source config (#7708)
    • Introduce frontmatter in step 2 (#7704)
    • βž• Add @ashmaroli to Core Team listing (#7398)
    • Lnk to Tidelift in site's footer (#7377)
    • πŸ”— Link to OpenCollective backing (#7378
    • πŸ”— Link to sponsor listing in README (#7405)
    • Adjust team page listings (#7395)
    • ⚑️ Updates to CODE OF CONDUCT (v1.4.0) (#7105)
    • More inclusive writing (#7283)
    • ⚑️ Update Ruby version used in Travis-CI example (#7783)
    • πŸ“š Documentation for binary operators in where_exp (#7786)
    • βž• Adding SmartForms as Forms service (#7794)

    Site Enhancements

    • πŸ‘ Better Performance (#7388)
    • βž• Add some minor improvements to image loading in Showcase page (#7214)
    • πŸ“„ Simplify assigning classname to docs' aside-links (#7609)
    • πŸ“„ Simplify couple of includes in the docs site (#7607)
    • Avoid generating empty classnames (#7610)
    • Minimize rendering count (#7343)

    πŸš€ Release

    • πŸš€ Release post for v4.0.0 beta1 (#7716)
    • πŸš€ Release post for v4.0.0.pre.alpha1 (#7574)
    • πŸš€ Release post for v3.8.0 (#6849)
    • πŸš€ Release post for v3.6.3, v3.7.4 and v3.8.4 (#7259)
    • Post: v4.0 development (#6934)
  • Jenkins 2.190 (August 19, 2019)

    Disclaimer : This is an automatically generated changelog draft for the Jenkins 2.190 weekly release.
    πŸ‘€ See https://jenkins.io/changelog/ for the official changelogs.

    # Major BUGs and regressions- type: todoissue: 58595message: |- Add missing ${h} in rss and atom viewspull: 4148authors: - jvz# Major RFE- type: todoissue: 23349message: |- Project names: Add support of characters which are not convertible to UTF-8 (emojis, surrogate pairs)pull: 4152authors: - slide# RFEs- type: todoissue: 58734message: |- Use SHA-256 for crumbspull: 4134authors: - jvz- type: todoissue: 58892message: |- Remove build-pipeline-plugin from setup wizardpull: 4147authors: - daniel-beck# Bug fixes- type: todoissue: 54772message: |- Fix reported list of environment variables from agentpull: 3770authors: - pjanouse- type: todoissue: 58157message: |- Fix handling of long build names in Web UIpull: 4121authors: - aakashkanvinde- type: todoissue: 58736message: |- Correction of /assets throwing 500pull: 4136authors: - Wadeck- type: todoissue: 58571message: |- Check if name is editable on item before doing rename.pull: 4122authors: - aHenryJard# Localization- type: todomessage: |- Add Polish translationspull: 4140authors: - damianszczepanik- type: todoissue: 58836message: |- Wrong spanish argentinian translation for 'logout'pull: 4144authors: - belingueres