From 7337e339f1a7d21854876250dfd1008997e1c602 Mon Sep 17 00:00:00 2001 From: dry-bot Date: Mon, 20 Jan 2020 11:49:26 +0000 Subject: [PATCH] [devtools] sync configs --- .devtools/templates/changelog.erb | 40 ++++++++++++++++++++++++++++ .github/workflows/ci.yml | 29 +++++++++++++++++++- .github/workflows/docsite.yml | 44 ++++++++++++++++++++++++++----- CHANGELOG.md | 39 +++++++++++++++++++++++++++ dry-view.gemspec | 3 ++- 5 files changed, 147 insertions(+), 8 deletions(-) create mode 100644 .devtools/templates/changelog.erb diff --git a/.devtools/templates/changelog.erb b/.devtools/templates/changelog.erb new file mode 100644 index 0000000..dd78bac --- /dev/null +++ b/.devtools/templates/changelog.erb @@ -0,0 +1,40 @@ +<% releases.each_with_index do |r, idx| %> +## <%= r.version %> <%= r.date %> + +<% if r.summary %> +<%= r.summary %> + +<% end %> + +<% if r.added? %> +### Added + +<% r.added.each do |log| %> +- <%= log %> +<% end %> + +<% end %> +<% if r.fixed? %> +### Fixed + +<% r.fixed.each do |log| %> +- <%= log %> +<% end %> + +<% end %> +<% if r.changed? %> +### Changed + +<% r.changed.each do |log| %> +- <%= log %> +<% end %> +<% end %> +<% curr_ver = r.date ? "v#{r.version}" : 'master' %> +<% prev_rel = releases[idx + 1] %> +<% if prev_rel %> +<% ver_range = "v#{prev_rel.version}...#{curr_ver}" %> + +[Compare <%=ver_range%>](https://github.com/dry-rb/<%= project.name %>/compare/<%=ver_range%>) +<% end %> + +<% end %> diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71429f9..4badfb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ # this file is managed by dry-rb/devtools project -name: ci +name: Tests "on": push: @@ -16,6 +16,7 @@ name: ci pull_request: branches: - master + create: jobs: tests: @@ -51,3 +52,29 @@ jobs: run: bundle install --jobs 4 --retry 3 - name: Run all tests run: bundle exec rake + release: + runs-on: ubuntu-latest + if: contains(github.ref, 'tags') + needs: tests + env: + GITHUB_LOGIN: dry-bot + GITHUB_TOKEN: ${{secrets.GH_PAT}} + steps: + - uses: actions/checkout@v1 + - name: Set up Ruby + uses: eregon/use-ruby-action@master + with: + ruby-version: 2.6 + - name: Install latest bundler + run: | + gem install bundler + - name: Bundle + run: | + bundle install + - name: Symlink ossy + run: | + ln -sf "$(bundle info ossy --path)/bin/ossy" bin/ossy + - name: Trigger release workflow + run: | + tag=$(echo $GITHUB_REF | cut -d / -f 3) + bundle exec bin/ossy gh w $GITHUB_REPOSITORY release --payload "{\"tag\":\"$tag\",\"tag_creator\":\"$GITHUB_ACTOR\",\"repo\":\"$GITHUB_REPOSITORY\"}" diff --git a/.github/workflows/docsite.yml b/.github/workflows/docsite.yml index 31508c9..d0264bd 100644 --- a/.github/workflows/docsite.yml +++ b/.github/workflows/docsite.yml @@ -1,6 +1,6 @@ # this file is managed by dry-rb/devtools project -name: docsite +name: Update docs on dry-rb.org on: push: @@ -16,19 +16,51 @@ jobs: update-docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - run: | + git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* - name: Set up Ruby uses: actions/setup-ruby@v1 with: ruby-version: "2.6.x" + - name: Set up git user + run: | + git config --local user.email "dry-bot@dry-rb.org" + git config --local user.name "dry-bot" - name: Install dependencies run: | gem install bundler - bundle install --jobs 4 --retry 3 --without benchmarks sql + bundle install --jobs 4 --retry 3 --without test benchmarks sql - name: Symlink ossy - run: mkdir -p bin && ln -sf "$(bundle show ossy)/bin/ossy" bin/ossy + run: ln -sf "$(bundle show ossy)/bin/ossy" bin/ossy + - name: Update release branches + run: | + branches=`git log --format=%B -n 1 $GITHUB_SHA | grep "docsite:release-" || echo "nothing"` + + if [[ ! $branches -eq "nothing" ]]; then + for b in $branches + do + name=`echo $b | ruby -e 'puts gets[/:(.+)/, 1].gsub(/\s+/, "")'` + + echo "merging $GITHUB_SHA to $name" + + git checkout -b $name --track origin/$name + + echo `git log -n 1` + + git cherry-pick $GITHUB_SHA -m 1 + done + + git push --all "https://dry-bot:${{secrets.GH_PAT}}@github.com/$GITHUB_REPOSITORY.git" + + git checkout master + else + echo "no need to update branches" + fi - name: Trigger dry-rb.org deploy env: GITHUB_LOGIN: dry-bot - GITHUB_TOKEN: ${{ secrets.GH_PAT }} - run: bin/ossy github workflow dry-rb/dry-rb.org ci + GITHUB_TOKEN: ${{secrets.GH_PAT}} + run: bundle exec bin/ossy github workflow dry-rb/dry-rb.org ci diff --git a/CHANGELOG.md b/CHANGELOG.md index ff579ea..54e37fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,9 @@ - Stop searching upwards through parent directories when rendering a view's template (as opposed to partials) (timriley in [#130][pr130]) - Stop searching in `shared/` subdirectories when rendering a view's template (as opposed to partials) (timriley in [#130][pr130]) - Adjust template lookup cache keys to ensure no false hits (timriley in [#130][pr130]) + +[Compare v0.6.0...v0.7.0](https://github.com/dry-rb/dry-view/compare/v0.6.0...v0.7.0) + ## 0.6.0 2019-01-30 @@ -46,6 +49,9 @@ - `Part#inspect` output simplified to include only name and value (timriley in [#98][pr98]) - Attribute decoration in `Part` now achieved via a prepended module, which means it is possible to decorate an attribute provided by an instance method directly on the part class, which wasn't possible with the previous `method_missing`-based approach (timriley in [#110][pr110]) - `Part` classes can be initialized with missing `name:` and `rendering:` values, which can be useful for unit testing Part methods that don't use any rendering facilities (timriley in [#116][pr116]) + +[Compare v0.5.4...v0.6.0](https://github.com/dry-rb/dry-view/compare/v0.5.4...v0.6.0) + ## 0.5.4 2019-01-06 This version was yanked due to the release accidentally containing a batch of breaking changes from master. @@ -54,6 +60,9 @@ This version was yanked due to the release accidentally containing a batch of br - Preserve renderer options when chdir-ing (timriley in [889ac7b](https://github.com/dry-rb/dry-view/commit/889ac7b)) + +[Compare v0.5.3...v0.5.4](https://github.com/dry-rb/dry-view/compare/v0.5.3...v0.5.4) + ## 0.5.3 2018-10-22 @@ -64,12 +73,18 @@ This version was yanked due to the release accidentally containing a batch of br ### Changed - Part objects wrap values more transparently, via added `#respond_to_missing?` (liseki in [#63][pr63]) + +[Compare v0.5.2...v0.5.3](https://github.com/dry-rb/dry-view/compare/v0.5.2...v0.5.3) + ## 0.5.2 2018-06-13 ### Changed - Only truthy view part attributes are decorated (timriley) + +[Compare v0.5.1...v0.5.2](https://github.com/dry-rb/dry-view/compare/v0.5.1...v0.5.2) + ## 0.5.1 2018-02-20 @@ -77,6 +92,9 @@ This version was yanked due to the release accidentally containing a batch of br - Exposures are inherited from parent view controller classes (GustavoCaso) + +[Compare v0.5.0...v0.5.1](https://github.com/dry-rb/dry-view/compare/v0.5.0...v0.5.1) + ## 0.5.0 2018-01-23 @@ -85,6 +103,9 @@ This version was yanked due to the release accidentally containing a batch of br - Support for parts with decorated attributes (timriley + GustavoCaso) - Ability to easily create another part instance via `Part#new` (GustavoCaso) + +[Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-view/compare/v0.4.0...v0.5.0) + ## 0.4.0 2017-11-01 @@ -99,6 +120,9 @@ This version was yanked due to the release accidentally containing a batch of br - [BREAKING] Exposures specify the input data they require using keyword arguments. This includes support for providing default values (via the keyword argument) for keys that are missing from the input data (GustavoCaso) - Allow `Dry::View::Part` instances to be created without explicitly passing a `renderer`. This is helpful for unit testing view parts that don't need to render anything (dNitza) - Partials can be nested within additional sub-directories by rendering them their relative path as their name, e.g. `render(:"foo/bar")` will look for a `foo/_bar.html.slim` template within the normal template lookup paths (timriley) + +[Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-view/compare/v0.3.0...v0.4.0) + ## 0.3.0 2017-05-14 This release reintroduces view parts in a more helpful form. You can provide your own custom view part classes to encapsulate your view logic, as well as a decorator for custom, shared behavior arouund view part wrapping. @@ -111,12 +135,18 @@ This release reintroduces view parts in a more helpful form. You can provide you ### Changed - [BREAKING] Partial rendering in templates requires an explicit `render` method call instead of method_missing behaviour usinig the partial's name (e.g. `<%= render :my_partial %>` instead of `<%= my_partial %>`) + +[Compare v0.2.2...v0.3.0](https://github.com/dry-rb/dry-view/compare/v0.2.2...v0.3.0) + ## 0.2.2 2017-01-31 ### Changed - Make input passthrough exposures (when there is no block or matching instance metod) return nil instead of raise in the case of a missing input key (timriley) + +[Compare v0.2.1...v0.2.2](https://github.com/dry-rb/dry-view/compare/v0.2.1...v0.2.2) + ## 0.2.1 2017-01-30 @@ -124,6 +154,9 @@ This release reintroduces view parts in a more helpful form. You can provide you - Exposure blocks now have access to the view controller instance when they're called (timriley) + +[Compare v0.2.0...v0.2.1](https://github.com/dry-rb/dry-view/compare/v0.2.0...v0.2.1) + ## 0.2.0 2017-01-30 This release is a major reorientation for dry-view, and it should allow for more natural, straightforward template authoring. @@ -144,6 +177,9 @@ This release is a major reorientation for dry-view, and it should allow for more - [BREAKING] View parts have been replaced by a simple `Scope`. Data passed to the templates can be accessed directly, rather than wrapped up in a view part. (timriley) - [BREAKING] With view parts removed, partials can only be rendered by top-level method calls within templates (timriley) - Ruby version 2.1.0 is now the earliest supported version (timriley) + +[Compare v0.1.1...v0.2.0](https://github.com/dry-rb/dry-view/compare/v0.1.1...v0.2.0) + ## 0.1.1 2016-07-07 @@ -152,6 +188,9 @@ This release is a major reorientation for dry-view, and it should allow for more - Wrap `page` object exposed to layout templates in a part object, so it offers behaviour that is consistent with the part objects that template authors work with on other templates (timriley) - Render template content first, before passing that content to the layout. This makes "content_for"-style behaviours possible, where the template stores some data that the layout can then use later (timriley) - Configure default template encoding to be UTF-8, fixing some issues with template rendering on deployed sites (gotar) + +[Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-view/compare/v0.1.0...v0.1.1) + ## 0.1.0 2016-03-28 diff --git a/dry-view.gemspec b/dry-view.gemspec index 1ca8226..6a9426c 100644 --- a/dry-view.gemspec +++ b/dry-view.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |spec| spec.summary = "A complete, standalone view rendering system that gives you everything you need to write well-factored view code" spec.description = spec.summary spec.homepage = 'https://dry-rb.org/gems/dry-view' - spec.files = Dir['CHANGELOG.md', 'LICENSE', 'README.md', 'dry-view.gemspec', 'lib/**/*'] + spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-view.gemspec", "lib/**/*"] spec.require_paths = ['lib'] spec.metadata['allowed_push_host'] = 'https://rubygems.org' @@ -32,6 +32,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "dry-equalizer", "~> 0.2" spec.add_runtime_dependency "dry-inflector", "~> 0.1" spec.add_runtime_dependency "tilt", "~> 2.0", ">= 2.0.6" + spec.add_development_dependency "bundler" spec.add_development_dependency "rake" spec.add_development_dependency "rspec"