From dd7fa34a1af87ebe9e7301ee96e970d6a5771f30 Mon Sep 17 00:00:00 2001 From: Alessandro Desantis Date: Fri, 22 May 2020 15:23:43 +0200 Subject: [PATCH 1/2] Update gem to the latest version of solidus_dev_support --- .gitignore | 4 + Gemfile | 7 +- .../javascripts/admin/solidus_product_feed.js | 1 - .../spree/backend/solidus_product_feed.js | 0 .../spree/backend/spree_product_feed.js | 0 .../spree/frontend/solidus_product_feed.js | 0 .../spree/frontend/spree_product_feed.js | 0 .../javascripts/store/solidus_product_feed.js | 1 - .../admin/solidus_product_feed.css | 3 - .../spree/backend/solidus_product_feed.css | 0 .../spree/backend/spree_product_feed.css | 0 .../spree/frontend/solidus_product_feed.css | 0 .../spree/frontend/spree_product_feed.css | 0 .../store/solidus_product_feed.css | 3 - bin/r | 13 +++ bin/rake | 7 ++ bin/sandbox | 84 +++++++++++++++++++ bin/sandbox_rails | 18 ++++ bin/setup | 2 +- config/locales/en.yml | 5 ++ .../install/install_generator.rb | 17 +--- lib/solidus_product_feed/engine.rb | 9 +- solidus_product_feed.gemspec | 70 ++++++++-------- spec/spec_helper.rb | 7 +- 24 files changed, 181 insertions(+), 70 deletions(-) delete mode 100644 app/assets/javascripts/admin/solidus_product_feed.js delete mode 100644 app/assets/javascripts/spree/backend/solidus_product_feed.js delete mode 100644 app/assets/javascripts/spree/backend/spree_product_feed.js delete mode 100644 app/assets/javascripts/spree/frontend/solidus_product_feed.js delete mode 100644 app/assets/javascripts/spree/frontend/spree_product_feed.js delete mode 100644 app/assets/javascripts/store/solidus_product_feed.js delete mode 100644 app/assets/stylesheets/admin/solidus_product_feed.css delete mode 100644 app/assets/stylesheets/spree/backend/solidus_product_feed.css delete mode 100644 app/assets/stylesheets/spree/backend/spree_product_feed.css delete mode 100644 app/assets/stylesheets/spree/frontend/solidus_product_feed.css delete mode 100644 app/assets/stylesheets/spree/frontend/spree_product_feed.css delete mode 100644 app/assets/stylesheets/store/solidus_product_feed.css create mode 100755 bin/r create mode 100755 bin/rake create mode 100755 bin/sandbox create mode 100755 bin/sandbox_rails create mode 100644 config/locales/en.yml diff --git a/.gitignore b/.gitignore index bcd4aea..325c3c9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,7 @@ pkg *.swp spec/dummy spec/examples.txt +/sandbox +.rvmrc +.ruby-version +.ruby-gemset diff --git a/Gemfile b/Gemfile index 3a082b2..50b0c75 100644 --- a/Gemfile +++ b/Gemfile @@ -30,5 +30,8 @@ end gemspec # Use a local Gemfile to include development dependencies that might not be -# relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`. -send :eval_gemfile, 'Gemfile-local' if File.exist? 'Gemfile-local' +# relevant for the project or for other contributors, e.g. pry-byebug. +# +# We use `send` instead of calling `eval_gemfile` to work around an issue with +# how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658. +send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local' diff --git a/app/assets/javascripts/admin/solidus_product_feed.js b/app/assets/javascripts/admin/solidus_product_feed.js deleted file mode 100644 index a3b2c53..0000000 --- a/app/assets/javascripts/admin/solidus_product_feed.js +++ /dev/null @@ -1 +0,0 @@ -//= require admin/spree_core diff --git a/app/assets/javascripts/spree/backend/solidus_product_feed.js b/app/assets/javascripts/spree/backend/solidus_product_feed.js deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/javascripts/spree/backend/spree_product_feed.js b/app/assets/javascripts/spree/backend/spree_product_feed.js deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/javascripts/spree/frontend/solidus_product_feed.js b/app/assets/javascripts/spree/frontend/solidus_product_feed.js deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/javascripts/spree/frontend/spree_product_feed.js b/app/assets/javascripts/spree/frontend/spree_product_feed.js deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/javascripts/store/solidus_product_feed.js b/app/assets/javascripts/store/solidus_product_feed.js deleted file mode 100644 index d5cb5c7..0000000 --- a/app/assets/javascripts/store/solidus_product_feed.js +++ /dev/null @@ -1 +0,0 @@ -//= require store/spree_core diff --git a/app/assets/stylesheets/admin/solidus_product_feed.css b/app/assets/stylesheets/admin/solidus_product_feed.css deleted file mode 100644 index 21ef02a..0000000 --- a/app/assets/stylesheets/admin/solidus_product_feed.css +++ /dev/null @@ -1,3 +0,0 @@ -/* - *= require admin/spree_core -*/ diff --git a/app/assets/stylesheets/spree/backend/solidus_product_feed.css b/app/assets/stylesheets/spree/backend/solidus_product_feed.css deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/stylesheets/spree/backend/spree_product_feed.css b/app/assets/stylesheets/spree/backend/spree_product_feed.css deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/stylesheets/spree/frontend/solidus_product_feed.css b/app/assets/stylesheets/spree/frontend/solidus_product_feed.css deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/stylesheets/spree/frontend/spree_product_feed.css b/app/assets/stylesheets/spree/frontend/spree_product_feed.css deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/stylesheets/store/solidus_product_feed.css b/app/assets/stylesheets/store/solidus_product_feed.css deleted file mode 100644 index 94dbe33..0000000 --- a/app/assets/stylesheets/store/solidus_product_feed.css +++ /dev/null @@ -1,3 +0,0 @@ -/* - *= require store/spree_core -*/ diff --git a/bin/r b/bin/r new file mode 100755 index 0000000..b2d7ca1 --- /dev/null +++ b/bin/r @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +# This command will automatically be run when you run "rails" with Rails gems +# installed from the root of your application. + +ENGINE_ROOT = File.expand_path('..', __dir__) +ENGINE_PATH = File.expand_path('../lib/solidus_product_feed/engine', __dir__) + +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) + +require 'rails/all' +require 'rails/engine/commands' diff --git a/bin/rake b/bin/rake new file mode 100755 index 0000000..1e6eacd --- /dev/null +++ b/bin/rake @@ -0,0 +1,7 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("rake", "rake") diff --git a/bin/sandbox b/bin/sandbox new file mode 100755 index 0000000..67e7067 --- /dev/null +++ b/bin/sandbox @@ -0,0 +1,84 @@ +#!/usr/bin/env bash + +set -e + +case "$DB" in +postgres|postgresql) + RAILSDB="postgresql" + ;; +mysql) + RAILSDB="mysql" + ;; +sqlite|'') + RAILSDB="sqlite3" + ;; +*) + echo "Invalid DB specified: $DB" + exit 1 + ;; +esac + +if [ ! -z $SOLIDUS_BRANCH ] +then + BRANCH=$SOLIDUS_BRANCH +else + BRANCH="master" +fi + +extension_name="solidus_product_feed" + +# Stay away from the bundler env of the containing extension. +function unbundled { + ruby -rbundler -e'b = proc {system *ARGV}; Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&b) : Bundler.with_clean_env(&b)' -- $@ +} + +rm -rf ./sandbox +unbundled bundle exec rails new sandbox --database="$RAILSDB" \ + --skip-bundle \ + --skip-git \ + --skip-keeps \ + --skip-rc \ + --skip-spring \ + --skip-test \ + --skip-javascript + +if [ ! -d "sandbox" ]; then + echo 'sandbox rails application failed' + exit 1 +fi + +cd ./sandbox +cat <> Gemfile +gem 'solidus', github: 'solidusio/solidus', branch: '$BRANCH' +gem 'solidus_auth_devise', '>= 2.1.0' +gem 'rails-i18n' +gem 'solidus_i18n' + +gem '$extension_name', path: '..' + +group :test, :development do + platforms :mri do + gem 'pry-byebug' + end +end +RUBY + +unbundled bundle install --gemfile Gemfile + +unbundled bundle exec rake db:drop db:create + +unbundled bundle exec rails generate spree:install \ + --auto-accept \ + --user_class=Spree::User \ + --enforce_available_locales=true \ + --with-authentication=false \ + $@ + +unbundled bundle exec rails generate solidus:auth:install + +echo +echo "🚀 Sandbox app successfully created for $extension_name!" +echo "🚀 Using $RAILSDB and Solidus $BRANCH" +echo "🚀 Use 'export DB=[postgres|mysql|sqlite]' to control the DB adapter" +echo "🚀 Use 'export SOLIDUS_BRANCH=' to control the Solidus version" +echo "🚀 This app is intended for test purposes." diff --git a/bin/sandbox_rails b/bin/sandbox_rails new file mode 100755 index 0000000..38e435f --- /dev/null +++ b/bin/sandbox_rails @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby + +# frozen_string_literal: true + +app_root = 'sandbox' + +unless File.exist? "#{app_root}/bin/rails" + warn 'Creating the sandbox app...' + Dir.chdir "#{__dir__}/.." do + system "#{__dir__}/sandbox" or begin # rubocop:disable Style/AndOr + warn 'Automatic creation of the sandbox app failed' + exit 1 + end + end +end + +Dir.chdir app_root +exec 'bin/rails', *ARGV diff --git a/bin/setup b/bin/setup index 40d7811..67d9193 100755 --- a/bin/setup +++ b/bin/setup @@ -5,4 +5,4 @@ set -vx gem install bundler --conservative bundle update -bundle exec rake clobber +bin/rake clobber diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 0000000..f341cf4 --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,5 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + hello: Hello world diff --git a/lib/generators/solidus_product_feed/install/install_generator.rb b/lib/generators/solidus_product_feed/install/install_generator.rb index 2230d10..f52d436 100644 --- a/lib/generators/solidus_product_feed/install/install_generator.rb +++ b/lib/generators/solidus_product_feed/install/install_generator.rb @@ -5,25 +5,16 @@ module Generators class InstallGenerator < Rails::Generators::Base class_option :auto_run_migrations, type: :boolean, default: false - def add_javascripts - append_file( - 'vendor/assets/javascripts/spree/backend/all.js', - "//= require spree/backend/solidus_product_feed\n" - ) - end - def add_migrations - run 'bundle exec rake railties:install:migrations FROM=solidus_product_feed' + run 'bin/rails railties:install:migrations FROM=solidus_product_feed' end def run_migrations - run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?( - ask('Would you like to run the migrations now? [Y/n]') - ) + run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Metrics/LineLength if run_migrations - run 'bundle exec rake db:migrate' + run 'bin/rails db:migrate' else - puts 'Skipping rake db:migrate, don\'t forget to run it!' # rubocop:disable Rails/Output + puts 'Skipping bin/rails db:migrate, don\'t forget to run it!' # rubocop:disable Rails/Output end end end diff --git a/lib/solidus_product_feed/engine.rb b/lib/solidus_product_feed/engine.rb index 18d74d7..c6d0126 100644 --- a/lib/solidus_product_feed/engine.rb +++ b/lib/solidus_product_feed/engine.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'spree/core' +require 'solidus_product_feed' module SolidusProductFeed class Engine < Rails::Engine @@ -14,13 +15,5 @@ class Engine < Rails::Engine config.generators do |g| g.test_framework :rspec end - - def self.activate - Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator.rb')) do |c| - Rails.configuration.cache_classes ? require(c) : load(c) - end - end - - config.to_prepare(&method(:activate).to_proc) end end diff --git a/solidus_product_feed.gemspec b/solidus_product_feed.gemspec index 4c722a7..1350082 100644 --- a/solidus_product_feed.gemspec +++ b/solidus_product_feed.gemspec @@ -1,39 +1,37 @@ # frozen_string_literal: true -$:.push File.expand_path('lib', __dir__) -require 'solidus_product_feed/version' - -Gem::Specification.new do |s| - s.platform = Gem::Platform::RUBY - s.name = 'solidus_product_feed' - s.version = SolidusProductFeed::VERSION - s.summary = 'Spree extension that provides an RSS feed for products' - s.description = 'A Spree extension that provides an RSS feed for products, with Google Shopper extensions' # rubocop:disable Metrics/LineLength - - s.required_ruby_version = '~> 2.4' - - s.author = 'Joshua Nussbaum' - s.email = 'joshnuss@gmail.com' - s.homepage = 'https://github.com/solidusio-contrib/solidus_product_feed' - s.license = 'BSD-3-Clause' - - s.files = Dir.chdir(File.expand_path(__dir__)) do - `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } - end - s.test_files = Dir['spec/**/*'] - s.bindir = "exe" - s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) } - s.require_paths = ["lib"] - - if s.respond_to?(:metadata) - s.metadata["homepage_uri"] = s.homepage if s.homepage - s.metadata["source_code_uri"] = s.homepage if s.homepage - end - - s.add_runtime_dependency 'deface' - s.add_runtime_dependency 'solidus_backend', [">= 1.0", "< 3"] - s.add_runtime_dependency 'solidus_core', ['>= 1.0', '< 3'] - s.add_runtime_dependency 'solidus_support', '~> 0.5' - - s.add_development_dependency 'solidus_dev_support' +require_relative 'lib/solidus_product_feed/version' + +Gem::Specification.new do |spec| + spec.name = 'solidus_product_feed' + spec.version = SolidusProductFeed::VERSION + spec.authors = ['Joshua Nussbaum'] + spec.email = 'joshnuss@gmail.com' + + spec.summary = 'Solidus extension that provides an RSS feed for products.' + spec.description = 'A Solidus extension that provides an RSS feed for products, with support for Google Merchant Feed.' + spec.homepage = 'https://github.com/solidusio-contrib/solidus_product_feed' + spec.license = 'BSD-3-Clause' + + spec.metadata['homepage_uri'] = spec.homepage + spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_product_feed' + spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_product_feed/blob/master/CHANGELOG.md' + + spec.required_ruby_version = Gem::Requirement.new('~> 2.5') + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") } + + spec.files = files.grep_v(%r{^(test|spec|features)/}) + spec.test_files = files.grep(%r{^(test|spec|features)/}) + spec.bindir = "exe" + spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_dependency 'deface' + spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 3'] + spec.add_dependency 'solidus_support', '~> 0.5' + + spec.add_development_dependency 'solidus_dev_support' end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7ee37b3..908724f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,12 +1,15 @@ # frozen_string_literal: true # Configure Rails Environment -ENV['RAILS_ENV'] ||= 'test' +ENV['RAILS_ENV'] = 'test' # Run Coverage report require 'solidus_dev_support/rspec/coverage' -require File.expand_path('dummy/config/environment.rb', __dir__) +require File.expand_path('dummy/config/environment.rb', __dir__).tap { |file| + # Create the dummy app if it's still missing. + system 'bin/rake extension:test_app' unless File.exist? file +} # Requires factories and other useful helpers defined in spree_core. require 'solidus_dev_support/rspec/feature_helper' From 3df560e8a8f85d1de0509bde12ba801479050cd8 Mon Sep 17 00:00:00 2001 From: Alessandro Desantis Date: Fri, 22 May 2020 15:23:47 +0200 Subject: [PATCH 2/2] Generate changelog with github_changelog_generator --- CHANGELOG.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d840225 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,62 @@ +# Changelog + +## [Unreleased](https://github.com/solidusio-contrib/solidus_product_feed/tree/HEAD) + +[Full Changelog](https://github.com/solidusio-contrib/solidus_product_feed/compare/v1.0.0...HEAD) + +**Closed issues:** + +- Dependabot couldn't find a Gemfile-local for this project [\#49](https://github.com/solidusio-contrib/solidus_product_feed/issues/49) +- Dependabot can't resolve your Ruby dependency files [\#47](https://github.com/solidusio-contrib/solidus_product_feed/issues/47) +- Dependabot can't resolve your Ruby dependency files [\#46](https://github.com/solidusio-contrib/solidus_product_feed/issues/46) +- Dependabot can't resolve your Ruby dependency files [\#45](https://github.com/solidusio-contrib/solidus_product_feed/issues/45) +- Dependabot can't resolve your Ruby dependency files [\#44](https://github.com/solidusio-contrib/solidus_product_feed/issues/44) +- Dependabot can't resolve your Ruby dependency files [\#43](https://github.com/solidusio-contrib/solidus_product_feed/issues/43) +- Dependabot can't resolve your Ruby dependency files [\#42](https://github.com/solidusio-contrib/solidus_product_feed/issues/42) +- Dependabot can't resolve your Ruby dependency files [\#41](https://github.com/solidusio-contrib/solidus_product_feed/issues/41) +- Dependabot can't resolve your Ruby dependency files [\#40](https://github.com/solidusio-contrib/solidus_product_feed/issues/40) + +**Merged pull requests:** + +- Relax solidus\_support dependency [\#53](https://github.com/solidusio-contrib/solidus_product_feed/pull/53) ([kennyadsl](https://github.com/kennyadsl)) +- Fix Dependabot looking for Gemfile-local [\#51](https://github.com/solidusio-contrib/solidus_product_feed/pull/51) ([aldesantis](https://github.com/aldesantis)) +- Upgrade the extension using solidus\_dev\_support [\#48](https://github.com/solidusio-contrib/solidus_product_feed/pull/48) ([blocknotes](https://github.com/blocknotes)) +- Verify Request Format [\#39](https://github.com/solidusio-contrib/solidus_product_feed/pull/39) ([mamhoff](https://github.com/mamhoff)) +- Adopt solidus\_extension\_dev\_tools [\#38](https://github.com/solidusio-contrib/solidus_product_feed/pull/38) ([aldesantis](https://github.com/aldesantis)) +- Adopt CircleCI instead of Travis [\#31](https://github.com/solidusio-contrib/solidus_product_feed/pull/31) ([aldesantis](https://github.com/aldesantis)) +- Update Ruby and Solidus versions [\#30](https://github.com/solidusio-contrib/solidus_product_feed/pull/30) ([aldesantis](https://github.com/aldesantis)) +- Update travis and rakefile [\#29](https://github.com/solidusio-contrib/solidus_product_feed/pull/29) ([jtapia](https://github.com/jtapia)) +- Add support for latest Solidus versions [\#27](https://github.com/solidusio-contrib/solidus_product_feed/pull/27) ([jtapia](https://github.com/jtapia)) +- Dynamic schema [\#26](https://github.com/solidusio-contrib/solidus_product_feed/pull/26) ([aldesantis](https://github.com/aldesantis)) +- Make feed headers configurable [\#25](https://github.com/solidusio-contrib/solidus_product_feed/pull/25) ([aldesantis](https://github.com/aldesantis)) +- Add brand and MPN tags for Google Merchant feed [\#24](https://github.com/solidusio-contrib/solidus_product_feed/pull/24) ([aldesantis](https://github.com/aldesantis)) +- Remove Solidus v2.3 from Travis config \(EOL\) [\#23](https://github.com/solidusio-contrib/solidus_product_feed/pull/23) ([aitbw](https://github.com/aitbw)) +- Extension maintenance [\#22](https://github.com/solidusio-contrib/solidus_product_feed/pull/22) ([aitbw](https://github.com/aitbw)) +- Fix specs [\#20](https://github.com/solidusio-contrib/solidus_product_feed/pull/20) ([kennyadsl](https://github.com/kennyadsl)) +- Remove versions past EOL from .travis.yml [\#19](https://github.com/solidusio-contrib/solidus_product_feed/pull/19) ([jacobherrington](https://github.com/jacobherrington)) +- Add Solidus 2.7 to .travis.yml [\#18](https://github.com/solidusio-contrib/solidus_product_feed/pull/18) ([jacobherrington](https://github.com/jacobherrington)) +- Use ffaker instead of faker [\#17](https://github.com/solidusio-contrib/solidus_product_feed/pull/17) ([jhawthorn](https://github.com/jhawthorn)) + +## [v1.0.0](https://github.com/solidusio-contrib/solidus_product_feed/tree/v1.0.0) (2016-08-24) + +[Full Changelog](https://github.com/solidusio-contrib/solidus_product_feed/compare/v0.1.0...v1.0.0) + +**Merged pull requests:** + +- Add support for Solidus 2.0 and Rails 5 [\#12](https://github.com/solidusio-contrib/solidus_product_feed/pull/12) ([jhawthorn](https://github.com/jhawthorn)) +- Bring the feed more in line with the spec [\#10](https://github.com/solidusio-contrib/solidus_product_feed/pull/10) ([jarednorman](https://github.com/jarednorman)) +- Add a note on versions [\#9](https://github.com/solidusio-contrib/solidus_product_feed/pull/9) ([jhawthorn](https://github.com/jhawthorn)) +- Extract feed logic to class [\#7](https://github.com/solidusio-contrib/solidus_product_feed/pull/7) ([jarednorman](https://github.com/jarednorman)) + +## [v0.1.0](https://github.com/solidusio-contrib/solidus_product_feed/tree/v0.1.0) (2016-05-10) + +[Full Changelog](https://github.com/solidusio-contrib/solidus_product_feed/compare/ab9d93c2af70a24bfb2a7ab75f3fdf33ddaef3aa...v0.1.0) + +**Merged pull requests:** + +- Rename to solidus\_product\_feed [\#4](https://github.com/solidusio-contrib/solidus_product_feed/pull/4) ([Sinetheta](https://github.com/Sinetheta)) +- Upgrade 2-4-stable to Solidus [\#3](https://github.com/solidusio-contrib/solidus_product_feed/pull/3) ([Sinetheta](https://github.com/Sinetheta)) + + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*