openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2019
- 1 participants
- 2232 discussions
Hello community,
here is the log from the commit of package 000update-repos for openSUSE:Factory checked in at 2019-05-18 08:54:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Sat May 18 08:54:02 2019 rev:247 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ config.yml ++++++
--- /var/tmp/diff_new_pack.wIZ3tJ/_old 2019-05-18 08:54:17.393278359 +0200
+++ /var/tmp/diff_new_pack.wIZ3tJ/_new 2019-05-18 08:54:17.397278358 +0200
@@ -14,6 +14,16 @@
- 15.0:non-oss:update:
url: http://downloadcontent.opensuse.org/update/leap/15.0/non-oss
refresh: true
+- 15.1:
+ url: http://downloadcontent.opensuse.org/distribution/leap/15.1/repo/oss
+- 15.1:non-oss:
+ url: http://downloadcontent.opensuse.org/distribution/leap/15.1/repo/non-oss
+- 15.1:update:
+ url: http://downloadcontent.opensuse.org/update/leap/15.1/oss
+ refresh: true
+- 15.1:non-oss:update:
+ url: http://downloadcontent.opensuse.org/update/leap/15.1/non-oss
+ refresh: true
- 42.3:
url: http://downloadcontent.opensuse.org/distribution/leap/42.3/repo/oss
- 42.3:non-oss:
1
0
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2019-05-17 23:44:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Fri May 17 23:44:39 2019 rev:1248 rq: version:unknown
Fri May 17 23:44:36 2019 rev:1247 rq: version:unknown
Fri May 17 23:44:33 2019 rev:1246 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-MicroOS-dvd5-dvd-x86_64.kiwi: same change
openSUSE-MicroOS-dvd5-kubic-dvd-x86_64.kiwi: same change
openSUSE-cd-mini-i586.kiwi: same change
openSUSE-cd-mini-x86_64.kiwi: same change
openSUSE-dvd5-dvd-i586.kiwi: same change
openSUSE-dvd5-dvd-x86_64.kiwi: same change
openSUSE-ftp-ftp-i586_x86_64.kiwi: same change
stub.kiwi: same change
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.thUnHS/_old 2019-05-17 23:44:53.185856025 +0200
+++ /var/tmp/diff_new_pack.thUnHS/_new 2019-05-17 23:44:53.185856025 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20190516</version>
+ <version>20190517</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE-MicroOS.product ++++++
--- /var/tmp/diff_new_pack.thUnHS/_old 2019-05-17 23:44:53.205856014 +0200
+++ /var/tmp/diff_new_pack.thUnHS/_new 2019-05-17 23:44:53.205856014 +0200
@@ -6,7 +6,7 @@
<name>openSUSE-MicroOS</name>
<releasepkgname>openSUSE-MicroOS-release</releasepkgname>
<endoflife/>
- <version>20190516</version>
+ <version>20190517</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>openSUSE-MicroOS</productline>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.thUnHS/_old 2019-05-17 23:44:53.225856003 +0200
+++ /var/tmp/diff_new_pack.thUnHS/_new 2019-05-17 23:44:53.229856001 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20190516</version>
+ <version>20190517</version>
<release>0</release>
<productline>openSUSE</productline>
1
0
Hello community,
here is the log from the commit of package rubygem-jbuilder for openSUSE:Factory checked in at 2019-05-17 23:44:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-jbuilder (Old)
and /work/SRC/openSUSE:Factory/.rubygem-jbuilder.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-jbuilder"
Fri May 17 23:44:31 2019 rev:21 rq:703703 version:2.9.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-jbuilder/rubygem-jbuilder.changes 2018-11-10 17:02:17.183540376 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-jbuilder.new.5148/rubygem-jbuilder.changes 2019-05-17 23:44:38.673863996 +0200
@@ -1,0 +2,20 @@
+Fri May 17 11:25:31 UTC 2019 - Lukas Krause <lukas.krause(a)suse.com>
+
+- update to version 2.9.1
+ see installed CHANGELOG.md
+
+ 2.9.1
+ -----
+ * Respect JSON encoding customizations
+
+ 2.9.0
+ -----
+ * Fix passing object with partial without locals
+ * Fix deprecation warning in Rails 6.0
+ * Use quotes consistently in generated templates
+ * Allow omitting timestamps from generated partials
+ * Respect changing scaffold generator
+ * Use a symbolic default format for Rails 6.0 forward compatibility
+ * Drop MultiJSON in favor of Ruby standard library JSON
+
+-------------------------------------------------------------------
Old:
----
jbuilder-2.8.0.gem
New:
----
jbuilder-2.9.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-jbuilder.spec ++++++
--- /var/tmp/diff_new_pack.bF9qNZ/_old 2019-05-17 23:44:39.097863763 +0200
+++ /var/tmp/diff_new_pack.bF9qNZ/_new 2019-05-17 23:44:39.101863761 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-jbuilder
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-jbuilder
-Version: 2.8.0
+Version: 2.9.1
Release: 0
%define mod_name jbuilder
%define mod_full_name %{mod_name}-%{version}
++++++ jbuilder-2.8.0.gem -> jbuilder-2.9.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 2018-11-05 16:49:16.000000000 +0100
+++ new/.gitignore 2019-05-14 19:38:31.000000000 +0200
@@ -3,3 +3,4 @@
Gemfile.lock
.ruby-version
pkg
+*.gem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml 2018-11-05 16:49:16.000000000 +0100
+++ new/.travis.yml 2019-05-14 19:38:31.000000000 +0200
@@ -1,56 +1,67 @@
language: ruby
-sudo: false
cache: bundler
before_install:
- - gem update --system
- - gem install bundler
+ - "gem update --system 2.7.9"
+ - "gem install bundler -v '<2'"
rvm:
- - 1.9
- - 2.0
- - 2.1
- 2.2.10
- - 2.3.7
- - 2.4.4
- - 2.5.1
+ - 2.3.8
+ - 2.4.6
+ - 2.5.5
+ - 2.6.2
- ruby-head
- - jruby-19mode
- - rbx
+ - rbx-3.107
gemfile:
- gemfiles/rails_4_2.gemfile
- gemfiles/rails_5_0.gemfile
- gemfiles/rails_5_1.gemfile
+ - gemfiles/rails_5_2.gemfile
+ - gemfiles/rails_6_0.gemfile
+ - gemfiles/rails_head.gemfile
matrix:
- allow_failures:
- - rvm: jruby-19mode
- - rvm: rbx
- - rvm: ruby-head
- fast_finish: true
- exclude:
- - rvm: 1.9
- gemfile: gemfiles/rails_5_0.gemfile
+ include:
- rvm: 1.9
- gemfile: gemfiles/rails_5_1.gemfile
+ gemfile: gemfiles/rails_4_2.gemfile
- rvm: 2.0
- gemfile: gemfiles/rails_5_0.gemfile
- - rvm: 2.0
- gemfile: gemfiles/rails_5_1.gemfile
- - rvm: 2.1
- gemfile: gemfiles/rails_5_0.gemfile
+ gemfile: gemfiles/rails_4_2.gemfile
- rvm: 2.1
- gemfile: gemfiles/rails_5_1.gemfile
+ gemfile: gemfiles/rails_4_2.gemfile
+ - rvm: 2.3
+ gemfile: gemfiles/rails_4_2.gemfile
- rvm: jruby-19mode
- gemfile: gemfiles/rails_5_0.gemfile
+ gemfile: gemfiles/rails_4_2.gemfile
+ - rvm: rbx-3.107
+ gemfile: gemfiles/rails_4_2.gemfile
+ exclude:
+ - rvm: 2.4.6
+ gemfile: gemfiles/rails_4_2.gemfile
+ - rvm: 2.5.5
+ gemfile: gemfiles/rails_4_2.gemfile
+ - rvm: 2.6.2
+ gemfile: gemfiles/rails_4_2.gemfile
+ - rvm: 2.2.10
+ gemfile: gemfiles/rails_6_0.gemfile
+ - rvm: 2.3.8
+ gemfile: gemfiles/rails_6_0.gemfile
+ - rvm: 2.4.6
+ gemfile: gemfiles/rails_6_0.gemfile
+ - rvm: 2.2.10
+ gemfile: gemfiles/rails_head.gemfile
+ - rvm: 2.3.8
+ gemfile: gemfiles/rails_head.gemfile
+ - rvm: 2.4.6
+ gemfile: gemfiles/rails_head.gemfile
+ allow_failures:
- rvm: jruby-19mode
- gemfile: gemfiles/rails_5_1.gemfile
- - rvm: rbx
- gemfile: gemfiles/rails_5_0.gemfile
- - rvm: rbx
- gemfile: gemfiles/rails_5_1.gemfile
+ - rvm: rbx-3.107
+ - rvm: ruby-head
+ - gemfile: gemfiles/rails_head.gemfile
+ fast_finish: true
notifications:
email: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Appraisals new/Appraisals
--- old/Appraisals 2018-11-05 16:49:16.000000000 +0100
+++ new/Appraisals 2019-05-14 19:38:31.000000000 +0200
@@ -1,13 +1,27 @@
appraise "rails-4-2" do
- gem "rails", "~> 4.2.0"
+ gem "rails", "~> 4.2.0"
end
if RUBY_VERSION >= "2.2.2"
appraise "rails-5-0" do
- gem "rails", ">= 5.0.0", "< 5.1"
+ gem "rails", "~> 5.0.0"
end
appraise "rails-5-1" do
- gem "rails", ">= 5.1.0", "< 5.2"
+ gem "rails", "~> 5.1.0"
+ end
+
+ appraise "rails-5-2" do
+ gem "rails", "~> 5.2.0"
+ end
+end
+
+if RUBY_VERSION >= "2.5.0"
+ appraise "rails-6-0" do
+ gem "rails", "~> 6.0.0.rc1"
+ end
+
+ appraise "rails-head" do
+ gem "rails", github: "rails/rails"
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2018-11-05 16:49:16.000000000 +0100
+++ new/CHANGELOG.md 2019-05-14 19:38:31.000000000 +0200
@@ -1,5 +1,21 @@
# Changelog
+2.9.1
+-----
+
+* [Respect JSON encoding customizations](https://github.com/rails/jbuilder/commit/e2e8623b08078ad6a2…
+
+2.9.0
+-----
+
+* [Fix passing object with partial without locals](https://github.com/rails/jbuilder/pull/435)
+* [Fix deprecation warning in Rails 6.0](https://github.com/rails/jbuilder/pull/453)
+* [Use quotes consistently in generated templates](https://github.com/rails/jbuilder/pull/455)
+* [Allow omitting timestamps from generated partials](https://github.com/rails/jbuilder/pull/448)
+* [Respect changing scaffold generator](https://github.com/rails/jbuilder/pull/458)
+* [Use a symbolic default format for Rails 6.0 forward compatibility](https://github.com/rails/jbuilder/commit/3895a7243f3db292b0b…
+* [Drop MultiJSON in favor of Ruby standard library JSON](https://github.com/rails/jbuilder/commit/b952ae096eb1828b0fcfde06e6ba…
+
2.8.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2018-11-05 16:49:16.000000000 +0100
+++ new/Gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -5,4 +5,3 @@
gem "rake"
gem "mocha", require: false
gem "appraisal"
-gem "pry"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2018-11-05 16:49:16.000000000 +0100
+++ new/README.md 2019-05-14 19:38:31.000000000 +0200
@@ -156,7 +156,6 @@
end
```
-
You can use partials as well. The following will render the file
`views/comments/_comments.json.jbuilder`, and set a local variable
`comments` with all this message's comments, which you can use inside
@@ -184,6 +183,25 @@
json.comments @post.comments, partial: 'comments/comment', as: :comment
```
+The `as: :some_symbol` is used with partials. It will take care of mapping the passed in object to a variable for the partial. If the value is a collection (either implicitly or explicitly by using the `collection:` option, then each value of the collection is passed to the partial as the variable `some_symbol`. If the value is a singular object, then the object is passed to the partial as the variable `some_symbol`.
+
+Be sure not to confuse the `as:` option to mean nesting of the partial. For example:
+
+```ruby
+ # Use the default `views/comments/_comment.json.jbuilder`, putting @comment as the comment local variable.
+ # Note, `comment` attributes are "inlined".
+ json.partial! @comment, as: :comment
+```
+
+is quite different than:
+
+```ruby
+ # comment attributes are nested under a "comment" property
+json.comment do
+ json.partial! "/comments/comment.json.jbuilder", comment: @comment
+end
+```
+
You can pass any objects into partial templates with or without `:locals` option.
```ruby
@@ -256,21 +274,6 @@
Jbuilder.key_format camelize: :lower
```
-Faster JSON backends
---------------------
-
-Jbuilder uses MultiJson, which by default will use the JSON gem. That gem is
-currently tangled with ActiveSupport's all-Ruby `#to_json` implementation,
-which is slow (fixed in Rails >= 4.1). For faster Jbuilder rendering, you can
-specify something like the Yajl JSON generator instead. You'll need to include
-the `yajl-ruby` gem in your Gemfile and then set the following configuration
-for MultiJson:
-
-``` ruby
-require 'multi_json'
-MultiJson.use :yajl
- ```
-
## Contributing to Jbuilder
Jbuilder is the work of many contributors. You're encouraged to submit pull requests, propose
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_4_2.gemfile new/gemfiles/rails_4_2.gemfile
--- old/gemfiles/rails_4_2.gemfile 2018-11-05 16:49:16.000000000 +0100
+++ new/gemfiles/rails_4_2.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -5,7 +5,6 @@
gem "rake"
gem "mocha", require: false
gem "appraisal"
-gem "pry"
gem "rails", "~> 4.2.0"
gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_5_0.gemfile new/gemfiles/rails_5_0.gemfile
--- old/gemfiles/rails_5_0.gemfile 2018-11-05 16:49:16.000000000 +0100
+++ new/gemfiles/rails_5_0.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -5,7 +5,6 @@
gem "rake"
gem "mocha", require: false
gem "appraisal"
-gem "pry"
-gem "rails", ">= 5.0.0", "< 5.1"
+gem "rails", "~> 5.0.0"
gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_5_1.gemfile new/gemfiles/rails_5_1.gemfile
--- old/gemfiles/rails_5_1.gemfile 2018-11-05 16:49:16.000000000 +0100
+++ new/gemfiles/rails_5_1.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -5,7 +5,6 @@
gem "rake"
gem "mocha", require: false
gem "appraisal"
-gem "pry"
-gem "rails", ">= 5.1.0", "< 5.2"
+gem "rails", "~> 5.1.0"
gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_5_2.gemfile new/gemfiles/rails_5_2.gemfile
--- old/gemfiles/rails_5_2.gemfile 1970-01-01 01:00:00.000000000 +0100
+++ new/gemfiles/rails_5_2.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -0,0 +1,10 @@
+# This file was generated by Appraisal
+
+source "https://rubygems.org"
+
+gem "rake"
+gem "mocha", require: false
+gem "appraisal"
+gem "rails", "~> 5.2.0"
+
+gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_6_0.gemfile new/gemfiles/rails_6_0.gemfile
--- old/gemfiles/rails_6_0.gemfile 1970-01-01 01:00:00.000000000 +0100
+++ new/gemfiles/rails_6_0.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -0,0 +1,10 @@
+# This file was generated by Appraisal
+
+source "https://rubygems.org"
+
+gem "rake"
+gem "mocha", require: false
+gem "appraisal"
+gem "rails", "~> 6.0.0.rc1"
+
+gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gemfiles/rails_head.gemfile new/gemfiles/rails_head.gemfile
--- old/gemfiles/rails_head.gemfile 1970-01-01 01:00:00.000000000 +0100
+++ new/gemfiles/rails_head.gemfile 2019-05-14 19:38:31.000000000 +0200
@@ -0,0 +1,10 @@
+# This file was generated by Appraisal
+
+source "https://rubygems.org"
+
+gem "rake"
+gem "mocha", require: false
+gem "appraisal"
+gem "rails", github: "rails/rails"
+
+gemspec path: "../"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jbuilder.gemspec new/jbuilder.gemspec
--- old/jbuilder.gemspec 2018-11-05 16:49:16.000000000 +0100
+++ new/jbuilder.gemspec 2019-05-14 19:38:31.000000000 +0200
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = 'jbuilder'
- s.version = '2.8.0'
+ s.version = '2.9.1'
s.authors = 'David Heinemeier Hansson'
s.email = 'david(a)basecamp.com'
s.summary = 'Create JSON structures via a Builder-style DSL'
@@ -10,7 +10,6 @@
s.required_ruby_version = '>= 1.9.3'
s.add_dependency 'activesupport', '>= 4.2.0'
- s.add_dependency 'multi_json', '>= 1.2'
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- test/*`.split("\n")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/jbuilder_generator.rb new/lib/generators/rails/jbuilder_generator.rb
--- old/lib/generators/rails/jbuilder_generator.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/jbuilder_generator.rb 2019-05-14 19:38:31.000000000 +0200
@@ -10,6 +10,8 @@
argument :attributes, type: :array, default: [], banner: 'field:type field:type'
+ class_option :timestamps, type: :boolean, default: true
+
def create_root_folder
path = File.join('app/views', controller_file_path)
empty_directory path unless File.directory?(path)
@@ -33,8 +35,12 @@
[name, :json, :jbuilder] * '.'
end
- def attributes_list_with_timestamps
- attributes_list(attributes_names + %w(created_at updated_at))
+ def full_attributes_list
+ if options[:timestamps]
+ attributes_list(attributes_names + %w(created_at updated_at))
+ else
+ attributes_list(attributes_names)
+ end
end
def attributes_list(attributes = attributes_names)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/scaffold_controller_generator.rb new/lib/generators/rails/scaffold_controller_generator.rb
--- old/lib/generators/rails/scaffold_controller_generator.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/scaffold_controller_generator.rb 2019-05-14 19:38:31.000000000 +0200
@@ -7,6 +7,12 @@
source_paths << File.expand_path('../templates', __FILE__)
hook_for :jbuilder, type: :boolean, default: true
+
+ private
+
+ def permitted_params
+ attributes_names.map { |name| ":#{name}" }.join(', ')
+ end unless private_method_defined? :permitted_params
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/api_controller.rb new/lib/generators/rails/templates/api_controller.rb
--- old/lib/generators/rails/templates/api_controller.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/templates/api_controller.rb 2019-05-14 19:38:31.000000000 +0200
@@ -56,7 +56,7 @@
<%- if attributes_names.empty? -%>
params.fetch(<%= ":#{singular_table_name}" %>, {})
<%- else -%>
- params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
+ params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>)
<%- end -%>
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/controller.rb new/lib/generators/rails/templates/controller.rb
--- old/lib/generators/rails/templates/controller.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/templates/controller.rb 2019-05-14 19:38:31.000000000 +0200
@@ -77,7 +77,7 @@
<%- if attributes_names.empty? -%>
params.fetch(<%= ":#{singular_table_name}" %>, {})
<%- else -%>
- params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
+ params.require(<%= ":#{singular_table_name}" %>).permit(<%= permitted_params %>)
<%- end -%>
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/index.json.jbuilder new/lib/generators/rails/templates/index.json.jbuilder
--- old/lib/generators/rails/templates/index.json.jbuilder 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/templates/index.json.jbuilder 2019-05-14 19:38:31.000000000 +0200
@@ -1 +1 @@
-json.array! @<%= plural_table_name %>, partial: '<%= plural_table_name %>/<%= singular_table_name %>', as: :<%= singular_table_name %>
+json.array! @<%= plural_table_name %>, partial: "<%= plural_table_name %>/<%= singular_table_name %>", as: :<%= singular_table_name %>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/generators/rails/templates/partial.json.jbuilder new/lib/generators/rails/templates/partial.json.jbuilder
--- old/lib/generators/rails/templates/partial.json.jbuilder 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/generators/rails/templates/partial.json.jbuilder 2019-05-14 19:38:31.000000000 +0200
@@ -1,2 +1,2 @@
-json.extract! <%= singular_table_name %>, <%= attributes_list_with_timestamps %>
+json.extract! <%= singular_table_name %>, <%= full_attributes_list %>
json.url <%= singular_table_name %>_url(<%= singular_table_name %>, format: :json)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/jbuilder/jbuilder_template.rb new/lib/jbuilder/jbuilder_template.rb
--- old/lib/jbuilder/jbuilder_template.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/jbuilder/jbuilder_template.rb 2019-05-14 19:38:31.000000000 +0200
@@ -104,7 +104,7 @@
private
def _render_partial_with_options(options)
- options.reverse_merge! locals: {}
+ options.reverse_merge! locals: options.except(:partial, :as, :collection)
options.reverse_merge! ::JbuilderTemplate.template_lookup_options
as = options[:as]
@@ -222,11 +222,12 @@
class JbuilderHandler
cattr_accessor :default_format
- self.default_format = Mime[:json]
+ self.default_format = :json
- def self.call(template)
+ def self.call(template, source = nil)
+ source ||= template.source
# this juggling is required to keep line numbers right in the error
- %{__already_defined = defined?(json); json||=JbuilderTemplate.new(self); #{template.source}
+ %{__already_defined = defined?(json); json||=JbuilderTemplate.new(self); #{source}
json.target! unless (__already_defined && __already_defined != "method")}
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/jbuilder.rb new/lib/jbuilder.rb
--- old/lib/jbuilder.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/lib/jbuilder.rb 2019-05-14 19:38:31.000000000 +0200
@@ -2,7 +2,7 @@
require 'jbuilder/blank'
require 'jbuilder/key_formatter'
require 'jbuilder/errors'
-require 'multi_json'
+require 'json'
require 'ostruct'
class Jbuilder
@@ -247,7 +247,7 @@
# Encodes the current builder as JSON.
def target!
- ::MultiJson.dump(@attributes)
+ @attributes.to_json
end
private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2018-11-05 16:49:16.000000000 +0100
+++ new/metadata 2019-05-14 19:38:31.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: jbuilder
version: !ruby/object:Gem::Version
- version: 2.8.0
+ version: 2.9.1
platform: ruby
authors:
- David Heinemeier Hansson
autorequire:
bindir: bin
cert_chain: []
-date: 2018-11-05 00:00:00.000000000 Z
+date: 2019-05-14 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
@@ -24,20 +24,6 @@
- - ">="
- !ruby/object:Gem::Version
version: 4.2.0
-- !ruby/object:Gem::Dependency
- name: multi_json
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: '1.2'
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: '1.2'
description:
email: david(a)basecamp.com
executables: []
@@ -56,6 +42,9 @@
- gemfiles/rails_4_2.gemfile
- gemfiles/rails_5_0.gemfile
- gemfiles/rails_5_1.gemfile
+- gemfiles/rails_5_2.gemfile
+- gemfiles/rails_6_0.gemfile
+- gemfiles/rails_head.gemfile
- jbuilder.gemspec
- lib/generators/rails/jbuilder_generator.rb
- lib/generators/rails/scaffold_controller_generator.rb
@@ -98,8 +87,7 @@
- !ruby/object:Gem::Version
version: '0'
requirements: []
-rubyforge_project:
-rubygems_version: 2.7.6
+rubygems_version: 3.0.3
signing_key:
specification_version: 4
summary: Create JSON structures via a Builder-style DSL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/jbuilder_generator_test.rb new/test/jbuilder_generator_test.rb
--- old/test/jbuilder_generator_test.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/jbuilder_generator_test.rb 2019-05-14 19:38:31.000000000 +0200
@@ -21,18 +21,26 @@
run_generator
assert_file 'app/views/posts/index.json.jbuilder' do |content|
- assert_match %r{json.array! @posts, partial: 'posts/post', as: :post}, content
+ assert_match %r{json\.array! @posts, partial: "posts/post", as: :post}, content
end
assert_file 'app/views/posts/show.json.jbuilder' do |content|
- assert_match %r{json.partial! \"posts/post\", post: @post}, content
+ assert_match %r{json\.partial! "posts/post", post: @post}, content
end
-
- assert_file 'app/views/posts/_post.json.jbuilder' do |content|
+
+ assert_file 'app/views/posts/_post.json.jbuilder' do |content|
assert_match %r{json\.extract! post, :id, :title, :body}, content
+ assert_match %r{:created_at, :updated_at}, content
assert_match %r{json\.url post_url\(post, format: :json\)}, content
end
-
+ end
+ test 'timestamps are not generated in partial with --no-timestamps' do
+ run_generator %w(Post title body:text --no-timestamps)
+
+ assert_file 'app/views/posts/_post.json.jbuilder' do |content|
+ assert_match %r{json\.extract! post, :id, :title, :body$}, content
+ assert_no_match %r{:created_at, :updated_at}, content
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/jbuilder_template_test.rb new/test/jbuilder_template_test.rb
--- old/test/jbuilder_template_test.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/jbuilder_template_test.rb 2019-05-14 19:38:31.000000000 +0200
@@ -1,457 +1,312 @@
require "test_helper"
-require "mocha/setup"
-require "active_model"
-require "action_view"
require "action_view/testing/resolvers"
-require "active_support/cache"
-require "jbuilder/jbuilder_template"
-BLOG_POST_PARTIAL = <<-JBUILDER
- json.extract! blog_post, :id, :body
- json.author do
- first_name, last_name = blog_post.author_name.split(nil, 2)
- json.first_name first_name
- json.last_name last_name
- end
-JBUILDER
-
-COLLECTION_PARTIAL = <<-JBUILDER
- json.extract! collection, :id, :name
-JBUILDER
-
-RACER_PARTIAL = <<-JBUILDER
- json.extract! racer, :id, :name
-JBUILDER
-
-class Racer
- extend ActiveModel::Naming
- include ActiveModel::Conversion
-
- def initialize(id, name)
- @id, @name = id, name
- end
-
- attr_reader :id, :name
-end
+class JbuilderTemplateTest < ActiveSupport::TestCase
+ POST_PARTIAL = <<-JBUILDER
+ json.extract! post, :id, :body
+ json.author do
+ first_name, last_name = post.author_name.split(nil, 2)
+ json.first_name first_name
+ json.last_name last_name
+ end
+ JBUILDER
+ COLLECTION_PARTIAL = <<-JBUILDER
+ json.extract! collection, :id, :name
+ JBUILDER
-BlogPost = Struct.new(:id, :body, :author_name)
-Collection = Struct.new(:id, :name)
-blog_authors = [ "David Heinemeier Hansson", "Pavel Pravosud" ].cycle
-BLOG_POST_COLLECTION = Array.new(10){ |i| BlogPost.new(i+1, "post body #{i+1}", blog_authors.next) }
-COLLECTION_COLLECTION = Array.new(5){ |i| Collection.new(i+1, "collection #{i+1}") }
-
-ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
-
-PARTIALS = {
- "_partial.json.jbuilder" => "foo ||= 'hello'; json.content foo",
- "_blog_post.json.jbuilder" => BLOG_POST_PARTIAL,
- "racers/_racer.json.jbuilder" => RACER_PARTIAL,
- "_collection.json.jbuilder" => COLLECTION_PARTIAL
-}
-
-module Rails
- def self.cache
- @cache ||= ActiveSupport::Cache::MemoryStore.new
- end
-end
+ RACER_PARTIAL = <<-JBUILDER
+ json.extract! racer, :id, :name
+ JBUILDER
-class JbuilderTemplateTest < ActionView::TestCase
- setup do
- @context = self
- Rails.cache.clear
- end
-
- def jbuild(source, options = {})
- @rendered = []
- partials = options.fetch(:partials, PARTIALS).clone
- partials["test.json.jbuilder"] = source
- resolver = ActionView::FixtureResolver.new(partials)
- lookup_context.view_paths = [resolver]
- template = ActionView::Template.new(source, "test", JbuilderHandler, virtual_path: "test")
- json = template.render(self, {}).strip
- MultiJson.load(json)
- end
-
- def undef_context_methods(*names)
- self.class_eval do
- names.each do |name|
- undef_method name.to_sym if method_defined?(name.to_sym)
- end
- end
- end
+ PARTIALS = {
+ "_partial.json.jbuilder" => "json.content content",
+ "_post.json.jbuilder" => POST_PARTIAL,
+ "racers/_racer.json.jbuilder" => RACER_PARTIAL,
+ "_collection.json.jbuilder" => COLLECTION_PARTIAL,
- def assert_collection_rendered(result, context = nil)
- result = result.fetch(context) if context
+ # Ensure we find only Jbuilder partials from within Jbuilder templates.
+ "_post.html.erb" => "Hello world!"
+ }
- assert_equal 10, result.length
- assert_equal Array, result.class
- assert_equal "post body 5", result[4]["body"]
- assert_equal "Heinemeier Hansson", result[2]["author"]["last_name"]
- assert_equal "Pavel", result[5]["author"]["first_name"]
- end
+ AUTHORS = [ "David Heinemeier Hansson", "Pavel Pravosud" ].cycle
+ POSTS = (1..10).collect { |i| Post.new(i, "Post ##{i}", AUTHORS.next) }
- test "rendering" do
- result = jbuild(<<-JBUILDER)
- json.content "hello"
- JBUILDER
+ setup { Rails.cache.clear }
+ test "basic template" do
+ result = render('json.content "hello"')
assert_equal "hello", result["content"]
end
- test "key_format! with parameter" do
- result = jbuild(<<-JBUILDER)
- json.key_format! camelize: [:lower]
- json.camel_style "for JS"
- JBUILDER
-
- assert_equal ["camelStyle"], result.keys
- end
-
- test "key_format! propagates to child elements" do
- result = jbuild(<<-JBUILDER)
- json.key_format! :upcase
- json.level1 "one"
- json.level2 do
- json.value "two"
- end
- JBUILDER
-
- assert_equal "one", result["LEVEL1"]
- assert_equal "two", result["LEVEL2"]["VALUE"]
+ test "partial by name with top-level locals" do
+ result = render('json.partial! "partial", content: "hello"')
+ assert_equal "hello", result["content"]
end
- test "partial! renders partial" do
- result = jbuild(<<-JBUILDER)
- json.partial! "partial"
- JBUILDER
-
+ test "partial by name with nested locals" do
+ result = render('json.partial! "partial", locals: { content: "hello" }')
assert_equal "hello", result["content"]
end
- test "partial! + locals via :locals option" do
- result = jbuild(<<-JBUILDER)
- json.partial! "partial", locals: { foo: "howdy" }
- JBUILDER
-
- assert_equal "howdy", result["content"]
+ test "partial by options containing nested locals" do
+ result = render('json.partial! partial: "partial", locals: { content: "hello" }')
+ assert_equal "hello", result["content"]
end
- test "partial! + locals without :locals key" do
- result = jbuild(<<-JBUILDER)
- json.partial! "partial", foo: "goodbye"
- JBUILDER
-
- assert_equal "goodbye", result["content"]
+ test "partial by options containing top-level locals" do
+ result = render('json.partial! partial: "partial", content: "hello"')
+ assert_equal "hello", result["content"]
end
- test "partial! renders collections" do
- result = jbuild(<<-JBUILDER)
- json.partial! "blog_post", collection: BLOG_POST_COLLECTION, as: :blog_post
- JBUILDER
-
- assert_collection_rendered result
+ test "partial for Active Model" do
+ result = render('json.partial! @racer', racer: Racer.new(123, "Chris Harris"))
+ assert_equal 123, result["id"]
+ assert_equal "Chris Harris", result["name"]
end
- test "partial! renders collections when as argument is a string" do
- result = jbuild(<<-JBUILDER)
- json.partial! "blog_post", collection: BLOG_POST_COLLECTION, as: "blog_post"
- JBUILDER
-
- assert_collection_rendered result
+ test "partial collection by name with symbol local" do
+ result = render('json.partial! "post", collection: @posts, as: :post', posts: POSTS)
+ assert_equal 10, result.count
+ assert_equal "Post #5", result[4]["body"]
+ assert_equal "Heinemeier Hansson", result[2]["author"]["last_name"]
+ assert_equal "Pavel", result[5]["author"]["first_name"]
end
- test "partial! renders collections as collections" do
- result = jbuild(<<-JBUILDER)
- json.partial! "collection", collection: COLLECTION_COLLECTION, as: :collection
- JBUILDER
-
- assert_equal 5, result.length
+ test "partial collection by name with string local" do
+ result = render('json.partial! "post", collection: @posts, as: "post"', posts: POSTS)
+ assert_equal 10, result.count
+ assert_equal "Post #5", result[4]["body"]
+ assert_equal "Heinemeier Hansson", result[2]["author"]["last_name"]
+ assert_equal "Pavel", result[5]["author"]["first_name"]
end
- test "partial! renders as empty array for nil-collection" do
- result = jbuild(<<-JBUILDER)
- json.partial! "blog_post", collection: nil, as: :blog_post
- JBUILDER
-
- assert_equal [], result
+ test "partial collection by options" do
+ result = render('json.partial! partial: "post", collection: @posts, as: :post', posts: POSTS)
+ assert_equal 10, result.count
+ assert_equal "Post #5", result[4]["body"]
+ assert_equal "Heinemeier Hansson", result[2]["author"]["last_name"]
+ assert_equal "Pavel", result[5]["author"]["first_name"]
end
- test "partial! renders collection (alt. syntax)" do
- result = jbuild(<<-JBUILDER)
- json.partial! partial: "blog_post", collection: BLOG_POST_COLLECTION, as: :blog_post
- JBUILDER
-
- assert_collection_rendered result
+ test "nil partial collection by name" do
+ assert_equal [], render('json.partial! "post", collection: @posts, as: :post', posts: nil)
end
- test "partial! renders as empty array for nil-collection (alt. syntax)" do
- result = jbuild(<<-JBUILDER)
- json.partial! partial: "blog_post", collection: nil, as: :blog_post
- JBUILDER
-
- assert_equal [], result
+ test "nil partial collection by options" do
+ assert_equal [], render('json.partial! partial: "post", collection: @posts, as: :post', posts: nil)
end
- test "render array of partials" do
- result = jbuild(<<-JBUILDER)
- json.array! BLOG_POST_COLLECTION, partial: "blog_post", as: :blog_post
- JBUILDER
-
- assert_collection_rendered result
+ test "array of partials" do
+ result = render('json.array! @posts, partial: "post", as: :post', posts: POSTS)
+ assert_equal 10, result.count
+ assert_equal "Post #5", result[4]["body"]
+ assert_equal "Heinemeier Hansson", result[2]["author"]["last_name"]
+ assert_equal "Pavel", result[5]["author"]["first_name"]
end
- test "render array of partials as empty array with nil-collection" do
- result = jbuild(<<-JBUILDER)
- json.array! nil, partial: "blog_post", as: :blog_post
- JBUILDER
-
- assert_equal [], result
+ test "empty array of partials from nil collection" do
+ assert_equal [], render('json.array! @posts, partial: "post", as: :post', posts: nil)
end
- test "render array of partials as a value" do
- result = jbuild(<<-JBUILDER)
- json.posts BLOG_POST_COLLECTION, partial: "blog_post", as: :blog_post
- JBUILDER
-
- assert_collection_rendered result, "posts"
+ test "array of partials under key" do
+ result = render('json.posts @posts, partial: "post", as: :post', posts: POSTS)
+ assert_equal 10, result["posts"].count
+ assert_equal "Post #5", result["posts"][4]["body"]
+ assert_equal "Heinemeier Hansson", result["posts"][2]["author"]["last_name"]
+ assert_equal "Pavel", result["posts"][5]["author"]["first_name"]
end
- test "render as empty array if partials as a nil value" do
- result = jbuild <<-JBUILDER
- json.posts nil, partial: "blog_post", as: :blog_post
- JBUILDER
-
+ test "empty array of partials under key from nil collection" do
+ result = render('json.posts @posts, partial: "post", as: :post', posts: nil)
assert_equal [], result["posts"]
end
- test "cache an empty block" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
-
- jbuild <<-JBUILDER
- json.cache! "nothing" do
+ test "object fragment caching" do
+ render(<<-JBUILDER)
+ json.cache! "cache-key" do
+ json.name "Hit"
end
JBUILDER
- result = nil
-
- assert_nothing_raised do
- result = jbuild(<<-JBUILDER)
- json.foo "bar"
- json.cache! "nothing" do
- end
- JBUILDER
- end
-
- assert_equal "bar", result["foo"]
+ hit = render('json.cache! "cache-key" do; end')
+ assert_equal "Hit", hit["name"]
end
- test "fragment caching a JSON object" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
-
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.name "Cache"
+ test "conditional object fragment caching" do
+ render(<<-JBUILDER)
+ json.cache_if! true, "cache-key" do
+ json.a "Hit"
end
- JBUILDER
- result = jbuild(<<-JBUILDER)
- json.cache! "cachekey" do
- json.name "Miss"
+ json.cache_if! false, "cache-key" do
+ json.b "Hit"
end
JBUILDER
- assert_equal "Cache", result["name"]
- end
-
- test "conditionally fragment caching a JSON object" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
-
- jbuild <<-JBUILDER
- json.cache_if! true, "cachekey" do
- json.test1 "Cache"
+ result = render(<<-JBUILDER)
+ json.cache_if! true, "cache-key" do
+ json.a "Miss"
end
- json.cache_if! false, "cachekey" do
- json.test2 "Cache"
- end
- JBUILDER
- result = jbuild(<<-JBUILDER)
- json.cache_if! true, "cachekey" do
- json.test1 "Miss"
- end
- json.cache_if! false, "cachekey" do
- json.test2 "Miss"
+ json.cache_if! false, "cache-key" do
+ json.b "Miss"
end
JBUILDER
- assert_equal "Cache", result["test1"]
- assert_equal "Miss", result["test2"]
+ assert_equal "Hit", result["a"]
+ assert_equal "Miss", result["b"]
end
- test "fragment caching deserializes an array" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
+ test "object fragment caching with expiry" do
+ travel_to "2018-05-12 11:29:00 -0400"
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.array! %w[a b c]
+ render <<-JBUILDER
+ json.cache! "cache-key", expires_in: 1.minute do
+ json.name "Hit"
end
JBUILDER
- result = jbuild(<<-JBUILDER)
- json.cache! "cachekey" do
- json.array! %w[1 2 3]
+ travel 30.seconds
+
+ result = render(<<-JBUILDER)
+ json.cache! "cache-key", expires_in: 1.minute do
+ json.name "Miss"
end
JBUILDER
- assert_equal %w[a b c], result
- end
-
- test "fragment caching works with current cache digests" do
- undef_context_methods :fragment_name_with_digest
+ assert_equal "Hit", result["name"]
- @context.expects :cache_fragment_name
- ActiveSupport::Cache.expects :expand_cache_key
+ travel 31.seconds
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.name "Cache"
+ result = render(<<-JBUILDER)
+ json.cache! "cache-key", expires_in: 1.minute do
+ json.name "Miss"
end
JBUILDER
- end
-
- test "fragment caching uses combined_fragment_cache_key" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
- @context.expects(:combined_fragment_cache_key).with("cachekey")
+ assert_equal "Miss", result["name"]
+ end
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.name "Cache"
+ test "object root caching" do
+ render <<-JBUILDER
+ json.cache_root! "cache-key" do
+ json.name "Hit"
end
JBUILDER
- end
- test "fragment caching instrumentation" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
-
- payloads = {}
- ActiveSupport::Notifications.subscribe("read_fragment.action_controller") { |*args| payloads[:read_fragment] = args.last }
- ActiveSupport::Notifications.subscribe("write_fragment.action_controller") { |*args| payloads[:write_fragment] = args.last }
+ assert_equal JSON.dump(name: "Hit"), Rails.cache.read("jbuilder/root/cache-key")
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.name "Cache"
+ result = render(<<-JBUILDER)
+ json.cache_root! "cache-key" do
+ json.name "Miss"
end
JBUILDER
- assert_equal "jbuilder/cachekey", payloads[:read_fragment][:key]
- assert_equal "jbuilder/cachekey", payloads[:write_fragment][:key]
+ assert_equal "Hit", result["name"]
end
- test "current cache digest option accepts options" do
- undef_context_methods :fragment_name_with_digest
-
- @context.expects(:cache_fragment_name).with("cachekey", skip_digest: true)
- ActiveSupport::Cache.expects :expand_cache_key
-
- jbuild <<-JBUILDER
- json.cache! "cachekey", skip_digest: true do
- json.name "Cache"
+ test "array fragment caching" do
+ render <<-JBUILDER
+ json.cache! "cache-key" do
+ json.array! %w[ a b c ]
end
JBUILDER
- end
-
- test "fragment caching accepts expires_in option" do
- undef_context_methods :fragment_name_with_digest
-
- @context.expects(:cache_fragment_name).with("cachekey", {})
- jbuild <<-JBUILDER
- json.cache! "cachekey", expires_in: 1.minute do
- json.name "Cache"
- end
- JBUILDER
+ assert_equal %w[ a b c ], render('json.cache! "cache-key" do; end')
end
- test "caching root structure" do
- undef_context_methods :fragment_name_with_digest, :cache_fragment_name
-
- cache_miss_result = jbuild <<-JBUILDER
- json.cache_root! "cachekey" do
- json.name "Miss"
+ test "array root caching" do
+ render <<-JBUILDER
+ json.cache_root! "cache-key" do
+ json.array! %w[ a b c ]
end
JBUILDER
- cache_hit_result = jbuild <<-JBUILDER
- json.cache_root! "cachekey" do
- json.name "Hit"
+ assert_equal JSON.dump(%w[ a b c ]), Rails.cache.read("jbuilder/root/cache-key")
+
+ assert_equal %w[ a b c ], render(<<-JBUILDER)
+ json.cache_root! "cache-key" do
+ json.array! %w[ d e f ]
end
JBUILDER
-
- assert_equal cache_miss_result, cache_hit_result
end
- test "failing to cache root after attributes have been defined" do
+ test "failing to cache root after JSON structures have been defined" do
assert_raises ActionView::Template::Error, "cache_root! can't be used after JSON structures have been defined" do
- jbuild <<-JBUILDER
+ render <<-JBUILDER
json.name "Kaboom"
- json.cache_root! "cachekey" do
+ json.cache_root! "cache-key" do
json.name "Miss"
end
JBUILDER
end
end
- test "does not perform caching when controller.perform_caching is false" do
- controller.perform_caching = false
+ test "empty fragment caching" do
+ render 'json.cache! "nothing" do; end'
- jbuild <<-JBUILDER
- json.cache! "cachekey" do
- json.name "Cache"
- end
- JBUILDER
+ result = nil
+
+ assert_nothing_raised do
+ result = render(<<-JBUILDER)
+ json.foo "bar"
+ json.cache! "nothing" do; end
+ JBUILDER
+ end
- assert_equal Rails.cache.inspect[/entries=(\d+)/, 1], "0"
+ assert_equal "bar", result["foo"]
end
- test "invokes templates via params via set!" do
- @post = BLOG_POST_COLLECTION.first
+ test "cache instrumentation" do
+ payloads = {}
+
+ ActiveSupport::Notifications.subscribe("read_fragment.action_controller") { |*args| payloads[:read] = args.last }
+ ActiveSupport::Notifications.subscribe("write_fragment.action_controller") { |*args| payloads[:write] = args.last }
- result = jbuild(<<-JBUILDER)
- json.post @post, partial: "blog_post", as: :blog_post
+ render <<-JBUILDER
+ json.cache! "cache-key" do
+ json.name "Cache"
+ end
JBUILDER
- assert_equal 1, result["post"]["id"]
- assert_equal "post body 1", result["post"]["body"]
- assert_equal "David", result["post"]["author"]["first_name"]
+ assert_equal "jbuilder/cache-key", payloads[:read][:key]
+ assert_equal "jbuilder/cache-key", payloads[:write][:key]
end
- test "invokes templates implicitly for ActiveModel objects" do
- @racer = Racer.new(123, "Chris Harris")
-
- result = jbuild(<<-JBUILDER)
- json.partial! @racer
+ test "camelized keys" do
+ result = render(<<-JBUILDER)
+ json.key_format! camelize: [:lower]
+ json.first_name "David"
JBUILDER
- assert_equal %w[id name], result.keys
- assert_equal 123, result["id"]
- assert_equal "Chris Harris", result["name"]
+ assert_equal "David", result["firstName"]
end
- test "renders partial via set! with same name as HTML partial" do
- partials = {
- "_blog_post.html.erb" => "Hello!",
- "_blog_post.json.jbuilder" => BLOG_POST_PARTIAL
- }
+ private
+ def render(*args)
+ JSON.load render_without_parsing(*args)
+ end
- @post = BLOG_POST_COLLECTION.first
+ def render_without_parsing(source, assigns = {})
+ view = build_view(fixtures: PARTIALS.merge("source.json.jbuilder" => source), assigns: assigns)
+ view.render(template: "source.json.jbuilder")
+ end
- result = jbuild(<<-JBUILDER, partials: partials)
- json.post @post, partial: "blog_post", as: :blog_post
- JBUILDER
+ def build_view(options = {})
+ resolver = ActionView::FixtureResolver.new(options.fetch(:fixtures))
+ lookup_context = ActionView::LookupContext.new([ resolver ], {}, [""])
+ controller = ActionView::TestCase::TestController.new
- assert_not_nil result["post"]
- assert_equal 1, result["post"]["id"]
- end
+ # TODO: Use with_empty_template_cache unconditionally after dropping support for Rails <6.0.
+ view = if ActionView::Base.respond_to?(:with_empty_template_cache)
+ ActionView::Base.with_empty_template_cache.new(lookup_context, options.fetch(:assigns, {}), controller)
+ else
+ ActionView::Base.new(lookup_context, options.fetch(:assigns, {}), controller)
+ end
+
+ def view.view_cache_dependencies; []; end
+
+ view
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/jbuilder_test.rb new/test/jbuilder_test.rb
--- old/test/jbuilder_test.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/jbuilder_test.rb 2019-05-14 19:38:31.000000000 +0200
@@ -75,7 +75,7 @@
end
assert result.has_key?('content')
- assert_equal nil, result['content']
+ assert_nil result['content']
end
test 'multiple keys' do
@@ -713,4 +713,13 @@
end
end
end
+
+ if RUBY_VERSION >= "2.2.10"
+ test "respects JSON encoding customizations" do
+ # Active Support overrides Time#as_json for custom formatting.
+ # Ensure we call #to_json on the final attributes instead of JSON.dump.
+ result = JSON.load(Jbuilder.encode { |json| json.time Time.parse("2018-05-13 11:51:00.485 -0400") })
+ assert_equal "2018-05-13T11:51:00.485-04:00", result["time"]
+ end
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/scaffold_api_controller_generator_test.rb new/test/scaffold_api_controller_generator_test.rb
--- old/test/scaffold_api_controller_generator_test.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/scaffold_api_controller_generator_test.rb 2019-05-14 19:38:31.000000000 +0200
@@ -6,7 +6,7 @@
class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase
tests Rails::Generators::ScaffoldControllerGenerator
- arguments %w(Post title body:text --api)
+ arguments %w(Post title body:text images:attachments --api)
destination File.expand_path('../tmp', __FILE__)
setup :prepare_destination
@@ -39,7 +39,11 @@
end
assert_match %r{def post_params}, content
- assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content
+ if Rails::VERSION::MAJOR >= 6
+ assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content
+ else
+ assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/scaffold_controller_generator_test.rb new/test/scaffold_controller_generator_test.rb
--- old/test/scaffold_controller_generator_test.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/scaffold_controller_generator_test.rb 2019-05-14 19:38:31.000000000 +0200
@@ -4,7 +4,7 @@
class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
tests Rails::Generators::ScaffoldControllerGenerator
- arguments %w(Post title body:text)
+ arguments %w(Post title body:text images:attachments)
destination File.expand_path('../tmp', __FILE__)
setup :prepare_destination
@@ -51,7 +51,11 @@
end
assert_match %r{def post_params}, content
- assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content
+ if Rails::VERSION::MAJOR >= 6
+ assert_match %r{params\.require\(:post\)\.permit\(:title, :body, images: \[\]\)}, content
+ else
+ assert_match %r{params\.require\(:post\)\.permit\(:title, :body, :images\)}, content
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test/test_helper.rb new/test/test_helper.rb
--- old/test/test_helper.rb 2018-11-05 16:49:16.000000000 +0100
+++ new/test/test_helper.rb 2019-05-14 19:38:31.000000000 +0200
@@ -1,16 +1,34 @@
require "bundler/setup"
+
require "active_support"
-require 'active_support/core_ext/array/access'
+require "active_support/core_ext/array/access"
+require "active_support/cache/memory_store"
+require "active_support/json"
+require "active_model"
+require "action_view"
require "rails/version"
+
require "jbuilder"
-if Rails::VERSION::STRING > "4.0"
- require "active_support/testing/autorun"
-else
- require "test/unit"
+require "active_support/testing/autorun"
+require "mocha/setup"
+
+ActiveSupport.test_order = :random
+
+class << Rails
+ def cache
+ @cache ||= ActiveSupport::Cache::MemoryStore.new
+ end
end
+class Post < Struct.new(:id, :body, :author_name); end
-if ActiveSupport.respond_to?(:test_order=)
- ActiveSupport.test_order = :random
+class Racer < Struct.new(:id, :name)
+ extend ActiveModel::Naming
+ include ActiveModel::Conversion
end
+
+ActionView::Template.register_template_handler :jbuilder, JbuilderHandler
+
+ActionView::Base.remove_possible_method :fragment_name_with_digest
+ActionView::Base.remove_possible_method :cache_fragment_name
1
0
Hello community,
here is the log from the commit of package rubygem-autoprefixer-rails for openSUSE:Factory checked in at 2019-05-17 23:44:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-autoprefixer-rails (Old)
and /work/SRC/openSUSE:Factory/.rubygem-autoprefixer-rails.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-autoprefixer-rails"
Fri May 17 23:44:28 2019 rev:28 rq:703696 version:9.5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-autoprefixer-rails/rubygem-autoprefixer-rails.changes 2019-05-05 21:22:26.449444147 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-autoprefixer-rails.new.5148/rubygem-autoprefixer-rails.changes 2019-05-17 23:44:34.637866213 +0200
@@ -1,0 +2,10 @@
+Fri May 17 09:24:36 UTC 2019 - Lukas Krause <lukas.krause(a)suse.com>
+
+- update to version 9.5.1.1
+ see installed CHANGELOG.md
+
+ ## 9.5.1.1
+ * Fix register_postprocessor' for nil:NilClass error.
+ * Update Can I Use data.
+
+-------------------------------------------------------------------
Old:
----
autoprefixer-rails-9.5.1.gem
New:
----
autoprefixer-rails-9.5.1.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-autoprefixer-rails.spec ++++++
--- /var/tmp/diff_new_pack.0kQHTk/_old 2019-05-17 23:44:35.949865492 +0200
+++ /var/tmp/diff_new_pack.0kQHTk/_new 2019-05-17 23:44:35.953865490 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -24,7 +24,7 @@
#
Name: rubygem-autoprefixer-rails
-Version: 9.5.1
+Version: 9.5.1.1
Release: 0
%define mod_name autoprefixer-rails
%define mod_full_name %{mod_name}-%{version}
++++++ autoprefixer-rails-9.5.1.gem -> autoprefixer-rails-9.5.1.1.gem ++++++
++++ 36699 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package rmt-server for openSUSE:Factory checked in at 2019-05-17 23:44:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rmt-server (Old)
and /work/SRC/openSUSE:Factory/.rmt-server.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rmt-server"
Fri May 17 23:44:25 2019 rev:19 rq:703695 version:2.1.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/rmt-server/rmt-server.changes 2019-03-05 12:23:19.828877868 +0100
+++ /work/SRC/openSUSE:Factory/.rmt-server.new.5148/rmt-server.changes 2019-05-17 23:44:32.929867151 +0200
@@ -1,0 +2,80 @@
+Wed May 15 14:36:17 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 2.1.4
+- Fix duplicate nginx location in rmt-server-pubcloud (bsc#1135222)
+
+-------------------------------------------------------------------
+Mon May 13 12:09:59 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 2.1.3
+- Mirror additional repos that were enabled during mirroring (bsc#1132690)
+
+-------------------------------------------------------------------
+Wed May 8 10:06:23 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 2.1.2
+- Make service IDs consistent across different RMT instances (bsc#1134428)
+
+-------------------------------------------------------------------
+Mon May 6 11:07:36 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 2.1.1
+- Make SMT data import scripts faster (bsc#1134190)
+
+-------------------------------------------------------------------
+Wed Apr 24 09:29:14 UTC 2019 - Thomas Muntaner <tmuntaner(a)suse.com>
+
+- Version 2.1.0
+- Updated dependency nokogiri to 1.10.3 (CVE-2019-11068)
+- Allow RMT registration to work under HTTP as well as HTTPS.
+
+-------------------------------------------------------------------
+Wed Apr 17 10:51:47 UTC 2019 - tmuntaner(a)suse.com
+
+- Version 2.0.0
+- Breaking Change: Added headers to generated CSV files
+
+-------------------------------------------------------------------
+Tue Apr 2 16:02:04 UTC 2019 - Serhii Kotov <skotov(a)suse.com>
+
+- Version 1.2.8
+- Offline migration from SLE 15 to SLE 15 SP1 will add Python2 module
+
+-------------------------------------------------------------------
+Thu Mar 21 11:55:02 UTC 2019 - skotov(a)suse.com
+
+- Version 1.2.7
+- Online migrations will automatically add additional modules
+ to the client systems depending on the base product
+
+-------------------------------------------------------------------
+Wed Mar 20 16:14:09 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 1.2.6
+- Fix incorrect triggering of registration sharing (bsc#1129392)
+- Add a script to manually test registration sharing
+
+-------------------------------------------------------------------
+Mon Mar 18 11:41:47 UTC 2019 - tmuntaner(a)suse.com
+
+- Version 1.2.5
+- Updated rails to version 5.1.6.2 (CVE-2019-5419)
+
+-------------------------------------------------------------------
+Wed Mar 13 12:18:05 UTC 2019 - Ivan Kapelyukhin <ikapelyukhin(a)suse.com>
+
+- Version 1.2.4
+- Supply log severity to journald
+
+-------------------------------------------------------------------
+Tue Mar 12 17:21:47 UTC 2019 - Hernan Schmidt <hschmidt(a)suse.com>
+
+- Version 1.2.3
+- Fix license mirroring issue in some non-SUSE repositories (bsc#1128858)
+
+-------------------------------------------------------------------
+Mon Mar 11 14:16:31 UTC 2019 - Thomas Muntaner <tmuntaner(a)suse.com>
+
+- Added the ability to mirror the SUMA product tree.
+
+-------------------------------------------------------------------
Old:
----
auth-handler.conf
auth-location.conf
http-certs.conf
nginx-http.conf
nginx-https.conf
rmt-cli_bash-completion.sh
rmt-server-1.2.2.tar.bz2
rmt-server-migration.service
rmt-server-mirror-sles12.timer
rmt-server-mirror.service
rmt-server-mirror.timer
rmt-server-sync-sles12.timer
rmt-server-sync.service
rmt-server-sync.timer
rmt-server.reg
rmt-server.service
rmt-server.target
New:
----
rmt-server-2.1.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rmt-server.spec ++++++
--- /var/tmp/diff_new_pack.zCsRiE/_old 2019-05-17 23:44:33.825866659 +0200
+++ /var/tmp/diff_new_pack.zCsRiE/_new 2019-05-17 23:44:33.829866656 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -22,39 +22,19 @@
%define conf_dir %{_sysconfdir}/rmt
%define rmt_user _rmt
%define rmt_group nginx
-%if 0%{?suse_version} == 1315
-%define is_sle_12_family 1
-%define ruby_version ruby2.5
-%else
%define ruby_version %{rb_default_ruby_suffix}
-%endif
+
Name: rmt-server
-Version: 1.2.2
+Version: 2.1.4
Release: 0
Summary: Repository mirroring tool and registration proxy for SCC
License: GPL-2.0-or-later
Group: Productivity/Networking/Web/Proxy
-Url: https://software.opensuse.org/package/rmt-server
+URL: https://software.opensuse.org/package/rmt-server
Source0: %{name}-%{version}.tar.bz2
Source1: rmt-server-rpmlintrc
Source2: rmt.conf
Source3: rmt-cli.8.gz
-Source4: nginx-http.conf
-Source5: rmt-server-mirror.service
-Source6: rmt-server-mirror.timer
-Source7: rmt-server-sync.service
-Source8: rmt-server-sync.timer
-Source9: rmt-server.service
-Source10: rmt-server.target
-Source11: rmt-server-migration.service
-Source12: rmt-server-sync-sles12.timer
-Source13: rmt-server-mirror-sles12.timer
-Source14: nginx-https.conf
-Source15: auth-handler.conf
-Source16: auth-location.conf
-Source17: rmt-cli_bash-completion.sh
-Source18: rmt-server.reg
-Source19: http-certs.conf
BuildRequires: %{ruby_version}
BuildRequires: %{ruby_version}-devel
BuildRequires: %{rubygem bundler}
@@ -104,9 +84,7 @@
cp -p %{SOURCE2} .
%setup -q
-sed -i '1 s|/usr/bin/env\ ruby|/usr/bin/ruby.%{ruby_version}|' bin/rails
-sed -i '1 s|/usr/bin/env\ ruby|/usr/bin/ruby.%{ruby_version}|' bin/rmt-cli
-sed -i '1 s|/usr/bin/env\ ruby|/usr/bin/ruby.%{ruby_version}|' bin/rmt-data-import
+sed -i '1 s|/usr/bin/env\ ruby|/usr/bin/ruby.%{ruby_version}|' bin/*
%build
bundle.%{ruby_version} install %{?jobs:--jobs %{jobs}} --without test development --deployment --standalone
@@ -121,32 +99,30 @@
mv tmp %{buildroot}%{data_dir}
mkdir %{buildroot}%{data_dir}/public
mv public/repo %{buildroot}%{data_dir}/public/
+mv public/suma %{buildroot}%{data_dir}/public/
mv vendor %{buildroot}%{lib_dir}
cp -ar . %{buildroot}%{app_dir}
ln -s %{data_dir}/tmp %{buildroot}%{app_dir}/tmp
ln -s %{data_dir}/public/repo %{buildroot}%{app_dir}/public/repo
+ln -s %{data_dir}/public/suma %{buildroot}%{app_dir}/public/suma
mkdir -p %{buildroot}%{_bindir}
ln -s %{app_dir}/bin/rmt-cli %{buildroot}%{_bindir}
ln -s %{app_dir}/bin/rmt-data-import %{buildroot}%{_bindir}/rmt-data-import
+ln -s %{app_dir}/bin/rmt-test-regsharing %{buildroot}%{_bindir}
install -D -m 644 %{_sourcedir}/rmt-cli.8.gz %{buildroot}%{_mandir}/man8/rmt-cli.8.gz
# systemd
mkdir -p %{buildroot}%{_unitdir}
-%if 0%{?is_sle_12_family}
-install -m 444 %{SOURCE12} %{buildroot}%{_unitdir}/rmt-server-sync.timer
-install -m 444 %{SOURCE13} %{buildroot}%{_unitdir}/rmt-server-mirror.timer
-%else
-install -m 444 %{SOURCE6} %{buildroot}%{_unitdir}
-install -m 444 %{SOURCE8} %{buildroot}%{_unitdir}
-%endif
-
-install -m 444 %{SOURCE5} %{buildroot}%{_unitdir}
-install -m 444 %{SOURCE7} %{buildroot}%{_unitdir}
-install -m 444 %{SOURCE9} %{buildroot}%{_unitdir}
-install -m 444 %{SOURCE10} %{buildroot}%{_unitdir}
-install -m 444 %{SOURCE11} %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server-mirror.timer %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server-sync.timer %{buildroot}%{_unitdir}
+
+install -m 444 package/files/systemd/rmt-server-mirror.service %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server-sync.service %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server.service %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server.target %{buildroot}%{_unitdir}
+install -m 444 package/files/systemd/rmt-server-migration.service %{buildroot}%{_unitdir}
install -m 444 engines/registration_sharing/package/rmt-server-regsharing.service %{buildroot}%{_unitdir}
install -m 444 engines/registration_sharing/package/rmt-server-regsharing.timer %{buildroot}%{_unitdir}
@@ -161,11 +137,10 @@
mv %{_builddir}/rmt.conf %{buildroot}%{_sysconfdir}/rmt.conf
# nginx
-install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/nginx/vhosts.d/rmt-server-http.conf
-install -D -m 644 %{SOURCE14} %{buildroot}%{_sysconfdir}/nginx/vhosts.d/rmt-server-https.conf
-install -D -m 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/nginx/rmt-auth.d/auth-handler.conf
-install -D -m 644 %{SOURCE16} %{buildroot}%{_sysconfdir}/nginx/rmt-auth.d/auth-location.conf
-install -D -m 644 package/http-certs.conf %{buildroot}%{_sysconfdir}/nginx/rmt-pubcloud.d/http-certs.conf
+install -D -m 644 package/files/nginx/nginx-http.conf %{buildroot}%{_sysconfdir}/nginx/vhosts.d/rmt-server-http.conf
+install -D -m 644 package/files/nginx/nginx-https.conf %{buildroot}%{_sysconfdir}/nginx/vhosts.d/rmt-server-https.conf
+install -D -m 644 package/files/nginx/auth-handler.conf %{buildroot}%{_sysconfdir}/nginx/rmt-auth.d/auth-handler.conf
+install -D -m 644 package/files/nginx/auth-location.conf %{buildroot}%{_sysconfdir}/nginx/rmt-auth.d/auth-location.conf
sed -i -e '/BUNDLE_PATH: .*/cBUNDLE_PATH: "\/usr\/lib64\/rmt\/vendor\/bundle\/"' \
-e 's/^BUNDLE_JOBS: .*/BUNDLE_JOBS: "1"/' \
@@ -176,9 +151,9 @@
install -D -m 544 support/rmt %{buildroot}%{_libexecdir}/supportconfig/plugins/rmt
# bash completion
-install -D -m 644 %{SOURCE17} %{buildroot}%{_datadir}/bash-completion/completions/rmt-cli
+install -D -m 644 package/files/rmt-cli_bash-completion.sh %{buildroot}%{_datadir}/bash-completion/completions/rmt-cli
-install -D -m 644 %{SOURCE18} %{buildroot}%{_sysconfdir}/slp.reg.d/rmt-server.reg
+install -D -m 644 package/files/rmt-server.reg %{buildroot}%{_sysconfdir}/slp.reg.d/rmt-server.reg
# cleanup of /usr/bin/env commands
grep -rl '\/usr\/bin\/env ruby' %{buildroot}%{lib_dir}/vendor/bundle/ruby | xargs \
@@ -211,6 +186,7 @@
%files
%attr(-,%{rmt_user},%{rmt_group}) %{app_dir}
%exclude %{app_dir}/engines/
+%exclude %{app_dir}/package/
%attr(-,%{rmt_user},%{rmt_group}) %{data_dir}
%attr(-,%{rmt_user},%{rmt_group}) %{conf_dir}
%attr(-,%{rmt_user},%{rmt_group}) /var/lib/rmt
@@ -246,14 +222,13 @@
%{_libexecdir}/supportconfig/plugins/rmt
%files pubcloud
+%{_bindir}/rmt-test-regsharing
%attr(-,%{rmt_user},%{rmt_group}) %{app_dir}/engines/
%dir %{_sysconfdir}/nginx/rmt-auth.d/
-%dir %{_sysconfdir}/nginx/rmt-pubcloud.d/
%dir %attr(-,%{rmt_user},%{rmt_group}) %{data_dir}/regsharing
%exclude %{app_dir}/engines/registration_sharing/package/
%config(noreplace) %{_sysconfdir}/nginx/rmt-auth.d/auth-handler.conf
%config(noreplace) %{_sysconfdir}/nginx/rmt-auth.d/auth-location.conf
-%config(noreplace) %{_sysconfdir}/nginx/rmt-pubcloud.d/http-certs.conf
%{_sbindir}/rcrmt-server-regsharing
%{_unitdir}/rmt-server-regsharing.service
@@ -293,6 +268,9 @@
%postun
%service_del_postun rmt-server.target rmt-server.service rmt-server-migration.service rmt-server-mirror.service rmt-server-sync.service
+%posttrans
+/usr/bin/systemctl reload nginx.service
+
%pre pubcloud
%service_add_pre rmt-server-regsharing.service
++++++ rmt-cli.8.gz ++++++
--- /var/tmp/diff_new_pack.zCsRiE/_old 2019-05-17 23:44:33.849866645 +0200
+++ /var/tmp/diff_new_pack.zCsRiE/_new 2019-05-17 23:44:33.853866644 +0200
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "RMT\-CLI" "8" "February 2019" "" "RMT"
+.TH "RMT\-CLI" "8" "May 2019" "" "RMT"
.
.SH "NAME"
\fBrmt\-cli\fR \- control and configure your RMT server
@@ -113,7 +113,7 @@
.
.TP
\fBrmt\-cli mirror\fR
-In its default configuration, RMT mirrors its enabled product repositories automatically once every night\. This command starts this mirroring process manually\.
+In its default configuration, RMT mirrors its enabled product repositories automatically once every night\. This command starts this mirroring process manually\. Changes made to repository mirroring settings while mirroring is in progress are respected by the mirroring process\.
.
.P
When all enabled repositories are fully mirrored, you can register your client systems against RMT by running \fBSUSEConnect \-\-url https://<RMT hostname>\fR on the client machine\. After successful registration the repositories from RMT will be used by \fBzypper\fR on the client machine\.
++++++ rmt-server-1.2.2.tar.bz2 -> rmt-server-2.1.4.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/rmt-server/rmt-server-1.2.2.tar.bz2 /work/SRC/openSUSE:Factory/.rmt-server.new.5148/rmt-server-2.1.4.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package erlang for openSUSE:Factory checked in at 2019-05-17 23:44:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/erlang (Old)
and /work/SRC/openSUSE:Factory/.erlang.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "erlang"
Fri May 17 23:44:22 2019 rev:82 rq:703691 version:21.3.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/erlang/erlang.changes 2019-05-02 19:16:46.261357756 +0200
+++ /work/SRC/openSUSE:Factory/.erlang.new.5148/erlang.changes 2019-05-17 23:44:27.777869981 +0200
@@ -1,0 +2,81 @@
+Thu May 16 09:47:44 UTC 2019 - Gabriele Santomaggio <g.santomaggio(a)gmail.com>
+
+- Update to 21.3.8.1:
+- Changes for 21.3.8.1:
+ * http://erlang.org/download/OTP-21.3.8.1.README
+ * erts: Fixed a buffer overflow when binary_to_existing_atom/2
+ and list_to_existing_atom/2 was used with the latin1
+ encoding.
+ * ssl: Correct solution for retaining tcp flow control
+ OTP-15802 (ERL-934) as to not break ssl:recv as
+ reported in (ERL-938)
+ * tools: cover would fail to start if two processes tried to
+ start it at the exact same time.
+- Update to 21.3.8:
+- Changes for 21.3.8:
+ * http://erlang.org/download/OTP-21.3.8.README
+ * common_test: The test result when a hook function fails is in
+ general the same as if the function that the hook is
+ associated with fails. For example, if
+ post_init_per_testcase fails the result is that the
+ test case is skipped, as is the case when
+ init_per_testcase fails.This, however, was earlier not
+ true for timetrap timeouts or other error situations
+ where the process running the hook function was killed.
+ This is now corrected, so the error handling should be
+ the same no matter how the hook function fails.
+ Related Id(s): ERIERL-334
+ * common_test: In some rare cases, when two common_test nodes used the
+ same log directory, a timing problem could occur which
+ caused common_test to crash because it's log cache file
+ was unexpectedly empty. This is now corrected.
+ Related Id(s): ERIERL-342
+ * common_test: Two new common_test hook functions are introduced:
+ post_groups/2, which is called after Suite:groups/0
+ post_all/3, which is called after Suite:all/0
+ A new term, {testcase,TestCase,RepeatProperties} is now
+ also allowed in the return from all/0. This can be used
+ for repeating a single test case a specific number of
+ times, or until it fails or succeeds once.
+ * eldap, public_key, ssl: Back port of bug fix ERL-893 from OTP-22 and document
+ enhancements that will solve dialyzer warnings for
+ users of the ssl application.
+ This change also affects public_key, eldap (and inet doc).
+ Related Id(s): ERL-893, ERL-929, PR-2215
+ * erl_interface: erl_interface/ei refused to use node names with an
+ alive name (the part of the node name preceding the @
+ sign) longer than 63 characters and a host name longer
+ than 64 characters. The total amount of characters
+ allowed in a node name (alivename@hostname) was thus
+ limited to 128 characters. These limits applied both to
+ the own node name as well as node names of other nodes.
+ Ordinary Erlang nodes limit the node name length to 256
+ characters, which meant that you could not communicate
+ with certain Erlang nodes due to their node name used.
+
+ erl_interface/ei now allow the total amount of
+ characters in a node name to be up to 256 characters.
+ These characters may be distributed between alive name
+ and host name in whatever way needed. That is, the
+ maximum amount of characters in the alive name may be
+ 254 and the maximum amount of characters in the host
+ name may be 254, but in total the node name must not
+ exceed 256 characters.
+ * erts: Fixed more bugs in process_info(reductions) causing it
+ to sometimes behave non-monotonic. That is, a
+ subsequent call toward the same process could return a
+ lower reduction value.
+ Related Id(s): ERIERL-337, OTP-15709
+ * ssl: Missing check of size of user_data_buffer made internal
+ socket behave as an active socket instead of active N.
+ This could cause memory problems.
+ * eldap, public_key, ssl: Back port of bug fix ERL-893 from OTP-22 and document
+ enhancements that will solve dialyzer warnings for
+ users of the ssl application.
+ This change also affects public_key, eldap (and inet doc).
+ * stdlib: A bug in gen_statem has been fixed where the internal
+ timeout message could arrive as an info to the callback
+ module during high load due to incorrect use of
+ asynchronous timer cancel.
+
+-------------------------------------------------------------------
Old:
----
OTP-21.3.7.tar.gz
New:
----
OTP-21.3.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ erlang.spec ++++++
--- /var/tmp/diff_new_pack.imBslb/_old 2019-05-17 23:44:29.025869296 +0200
+++ /var/tmp/diff_new_pack.imBslb/_new 2019-05-17 23:44:29.029869293 +0200
@@ -26,7 +26,7 @@
%endif
Name: erlang
-Version: 21.3.7
+Version: 21.3.8.1
Release: 0
# not set up to be built with position independend executable support
#!BuildIgnore: gcc-PIE
++++++ OTP-21.3.7.tar.gz -> OTP-21.3.8.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/erlang/OTP-21.3.7.tar.gz /work/SRC/openSUSE:Factory/.erlang.new.5148/OTP-21.3.8.1.tar.gz differ: char 13, line 1
1
0
Hello community,
here is the log from the commit of package ghc-turtle for openSUSE:Factory checked in at 2019-05-17 23:44:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-turtle (Old)
and /work/SRC/openSUSE:Factory/.ghc-turtle.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-turtle"
Fri May 17 23:44:19 2019 rev:6 rq:703665 version:1.5.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-turtle/ghc-turtle.changes 2019-05-05 21:21:50.573346414 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-turtle.new.5148/ghc-turtle.changes 2019-05-17 23:44:20.865873777 +0200
@@ -1,0 +2,5 @@
+Fri May 17 08:26:56 UTC 2019 - Peter Simons <psimons(a)suse.com>
+
+- Update Cabal file for more accurate build dependencies.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-turtle.spec ++++++
--- /var/tmp/diff_new_pack.3cdon3/_old 2019-05-17 23:44:22.097873101 +0200
+++ /var/tmp/diff_new_pack.3cdon3/_new 2019-05-17 23:44:22.097873101 +0200
@@ -26,7 +26,7 @@
Group: Development/Libraries/Haskell
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
-Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-ansi-wl-pprint-devel
BuildRequires: ghc-async-devel
++++++ turtle.cabal ++++++
--- /var/tmp/diff_new_pack.3cdon3/_old 2019-05-17 23:44:22.145873075 +0200
+++ /var/tmp/diff_new_pack.3cdon3/_new 2019-05-17 23:44:22.145873075 +0200
@@ -1,6 +1,6 @@
Name: turtle
Version: 1.5.14
-x-revision: 1
+x-revision: 2
Cabal-Version: >=1.10
Build-Type: Simple
License: BSD3
@@ -62,7 +62,7 @@
hostname < 1.1 ,
managed >= 1.0.3 && < 1.1 ,
process >= 1.0.1.1 && < 1.7 ,
- semigroups >= 0.5.0 && < 0.19,
+ semigroups >= 0.5.0 && < 0.20,
system-filepath >= 0.3.1 && < 0.5 ,
system-fileio >= 0.2.1 && < 0.4 ,
stm < 2.6 ,
1
0
Hello community,
here is the log from the commit of package ghc-foldl for openSUSE:Factory checked in at 2019-05-17 23:44:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-foldl (Old)
and /work/SRC/openSUSE:Factory/.ghc-foldl.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-foldl"
Fri May 17 23:44:16 2019 rev:4 rq:703651 version:1.4.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-foldl/ghc-foldl.changes 2018-10-25 08:17:11.860048283 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-foldl.new.5148/ghc-foldl.changes 2019-05-17 23:44:18.113875289 +0200
@@ -1,0 +2,5 @@
+Fri May 17 06:55:31 UTC 2019 - Peter Simons <psimons(a)suse.com>
+
+- Update Cabal file for more accurate build dependencies.
+
+-------------------------------------------------------------------
New:
----
foldl.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-foldl.spec ++++++
--- /var/tmp/diff_new_pack.X4p9hV/_old 2019-05-17 23:44:18.781874922 +0200
+++ /var/tmp/diff_new_pack.X4p9hV/_new 2019-05-17 23:44:18.781874922 +0200
@@ -25,6 +25,7 @@
Group: Development/Libraries/Haskell
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-comonad-devel
@@ -62,6 +63,7 @@
%prep
%setup -q -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ foldl.cabal ++++++
Name: foldl
Version: 1.4.5
x-revision: 2
Cabal-Version: >=1.8.0.2
Build-Type: Simple
License: BSD3
License-File: LICENSE
Copyright: 2013 Gabriel Gonzalez
Author: Gabriel Gonzalez
Maintainer: Gabriel439(a)gmail.com
Bug-Reports: https://github.com/Gabriel439/Haskell-Foldl-Library/issues
Synopsis: Composable, streaming, and efficient left folds
Description: This library provides strict left folds that stream in constant
memory, and you can combine folds using @Applicative@ style to derive new
folds. Derived folds still traverse the container just once and are often as
efficient as hand-written folds.
Category: Control
Extra-Source-Files:
CHANGELOG.md
README.md
Source-Repository head
Type: git
Location: https://github.com/Gabriel439/Haskell-Foldl-Library
Library
HS-Source-Dirs: src
Build-Depends:
base >= 4.8 && < 5 ,
bytestring >= 0.9.2.1 && < 0.11,
mwc-random >= 0.13.1.0 && < 0.15,
primitive < 0.7 ,
text >= 0.11.2.0 && < 1.3 ,
transformers >= 0.2.0.0 && < 0.6 ,
vector >= 0.7 && < 0.13,
containers >= 0.5.0.0 && < 0.7 ,
unordered-containers < 0.3 ,
hashable < 1.4 ,
contravariant < 1.6 ,
semigroups >= 0.17 && < 1.20,
profunctors < 5.5 ,
semigroupoids >= 1.0 && < 5.4 ,
comonad >= 4.0 && < 6 ,
vector-builder < 0.4
Exposed-Modules:
Control.Foldl,
Control.Foldl.ByteString,
Control.Foldl.Text,
Control.Scanl
Other-Modules:
Control.Foldl.Optics
Control.Foldl.Internal
GHC-Options: -O2 -Wall
Benchmark benchmarks
Type: exitcode-stdio-1.0
HS-Source-Dirs: bench
Main-Is: benchmarks.hs
Build-Depends:
base,
criterion,
foldl
GHC-Options: -O2 -Wall -rtsopts
1
0
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2019-05-17 23:44:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Fri May 17 23:44:10 2019 rev:176 rq:703648 version:20190516.fab9b27f
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2019-05-16 22:09:13.610326980 +0200
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.5148/openSUSE-release-tools.changes 2019-05-17 23:44:13.849877631 +0200
@@ -1,0 +2,55 @@
+Thu May 16 15:56:13 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190516.fab9b27f:
+ * Convert stdout of repo checker perl part to string
+ * Fix check_source with python3
+
+-------------------------------------------------------------------
+Thu May 16 08:25:25 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190516.63108381:
+ * Run container cleaner as python3
+ * sha1_short: support bytes and str
+
+-------------------------------------------------------------------
+Thu May 16 06:04:51 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190516.4e26ac93:
+ * Sort architectures to fix #2021
+
+-------------------------------------------------------------------
+Thu May 16 05:36:12 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190516.6dce9a79:
+ * Run even more bots in python3
+ * Run source and repo checker in python3
+
+-------------------------------------------------------------------
+Thu May 16 04:42:13 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190516.69527f81:
+ * origin-manager: switch to python3.
+ * osclib/origin: cast filter() to list() to improve debug output [python3].
+ * osc-origin, osclib/origin: port first dict key/value access [python3].
+ * osclib/util: sha1_short(): encode data as utf-8 [python3].
+
+-------------------------------------------------------------------
+Thu May 16 00:41:07 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190515.8221df00:
+ * osclib/core: rework as package_list_kind_filtered().
+ * osclib/core: provide package_kind().
+
+-------------------------------------------------------------------
+Wed May 15 19:02:02 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190515.33b36945:
+ * Run ttm in python3 containers as well
+
+-------------------------------------------------------------------
+Wed May 15 18:38:46 UTC 2019 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20190515.b5131ba8:
+ * Run the monitors in python3 containers
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20190515.5a1b08d8.obscpio
New:
----
openSUSE-release-tools-20190516.fab9b27f.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.WAv80I/_old 2019-05-17 23:44:15.325876820 +0200
+++ /var/tmp/diff_new_pack.WAv80I/_new 2019-05-17 23:44:15.329876819 +0200
@@ -31,7 +31,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20190515.5a1b08d8
+Version: 20190516.fab9b27f
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WAv80I/_old 2019-05-17 23:44:15.369876796 +0200
+++ /var/tmp/diff_new_pack.WAv80I/_new 2019-05-17 23:44:15.373876794 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param name="changesrevision">5a1b08d81bf4a42d4413e340d555a3fee25cf811</param>
+ <param name="changesrevision">fab9b27fa8bd08f3176f6244a5272fd01e12e1b1</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20190515.5a1b08d8.obscpio -> openSUSE-release-tools-20190516.fab9b27f.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ReviewBot.py new/openSUSE-release-tools-20190516.fab9b27f/ReviewBot.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ReviewBot.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ReviewBot.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-from __future__ import print_function
+#!/usr/bin/python3
from pprint import pprint
import os, sys, re
@@ -30,17 +28,7 @@
from osc import conf
import osc.core
-try:
- from urllib.error import HTTPError, URLError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError, URLError
-
-try:
- import __builtin__
- input = getattr(__builtin__, 'raw_input')
-except (ImportError, AttributeError):
- pass
+from urllib.error import HTTPError, URLError
from itertools import count
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ToolBase.py new/openSUSE-release-tools-20190516.fab9b27f/ToolBase.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ToolBase.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ToolBase.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-from __future__ import print_function
+#!/usr/bin/python3
from xml.etree import cElementTree as ET
import cmdln
@@ -11,13 +9,9 @@
import sys
import time
-try:
- from urllib.error import HTTPError
- from urllib.parse import quote_plus
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
- from urllib import quote_plus
+from urllib.error import HTTPError
+from urllib.parse import quote_plus
+
import osc.conf
import osc.core
@@ -29,12 +23,6 @@
http_DELETE = osc.core.http_DELETE
http_POST = osc.core.http_POST
-try:
- import __builtin__
- input = getattr(__builtin__, 'raw_input')
-except (ImportError, AttributeError):
- pass
-
# http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-even…
def chunks(l, n):
""" Yield successive n-sized chunks from l.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/check_source.py new/openSUSE-release-tools-20190516.fab9b27f/check_source.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/check_source.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/check_source.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import os
import re
@@ -13,15 +13,12 @@
import osc.conf
import osc.core
+from osc.util.helper import decode_list
from osclib.conf import Config
from osclib.core import devel_project_get
from osclib.core import devel_project_fallback
from osclib.core import group_members
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
+from urllib.error import HTTPError
import ReviewBot
from osclib.conf import str2bool
@@ -153,9 +150,9 @@
civs += 'LC_ALL=C perl %s _old %s 2>&1' % (source_checker, target_package)
p = subprocess.Popen(civs, shell=True, stdout=subprocess.PIPE, close_fds=True)
ret = os.waitpid(p.pid, 0)[1]
- checked = p.stdout.readlines()
+ checked = decode_list(p.stdout.readlines())
- output = ' '.join(checked).translate(None, '\033')
+ output = ' '.join(checked).replace('\033', '')
os.chdir('/tmp')
# ret = 0 : Good
@@ -206,7 +203,7 @@
@staticmethod
def checkout_package(*args, **kwargs):
_stdout = sys.stdout
- sys.stdout = open(os.devnull, 'wb')
+ sys.stdout = open(os.devnull, 'w')
try:
result = osc.core.checkout_package(*args, **kwargs)
finally:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/check_source_in_factory.py new/openSUSE-release-tools-20190516.fab9b27f/check_source_in_factory.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/check_source_in_factory.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/check_source_in_factory.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from pprint import pprint
import os, sys, re
@@ -13,11 +13,7 @@
import osc.conf
import osc.core
-try:
- from urllib.error import HTTPError, URLError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError, URLError
+from urllib.error import HTTPError, URLError
import yaml
import ReviewBot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/check_tags_in_requests.py new/openSUSE-release-tools-20190516.fab9b27f/check_tags_in_requests.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/check_tags_in_requests.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/check_tags_in_requests.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import sys
import re
@@ -11,17 +11,7 @@
except ImportError:
import cElementTree as ET
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
-
-try:
- from urllib.error import URLError
-except ImportError:
- # python 2.x
- from urllib2 import URLError
+from urllib.error import HTTPError, URLError
import ReviewBot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/container_cleaner.py new/openSUSE-release-tools-20190516.fab9b27f/container_cleaner.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/container_cleaner.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/container_cleaner.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,9 +1,7 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
# (c) 2019 fvogt(a)suse.de
# GPLv3-only
-from __future__ import print_function
-
import osc.conf
import osc.core
import logging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/devel-project.py new/openSUSE-release-tools-20190516.fab9b27f/devel-project.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/devel-project.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/devel-project.py 2019-05-16 17:55:03.000000000 +0200
@@ -16,7 +16,7 @@
from osclib.conf import Config
from osclib.core import devel_project_fallback
from osclib.core import entity_email
-from osclib.core import package_list_without_links
+from osclib.core import package_list_kind_filtered
from osclib.core import request_age
from osclib.stagingapi import StagingAPI
from osclib.util import mail_send
@@ -107,7 +107,7 @@
# devel_project_fallback() must be used on a per package basis.
packages = args.packages
if not packages:
- packages = package_list_without_links(apiurl, args.project)
+ packages = package_list_kind_filtered(apiurl, args.project)
maintainer_map = {}
for package in packages:
devel_project, devel_package = devel_project_fallback(apiurl, args.project, package)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.opensuse.gocd.yaml new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.opensuse.gocd.yaml
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.opensuse.gocd.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.opensuse.gocd.yaml 2019-05-16 17:55:03.000000000 +0200
@@ -0,0 +1,44 @@
+format_version: 3
+pipelines:
+ openSUSE.Source.Check:
+ group: openSUSE.Checkers
+ lock_behavior: unlockWhenFinished
+ timer:
+ spec: 0 */5 * ? * *
+ environment_variables:
+ OSC_CONFIG: /home/go/config/oscrc-factory-auto
+ materials:
+ git:
+ git: https://github.com/openSUSE/openSUSE-release-tools.git
+ stages:
+ - Run:
+ approval:
+ type: manual
+ jobs:
+ Run:
+ timeout: 0
+ resources:
+ - staging-bot3
+ tasks:
+ - script: ./check_source.py -A https://api.opensuse.org --verbose --skip-add-reviews --group factory-auto review
+ openSUSE.Repochecker:
+ group: openSUSE.Checkers
+ lock_behavior: unlockWhenFinished
+ timer:
+ spec: 0 0 * ? * *
+ environment_variables:
+ OSC_CONFIG: /home/go/config/oscrc-repo-checker
+ materials:
+ git:
+ git: https://github.com/openSUSE/openSUSE-release-tools.git
+ stages:
+ - Run:
+ approval:
+ type: manual
+ jobs:
+ Run:
+ timeout: 0
+ resources:
+ - repo-checker3
+ tasks:
+ - script: ./repo_checker.py -A https://api.opensuse.org --debug review
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.suse.gocd.yaml new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.suse.gocd.yaml
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.suse.gocd.yaml 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.suse.gocd.yaml 2019-05-16 17:55:03.000000000 +0200
@@ -20,7 +20,7 @@
resources:
- staging-bot3
tasks:
- - script: python3 ./check_tags_in_requests.py -A https://api.suse.de --verbose --user=sle-changelog-checker --review=accept-onpass --factory=openSUSE.org:openSUSE:Factory review
+ - script: ./check_tags_in_requests.py -A https://api.suse.de --verbose --user=sle-changelog-checker --review=accept-onpass --factory=openSUSE.org:openSUSE:Factory review
SLE.Project.Only:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -39,15 +39,15 @@
SLE_15_SP1:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-15-SP1:GA
+ - script: ./repo_checker.py -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-15-SP1:GA
SLE_12_SP5:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-12-SP5:GA
+ - script: ./repo_checker.py -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-12-SP5:GA
SLE-SP1.Manager42:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -85,9 +85,9 @@
Run:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug review
+ - script: ./repo_checker.py -A https://api.suse.de --debug review
SLE.Leaper:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -107,7 +107,7 @@
resources:
- leaper
tasks:
- - script: python3 /usr/bin/osrt-leaper -A https://api.suse.de --group=leaper --user=leaper --verbose --manual-version-updates --manual-maintenance-updates review
+ - script: ./leaper.py -A https://api.suse.de --group=leaper --user=leaper --verbose --manual-version-updates --manual-maintenance-updates review
SLE.Staging.Bot.Regular:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -152,9 +152,9 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- - script: /usr/bin/osrt-staging-report --debug -A https://api.suse.de -p SUSE:SLE-15-SP1:GA
+ - script: ./staging-report.py --debug -A https://api.suse.de -p SUSE:SLE-15-SP1:GA
SLE.Check.Dups:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -173,7 +173,7 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: /usr/bin/osc -A https://api.suse.de check_dups SUSE:SLE-15-SP1:GA
SLE.Source.Check:
@@ -194,9 +194,9 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- - script: /usr/bin/osrt-check_source -A https://api.suse.de --verbose --skip-add-reviews --group factory-auto review
+ - script: ./check_source.py -A https://api.suse.de --verbose --skip-add-reviews --group factory-auto review
SLE12.SP5.InstallCheck:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -217,47 +217,47 @@
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s A
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s A
Run.B:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s B
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s B
Run.C:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s C
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s C
Run.D:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s D
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s D
Run.H:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s H
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s H
Run.S:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s S
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s S
Run.V:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s V
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s V
Run.Y:
timeout: 0
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s Y
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s Y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.suse.gocd.yaml.erb new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.suse.gocd.yaml.erb
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/checkers.suse.gocd.yaml.erb 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/checkers.suse.gocd.yaml.erb 2019-05-16 17:55:03.000000000 +0200
@@ -20,7 +20,7 @@
resources:
- staging-bot3
tasks:
- - script: python3 ./check_tags_in_requests.py -A https://api.suse.de --verbose --user=sle-changelog-checker --review=accept-onpass --factory=openSUSE.org:openSUSE:Factory review
+ - script: ./check_tags_in_requests.py -A https://api.suse.de --verbose --user=sle-changelog-checker --review=accept-onpass --factory=openSUSE.org:openSUSE:Factory review
SLE.Project.Only:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -39,15 +39,15 @@
SLE_15_SP1:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-15-SP1:GA
+ - script: ./repo_checker.py -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-15-SP1:GA
SLE_12_SP5:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-12-SP5:GA
+ - script: ./repo_checker.py -A https://api.suse.de --debug project_only --post-comments SUSE:SLE-12-SP5:GA
SLE-SP1.Manager42:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -85,9 +85,9 @@
Run:
timeout: 0
resources:
- - repo-checker
+ - repo-checker3
tasks:
- - script: /usr/bin/osrt-repo_checker -A https://api.suse.de --debug review
+ - script: ./repo_checker.py -A https://api.suse.de --debug review
SLE.Leaper:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -107,7 +107,7 @@
resources:
- leaper
tasks:
- - script: python3 /usr/bin/osrt-leaper -A https://api.suse.de --group=leaper --user=leaper --verbose --manual-version-updates --manual-maintenance-updates review
+ - script: ./leaper.py -A https://api.suse.de --group=leaper --user=leaper --verbose --manual-version-updates --manual-maintenance-updates review
SLE.Staging.Bot.Regular:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -152,9 +152,9 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- - script: /usr/bin/osrt-staging-report --debug -A https://api.suse.de -p SUSE:SLE-15-SP1:GA
+ - script: ./staging-report.py --debug -A https://api.suse.de -p SUSE:SLE-15-SP1:GA
SLE.Check.Dups:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -173,7 +173,7 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: /usr/bin/osc -A https://api.suse.de check_dups SUSE:SLE-15-SP1:GA
SLE.Source.Check:
@@ -194,9 +194,9 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- - script: /usr/bin/osrt-check_source -A https://api.suse.de --verbose --skip-add-reviews --group factory-auto review
+ - script: ./check_source.py -A https://api.suse.de --verbose --skip-add-reviews --group factory-auto review
SLE12.SP5.InstallCheck:
group: SLE.Checkers
lock_behavior: unlockWhenFinished
@@ -218,5 +218,5 @@
resources:
- repo-checker3
tasks:
- - script: python3 ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s <%= letter %>
+ - script: ./staging-installcheck.py -d -p SUSE:SLE-12-SP5:GA -A https://api.suse.de -s <%= letter %>
<% end %>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/container-cleaner.gocd.yaml new/openSUSE-release-tools-20190516.fab9b27f/gocd/container-cleaner.gocd.yaml
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/container-cleaner.gocd.yaml 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/container-cleaner.gocd.yaml 2019-05-16 17:55:03.000000000 +0200
@@ -17,7 +17,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
scripts/container_cleaner.py --verbose run openSUSE:Containers:Tumbleweed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/monitors.gocd.yaml new/openSUSE-release-tools-20190516.fab9b27f/gocd/monitors.gocd.yaml
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/monitors.gocd.yaml 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/monitors.gocd.yaml 2019-05-16 17:55:03.000000000 +0200
@@ -20,7 +20,7 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
export PYTHONPATH=$PWD/scripts
@@ -45,7 +45,7 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
# endless loop
- script: |-
@@ -63,10 +63,6 @@
git: https://github.com/openSUSE/openSUSE-release-tools.git
branch: master
destination: scripts
- osc:
- git: https://github.com/openSUSE/osc.git
- branch: python3
- destination: osc
stages:
- Run:
approval:
@@ -75,16 +71,16 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
# endless loop
- script: |-
- export PYTHONPATH=$PWD/osc:$PWD/scripts
+ export PYTHONPATH=$PWD/scripts
git config --global user.email "coolo(a)suse.de"
git config --global user.name "GoCD Repo Monitor"
git clone git://botmaster.suse.de/suse-repos.git
cd suse-repos
- python3 ../scripts/gocd/rabbit-repoid.py -A https://api.suse.de SUSE:SLE-15-SP1:GA
+ ../scripts/gocd/rabbit-repoid.py -A https://api.suse.de SUSE:SLE-15-SP1:GA
openSUSE.Repo.Monitor:
group: Monitors
lock_behavior: unlockWhenFinished
@@ -97,10 +93,6 @@
git: https://github.com/openSUSE/openSUSE-release-tools.git
branch: master
destination: scripts
- osc:
- git: https://github.com/openSUSE/osc.git
- branch: python3
- destination: osc
stages:
- Run:
approval:
@@ -109,13 +101,13 @@
Run:
timeout: 0
resources:
- - staging-bot
+ - staging-bot3
tasks:
# endless loop
- script: |-
- export PYTHONPATH=$PWD/osc:$PWD/scripts
+ export PYTHONPATH=$PWD/scripts
git config --global user.email "coolo(a)suse.de"
git config --global user.name "GoCD Repo Monitor"
git clone git://botmaster.suse.de/opensuse-repos.git
cd opensuse-repos
- python3 ../scripts/gocd/rabbit-repoid.py -A https://api.opensuse.org openSUSE:Factory openSUSE:Leap
+ ../scripts/gocd/rabbit-repoid.py -A https://api.opensuse.org openSUSE:Factory openSUSE:Leap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/rabbit-openqa.py new/openSUSE-release-tools-20190516.fab9b27f/gocd/rabbit-openqa.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/rabbit-openqa.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/rabbit-openqa.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import argparse
import logging
@@ -15,18 +15,12 @@
from lxml import etree as ET
from openqa_client.client import OpenQA_Client
from openqa_client.exceptions import ConnectionError
-try:
- from urllib.error import HTTPError, URLError
- from urllib.parse import quote_plus
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError, URLError
- from urllib import quote_plus
+from urllib.error import HTTPError, URLError
+from urllib.parse import quote_plus
import requests
from PubSubConsumer import PubSubConsumer
-
class Project(object):
def __init__(self, name):
self.name = name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/rabbit-repoid.py new/openSUSE-release-tools-20190516.fab9b27f/gocd/rabbit-repoid.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/rabbit-repoid.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/rabbit-repoid.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#!/usr/bin/python3
from __future__ import print_function
@@ -16,12 +16,7 @@
from osclib.core import target_archs
from lxml import etree as ET
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
-
+from urllib.error import HTTPError
from PubSubConsumer import PubSubConsumer
class Listener(PubSubConsumer):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/totestmanager.gocd.yaml new/openSUSE-release-tools-20190516.fab9b27f/gocd/totestmanager.gocd.yaml
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/totestmanager.gocd.yaml 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/totestmanager.gocd.yaml 2019-05-16 17:55:03.000000000 +0200
@@ -16,7 +16,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -37,7 +37,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -58,7 +58,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -79,7 +79,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -100,7 +100,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -121,7 +121,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -142,7 +142,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -163,7 +163,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -184,7 +184,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
@@ -205,7 +205,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/gocd/totestmanager.gocd.yaml.erb new/openSUSE-release-tools-20190516.fab9b27f/gocd/totestmanager.gocd.yaml.erb
--- old/openSUSE-release-tools-20190515.5a1b08d8/gocd/totestmanager.gocd.yaml.erb 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/gocd/totestmanager.gocd.yaml.erb 2019-05-16 17:55:03.000000000 +0200
@@ -19,7 +19,7 @@
- Run:
approval: manual
resources:
- - staging-bot
+ - staging-bot3
tasks:
- script: |-
install -D /home/go/config/openqa-client.conf /home/go/.config/openqa/client.conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/issue-diff.py new/openSUSE-release-tools-20190516.fab9b27f/issue-diff.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/issue-diff.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/issue-diff.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-from __future__ import print_function
+#!/usr/bin/python3
import argparse
import bugzilla
@@ -26,12 +24,6 @@
from osclib.git import CACHE_DIR
from osclib.git import sync
-try:
- import __builtin__
- input = getattr(__builtin__, 'raw_input')
-except (ImportError, AttributeError):
- pass
-
# Issue summary can contain unicode characters and therefore a string containing
# either summary or one in which ISSUE_SUMMARY is then placed must be unicode.
# For example, translation-update-upstream contains bsc#877707 which has a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/k8s-secret.py new/openSUSE-release-tools-20190516.fab9b27f/k8s-secret.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/k8s-secret.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/k8s-secret.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,18 +1,11 @@
-#!/usr/bin/python
+#!/usr/bin/python3
-from __future__ import print_function
import argparse
import os
from osclib.cache_manager import CacheManager
import subprocess
import sys
-try:
- import __builtin__
- input = getattr(__builtin__, 'raw_input')
-except (ImportError, AttributeError):
- pass
-
CACHE_DIR = CacheManager.directory('k8s-secret')
SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/leaper.py new/openSUSE-release-tools-20190516.fab9b27f/leaper.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/leaper.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/leaper.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from pprint import pprint
import os
@@ -17,11 +17,7 @@
from osclib.conf import Config
from osclib.core import devel_project_get
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
+from urllib.error import HTTPError
import yaml
import ReviewBot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/manager_42.py new/openSUSE-release-tools-20190516.fab9b27f/manager_42.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/manager_42.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/manager_42.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
import argparse
from dateutil.parser import parse as date_parse
@@ -13,11 +13,7 @@
from osc.core import get_commitlog
from osc.core import get_request_list
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
+from urllib.error import HTTPError
import subprocess
import time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/origin-manager.py new/openSUSE-release-tools-20190516.fab9b27f/origin-manager.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/origin-manager.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/origin-manager.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from osclib.core import package_source_hash
from osclib.origin import origin_annotation_dump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/osc-origin.py new/openSUSE-release-tools-20190516.fab9b27f/osc-origin.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/osc-origin.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/osc-origin.py 2019-05-16 17:55:03.000000000 +0200
@@ -10,7 +10,7 @@
from osc.core import get_request_list
from osclib.cache import Cache
from osclib.cache_manager import CacheManager
-from osclib.core import package_list_without_links
+from osclib.core import package_list_kind_filtered
from osclib.core import project_attribute_list
from osclib.origin import config_load
from osclib.origin import config_origin_list
@@ -131,7 +131,7 @@
with open(lookup_path, 'r') as lookup_stream:
lookup = yaml.safe_load(lookup_stream)
- if not isinstance(lookup.itervalues().next(), dict):
+ if not isinstance(next(iter(lookup.values())), dict):
# Convert flat format to dictionary.
for package, origin in lookup.items():
lookup[package] = {'origin': origin}
@@ -139,8 +139,7 @@
if previous:
return None
- packages = package_list_without_links(apiurl, project)
- logging.debug('{} packages found in {}'.format(len(packages), project))
+ packages = package_list_kind_filtered(apiurl, project)
lookup = {}
for package in packages:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/osclib/core.py new/openSUSE-release-tools-20190516.fab9b27f/osclib/core.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/osclib/core.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/osclib/core.py 2019-05-16 17:55:03.000000000 +0200
@@ -301,18 +301,27 @@
project_pseudometa_file_save(apiurl, project, filename, content, comment)
# Should be an API call that says give me "real" packages that does not include
-# multibuild entries nor linked packages.
-def package_list_without_links(apiurl, project):
+# multibuild entries, nor linked packages, nor maintenance update packages, but
+# does included inherited packages from project layering. Unfortunately, no such
+# call provides either server-side filtering nor enough information to filter
+# client-side. As such extra calls must be made for each package to handle the
+# various different cases that can exist between products. For a more detailed
+# write-up see the opensuse-buildservice mailing list thread:
+# https://lists.opensuse.org/opensuse-buildservice/2019-05/msg00020.html.
+def package_list_kind_filtered(apiurl, project, kinds_allowed=['source']):
query = {
'view': 'info',
'nofilename': '1',
}
url = makeurl(apiurl, ['source', project], query)
root = ETL.parse(http_GET(url)).getroot()
- return root.xpath(
- '//sourceinfo[not(./linked[@project="{}"]) and '
- 'not(contains(@package, ":"))'
- 'and not(starts-with(@package, "00"))]/@package'.format(project))
+
+ for package in root.xpath('sourceinfo/@package'):
+ kind = package_kind(apiurl, project, package)
+ if kind not in kinds_allowed:
+ continue
+
+ yield package
def attribute_value_load(apiurl, project, name, namespace='OSRT'):
url = makeurl(apiurl, ['source', project, '_attribute', namespace + ':' + name])
@@ -481,6 +490,42 @@
return True
+def package_kind(apiurl, project, package):
+ if package.startswith('00'):
+ return 'meta'
+
+ if ':' in package:
+ return 'multibuild_subpackage'
+
+ if package.startswith('patchinfo.'):
+ return 'patchinfo'
+
+ try:
+ url = makeurl(apiurl, ['source', project, package, '_meta'])
+ root = ETL.parse(http_GET(url)).getroot()
+ except HTTPError as e:
+ if e.code == 404:
+ return None
+
+ raise e
+
+ if root.find('releasename') is not None:
+ return 'maintenance_update'
+
+ if root.find('bcntsynctag') is not None:
+ return 'multispec_subpackage'
+
+ # Some multispec subpackages do not have bcntsynctag, so check link.
+ link = entity_source_link(apiurl, project, package)
+ if link is not None and link.get('cicount') == 'copy':
+ kind_target = package_kind(apiurl, project, link.get('package'))
+ if kind_target != 'maintenance_update':
+ # If a multispec subpackage was updated via a maintenance update the
+ # proper link information is lost and it will be considered source.
+ return 'multispec_subpackage'
+
+ return 'source'
+
def entity_source_link(apiurl, project, package=None):
try:
if package:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/osclib/origin.py new/openSUSE-release-tools-20190516.fab9b27f/osclib/origin.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/osclib/origin.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/osclib/origin.py 2019-05-16 17:55:03.000000000 +0200
@@ -86,7 +86,7 @@
origins = config['origins']
i = 0
while i < len(origins):
- origin = origins[i].keys()[0]
+ origin = next(iter(origins[i]))
values = origins[i][origin]
if origin == '*':
@@ -354,9 +354,9 @@
def policy_get_preprocess(apiurl, origin, policy):
project = origin.rstrip('~')
config_project = Config.get(apiurl, project)
- policy['pending_submission_allowed_reviews'] = filter(None, [
+ policy['pending_submission_allowed_reviews'] = list(filter(None, [
config_resolve_variable(v, config_project, 'config_source')
- for v in policy['pending_submission_allowed_reviews']])
+ for v in policy['pending_submission_allowed_reviews']]))
return policy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/osclib/util.py new/openSUSE-release-tools-20190516.fab9b27f/osclib/util.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/osclib/util.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/osclib/util.py 2019-05-16 17:55:03.000000000 +0200
@@ -159,4 +159,7 @@
if isinstance(data, list):
data = '::'.join(data)
+ if isinstance(data, str):
+ data = data.encode('utf-8')
+
return hashlib.sha1(data).hexdigest()[:7]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/pkglistgen/group.py new/openSUSE-release-tools-20190516.fab9b27f/pkglistgen/group.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/pkglistgen/group.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/pkglistgen/group.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import print_function
-
import logging
import re
import time
@@ -287,7 +285,7 @@
else:
src = s.lookup_str(solv.SOLVABLE_SOURCENAME)
- if src in list(self.srcpkgs):
+ if src in self.srcpkgs:
self.develpkgs[s.name] = self.srcpkgs[src]
def _filter_already_selected(self, modules, pkgdict):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/pkglistgen/tool.py new/openSUSE-release-tools-20190516.fab9b27f/pkglistgen/tool.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/pkglistgen/tool.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/pkglistgen/tool.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,5 +1,3 @@
-from __future__ import print_function
-
import ToolBase
import glob
import logging
@@ -28,11 +26,7 @@
from osclib.core import repository_arch_state
from osclib.cache_manager import CacheManager
-try:
- from urllib.parse import urlparse
-except ImportError:
- # python 2.x
- from urlparse import urlparse
+from urllib.parse import urlparse
from pkglistgen import file_utils
from pkglistgen.group import Group
@@ -69,7 +63,7 @@
self.all_architectures = None
def filter_architectures(self, architectures):
- self.filtered_architectures = list(set(architectures) & set(self.all_architectures))
+ self.filtered_architectures = sorted(list(set(architectures) & set(self.all_architectures)))
def _load_supportstatus(self):
# XXX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/repo_checker.py new/openSUSE-release-tools-20190516.fab9b27f/repo_checker.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/repo_checker.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/repo_checker.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-from __future__ import print_function
+#!/usr/bin/python3
import cmdln
from collections import namedtuple
@@ -221,10 +219,10 @@
# Format output as markdown comment.
parts = []
- stdout = stdout.strip()
+ stdout = stdout.strip().decode('utf-8')
if stdout:
parts.append('<pre>\n' + stdout + '\n' + '</pre>\n')
- stderr = stderr.strip()
+ stderr = stderr.strip().decode('utf-8')
if stderr:
parts.append('<pre>\n' + stderr + '\n' + '</pre>\n')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/staging-report.py new/openSUSE-release-tools-20190516.fab9b27f/staging-report.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/staging-report.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/staging-report.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-from __future__ import print_function
+#!/usr/bin/python3
import argparse
from datetime import datetime, timedelta
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/totest-manager.py new/openSUSE-release-tools-20190516.fab9b27f/totest-manager.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/totest-manager.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/totest-manager.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
from ttm.cli import CommandLineInterface
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ttm/cli.py new/openSUSE-release-tools-20190516.fab9b27f/ttm/cli.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ttm/cli.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ttm/cli.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,3 @@
-#!/usr/bin/python2
# -*- coding: utf-8 -*-
#
# (C) 2014 mhrusecky(a)suse.cz, openSUSE.org
@@ -9,8 +8,6 @@
# (C) 2018 dheidler(a)suse.de, openSUSE.org
# Distribute under GPLv2 or GPLv3
-from __future__ import print_function
-
import logging
import ToolBase
import cmdln
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ttm/manager.py new/openSUSE-release-tools-20190516.fab9b27f/ttm/manager.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ttm/manager.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ttm/manager.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,3 @@
-#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# (C) 2014 mhrusecky(a)suse.cz, openSUSE.org
@@ -9,8 +8,6 @@
# (C) 2018 dheidler(a)suse.de, openSUSE.org
# Distribute under GPLv2 or GPLv3
-from __future__ import print_function
-
import ToolBase
import logging
import re
@@ -18,12 +15,7 @@
from enum import IntEnum
from xml.etree import cElementTree as ET
from osclib.stagingapi import StagingAPI
-try:
- from urllib.error import HTTPError
-except ImportError:
- # python 2.x
- from urllib2 import HTTPError
-
+from urllib.error import HTTPError
from ttm.totest import ToTest
class NotFoundException(Exception):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ttm/publisher.py new/openSUSE-release-tools-20190516.fab9b27f/ttm/publisher.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ttm/publisher.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ttm/publisher.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,3 @@
-#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# (C) 2014 mhrusecky(a)suse.cz, openSUSE.org
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ttm/releaser.py new/openSUSE-release-tools-20190516.fab9b27f/ttm/releaser.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ttm/releaser.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ttm/releaser.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,3 @@
-#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# (C) 2014 mhrusecky(a)suse.cz, openSUSE.org
@@ -9,8 +8,6 @@
# (C) 2018 dheidler(a)suse.de, openSUSE.org
# Distribute under GPLv2 or GPLv3
-from __future__ import print_function
-
import re
from xml.etree import cElementTree as ET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20190515.5a1b08d8/ttm/totest.py new/openSUSE-release-tools-20190516.fab9b27f/ttm/totest.py
--- old/openSUSE-release-tools-20190515.5a1b08d8/ttm/totest.py 2019-05-15 13:47:32.000000000 +0200
+++ new/openSUSE-release-tools-20190516.fab9b27f/ttm/totest.py 2019-05-16 17:55:03.000000000 +0200
@@ -1,4 +1,3 @@
-#!/usr/bin/python2
# -*- coding: utf-8 -*-
#
# (C) 2014 mhrusecky(a)suse.cz, openSUSE.org
@@ -9,7 +8,6 @@
# (C) 2018 dheidler(a)suse.de, openSUSE.org
# Distribute under GPLv2 or GPLv3
-from __future__ import print_function
import yaml
from osclib.core import attribute_value_load
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.WAv80I/_old 2019-05-17 23:44:16.109876390 +0200
+++ /var/tmp/diff_new_pack.WAv80I/_new 2019-05-17 23:44:16.109876390 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20190515.5a1b08d8
-mtime: 1557920852
-commit: 5a1b08d81bf4a42d4413e340d555a3fee25cf811
+version: 20190516.fab9b27f
+mtime: 1558022103
+commit: fab9b27fa8bd08f3176f6244a5272fd01e12e1b1
1
0
Hello community,
here is the log from the commit of package xfce4-panel-plugin-smartbookmark for openSUSE:Factory checked in at 2019-05-17 23:44:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-panel-plugin-smartbookmark (Old)
and /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-smartbookmark.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-panel-plugin-smartbookmark"
Fri May 17 23:44:07 2019 rev:15 rq:703646 version:0.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-panel-plugin-smartbookmark/xfce4-panel-plugin-smartbookmark.changes 2017-10-07 17:50:17.656283287 +0200
+++ /work/SRC/openSUSE:Factory/.xfce4-panel-plugin-smartbookmark.new.5148/xfce4-panel-plugin-smartbookmark.changes 2019-05-17 23:44:10.173879651 +0200
@@ -1,0 +2,7 @@
+Sat May 11 09:48:35 UTC 2019 - Maurizio Galli <maurizio.galli(a)gmail.com>
+
+- Dropped exo hard dependency as it's useless and causes issues
+ (boo#1134790)
+- Cleanedup spec file
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-panel-plugin-smartbookmark.spec ++++++
--- /var/tmp/diff_new_pack.8LL47o/_old 2019-05-17 23:44:10.921879240 +0200
+++ /var/tmp/diff_new_pack.8LL47o/_new 2019-05-17 23:44:10.925879237 +0200
@@ -24,18 +24,16 @@
Summary: Smart Bookmark Plugin for the Xfce Panel
License: GPL-2.0+
Group: System/GUI/XFCE
-Url: http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin
-Source0: http://archive.xfce.org/src/panel-plugins/%{plugin_name}/0.5/%{plugin_name}…
+Url: https://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin
+Source0: https://archive.xfce.org/src/panel-plugins/%{plugin_name}/0.5/%{plugin_name…
# PATCH-FEATURE-OPENSUSE xfce4-panel-plugin-smartbookmark-0.5.0-defaults.patch gber(a)opensuse.org -- Replaces Debian defaults and hides the label on to of the entry widget by default
Patch0: xfce4-panel-plugin-smartbookmark-0.5.0-defaults.patch
BuildRequires: fdupes
BuildRequires: intltool
BuildRequires: pkgconfig(libxfce4panel-2.0) >= %{panel_version}
BuildRequires: pkgconfig(libxfce4ui-2) >= %{panel_version}
-Requires: exo
Requires: xfce4-panel >= %{panel_version}
Recommends: %{name}-lang = %{version}
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
The Smartbookmark plugin follows the smart bookmark concept and allows users to
@@ -63,12 +61,11 @@
%fdupes %{buildroot}%{_datadir}
%files
-%defattr(-,root,root)
-%doc AUTHORS ChangeLog COPYING NEWS README
+%doc AUTHORS ChangeLog NEWS README
+%license COPYING
%{_libdir}/xfce4/panel/plugins/libsmartbookmark.so
%{_datadir}/xfce4/panel/plugins/smartbookmark.desktop
%files lang -f %{name}.lang
-%defattr(-,root,root)
%changelog
1
0
Hello community,
here is the log from the commit of package iio-sensor-proxy for openSUSE:Factory checked in at 2019-05-17 23:44:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iio-sensor-proxy (Old)
and /work/SRC/openSUSE:Factory/.iio-sensor-proxy.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iio-sensor-proxy"
Fri May 17 23:44:03 2019 rev:14 rq:703595 version:2.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/iio-sensor-proxy/iio-sensor-proxy.changes 2018-10-23 20:39:08.824633425 +0200
+++ /work/SRC/openSUSE:Factory/.iio-sensor-proxy.new.5148/iio-sensor-proxy.changes 2019-05-17 23:44:04.105882983 +0200
@@ -1,0 +2,11 @@
+Thu May 16 22:22:14 UTC 2019 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 2.6:
+ + Add support for mount matrices coming from the kernel itself,
+ checking those more thoroughly for validity. On devices with
+ multiple accelerometers, the ones in the base are now ignored.
+ + Improve/fix support for sensors with uncommon formats.
+ + Fix a couple of possible crashes and memory leaks.
+- Minor specfile cleanups using spec-cleaner.
+
+-------------------------------------------------------------------
Old:
----
iio-sensor-proxy-2.5.tar.xz
New:
----
iio-sensor-proxy-2.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iio-sensor-proxy.spec ++++++
--- /var/tmp/diff_new_pack.ZijgAx/_old 2019-05-17 23:44:04.973882506 +0200
+++ /var/tmp/diff_new_pack.ZijgAx/_new 2019-05-17 23:44:04.973882506 +0200
@@ -1,7 +1,7 @@
#
# spec file for package iio-sensor-proxy
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,12 +12,12 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: iio-sensor-proxy
-Version: 2.5
+Version: 2.6
Release: 0
Summary: Proxy for IIO and input subsystems
License: GPL-3.0-only
@@ -64,7 +64,6 @@
%udev_rules_update
%files
-%defattr(-,root,root)
%{_bindir}/monitor-sensor
%{_sbindir}/iio-sensor-proxy
%{_udevrulesdir}/*.rules
@@ -75,7 +74,6 @@
%config %{_sysconfdir}/dbus-1/system.d/net.hadess.SensorProxy.conf
%files doc
-%defattr(-,root,root)
%{_datadir}/gtk-doc/html/%{name}/
%changelog
++++++ iio-sensor-proxy-2.5.tar.xz -> iio-sensor-proxy-2.6.tar.xz ++++++
++++ 8756 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-google-cloud-storage for openSUSE:Factory checked in at 2019-05-17 23:43:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-google-cloud-storage (Old)
and /work/SRC/openSUSE:Factory/.python-google-cloud-storage.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-google-cloud-storage"
Fri May 17 23:43:58 2019 rev:4 rq:703587 version:1.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-google-cloud-storage/python-google-cloud-storage.changes 2019-02-28 21:41:53.169563976 +0100
+++ /work/SRC/openSUSE:Factory/.python-google-cloud-storage.new.5148/python-google-cloud-storage.changes 2019-05-17 23:43:58.725885939 +0200
@@ -1,0 +2,20 @@
+Thu May 16 23:24:53 UTC 2019 - Guang Yee <gyee(a)suse.com>
+
+- Update to version 1.15.1
+ * Widen range for 'google-cloud-core'
+
+- Update to version 1.15.0
+ * New Features
+ - Add support for V4 signed URLs
+ - Add generation arguments to bucket / blob methods
+ * Implementation Changes
+ - Remove classifier for Python 3.4 for end-of-life
+ - Ensure that 'Blob.reload' passes encryption headers
+ * Documentation
+ - Update client library documentation URLs
+ * Iternal / Testing Changes
+ - Fix failing system tests
+ - Increase number of retries for 429 errors
+ - Un-flake KMS integration tests expecting empty bucket
+
+-------------------------------------------------------------------
Old:
----
google-cloud-storage-1.14.0.tar.gz
New:
----
google-cloud-storage-1.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-google-cloud-storage.spec ++++++
--- /var/tmp/diff_new_pack.GwscOT/_old 2019-05-17 23:43:59.409885563 +0200
+++ /var/tmp/diff_new_pack.GwscOT/_new 2019-05-17 23:43:59.413885560 +0200
@@ -18,22 +18,23 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-google-cloud-storage
-Version: 1.14.0
+Version: 1.15.1
Release: 0
Summary: Google Cloud Storage API client library
License: Apache-2.0
Group: Development/Languages/Python
Url: https://github.com/GoogleCloudPlatform/google-cloud-python
Source: https://files.pythonhosted.org/packages/source/g/google-cloud-storage/googl…
-BuildRequires: %{python_module google-api-core >= 0.6.1}
+BuildRequires: %{python_module google-api-core >= 1.6.1}
BuildRequires: %{python_module google-cloud-core >= 0.29.0}
BuildRequires: %{python_module google-cloud-kms >= 1.0.0}
BuildRequires: %{python_module google-resumable-media >= 0.3.1}
BuildRequires: %{python_module mock}
+BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-google-api-core >= 0.6.1
+Requires: python-google-api-core >= 1.6.1
Requires: python-google-cloud-core >= 0.29.0
Recommends: python-google-cloud-kms >= 1.0.0
Requires: python-google-resumable-media >= 0.3.1
@@ -57,7 +58,8 @@
%check
# Disable system tests which do not work without additional tokens
rm tests/system.py
-%python_exec setup.py test
+#%%python_exec setup.py test
+%pytest -k "not test_extra_headers"
%files %{python_files}
%license LICENSE
++++++ google-cloud-storage-1.14.0.tar.gz -> google-cloud-storage-1.15.1.tar.gz ++++++
++++ 4813 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-vdirsyncer for openSUSE:Factory checked in at 2019-05-17 23:43:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-vdirsyncer (Old)
and /work/SRC/openSUSE:Factory/.python-vdirsyncer.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-vdirsyncer"
Fri May 17 23:43:53 2019 rev:6 rq:703580 version:0.16.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-vdirsyncer/python-vdirsyncer.changes 2019-05-13 14:49:49.794681412 +0200
+++ /work/SRC/openSUSE:Factory/.python-vdirsyncer.new.5148/python-vdirsyncer.changes 2019-05-17 23:43:56.857886964 +0200
@@ -1,0 +2,5 @@
+Thu May 16 22:35:41 UTC 2019 - ranand(a)suse.com
+
+- Skip flaky test test_legacy_status
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-vdirsyncer.spec ++++++
--- /var/tmp/diff_new_pack.yl24Bn/_old 2019-05-17 23:43:57.541886588 +0200
+++ /var/tmp/diff_new_pack.yl24Bn/_new 2019-05-17 23:43:57.541886588 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -24,7 +24,7 @@
Summary: CalDAV and CardDAV synchronization module
License: BSD-3-Clause
Group: Productivity/Networking/News/Utilities
-URL: https://github.com/pimutils/vdirsyncer
+Url: https://github.com/pimutils/vdirsyncer
Source0: https://files.pythonhosted.org/packages/source/v/vdirsyncer/vdirsyncer-%{ve…
Source1: vdirsyncer.service
Source2: vdirsyncer.timer
@@ -92,7 +92,7 @@
%check
export DETERMINISTIC_TESTS=true
-%pytest -k 'not test_open_graphical_browser'
+%pytest -k 'not test_legacy_status and not test_open_graphical_browser'
%files %{python_files}
%doc README.rst
1
0
Hello community,
here is the log from the commit of package google-compute-engine for openSUSE:Factory checked in at 2019-05-17 23:43:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/google-compute-engine (Old)
and /work/SRC/openSUSE:Factory/.google-compute-engine.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "google-compute-engine"
Fri May 17 23:43:50 2019 rev:14 rq:703578 version:20190416
Changes:
--------
--- /work/SRC/openSUSE:Factory/google-compute-engine/google-compute-engine.changes 2019-02-01 11:48:40.868353117 +0100
+++ /work/SRC/openSUSE:Factory/.google-compute-engine.new.5148/google-compute-engine.changes 2019-05-17 23:43:51.817889733 +0200
@@ -1,0 +2,34 @@
+Thu May 16 12:48:40 UTC 2019 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- Update to version 20190416 (bsc#1128392, bsc#1134179)
+ + Google Compute Engine
+ * FreeBSD fixes: syslog socket location and OS detection.
+ * Upstart systems: only run startup scripts at boot.
+ + Google Compute Engine OS Login
+ * Fix pam_group ordering detection.
+ * Restart cron from the OS Login control file.
+ * Add PAM entry to su:account stack.
+- from version 20190315
+ + Google Compute Engine OS Login
+ * Fix alternate challenge section for two factor authentication.
+ * Fix FreeBSD compatibility issues in the control file.
+- from version 20190304
+ + Google Compute Engine
+ * Set oom_score_adjust for google_accounts_daemon.
+ + Google Compute Engine OS Login
+ * Use pam_group to provide users with default groups.
+ * Add compat.h to support FreeBSD.
+ * Exit immediately after a two factor authentication failure.
+ * Add support for Google phone prompt challenges.
+- Adjust paths for new upstream directory layout in %build and %install
+- Include systemd service file to run google_optimize_local_ssd command
+ + google-optimize-local-ssd.service
+- Include systemd service file to run google_set_multiqueue command
+ + google-set-multiqueue.service
+- Install journald configuration files into /usr/lib/systemd/journald.conf.d
+- Refresh patches for new version
+ + gcei-hide-py-deps.patch
+ + gcei-scripts-after-reg.patch
+ + gcei-set-run_dir.patch
+
+-------------------------------------------------------------------
Old:
----
compute-image-packages-20190124.tar.gz
New:
----
compute-image-packages-20190416.tar.gz
google-optimize-local-ssd.service
google-set-multiqueue.service
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ google-compute-engine.spec ++++++
--- /var/tmp/diff_new_pack.mwIRVI/_old 2019-05-17 23:43:52.409889408 +0200
+++ /var/tmp/diff_new_pack.mwIRVI/_new 2019-05-17 23:43:52.417889403 +0200
@@ -19,7 +19,7 @@
%define setup_version 2.8.13
Name: google-compute-engine
-Version: 20190124
+Version: 20190416
Release: 0
Summary: GCE Instance Initialization
License: Apache-2.0
@@ -28,6 +28,8 @@
Source0: compute-image-packages-%{version}.tar.gz
Source7: google-compute-engine-rpmlintrc
Source8: baselibs.conf
+Source9: google-optimize-local-ssd.service
+Source10: google-set-multiqueue.service
Patch1: gcei-hide-py-deps.patch
Patch2: gcei-scripts-after-reg.patch
Patch3: gcei-set-run_dir.patch
@@ -88,18 +90,22 @@
%prep
%setup -q -n compute-image-packages-%{version}
-%patch1
-%patch2
-%patch3
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
find -name "*.py" | xargs sed -i 'sm#!/usr/bin/pythonmm'
+cp %{SOURCE9} google-optimize-local-ssd.service
+cp %{SOURCE10} google-set-multiqueue.service
%build
+cd packages/python-google-compute-engine
%if 0%{?suse_version} && 0%{?suse_version} > 1315
python3 setup.py build
%else
python setup.py build
%endif
-pushd google_compute_engine_oslogin
+cd ..
+pushd google-compute-engine-oslogin
%if 0%{?suse_version} && 0%{?suse_version} > 1315
make %{?_smp_mflags}
%else
@@ -108,32 +114,41 @@
popd
%install
+cd packages/python-google-compute-engine
%if 0%{?suse_version} && 0%{?suse_version} > 1315
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
%else
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
%endif
+cd ..
+mkdir -p %{buildroot}%{_bindir}
+cp google-compute-engine/src/usr/bin/* %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_sbindir}
# Init
mkdir -p %{buildroot}%{_unitdir}
-cp google_compute_engine_init/systemd/*.service %{buildroot}%{_unitdir}
+cp ../google-optimize-local-ssd.service %{buildroot}%{_unitdir}
+cp ../google-set-multiqueue.service %{buildroot}%{_unitdir}
+cp google-compute-engine/src/lib/systemd/system/*.service %{buildroot}%{_unitdir}
for srv_name in %{buildroot}%{_unitdir}/*.service; do rc_name=$(basename -s '.service' $srv_name); ln -s service %{buildroot}%{_sbindir}/rc$rc_name; done
# Sysconfig
mkdir -p %{buildroot}%{_sysconfdir}/sysctl.d
-cp google_config/sysctl/11-gce-network-security.conf %{buildroot}%{_sysconfdir}/sysctl.d
+cp google-compute-engine/src/etc/sysctl.d/11-gce-network-security.conf %{buildroot}%{_sysconfdir}/sysctl.d
# udev
mkdir -p %{buildroot}/usr/lib/udev/rules.d
-cp google_config/udev/* %{buildroot}/usr/lib/udev/rules.d
+cp google-compute-engine/src/lib/udev/rules.d/* %{buildroot}/usr/lib/udev/rules.d
+# journald
+mkdir -p %{buildroot}/usr/lib/systemd/journald.conf.d
+cp google-compute-engine/src/usr/lib/systemd/journald.conf.d/* %{buildroot}/usr/lib/systemd/journald.conf.d
# syslog
-mkdir %{buildroot}/%{_sysconfdir}/rsyslog.d
-cp google_config/rsyslog/* %{buildroot}/%{_sysconfdir}/rsyslog.d
+mkdir -p %{buildroot}/%{_sysconfdir}/rsyslog.d
+cp google-compute-engine/src/etc/rsyslog.d/* %{buildroot}/%{_sysconfdir}/rsyslog.d
# oslogin
-pushd google_compute_engine_oslogin
+pushd google-compute-engine-oslogin
make install DESTDIR=%{buildroot} NSS_INSTALL_PATH=%{_lib} PAM_INSTALL_PATH=%{_lib}/security
popd
# kernel module blacklist
mkdir -p %{buildroot}/%{_sysconfdir}/modprobe.d
-cp google_config/modprobe/gce-blacklist.conf %{buildroot}/%{_sysconfdir}/modprobe.d/
+cp google-compute-engine/src/etc/modprobe.d/gce-blacklist.conf %{buildroot}/%{_sysconfdir}/modprobe.d/
%pre init
if [ -f /usr/lib/systemd/system/google-ip-forwarding-daemon.service ]; then
@@ -144,10 +159,10 @@
systemctl stop --no-block google-network-setup
systemctl disable google-network-setup.service
fi
- %service_add_pre google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-shutdown-scripts.service google-startup-scripts.service
+ %service_add_pre google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-optimize-local-ssd.service google-set-multiqueue.service google-shutdown-scripts.service google-startup-scripts.service
%post init
- %service_add_post google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-shutdown-scripts.service google-startup-scripts.service
+ %service_add_post google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-optimize-local-ssd.service google-set-multiqueue.service google-shutdown-scripts.service google-startup-scripts.service
if [ "$1" == "2" ] && ! [ -e /.buildenv ]; then
# "$1" == "2" means the package is being upgraded
# ./buildenv is only present during package builds
@@ -159,10 +174,10 @@
/sbin/ldconfig
%preun init
- %service_del_preun -f google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-shutdown-scripts.service google-startup-scripts.service
+ %service_del_preun -f google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-optimize-local-ssd.service google-set-multiqueue.service google-shutdown-scripts.service google-startup-scripts.service
%postun init
- %service_del_postun -f google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-shutdown-scripts.service google-startup-scripts.service
+ %service_del_postun -f google-accounts-daemon.service google-clock-skew-daemon.service google-instance-setup.service google-network-daemon.service google-optimize-local-ssd.service google-set-multiqueue.service google-shutdown-scripts.service google-startup-scripts.service
%postun oslogin
/sbin/ldconfig
@@ -199,9 +214,12 @@
%endif
%{_unitdir}/*.service
%config %{_sysconfdir}/sysctl.d/*
+%dir /usr/lib/systemd
+%dir /usr/lib/systemd/journald.conf.d
%dir /usr/lib/udev
%dir /usr/lib/udev/rules.d
/usr/lib/udev/rules.d/*
+/usr/lib/systemd/journald.conf.d/*
%dir %{_sysconfdir}/rsyslog.d
%dir %{_sysconfdir}/modprobe.d
%config %{_sysconfdir}/rsyslog.d/*
++++++ compute-image-packages-20190124.tar.gz -> compute-image-packages-20190416.tar.gz ++++++
++++ 37469 lines of diff (skipped)
++++++ gcei-hide-py-deps.patch ++++++
--- /var/tmp/diff_new_pack.mwIRVI/_old 2019-05-17 23:43:52.581889313 +0200
+++ /var/tmp/diff_new_pack.mwIRVI/_new 2019-05-17 23:43:52.581889313 +0200
@@ -1,11 +1,12 @@
---- setup.py.orig 2018-02-27 23:53:04.000000000 +0100
-+++ setup.py 2018-04-16 13:37:45.384716199 +0200
+diff -Nru compute-image-packages-20190416.orig/packages/python-google-compute-engine/setup.py compute-image-packages-20190416/packages/python-google-compute-engine/setup.py
+--- compute-image-packages-20190416.orig/packages/python-google-compute-engine/setup.py 2019-04-17 02:46:12.000000000 +0200
++++ compute-image-packages-20190416/packages/python-google-compute-engine/setup.py 2019-05-06 16:45:55.321595572 +0200
@@ -29,7 +29,7 @@
author_email='gc-team(a)google.com',
description='Google Compute Engine',
include_package_data=True,
- install_requires=install_requires,
-+# install_requires=install_requires,
++# install_requires=install_requires,
license='Apache Software License',
long_description='Google Compute Engine guest environment.',
name='google-compute-engine',
++++++ gcei-scripts-after-reg.patch ++++++
--- /var/tmp/diff_new_pack.mwIRVI/_old 2019-05-17 23:43:52.585889311 +0200
+++ /var/tmp/diff_new_pack.mwIRVI/_new 2019-05-17 23:43:52.585889311 +0200
@@ -1,5 +1,6 @@
---- google_compute_engine_init/systemd/google-startup-scripts.service.orig 2018-05-05 00:52:49.000000000 +0200
-+++ google_compute_engine_init/systemd/google-startup-scripts.service 2018-05-08 12:28:04.360644741 +0200
+diff -Nru compute-image-packages-20190416.orig/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service compute-image-packages-20190416/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
+--- compute-image-packages-20190416.orig/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service 2019-04-17 02:46:12.000000000 +0200
++++ compute-image-packages-20190416/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service 2019-05-06 16:47:37.810553473 +0200
@@ -2,6 +2,7 @@
Description=Google Compute Engine Startup Scripts
After=local-fs.target network-online.target network.target rsyslog.service
++++++ gcei-set-run_dir.patch ++++++
--- /var/tmp/diff_new_pack.mwIRVI/_old 2019-05-17 23:43:52.593889307 +0200
+++ /var/tmp/diff_new_pack.mwIRVI/_new 2019-05-17 23:43:52.593889307 +0200
@@ -1,6 +1,7 @@
---- google_compute_engine/instance_setup/instance_config.py.orig 2018-10-11 18:53:23.000000000 +0200
-+++ google_compute_engine/instance_setup/instance_config.py 2018-10-12 12:59:08.355598380 +0200
-@@ -86,7 +86,7 @@
+diff -Nru compute-image-packages-20190416.orig/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_config.py compute-image-packages-20190416/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_config.py
+--- compute-image-packages-20190416.orig/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_config.py 2019-04-17 02:46:12.000000000 +0200
++++ compute-image-packages-20190416/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_config.py 2019-05-06 16:48:54.899274132 +0200
+@@ -88,7 +88,7 @@
'target_instance_ips': 'true',
},
'MetadataScripts': {
++++++ google-optimize-local-ssd.service ++++++
[Unit]
Description=Google Compute Engine Local SSD Optimization
After=local-fs.target
Wants=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/bin/google_optimize_local_ssd
[Install]
WantedBy=multi-user.target
++++++ google-set-multiqueue.service ++++++
[Unit]
Description=Google Compute Engine Set Multi-Queue
After=local-fs.target network.target
Wants=local-fs.target network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/google_set_multiqueue
[Install]
WantedBy=multi-user.target
1
0
Hello community,
here is the log from the commit of package python-pyocr for openSUSE:Factory checked in at 2019-05-17 23:43:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyocr (Old)
and /work/SRC/openSUSE:Factory/.python-pyocr.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyocr"
Fri May 17 23:43:45 2019 rev:3 rq:703573 version:0.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyocr/python-pyocr.changes 2018-01-10 23:33:37.872350119 +0100
+++ /work/SRC/openSUSE:Factory/.python-pyocr.new.5148/python-pyocr.changes 2019-05-17 23:43:48.181891730 +0200
@@ -1,0 +2,14 @@
+Thu May 16 22:25:00 UTC 2019 - Hardik Italia <hitalia(a)suse.com>
+
+- Update to vetison 0.7:
+ * Drop support for Python <= 2.7
+ * Fix: Make sure the builder objects can be used to parse box files
+ even if Tesseract is not installed.
+ * PyOCR version is now automatically set in the module by setuptools_scm
+ instead of PyOCR's Makefile (except on Windows)
+ * Tesseract: optim: keep the get_version() in memory instead of calling
+ Tesseract everytime (get_version() by psm_parameter() which is called each
+ time a box file is parsed ...)
+- Update project url and source to gitlab
+
+-------------------------------------------------------------------
Old:
----
python-pyocr-0.5.tar.gz
New:
----
python-pyocr-0.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyocr.spec ++++++
--- /var/tmp/diff_new_pack.Pb2Ewg/_old 2019-05-17 23:43:48.957891303 +0200
+++ /var/tmp/diff_new_pack.Pb2Ewg/_new 2019-05-17 23:43:48.961891302 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pyocr
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,21 +12,24 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+%define sha 0ffeca803fca7c812560a6c0e34342e4833f1ab0
+%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pyocr
-Version: 0.5
+Version: 0.7
Release: 0
Summary: Python wrapper for OCR engines
-License: GPL-3.0+
+License: GPL-3.0-or-later
Group: Development/Languages/Python
-Url: https://github.com/openpaperwork/pyocr
-Source: https://github.com/openpaperwork/pyocr/archive/%{version}.tar.gz#/%{name}-%…
+Url: https://gitlab.gnome.org/World/OpenPaperwork/pyocr
+Source: https://gitlab.gnome.org/World/OpenPaperwork/pyocr/-/archive/%{version}/%{n…
BuildRequires: %{python_module Pillow}
BuildRequires: %{python_module base}
+BuildRequires: %{python_module setuptools_scm_git_archive}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -41,7 +44,7 @@
That is, it helps using various OCR tools from a Python program.
%prep
-%setup -q -n pyocr-%{version}
+%setup -q -n pyocr-%{version}-%{sha}
%build
%python_build
@@ -51,7 +54,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%files %{python_files}
-%doc AUTHORS COPYING ChangeLog README.markdown
+%doc AUTHORS COPYING ChangeLog README.md
%{python_sitelib}/*
%changelog
++++++ python-pyocr-0.5.tar.gz -> python-pyocr-0.7.tar.gz ++++++
++++ 13397 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pudb for openSUSE:Factory checked in at 2019-05-17 23:43:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pudb (Old)
and /work/SRC/openSUSE:Factory/.python-pudb.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pudb"
Fri May 17 23:43:40 2019 rev:3 rq:703565 version:2019.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pudb/python-pudb.changes 2018-07-28 12:44:46.540921603 +0200
+++ /work/SRC/openSUSE:Factory/.python-pudb.new.5148/python-pudb.changes 2019-05-17 23:43:41.965895144 +0200
@@ -1,0 +2,11 @@
+Thu May 16 21:13:12 UTC 2019 - ranand(a)suse.com
+
+- Update to 2019.1:
+ * Allow 'space' as a key to expand variables
+ * Have a persistent setting on variable visibility
+ * Enable/partially automate opening the debugger in another
+ terminal
+ * Make sidebar scrollable with j/k
+ * Bug fixes
+
+-------------------------------------------------------------------
Old:
----
pudb-2018.1.tar.gz
New:
----
pudb-2019.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pudb.spec ++++++
--- /var/tmp/diff_new_pack.YCKoTD/_old 2019-05-17 23:43:43.121894509 +0200
+++ /var/tmp/diff_new_pack.YCKoTD/_new 2019-05-17 23:43:43.121894509 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pudb
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,12 +21,12 @@
%define py_maj_ver %(c=%{python})
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pudb
-Version: 2018.1
+Version: 2019.1
Release: 0
Summary: A full-screen, console-based Python debugger
License: MIT
Group: Development/Tools/Debuggers
-URL: http://mathema.tician.de/software/pudb
+Url: http://mathema.tician.de/software/pudb
Source0: https://files.pythonhosted.org/packages/source/p/%{upstream_name}/%{upstrea…
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest-runner}
++++++ pudb-2018.1.tar.gz -> pudb-2019.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/PKG-INFO new/pudb-2019.1/PKG-INFO
--- old/pudb-2018.1/PKG-INFO 2018-05-24 13:26:27.000000000 +0200
+++ new/pudb-2019.1/PKG-INFO 2019-04-25 22:41:48.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pudb
-Version: 2018.1
+Version: 2019.1
Summary: A full-screen, console-based Python debugger
Home-page: https://github.com/inducer/pudb
Author: Andreas Kloeckner
@@ -51,6 +51,8 @@
* PuDB places special emphasis on exception handling. A post-mortem mode makes
it easy to retrace a crashing program's last steps.
+ * Ability to control the debugger from a separate terminal.
+
* IPython integration (see `wiki <http://wiki.tiker.net/PuDB>`_)
* Should work with Python 2.6 and newer, including Python 3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/README.rst new/pudb-2019.1/README.rst
--- old/pudb-2018.1/README.rst 2017-04-06 19:16:31.000000000 +0200
+++ new/pudb-2019.1/README.rst 2018-10-02 06:28:12.000000000 +0200
@@ -43,6 +43,8 @@
* PuDB places special emphasis on exception handling. A post-mortem mode makes
it easy to retrace a crashing program's last steps.
+* Ability to control the debugger from a separate terminal.
+
* IPython integration (see `wiki <http://wiki.tiker.net/PuDB>`_)
* Should work with Python 2.6 and newer, including Python 3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/debug_me.py new/pudb-2019.1/debug_me.py
--- old/pudb-2018.1/debug_me.py 2018-01-14 03:28:23.000000000 +0100
+++ new/pudb-2019.1/debug_me.py 2019-01-23 16:29:46.000000000 +0100
@@ -7,6 +7,8 @@
mc = MyClass(15, MyClass(12, None))
+from pudb import set_trace; set_trace()
+
def simple_func(x):
x += 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/__init__.py new/pudb-2019.1/pudb/__init__.py
--- old/pudb-2018.1/pudb/__init__.py 2018-05-24 13:22:02.000000000 +0200
+++ new/pudb-2019.1/pudb/__init__.py 2019-04-25 22:34:36.000000000 +0200
@@ -26,7 +26,7 @@
"""
-NUM_VERSION = (2018, 1)
+NUM_VERSION = (2019, 1)
VERSION = ".".join(str(nv) for nv in NUM_VERSION)
__version__ = VERSION
@@ -70,8 +70,35 @@
CURRENT_DEBUGGER = []
+def _tty_override():
+ import os
+ return os.environ.get('PUDB_TTY')
+
+
+def _open_tty(tty_path):
+ import io
+ import os
+ import sys
+ if sys.version_info[0] == 2:
+ tty_file = open(tty_path, 'r+b', buffering=0)
+ term_size = None
+ else:
+ tty_file = io.TextIOWrapper(open(tty_path, 'r+b', buffering=0))
+ term_size = os.get_terminal_size(tty_file.fileno())
+
+ return tty_file, term_size
+
+
def _get_debugger(**kwargs):
if not CURRENT_DEBUGGER:
+ tty_path = _tty_override()
+ if tty_path and ('stdin' not in kwargs or 'stdout' not in kwargs):
+ tty_file, term_size = _open_tty(tty_path)
+
+ kwargs.setdefault('stdin', tty_file)
+ kwargs.setdefault('stdout', tty_file)
+ kwargs.setdefault('term_size', term_size)
+
from pudb.debugger import Debugger
dbg = Debugger(**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/debugger.py new/pudb-2019.1/pudb/debugger.py
--- old/pudb-2018.1/pudb/debugger.py 2018-05-24 13:25:55.000000000 +0200
+++ new/pudb-2019.1/pudb/debugger.py 2019-04-25 22:39:06.000000000 +0200
@@ -44,7 +44,7 @@
CONFIG = load_config()
save_config(CONFIG)
-HELP_TEXT = """\
+HELP_TEXT = r"""\
Welcome to PuDB, the Python Urwid debugger.
-------------------------------------------
@@ -106,7 +106,7 @@
[/] - grow/shrink relative size of active sidebar box
Keys in variables list:
- \ - expand/collapse
+ \/space - expand/collapse
t/r/s/c - show type/repr/str/custom for this variable
h - toggle highlighting
@ - toggle repetition at top
@@ -159,8 +159,10 @@
# {{{ debugger interface
class Debugger(bdb.Bdb):
- def __init__(self, stdin=None, stdout=None, term_size=None, steal_output=False):
- bdb.Bdb.__init__(self)
+ def __init__(self, stdin=None, stdout=None, term_size=None, steal_output=False,
+ **kwargs):
+ # Pass remaining kwargs to python debugger framework
+ bdb.Bdb.__init__(self, **kwargs)
self.ui = DebuggerUI(self, stdin=stdin, stdout=stdout, term_size=term_size)
self.steal_output = steal_output
@@ -431,11 +433,19 @@
self.interaction(frame, exc_tuple)
def _runscript(self, filename):
- # Start with fresh empty copy of globals and locals and tell the script
- # that it's being run as __main__ to avoid scripts being able to access
- # the debugger's namespace.
- globals_ = {"__name__": "__main__", "__file__": filename}
- locals_ = globals_
+ # Provide separation from current __main__, which is likely
+ # pudb.__main__ run. Preserving its namespace is not important, and
+ # having the script share it ensures that, e.g., pickle can find
+ # types defined there:
+ # https://github.com/inducer/pudb/issues/331
+
+ import __main__
+ __main__.__dict__.clear()
+ __main__.__dict__.update({
+ "__name__": "__main__",
+ "__file__": filename,
+ "__builtins__": __builtins__,
+ })
# When bdb sets tracing, a number of call and line events happens
# BEFORE debugger even reaches user's code (and the exact sequence of
@@ -454,7 +464,8 @@
from pudb import set_interrupt_handler
set_interrupt_handler()
- self.run(statement, globals=globals_, locals=locals_)
+ # Implicitly runs in the namespace of __main__.
+ self.run(statement)
# }}}
@@ -614,10 +625,8 @@
def __eq__(self, other):
return (
type(self) == type(other)
- and
- self.function_name == other.function_name
- and
- self.code is other.code)
+ and self.function_name == other.function_name
+ and self.code is other.code)
def identifier(self):
return "<source code of function %s>" % self.function_name
@@ -776,7 +785,7 @@
iinfo = self.get_frame_var_info(read_only=False) \
.get_inspect_info(var.id_path, read_only=False)
- if key == "\\":
+ if key == "\\" or key == ' ':
iinfo.show_detail = not iinfo.show_detail
elif key == "t":
iinfo.display_type = "type"
@@ -861,10 +870,10 @@
"Show methods", iinfo.show_methods)
lb = urwid.ListBox(urwid.SimpleListWalker(
- id_segment +
- rb_grp_show + [urwid.Text("")] +
- rb_grp_access + [urwid.Text("")] +
- [
+ id_segment
+ + rb_grp_show + [urwid.Text("")]
+ + rb_grp_access + [urwid.Text("")]
+ + [
wrap_checkbox,
expanded_checkbox,
highlighted_checkbox,
@@ -928,6 +937,7 @@
self.update_var_view()
self.var_list.listen("\\", change_var_state)
+ self.var_list.listen(" ", change_var_state)
self.var_list.listen("t", change_var_state)
self.var_list.listen("r", change_var_state)
self.var_list.listen("s", change_var_state)
@@ -944,6 +954,9 @@
self.var_list.listen("[", partial(change_rhs_box, 'variables', 0, -1))
self.var_list.listen("]", partial(change_rhs_box, 'variables', 0, 1))
+ self.var_list.listen("j", self.rhs_scroll_down)
+ self.var_list.listen("k", self.rhs_scroll_up)
+
# }}}
# {{{ stack listeners
@@ -969,6 +982,9 @@
self.stack_list.listen("[", partial(change_rhs_box, 'stack', 1, -1))
self.stack_list.listen("]", partial(change_rhs_box, 'stack', 1, 1))
+ self.stack_list.listen("j", self.rhs_scroll_down)
+ self.stack_list.listen("k", self.rhs_scroll_up)
+
# }}}
# {{{ breakpoint listeners
@@ -1091,6 +1107,8 @@
self.bp_list.listen("[", partial(change_rhs_box, 'breakpoints', 2, -1))
self.bp_list.listen("]", partial(change_rhs_box, 'breakpoints', 2, 1))
+ self.bp_list.listen("j", self.rhs_scroll_down)
+ self.bp_list.listen("k", self.rhs_scroll_up)
# }}}
# {{{ source listeners
@@ -1296,6 +1314,8 @@
def mod_exists(mod):
if not hasattr(mod, "__file__"):
return False
+ if mod.__file__ is None:
+ return False
filename = mod.__file__
base, ext = splitext(filename)
@@ -1565,11 +1585,15 @@
sys.stdin = None
sys.stderr = sys.stdout = StringIO()
try:
- # Don't use cmdline_get_namespace() here, it breaks things in
- # Python 2 (issue #166).
- eval(compile(cmd, "<pudb command line>", 'single'),
- self.debugger.curframe.f_globals,
- self.debugger.curframe.f_locals)
+ # Don't use cmdline_get_namespace() here in Python 2, as it
+ # breaks things (issue #166).
+ if PY3:
+ eval(compile(cmd, "<pudb command line>", 'single'),
+ cmdline_get_namespace())
+ else:
+ eval(compile(cmd, "<pudb command line>", 'single'),
+ self.debugger.curframe.f_globals,
+ self.debugger.curframe.f_locals)
except Exception:
tp, val, tb = sys.exc_info()
@@ -1884,11 +1908,9 @@
CONFIG["display"] == "curses"
or (
CONFIG["display"] == "auto"
- and
- not (
+ and not (
os.environ.get("TERM", "").startswith("xterm")
- or
- os.environ.get("TERM", "").startswith("rxvt")
+ or os.environ.get("TERM", "").startswith("rxvt")
)))
if (want_curses_display
@@ -1939,6 +1961,13 @@
# }}}
# {{{ UI helpers
+ def rhs_scroll_down(self, w, size, key):
+ if key == 'j' and CONFIG['jk_sidebar_scroll']:
+ w.keypress(size, "down")
+
+ def rhs_scroll_up(self, w, size, key):
+ if key == 'k' and CONFIG['jk_sidebar_scroll']:
+ w.keypress(size, "up")
def translate_ui_stack_index(self, index):
# note: self-inverse
@@ -2134,7 +2163,7 @@
self.message("Package 'pygments' not found. "
"Syntax highlighting disabled.")
- WELCOME_LEVEL = "e034" # noqa
+ WELCOME_LEVEL = "e035" # noqa
if CONFIG["seen_welcome"] < WELCOME_LEVEL:
CONFIG["seen_welcome"] = WELCOME_LEVEL
from pudb import VERSION
@@ -2151,6 +2180,14 @@
"(invoked by hitting '?' after this message) should get you "
"on your way.\n"
+ "\nChanges in version 2019.1:\n\n"
+ "- Allow 'space' as a key to expand variables (Enrico Troeger)\n"
+ "- Have a persistent setting on variable visibility (Enrico Troeger)\n"
+ "- Enable/partially automate opening the debugger in another \n"
+ " terminal (Anton Barkovsky)\n"
+ "- Make sidebar scrollable with j/k (Clayton Craft)\n"
+ "- Bug fixes.\n"
+
"\nChanges in version 2018.1:\n\n"
"- Bug fixes.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/ipython.py new/pudb-2019.1/pudb/ipython.py
--- old/pudb-2018.1/pudb/ipython.py 2017-03-31 18:29:42.000000000 +0200
+++ new/pudb-2019.1/pudb/ipython.py 2019-04-19 02:10:06.000000000 +0200
@@ -41,7 +41,7 @@
def debugger(self, force=False):
"""Call the PuDB debugger."""
- from IPython.utils.warn import error
+ from logging import error
if not (force or self.call_pdb):
return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/lowlevel.py new/pudb-2019.1/pudb/lowlevel.py
--- old/pudb-2018.1/pudb/lowlevel.py 2017-10-29 13:42:11.000000000 +0100
+++ new/pudb-2019.1/pudb/lowlevel.py 2018-10-26 16:32:27.000000000 +0200
@@ -26,7 +26,7 @@
"""
-from pudb.py3compat import PY3
+from pudb.py3compat import PY3, text_type
# {{{ breakpoint validity
@@ -116,17 +116,15 @@
# the main idea stolen from Python 3.1's tokenize.py, by Ka-Ping Yee
import re
-cookie_re = re.compile("^\s*#.*coding[:=]\s*([-\w.]+)")
+cookie_re = re.compile(br"^\s*#.*coding[:=]\s*([-\w.]+)")
from codecs import lookup, BOM_UTF8
-if PY3:
- BOM_UTF8 = BOM_UTF8.decode()
-def detect_encoding(lines):
+def detect_encoding(line_iter):
"""
The detect_encoding() function is used to detect the encoding that should
- be used to decode a Python source file. It requires one argment, lines,
- iterable lines stream.
+ be used to decode a Python source file. It requires one argment, line_iter,
+ an iterator on the lines to be read.
It will read a maximum of two lines, and return the encoding used
(as a string) and a list of any lines (left as bytes) it has read
@@ -140,11 +138,10 @@
If no encoding is specified, then the default of 'utf-8' will be returned.
"""
bom_found = False
- line_iterator = iter(lines)
def read_or_stop():
try:
- return next(line_iterator)
+ return next(line_iter)
except StopIteration:
return ''
@@ -160,7 +157,7 @@
matches = cookie_re.findall(line_string)
if not matches:
return None
- encoding = matches[0]
+ encoding = matches[0].decode()
try:
codec = lookup(encoding)
except LookupError:
@@ -173,6 +170,9 @@
return encoding
first = read_or_stop()
+ if isinstance(first, text_type):
+ return None, [first]
+
if first.startswith(BOM_UTF8):
bom_found = True
first = first[3:]
@@ -195,13 +195,17 @@
def decode_lines(lines):
- source_enc, _ = detect_encoding(lines)
+ line_iter = iter(lines)
+ source_enc, detection_read_lines = detect_encoding(line_iter)
+
+ from itertools import chain
- for line in lines:
- if hasattr(line, "decode"):
+ for line in chain(detection_read_lines, line_iter):
+ if hasattr(line, "decode") and source_enc is not None:
yield line.decode(source_enc)
else:
yield line
+
# }}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/settings.py new/pudb-2019.1/pudb/settings.py
--- old/pudb-2018.1/pudb/settings.py 2017-10-29 13:42:54.000000000 +0100
+++ new/pudb-2019.1/pudb/settings.py 2019-03-12 07:18:45.000000000 +0100
@@ -106,11 +106,14 @@
conf_dict.setdefault("custom_shell", "")
conf_dict.setdefault("wrap_variables", True)
+ conf_dict.setdefault("default_variables_access_level", "public")
conf_dict.setdefault("display", "auto")
conf_dict.setdefault("prompt_on_quit", True)
+ conf_dict.setdefault("jk_sidebar_scroll", False)
+
def normalize_bool_inplace(name):
try:
if conf_dict[name].lower() in ["0", "false", "off"]:
@@ -123,6 +126,7 @@
normalize_bool_inplace("line_numbers")
normalize_bool_inplace("wrap_variables")
normalize_bool_inplace("prompt_on_quit")
+ normalize_bool_inplace("jk_sidebar_scroll")
return conf_dict
@@ -158,11 +162,14 @@
def _update_line_numbers():
for sl in ui.source:
- sl._invalidate()
+ sl._invalidate()
def _update_prompt_on_quit():
pass
+ def _update_jk_sidebar_scroll():
+ pass
+
def _update_current_stack_frame():
ui.update_stack()
@@ -171,6 +178,9 @@
pudb.var_view.custom_stringifier_dict = {}
ui.update_var_view()
+ def _update_default_variables_access_level():
+ ui.update_var_view()
+
def _update_wrap_variables():
ui.update_var_view()
@@ -198,6 +208,11 @@
conf_dict.update(new_conf_dict)
_update_prompt_on_quit()
+ elif option == "jk_sidebar_scroll":
+ new_conf_dict["jk_sidebar_scroll"] = not check_box.get_state()
+ conf_dict.update(new_conf_dict)
+ _update_jk_sidebar_scroll()
+
elif option == "current_stack_frame":
# only activate if the new state of the radio button is 'on'
if new_state:
@@ -213,6 +228,13 @@
conf_dict.update(stringifier=newvalue)
_update_stringifier()
+
+ elif option == "default_variables_access_level":
+ # only activate if the new state of the radio button is 'on'
+ if new_state:
+ conf_dict.update(default_variables_access_level=newvalue)
+ _update_default_variables_access_level()
+
elif option == "wrap_variables":
new_conf_dict["wrap_variables"] = not check_box.get_state()
conf_dict.update(new_conf_dict)
@@ -233,6 +255,11 @@
bool(conf_dict["prompt_on_quit"]), on_state_change=_update_config,
user_data=("prompt_on_quit", None))
+ cb_jk_sidebar_scroll = urwid.CheckBox("Use j/k keys for scrolling in "
+ "sidebar",
+ bool(conf_dict["jk_sidebar_scroll"]), on_state_change=_update_config,
+ user_data=("jk_sidebar_scroll", None))
+
# {{{ shells
shell_info = urwid.Text("This is the shell that will be "
@@ -340,6 +367,26 @@
# }}}
+ # {{{ variables access level
+
+ default_variables_access_level_opts = ["public", "private", "all"]
+ default_variables_access_level_rb_group = []
+ default_variables_access_level_info = urwid.Text(
+ "Set the default attribute visibility "
+ "of variables in the variables list.\n"
+ "\nNote that you can change this option on "
+ "a per-variable basis by selecting the "
+ "variable and pressing '*'.")
+ default_variables_access_level_rbs = [
+ urwid.RadioButton(default_variables_access_level_rb_group, name,
+ conf_dict["default_variables_access_level"] == name,
+ on_state_change=_update_config,
+ user_data=("default_variables_access_level", name))
+ for name in default_variables_access_level_opts
+ ]
+
+ # }}}
+
# {{{ wrap variables
cb_wrap_variables = urwid.CheckBox("Wrap variables",
@@ -382,6 +429,9 @@
+ [urwid.AttrMap(urwid.Text("\nPrompt on quit:\n"), "group head")]
+ [cb_prompt_on_quit]
+ + [urwid.AttrMap(urwid.Text("\nKeys:\n"), "group head")]
+ + [cb_jk_sidebar_scroll]
+
+ [urwid.AttrMap(urwid.Text("\nShell:\n"), "group head")]
+ [shell_info]
+ shell_rbs
@@ -397,6 +447,11 @@
+ [stringifier_info]
+ stringifier_rbs
+ + [urwid.AttrMap(urwid.Text("\nVariables Attribute Visibility:\n"),
+ "group head")]
+ + [default_variables_access_level_info]
+ + default_variables_access_level_rbs
+
+ [urwid.AttrMap(urwid.Text("\nWrap Variables:\n"), "group head")]
+ [cb_wrap_variables]
+ [wrap_variables_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/source_view.py new/pudb-2019.1/pudb/source_view.py
--- old/pudb-2018.1/pudb/source_view.py 2017-10-29 13:41:09.000000000 +0100
+++ new/pudb-2019.1/pudb/source_view.py 2018-10-26 16:32:27.000000000 +0200
@@ -347,8 +347,8 @@
self.state = ParseState.found_open_paren
self.paren_level = 1
else:
- if ((token is self.t.Name) or
- (token is self.t.Name.Builtin.Pseudo and s == 'self')):
+ if ((token is self.t.Name)
+ or (token is self.t.Name.Builtin.Pseudo and s == 'self')):
return self.t.Token.Argument
elif token is self.t.Punctuation and s == ')':
self.paren_level -= 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/ui_tools.py new/pudb-2019.1/pudb/ui_tools.py
--- old/pudb-2018.1/pudb/ui_tools.py 2018-05-24 13:19:29.000000000 +0200
+++ new/pudb-2019.1/pudb/ui_tools.py 2018-05-24 13:33:32.000000000 +0200
@@ -15,6 +15,7 @@
"""
return calc_width(txt, 0, len(txt))
+
def make_canvas(txt, attr, maxcol, fill_attr=None):
processed_txt = []
processed_attr = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb/var_view.py new/pudb-2019.1/pudb/var_view.py
--- old/pudb-2018.1/pudb/var_view.py 2018-05-24 13:19:29.000000000 +0200
+++ new/pudb-2019.1/pudb/var_view.py 2019-01-23 16:29:46.000000000 +0100
@@ -45,7 +45,6 @@
else:
ELLIPSIS = unicode('…', 'utf-8') # noqa: F821
-from pudb.debugger import CONFIG
from pudb.ui_tools import text_width
# }}}
@@ -68,11 +67,14 @@
class InspectInfo(object):
def __init__(self):
+ # Do not globalize: cyclic import
+ from pudb.debugger import CONFIG
+
self.show_detail = False
self.display_type = CONFIG["stringifier"]
self.highlighted = False
self.repeated_at_top = False
- self.access_level = "public"
+ self.access_level = CONFIG["default_variables_access_level"]
self.show_methods = False
self.wrap = CONFIG["wrap_variables"]
@@ -119,6 +121,9 @@
self.attr_prefix = attr_prefix or "var"
self.watch_expr = watch_expr
if iinfo is None:
+ # Do not globalize: cyclic import
+ from pudb.debugger import CONFIG
+
self.wrap = CONFIG["wrap_variables"]
else:
self.wrap = iinfo.wrap
@@ -167,7 +172,8 @@
if self.wrap:
text = self._get_text(size)
- extralabel_full, extralabel_rem = divmod(text_width(var_label[maxcol:]), maxcol)
+ extralabel_full, extralabel_rem = divmod(
+ text_width(var_label[maxcol:]), maxcol)
totallen = sum([text_width(i) for i in text])
labellen = (
len(self.prefix) # Padding of first line
@@ -190,6 +196,8 @@
return make_canvas(text, attr, maxcol, apfx+"value")
+ lprefix = len(self.prefix)
+
if self.value_str is not None:
if self.var_label is not None:
if len(self.prefix) + text_width(self.var_label) > self.SIZE_LIMIT:
@@ -197,13 +205,15 @@
text = [self.prefix + self.var_label,
self.prefix+" " + self.value_str]
- attr = [[(apfx+"label", len(self.prefix)+text_width(self.var_label))],
- [(apfx+"value", len(self.prefix)+2+text_width(self.value_str))]]
+ attr = [
+ [(apfx+"label", lprefix+text_width(self.var_label))],
+ [(apfx+"value", lprefix+2+text_width(self.value_str))]
+ ]
else:
text = [self.prefix + self.var_label + ": " + self.value_str]
attr = [[
- (apfx+"label", len(self.prefix)+text_width(self.var_label)+2),
+ (apfx+"label", lprefix+text_width(self.var_label)+2),
(apfx+"value", text_width(self.value_str)),
]]
else:
@@ -216,7 +226,7 @@
else:
text = [self.prefix + self.var_label]
- attr = [[(apfx+"label", len(self.prefix) + text_width(self.var_label)), ]]
+ attr = [[(apfx+"label", lprefix + text_width(self.var_label)), ]]
# Ellipses to show text was cut off
#encoding = urwid.util.detected_encoding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb.egg-info/PKG-INFO new/pudb-2019.1/pudb.egg-info/PKG-INFO
--- old/pudb-2018.1/pudb.egg-info/PKG-INFO 2018-05-24 13:26:27.000000000 +0200
+++ new/pudb-2019.1/pudb.egg-info/PKG-INFO 2019-04-25 22:41:48.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pudb
-Version: 2018.1
+Version: 2019.1
Summary: A full-screen, console-based Python debugger
Home-page: https://github.com/inducer/pudb
Author: Andreas Kloeckner
@@ -51,6 +51,8 @@
* PuDB places special emphasis on exception handling. A post-mortem mode makes
it easy to retrace a crashing program's last steps.
+ * Ability to control the debugger from a separate terminal.
+
* IPython integration (see `wiki <http://wiki.tiker.net/PuDB>`_)
* Should work with Python 2.6 and newer, including Python 3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/pudb.egg-info/requires.txt new/pudb-2019.1/pudb.egg-info/requires.txt
--- old/pudb-2018.1/pudb.egg-info/requires.txt 2018-05-24 13:26:27.000000000 +0200
+++ new/pudb-2019.1/pudb.egg-info/requires.txt 2019-04-25 22:41:48.000000000 +0200
@@ -1,2 +1,2 @@
-urwid>=1.1.1
pygments>=1.0
+urwid>=1.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/setup.cfg new/pudb-2019.1/setup.cfg
--- old/pudb-2018.1/setup.cfg 2018-05-24 13:26:27.000000000 +0200
+++ new/pudb-2019.1/setup.cfg 2019-04-25 22:41:48.000000000 +0200
@@ -8,5 +8,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pudb-2018.1/test/test_lowlevel.py new/pudb-2019.1/test/test_lowlevel.py
--- old/pudb-2018.1/test/test_lowlevel.py 2017-04-19 18:42:44.000000000 +0200
+++ new/pudb-2019.1/test/test_lowlevel.py 2018-10-02 06:28:53.000000000 +0200
@@ -4,28 +4,31 @@
def test_detect_encoding_nocookie():
- lines = ['Test Проверка']
- encoding, _ = detect_encoding(lines)
+ lines = [u'Test Проверка']
+ lines = [l.encode('utf-8') for l in lines]
+ encoding, _ = detect_encoding(iter(lines))
assert encoding == 'utf-8'
def test_detect_encoding_cookie():
lines = [
- '# coding=utf-8',
- 'Test',
- 'Проверка'
+ u'# coding=utf-8',
+ u'Test',
+ u'Проверка'
]
- encoding, _ = detect_encoding(lines)
+ lines = [l.encode('utf-8') for l in lines]
+ encoding, _ = detect_encoding(iter(lines))
assert encoding == 'utf-8'
def test_decode_lines():
- lines = [
- '# coding=utf-8',
- 'Test',
- 'Проверка',
+ unicode_lines = [
+ u'# coding=utf-8',
+ u'Test',
+ u'Проверка',
]
+ lines = [l.encode('utf-8') for l in unicode_lines]
if PY3:
- assert lines == list(decode_lines(lines))
+ assert unicode_lines == list(decode_lines(iter(lines)))
else:
- assert [l.decode('utf-8') for l in lines] == list(decode_lines(lines))
+ assert [l.decode('utf-8') for l in lines] == list(decode_lines(iter(lines)))
1
0
Hello community,
here is the log from the commit of package python-jenkins-job-builder for openSUSE:Factory checked in at 2019-05-17 23:43:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jenkins-job-builder (Old)
and /work/SRC/openSUSE:Factory/.python-jenkins-job-builder.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jenkins-job-builder"
Fri May 17 23:43:38 2019 rev:16 rq:703564 version:2.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jenkins-job-builder/python-jenkins-job-builder.changes 2019-04-08 20:53:49.202580861 +0200
+++ /work/SRC/openSUSE:Factory/.python-jenkins-job-builder.new.5148/python-jenkins-job-builder.changes 2019-05-17 23:43:38.813896875 +0200
@@ -1,0 +2,16 @@
+Thu May 16 21:08:30 UTC 2019 - Stephen Ma <sma(a)suse.com>
+
+- Fixed the BuildRequires line for pbr: added a space after '>='.
+
+-------------------------------------------------------------------
+Tue May 14 23:06:15 UTC 2019 - Jonathan Harker <jharker(a)suse.com>
+
+- update to 2.10.0
+ * Adds named branches to property strategy support
+ * Do not ignore global-settings-type in Maven module
+ * Adds github scm multibranch regex branch filte
+ * Adds match-script and groovy-sandbox to Lockable Resources Plugin properties
+ * Add 'publishers-from' to the publishers module
+ * Refactor jobfilters to separate file
+
+-------------------------------------------------------------------
Old:
----
0001-Allow-pyyaml-5.patch
jenkins-job-builder-2.9.1.tar.gz
New:
----
jenkins-job-builder-2.10.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jenkins-job-builder.spec ++++++
--- /var/tmp/diff_new_pack.OE8K5C/_old 2019-05-17 23:43:39.485896506 +0200
+++ /var/tmp/diff_new_pack.OE8K5C/_new 2019-05-17 23:43:39.485896506 +0200
@@ -19,23 +19,25 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jenkins-job-builder
-Version: 2.9.1
+Version: 2.10.0
Release: 0
Summary: Program for configuring Jenkins jobs with YAML
License: Apache-2.0
Group: Development/Languages/Python
-Url: https://github.com/openstack-ci/jenkins-job-builder
+URL: https://opendev.org/jjb/jenkins-job-builder
Source: https://files.pythonhosted.org/packages/source/j/jenkins-job-builder/jenkin…
-# # PATCH-FIX-UPSTREAM 0001-Allow-pyyaml-5.patch -- https://review.openstack.org/650859
-Patch0: 0001-Allow-pyyaml-5.patch
BuildRequires: %{python_module Jinja2}
+BuildRequires: %{python_module PyYAML >= 3.10.0}
BuildRequires: %{python_module fasteners}
BuildRequires: %{python_module mock}
-BuildRequires: %{python_module pbr}
-BuildRequires: %{python_module python-jenkins}
+BuildRequires: %{python_module pbr >= 1.8}
+BuildRequires: %{python_module python-jenkins >= 0.4.15}
BuildRequires: %{python_module setuptools-git}
+BuildRequires: %{python_module six >= 1.9.0}
BuildRequires: %{python_module stestr}
+BuildRequires: %{python_module stevedore >= 1.17.1}
BuildRequires: %{python_module testscenarios}
+BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Jinja2
Requires: python-PyYAML >= 3.10.0
@@ -58,7 +60,6 @@
%prep
%setup -q -n jenkins-job-builder-%{version}
-%patch0 -p1
%build
%python_build
@@ -66,6 +67,7 @@
%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/jenkins-jobs
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%python_exec -m stestr.cli run
++++++ jenkins-job-builder-2.9.1.tar.gz -> jenkins-job-builder-2.10.0.tar.gz ++++++
++++ 2982 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-ryu for openSUSE:Factory checked in at 2019-05-17 23:43:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ryu (Old)
and /work/SRC/openSUSE:Factory/.python-ryu.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ryu"
Fri May 17 23:43:35 2019 rev:4 rq:703560 version:4.32
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ryu/python-ryu.changes 2019-05-07 23:19:35.357000625 +0200
+++ /work/SRC/openSUSE:Factory/.python-ryu.new.5148/python-ryu.changes 2019-05-17 23:43:37.269897723 +0200
@@ -1,0 +2,6 @@
+Thu May 16 20:58:54 UTC 2019 - Hardik Italia <hitalia(a)suse.com>
+
+- Version update to 4.32
+ * app/ofctl: fix possible deadlock
+
+-------------------------------------------------------------------
Old:
----
ryu-4.31.tar.gz
New:
----
ryu-4.32.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ryu.spec ++++++
--- /var/tmp/diff_new_pack.E4Wfff/_old 2019-05-17 23:43:38.009897317 +0200
+++ /var/tmp/diff_new_pack.E4Wfff/_new 2019-05-17 23:43:38.013897315 +0200
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-ryu
-Version: 4.31
+Version: 4.32
Release: 0
Summary: Component-based Software-defined Networking Framework
License: Apache-2.0
++++++ ryu-4.31.tar.gz -> ryu-4.32.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ChangeLog new/ryu-4.32/ChangeLog
--- old/ryu-4.31/ChangeLog 2019-04-01 14:48:45.000000000 +0200
+++ new/ryu-4.32/ChangeLog 2019-05-07 15:13:08.000000000 +0200
@@ -1,6 +1,8 @@
CHANGES
=======
+* Ryu 4.32
+* app/ofctl: fix possible deadlock
* Ryu 4.31
* Choose the highest TLS version
* Ryu 4.30
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/PKG-INFO new/ryu-4.32/PKG-INFO
--- old/ryu-4.31/PKG-INFO 2019-04-01 14:48:47.000000000 +0200
+++ new/ryu-4.32/PKG-INFO 2019-05-07 15:13:10.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ryu
-Version: 4.31
+Version: 4.32
Summary: Component-based Software-defined Networking Framework
Home-page: http://osrg.github.io/ryu/
Author: Ryu project team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu/__init__.py new/ryu-4.32/ryu/__init__.py
--- old/ryu-4.31/ryu/__init__.py 2019-04-01 14:41:06.000000000 +0200
+++ new/ryu-4.32/ryu/__init__.py 2019-05-07 15:12:52.000000000 +0200
@@ -14,5 +14,5 @@
# limitations under the License.
-version_info = (4, 31)
+version_info = (4, 32)
version = '.'.join(map(str, version_info))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu/app/ofctl/service.py new/ryu-4.32/ryu/app/ofctl/service.py
--- old/ryu-4.31/ryu/app/ofctl/service.py 2018-09-26 08:34:16.000000000 +0200
+++ new/ryu-4.32/ryu/app/ofctl/service.py 2019-04-09 13:27:31.000000000 +0200
@@ -64,6 +64,22 @@
self.unobserve_event(ev_cls)
self.logger.debug('ofctl: stop observing %s', ev_cls)
+ def _cancel(self, info, barrier_xid, exception):
+ xid = info.barriers.pop(barrier_xid)
+ req = info.xids.pop(xid)
+ msg = req.msg
+ datapath = msg.datapath
+ parser = datapath.ofproto_parser
+ is_barrier = isinstance(msg, parser.OFPBarrierRequest)
+
+ info.results.pop(xid)
+
+ if not is_barrier and req.reply_cls is not None:
+ self._unobserve_msg(req.reply_cls)
+
+ self.logger.error('failed to send message <%s>', req.msg)
+ self.reply_to_request(req, event.Reply(exception=exception))
+
@staticmethod
def _is_error(msg):
return (ofp_event.ofp_msg_to_ev_cls(type(msg)) ==
@@ -81,6 +97,9 @@
self._switches[id] = new_info
if old_info:
old_info.datapath.close()
+ for xid in list(old_info.barriers):
+ self._cancel(
+ old_info, xid, exception.InvalidDatapath(result=id))
@set_ev_cls(ofp_event.EventOFPStateChange, DEAD_DISPATCHER)
def _handle_dead(self, ev):
@@ -96,6 +115,8 @@
if info.datapath is datapath:
self.logger.debug('forget info %s', info)
self._switches.pop(id)
+ for xid in list(info.barriers):
+ self._cancel(info, xid, exception.InvalidDatapath(result=id))
@set_ev_cls(event.GetDatapathRequest, MAIN_DISPATCHER)
def _handle_get_datapath(self, req):
@@ -131,15 +152,6 @@
si.xids[xid] = req
si.barriers[barrier_xid] = xid
- def _cancel(barrier_xid, exc):
- xid = si.barriers.pop(barrier_xid)
- si.results.pop(xid)
- si.xids.pop(xid)
- if not is_barrier and req.reply_cls is not None:
- self._unobserve_msg(req.reply_cls)
- self.logger.error('failed to send message <%s>', msg)
- self.reply_to_request(req, event.Reply(exception=exc))
-
if is_barrier:
barrier = msg
datapath.set_xid(barrier)
@@ -152,12 +164,14 @@
datapath.set_xid(barrier)
_store_xid(msg.xid, barrier.xid)
if not datapath.send_msg(msg):
- return _cancel(barrier.xid,
- exception.InvalidDatapath(result=datapath.id))
+ return self._cancel(
+ si, barrier.xid,
+ exception.InvalidDatapath(result=datapath.id))
if not datapath.send_msg(barrier):
- return _cancel(barrier.xid,
- exception.InvalidDatapath(result=datapath.id))
+ return self._cancel(
+ si, barrier.xid,
+ exception.InvalidDatapath(result=datapath.id))
@set_ev_cls(ofp_event.EventOFPBarrierReply, MAIN_DISPATCHER)
def _handle_barrier(self, ev):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu.egg-info/PKG-INFO new/ryu-4.32/ryu.egg-info/PKG-INFO
--- old/ryu-4.31/ryu.egg-info/PKG-INFO 2019-04-01 14:48:45.000000000 +0200
+++ new/ryu-4.32/ryu.egg-info/PKG-INFO 2019-05-07 15:13:08.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ryu
-Version: 4.31
+Version: 4.32
Summary: Component-based Software-defined Networking Framework
Home-page: http://osrg.github.io/ryu/
Author: Ryu project team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ryu-4.31/ryu.egg-info/pbr.json new/ryu-4.32/ryu.egg-info/pbr.json
--- old/ryu-4.31/ryu.egg-info/pbr.json 2019-04-01 14:48:45.000000000 +0200
+++ new/ryu-4.32/ryu.egg-info/pbr.json 2019-05-07 15:13:08.000000000 +0200
@@ -1 +1 @@
-{"git_version": "050bfbc", "is_release": false}
\ No newline at end of file
+{"git_version": "6456711", "is_release": false}
\ No newline at end of file
1
0
Hello community,
here is the log from the commit of package python-Scrapy for openSUSE:Factory checked in at 2019-05-17 23:43:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Scrapy (Old)
and /work/SRC/openSUSE:Factory/.python-Scrapy.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Scrapy"
Fri May 17 23:43:32 2019 rev:2 rq:703535 version:1.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Scrapy/python-Scrapy.changes 2019-02-28 21:42:03.289559654 +0100
+++ /work/SRC/openSUSE:Factory/.python-Scrapy.new.5148/python-Scrapy.changes 2019-05-17 23:43:33.625899725 +0200
@@ -1,0 +2,5 @@
+Thu May 16 19:33:46 UTC 2019 - ranand(a)suse.com
+
+- Skip flaky CrawlerTestCase
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Scrapy.spec ++++++
--- /var/tmp/diff_new_pack.cZ3QhL/_old 2019-05-17 23:43:34.089899470 +0200
+++ /var/tmp/diff_new_pack.cZ3QhL/_new 2019-05-17 23:43:34.093899468 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-Scrapy
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,6 @@
License: BSD-3-Clause
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/S/Scrapy/Scrapy-%{version}.tar.gz
-BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module Pillow}
BuildRequires: %{python_module PyDispatcher >= 2.0.5}
BuildRequires: %{python_module Twisted >= 17.9.0}
@@ -37,10 +36,11 @@
BuildRequires: %{python_module pyasn1}
BuildRequires: %{python_module queuelib >= 1.1.1}
BuildRequires: %{python_module service_identity}
+BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module six >= 1.5.2}
BuildRequires: %{python_module w3lib >= 1.17.2}
-BuildRequires: python-rpm-macros
BuildRequires: fdupes
+BuildRequires: python-rpm-macros
# doc dependencies
BuildRequires: %{python_module Sphinx}
# test requirements
@@ -96,6 +96,7 @@
skiplist="not S3AnonTestCase and not S3TestCase and not S3FeedStorageTest"
skiplist="$skiplist and not FilesPipelineTestCaseFields"
skiplist="$skiplist and not ImagesPipelineTestCaseFields"
+skiplist="$skiplist and not CrawlerTestCase"
# tests/test_proxy_connect.py: requires mitmproxy == 0.10.1
%{python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} \
--ignore tests/test_proxy_connect.py \
1
0
Hello community,
here is the log from the commit of package python-pytest-repeat for openSUSE:Factory checked in at 2019-05-17 23:43:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-repeat (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-repeat.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-repeat"
Fri May 17 23:43:29 2019 rev:1 rq:703525 version:0.8.0
Changes:
--------
New Changes file:
--- /dev/null 2019-05-02 15:18:01.516169518 +0200
+++ /work/SRC/openSUSE:Factory/.python-pytest-repeat.new.5148/python-pytest-repeat.changes 2019-05-17 23:43:31.241901034 +0200
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Thu May 16 04:14:50 PM UTC 2019 - John Vandenberg <jayvdb(a)gmail.com>
+
+- Initial spec for v0.8.0
New:
----
pytest-repeat-0.8.0.tar.gz
python-pytest-repeat.changes
python-pytest-repeat.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-repeat.spec ++++++
#
# spec file for package python-pytest-repeat
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pytest-repeat
Version: 0.8.0
Release: 0
License: MPL-2.0
Summary: Pytest plugin for repeating tests
Url: https://github.com/pytest-dev/pytest-repeat
Group: Development/Languages/Python
Source: https://files.pythonhosted.org/packages/source/p/pytest-repeat/pytest-repea…
BuildRequires: python-rpm-macros
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module setuptools_scm}
# SECTION test requirements
BuildRequires: %{python_module pytest >= 3.6}
# /SECTION
BuildRequires: fdupes
Requires: python-pytest >= 3.6
BuildArch: noarch
%python_subpackages
%description
Pytest plugin for repeating tests.
%prep
%setup -q -n pytest-repeat-%{version}
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pytest
%files %{python_files}
%doc CHANGES.rst README.rst
%license LICENSE
%{python_sitelib}/*
%changelog
1
0
Hello community,
here is the log from the commit of package happy for openSUSE:Factory checked in at 2019-05-17 23:43:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/happy (Old)
and /work/SRC/openSUSE:Factory/.happy.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "happy"
Fri May 17 23:43:25 2019 rev:18 rq:703482 version:1.19.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/happy/happy.changes 2018-10-25 08:21:53.367923643 +0200
+++ /work/SRC/openSUSE:Factory/.happy.new.5148/happy.changes 2019-05-17 23:43:28.429902579 +0200
@@ -1,0 +2,11 @@
+Fri May 10 13:28:46 UTC 2019 - psimons(a)suse.com
+
+- Update happy to version 1.19.10.
+ 1.19.10
+
+ * Fix polymorphic (rank-n) non-terminals
+ * Fix for GHC 8.8.1
+
+ -----------------------------------------------------------------------------
+
+-------------------------------------------------------------------
Old:
----
happy-1.19.9.tar.gz
happy.cabal
New:
----
happy-1.19.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ happy.spec ++++++
--- /var/tmp/diff_new_pack.WGvUyU/_old 2019-05-17 23:43:29.673901895 +0200
+++ /var/tmp/diff_new_pack.WGvUyU/_new 2019-05-17 23:43:29.673901895 +0200
@@ -1,7 +1,7 @@
#
# spec file for package happy
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,13 @@
%bcond_with tests
Name: happy
-Version: 1.19.9
+Version: 1.19.10
Release: 0
Summary: Happy is a parser generator for Haskell
License: BSD-2-Clause
Group: Development/Libraries/Haskell
URL: https://hackage.haskell.org/package/%{name}
Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.t…
-Source1: https://hackage.haskell.org/package/%{name}-%{version}/revision/3.cabal#/%{…
BuildRequires: autoconf
BuildRequires: docbook-dtd
BuildRequires: docbook-xsl-stylesheets
@@ -49,7 +48,6 @@
%prep
%setup -q
-cp -p %{SOURCE1} %{name}.cabal
%build
%ghc_bin_build
++++++ happy-1.19.9.tar.gz -> happy-1.19.10.tar.gz ++++++
++++ 2005 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package ghc-void for openSUSE:Factory checked in at 2019-05-17 23:43:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-void (Old)
and /work/SRC/openSUSE:Factory/.ghc-void.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-void"
Fri May 17 23:43:21 2019 rev:11 rq:703481 version:0.7.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-void/ghc-void.changes 2018-10-25 09:07:14.974472444 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-void.new.5148/ghc-void.changes 2019-05-17 23:43:22.977905574 +0200
@@ -1,0 +2,8 @@
+Sat May 11 02:00:44 UTC 2019 - psimons(a)suse.com
+
+- Update void to version 0.7.3.
+ 0.7.3 [2019.05.10]
+ ------------------
+ * Backport the `Lift Void` instance introduced in `template-haskell-2.15.0.0`.
+
+-------------------------------------------------------------------
Old:
----
void-0.7.2.tar.gz
New:
----
void-0.7.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-void.spec ++++++
--- /var/tmp/diff_new_pack.ytj6wh/_old 2019-05-17 23:43:23.785905130 +0200
+++ /var/tmp/diff_new_pack.ytj6wh/_new 2019-05-17 23:43:23.789905127 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-void
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%global pkg_name void
Name: ghc-%{pkg_name}
-Version: 0.7.2
+Version: 0.7.3
Release: 0
Summary: A Haskell 98 logically uninhabited data type
License: BSD-3-Clause
++++++ void-0.7.2.tar.gz -> void-0.7.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/void-0.7.2/.gitignore new/void-0.7.3/.gitignore
--- old/void-0.7.2/.gitignore 2017-03-25 05:22:56.000000000 +0100
+++ new/void-0.7.3/.gitignore 2001-09-09 03:46:40.000000000 +0200
@@ -13,3 +13,22 @@
tags
wiki
wip
+dist-newstyle/
+.stack-work/
+cabal-dev
+*.chi
+*.chs.h
+*.dyn_o
+*.dyn_hi
+.hpc
+.hsenv
+.cabal-sandbox/
+cabal.sandbox.config
+*.prof
+*.aux
+*.hp
+*.eventlog
+cabal.project.local
+cabal.project.local~
+.HTF/
+.ghc.environment.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/void-0.7.2/.travis.yml new/void-0.7.3/.travis.yml
--- old/void-0.7.2/.travis.yml 2017-03-25 05:22:56.000000000 +0100
+++ new/void-0.7.3/.travis.yml 2001-09-09 03:46:40.000000000 +0200
@@ -1,108 +1,174 @@
-# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
+# This Travis job script has been generated by a script via
+#
+# haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci' 'cabal.project'
+#
+# For more information, see https://github.com/haskell-CI/haskell-ci
+#
+# version: 0.3.20190425
+#
language: c
-sudo: false
-
+dist: xenial
+git:
+ # whether to recursively clone submodules
+ submodules: false
notifications:
irc:
channels:
- - "irc.freenode.org#haskell-lens"
+ - irc.freenode.org#haskell-lens
skip_join: true
template:
- - "\x0313void\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
+ - "\"\\x0313void\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\""
cache:
directories:
- - $HOME/.cabsnap
- $HOME/.cabal/packages
-
+ - $HOME/.cabal/store
before_cache:
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
-
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
+ # remove files that are regenerated by 'cabal update'
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
+ - rm -rfv $CABALHOME/packages/head.hackage
matrix:
include:
- - env: CABALVER=1.18 GHCVER=7.0.4
- compiler: ": #GHC 7.0.4"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.0.4], sources: [hvr-ghc]}}
- - env: CABALVER=1.18 GHCVER=7.2.2
- compiler: ": #GHC 7.2.2"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.2.2], sources: [hvr-ghc]}}
- - env: CABALVER=1.18 GHCVER=7.4.2
- compiler: ": #GHC 7.4.2"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.4.2], sources: [hvr-ghc]}}
- - env: CABALVER=1.18 GHCVER=7.6.3
- compiler: ": #GHC 7.6.3"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3], sources: [hvr-ghc]}}
- - env: CABALVER=1.18 GHCVER=7.8.4
- compiler: ": #GHC 7.8.4"
- addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
- - env: CABALVER=1.22 GHCVER=7.10.3
- compiler: ": #GHC 7.10.3"
- addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
- - env: CABALVER=1.24 GHCVER=8.0.2
- compiler: ": #GHC 8.0.2"
- addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}
- - env: CABALVER=head GHCVER=head
- compiler: ": #GHC head"
- addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
-
+ - compiler: ghc-8.8.1
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
+ env: GHCHEAD=true
+ - compiler: ghc-8.6.5
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}}
+ - compiler: ghc-8.4.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
+ - compiler: ghc-8.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-8.0.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.10.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.8.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}}
+ - compiler: ghc-7.6.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.6.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.4.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.4.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.0.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.0.4","cabal-install-2.4"]}}
+ - compiler: ghc-head
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
+ env: GHCHEAD=true
allow_failures:
- - env: CABALVER=head GHCVER=head
-
+ - compiler: ghc-head
+ - compiler: ghc-8.8.1
before_install:
- - unset CC
- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
-
+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
+ - HCPKG="$HC-pkg"
+ - unset CC
+ - CABAL=/opt/ghc/bin/cabal
+ - CABALHOME=$HOME/.cabal
+ - export PATH="$CABALHOME/bin:$PATH"
+ - TOP=$(pwd)
+ - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
+ - echo $HCNUMVER
+ - CABAL="$CABAL -vnormal+nowrap+markoutput"
+ - set -o pipefail
+ - |
+ echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk
+ echo 'BEGIN { state = "output"; }' >> .colorful.awk
+ echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk
+ echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk
+ echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk
+ echo ' if (state == "cabal") {' >> .colorful.awk
+ echo ' print blue($0)' >> .colorful.awk
+ echo ' } else {' >> .colorful.awk
+ echo ' print $0' >> .colorful.awk
+ echo ' }' >> .colorful.awk
+ echo '}' >> .colorful.awk
+ - cat .colorful.awk
+ - |
+ color_cabal_output () {
+ awk -f $TOP/.colorful.awk
+ }
+ - echo text | color_cabal_output
install:
- - cabal --version
- - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
- then
- zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
- $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
- fi
- - travis_retry cabal update -v
- - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
- - cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt
- - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
-
-# check whether current requested install-plan matches cached package-db snapshot
- - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
- then
- echo "cabal build-cache HIT";
- rm -rfv .ghc;
- cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
- cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
- else
- echo "cabal build-cache MISS";
- rm -rf $HOME/.cabsnap;
- mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
- cabal install -j --only-dependencies --enable-tests --enable-benchmarks;
- fi
-
-# snapshot package-db on cache miss
- - if [ ! -d $HOME/.cabsnap ];
- then
- echo "snapshotting package-db to build-cache";
- mkdir $HOME/.cabsnap;
- cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
- cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
- fi
-
-# Here starts the actual work to be performed for the package under test;
-# any command which exits with a non-zero exit code causes the build to fail.
+ - ${CABAL} --version
+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
+ - TEST=--enable-tests
+ - BENCH=--enable-benchmarks
+ - GHCHEAD=${GHCHEAD-false}
+ - rm -f $CABALHOME/config
+ - |
+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
+ echo "install-dirs user" >> $CABALHOME/config
+ echo " prefix: $CABALHOME" >> $CABALHOME/config
+ echo "repository hackage.haskell.org" >> $CABALHOME/config
+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
+ - |
+ if $GHCHEAD; then
+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
+
+ echo "repository head.hackage" >> $CABALHOME/config
+ echo " url: http://head.hackage.haskell.org/" >> $CABALHOME/config
+ echo " secure: True" >> $CABALHOME/config
+ echo " root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740" >> $CABALHOME/config
+ echo " 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb" >> $CABALHOME/config
+ echo " 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e" >> $CABALHOME/config
+ echo " key-threshold: 3" >> $CABALHOME/config
+ fi
+ - cat $CABALHOME/config
+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
+ - travis_retry ${CABAL} v2-update -v
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
+ - touch cabal.project
+ - |
+ echo 'packages: "."' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(void)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
+ - cat cabal.project || true
+ - cat cabal.project.local || true
+ - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
+ - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
+ - rm cabal.project.freeze
+ - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all | color_cabal_output
script:
- - if [ -f configure.ac ]; then autoreconf -i; fi
- - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
- - cabal build # this builds all libraries and executables (including tests/benchmarks)
- - cabal test
- - cabal check
- - cabal sdist # tests that a source-distribution can be generated
-
-# Check that the resulting source distribution can be built & installed.
-# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
-# `cabal install --force-reinstalls dist/*-*.tar.gz`
- - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
- (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
+ # Packaging...
+ - ${CABAL} v2-sdist all | color_cabal_output
+ # Unpacking...
+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
+ - cd ${DISTDIR} || false
+ - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
+ - touch cabal.project
+ - |
+ echo 'packages: "void-*/*.cabal"' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(void)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
+ - cat cabal.project || true
+ - cat cabal.project.local || true
+ # Building with tests and benchmarks...
+ # build & run tests, build benchmarks
+ - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # cabal check...
+ - (cd void-* && ${CABAL} -vnormal check)
+ # haddock...
+ - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+# REGENDATA ["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]
# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/void-0.7.2/CHANGELOG.markdown new/void-0.7.3/CHANGELOG.markdown
--- old/void-0.7.2/CHANGELOG.markdown 2017-03-25 05:22:56.000000000 +0100
+++ new/void-0.7.3/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,7 @@
+0.7.3 [2019.05.10]
+------------------
+* Backport the `Lift Void` instance introduced in `template-haskell-2.15.0.0`.
+
0.7.2
-----
* Only depend on `deepseq`, `hashable`, and `semigroups` if using GHC 7.8 or earlier.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/void-0.7.2/src-old/Data/Void.hs new/void-0.7.3/src-old/Data/Void.hs
--- old/void-0.7.2/src-old/Data/Void.hs 2017-03-25 05:22:56.000000000 +0100
+++ new/void-0.7.3/src-old/Data/Void.hs 2001-09-09 03:46:40.000000000 +0200
@@ -54,6 +54,8 @@
import Control.Exception
#endif
+import Language.Haskell.TH.Syntax (Lift (..))
+
-- | A logically uninhabited data type.
#if __GLASGOW_HASKELL__ < 700
data Void = Void !Void
@@ -122,3 +124,6 @@
-- | Defined as @'rnf' = 'absurd'@.
instance NFData Void where
rnf = absurd
+
+instance Lift Void where
+ lift = return . absurd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/void-0.7.2/void.cabal new/void-0.7.3/void.cabal
--- old/void-0.7.2/void.cabal 2017-03-25 05:22:56.000000000 +0100
+++ new/void-0.7.3/void.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
name: void
category: Data Structures
-version: 0.7.2
+version: 0.7.3
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -13,6 +13,17 @@
synopsis: A Haskell 98 logically uninhabited data type
description: A Haskell 98 logically uninhabited data type, used to indicate that a given term should not exist.
build-type: Simple
+tested-with: GHC==8.8.1
+ , GHC==8.6.5
+ , GHC==8.4.4
+ , GHC==8.2.2
+ , GHC==8.0.2
+ , GHC==7.10.3
+ , GHC==7.8.4
+ , GHC==7.6.3
+ , GHC==7.4.2
+ , GHC==7.2.2
+ , GHC==7.0.4
extra-source-files:
.ghci
@@ -49,7 +60,8 @@
build-depends:
deepseq >= 1.1 && < 1.5,
hashable >= 1.1,
- semigroups >= 0.8.2
+ semigroups >= 0.8.2,
+ template-haskell >=2.5.0.0 && <2.11
if impl(ghc)
other-extensions: DeriveDataTypeable
1
0
Hello community,
here is the log from the commit of package ghc-transformers-compat for openSUSE:Factory checked in at 2019-05-17 23:43:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-transformers-compat (Old)
and /work/SRC/openSUSE:Factory/.ghc-transformers-compat.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-transformers-compat"
Fri May 17 23:43:18 2019 rev:10 rq:703480 version:0.6.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-transformers-compat/ghc-transformers-compat.changes 2019-04-28 20:14:01.090397420 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-transformers-compat.new.5148/ghc-transformers-compat.changes 2019-05-17 23:43:19.861907285 +0200
@@ -1,0 +2,9 @@
+Sun May 12 02:02:22 UTC 2019 - psimons(a)suse.com
+
+- Update transformers-compat to version 0.6.5.
+ 0.6.5 [2019.05.11]
+ ------------------
+ * Ensure that the backported `MonadFail` instance for `ExceptT` is available
+ when built against `transformers-0.4.*`.
+
+-------------------------------------------------------------------
Old:
----
transformers-compat-0.6.4.tar.gz
New:
----
transformers-compat-0.6.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-transformers-compat.spec ++++++
--- /var/tmp/diff_new_pack.T8XxJJ/_old 2019-05-17 23:43:20.521906923 +0200
+++ /var/tmp/diff_new_pack.T8XxJJ/_new 2019-05-17 23:43:20.525906920 +0200
@@ -18,7 +18,7 @@
%global pkg_name transformers-compat
Name: ghc-%{pkg_name}
-Version: 0.6.4
+Version: 0.6.5
Release: 0
Summary: A small compatibility shim for the transformers library
License: BSD-3-Clause
++++++ transformers-compat-0.6.4.tar.gz -> transformers-compat-0.6.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transformers-compat-0.6.4/.travis.yml new/transformers-compat-0.6.5/.travis.yml
--- old/transformers-compat-0.6.4/.travis.yml 2001-09-09 03:46:40.000000000 +0200
+++ new/transformers-compat-0.6.5/.travis.yml 2001-09-09 03:46:40.000000000 +0200
@@ -4,27 +4,24 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
-# version: 0.2.1
+# version: 0.3.20190425
#
language: c
dist: xenial
-
git:
- submodules: false # whether to recursively clone submodules
-
+ # whether to recursively clone submodules
+ submodules: false
notifications:
irc:
channels:
- - "irc.freenode.org#haskell-lens"
+ - irc.freenode.org#haskell-lens
skip_join: true
template:
- - "\x0313transformers-compat\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
+ - "\"\\x0313transformers-compat\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\""
cache:
directories:
- $HOME/.cabal/packages
- $HOME/.cabal/store
-
before_cache:
- rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
# remove files that are regenerated by 'cabal update'
@@ -33,155 +30,174 @@
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
-
- rm -rfv $CABALHOME/packages/head.hackage
-
matrix:
include:
- - compiler: "ghc-8.6.4"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.4], sources: [hvr-ghc]}}
- - compiler: "ghc-8.4.4"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}
- - compiler: "ghc-8.2.2"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
- - compiler: "ghc-8.0.2"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.10.3"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.10.3], sources: [hvr-ghc]}}
- - compiler: "ghc-7.8.4"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.8.4], sources: [hvr-ghc]}}
- - compiler: "ghc-7.6.3"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.6.3], sources: [hvr-ghc]}}
- - compiler: "ghc-7.4.2"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.4.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.2.2"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.2.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.0.4"
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.0.4], sources: [hvr-ghc]}}
- - compiler: "ghc-head"
+ - compiler: ghc-8.8.1
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
+ env: GHCHEAD=true
+ - compiler: ghc-8.6.5
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}}
+ - compiler: ghc-8.4.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
+ - compiler: ghc-8.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-8.0.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.10.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.8.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}}
+ - compiler: ghc-7.6.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.6.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.4.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.4.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.0.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.0.4","cabal-install-2.4"]}}
+ - compiler: ghc-head
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
env: GHCHEAD=true
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}}
-
allow_failures:
- - compiler: "ghc-head"
-
+ - compiler: ghc-head
+ - compiler: ghc-8.8.1
before_install:
- - HC=/opt/ghc/bin/${CC}
- - HCPKG=${HC/ghc/ghc-pkg}
+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
+ - HCPKG="$HC-pkg"
- unset CC
- CABAL=/opt/ghc/bin/cabal
- CABALHOME=$HOME/.cabal
- export PATH="$CABALHOME/bin:$PATH"
- - ROOTDIR=$(pwd)
+ - TOP=$(pwd)
- HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
- echo $HCNUMVER
-
+ - CABAL="$CABAL -vnormal+nowrap+markoutput"
+ - set -o pipefail
+ - |
+ echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk
+ echo 'BEGIN { state = "output"; }' >> .colorful.awk
+ echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk
+ echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk
+ echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk
+ echo ' if (state == "cabal") {' >> .colorful.awk
+ echo ' print blue($0)' >> .colorful.awk
+ echo ' } else {' >> .colorful.awk
+ echo ' print $0' >> .colorful.awk
+ echo ' }' >> .colorful.awk
+ echo '}' >> .colorful.awk
+ - cat .colorful.awk
+ - |
+ color_cabal_output () {
+ awk -f $TOP/.colorful.awk
+ }
+ - echo text | color_cabal_output
install:
- ${CABAL} --version
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
- TEST=--enable-tests
- BENCH=--enable-benchmarks
- GHCHEAD=${GHCHEAD-false}
- - travis_retry ${CABAL} update -v
- - sed -i.bak 's/^jobs:/-- jobs:/' $CABALHOME/config
- - rm -fv cabal.project cabal.project.local
- - "sed -i.bak 's/^-- jobs:.*/jobs: 2/' $CABALHOME/config"
- # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage
+ - rm -f $CABALHOME/config
+ - |
+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
+ echo "install-dirs user" >> $CABALHOME/config
+ echo " prefix: $CABALHOME" >> $CABALHOME/config
+ echo "repository hackage.haskell.org" >> $CABALHOME/config
+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
- |
if $GHCHEAD; then
- sed -i 's/-- allow-newer: .*/allow-newer: *:base/' $CABALHOME/config
- for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" $CABALHOME/config; done
-
- echo 'repository head.hackage' >> $CABALHOME/config
- echo ' url: http://head.hackage.haskell.org/' >> $CABALHOME/config
- echo ' secure: True' >> $CABALHOME/config
- echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> $CABALHOME/config
- echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> $CABALHOME/config
- echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> $CABALHOME/config
- echo ' key-threshold: 3' >> $CABALHOME.config
-
- grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$'
-
- ${CABAL} new-update head.hackage -v
+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
+
+ echo "repository head.hackage" >> $CABALHOME/config
+ echo " url: http://head.hackage.haskell.org/" >> $CABALHOME/config
+ echo " secure: True" >> $CABALHOME/config
+ echo " root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740" >> $CABALHOME/config
+ echo " 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb" >> $CABALHOME/config
+ echo " 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e" >> $CABALHOME/config
+ echo " key-threshold: 3" >> $CABALHOME/config
fi
- - grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$'
- - rm -f cabal.project
+ - "echo 'jobs: 2' >> $CABALHOME/config"
+ - cat $CABALHOME/config
+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
+ - travis_retry ${CABAL} v2-update -v
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
- touch cabal.project
- - "printf 'packages: \".\"\\n' >> cabal.project"
- - "printf 'packages: \"./tests\"\\n' >> cabal.project"
- - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
- - touch cabal.project.local
+ - |
+ echo 'packages: "."' >> cabal.project
+ echo 'packages: "./tests"' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(transformers-compat|transformers-compat-tests)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
- if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
- if [ -f "./tests/configure.ac" ]; then (cd "./tests" && autoreconf -i); fi
- - rm -f cabal.project.freeze
- - rm -rf .ghc.environment.* "."/dist "./tests"/dist
- - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
-
-# Here starts the actual work to be performed for the package under test;
-# any command which exits with a non-zero exit code causes the build to fail.
+ - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
+ - rm cabal.project.freeze
script:
- # test that source-distributions can be generated
- - ${CABAL} new-sdist all
+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
+ # Packaging...
+ - ${CABAL} v2-sdist all | color_cabal_output
+ # Unpacking...
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
- cd ${DISTDIR} || false
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
- - rm -f cabal.project
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
- touch cabal.project
- - "printf 'packages: \"transformers-compat-*/*.cabal\"\\n' >> cabal.project"
- - "printf 'packages: \"transformers-compat-tests-*/*.cabal\"\\n' >> cabal.project"
- - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
- - touch cabal.project.local
+ - |
+ echo 'packages: "transformers-compat-*/*.cabal"' >> cabal.project
+ echo 'packages: "transformers-compat-tests-*/*.cabal"' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(transformers-compat|transformers-compat-tests)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
-
+ # Building with tests and benchmarks...
# build & run tests, build benchmarks
- - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} all
- - if [ "x$TEST" = "x--enable-tests" ]; then ${CABAL} new-test -w ${HC} ${TEST} ${BENCH} all; fi
-
- # cabal check
- - (cd transformers-compat-* && ${CABAL} check)
- - (cd transformers-compat-tests-* && ${CABAL} check)
-
- # haddock
- - ${CABAL} new-haddock -w ${HC} ${TEST} ${BENCH} all
-
- # Build without installed constraints for packages in global-db
- - rm -f cabal.project.local; ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks all;
-
+ - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # Testing...
+ - ${CABAL} v2-test -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # cabal check...
+ - (cd transformers-compat-* && ${CABAL} -vnormal check)
+ - (cd transformers-compat-tests-* && ${CABAL} -vnormal check)
+ # haddock...
+ - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # Building without installed constraints for packages in global-db...
+ - rm -f cabal.project.local
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output
# Constraint sets
- rm -rf cabal.project.local
-
# Constraint set no-mtl
- - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -mtl' all
-
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -mtl' all | color_cabal_output
# Constraint set no-generic-deriving
- - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' all
-
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' all | color_cabal_output
# Constraint set no-mtl-no-generic-deriving
- - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' --constraint='tranformers-compat -mtl' all
-
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' --constraint='tranformers-compat -mtl' all | color_cabal_output
# Constraint set two
- - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +two' all ; fi
-
+ - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +two' all | color_cabal_output ; fi
# Constraint set three
- - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +three' all ; fi
-
+ - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +three' all | color_cabal_output ; fi
# Constraint set four
- - if [ $HCNUMVER -lt 71100 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +four' all ; fi
-
+ - if [ $HCNUMVER -lt 71100 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +four' all | color_cabal_output ; fi
# Constraint set five
- - if [ $HCNUMVER -lt 80300 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +five' all ; fi
-
+ - if [ $HCNUMVER -lt 80300 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +five' all | color_cabal_output ; fi
# Constraint set transformers-installed
- - if [ $HCNUMVER -ge 70800 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers installed' all ; fi
-
+ - if [ $HCNUMVER -ge 70800 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers installed' all | color_cabal_output ; fi
# Constraint set transformers-newer
- - if [ $HCNUMVER -lt 80500 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers >=0.5.5.0' all ; fi
-
+ - if [ $HCNUMVER -lt 80500 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers >=0.5.5.0' all | color_cabal_output ; fi
# REGENDATA ["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]
# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transformers-compat-0.6.4/CHANGELOG.markdown new/transformers-compat-0.6.5/CHANGELOG.markdown
--- old/transformers-compat-0.6.4/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200
+++ new/transformers-compat-0.6.5/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,8 @@
+0.6.5 [2019.05.11]
+------------------
+* Ensure that the backported `MonadFail` instance for `ExceptT` is available
+ when built against `transformers-0.4.*`.
+
0.6.4 [2019.04.01]
------------------
* Use more conservative CPP to guard the backported `MonadFix` instance for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transformers-compat-0.6.4/src/Control/Monad/Trans/Instances.hs new/transformers-compat-0.6.5/src/Control/Monad/Trans/Instances.hs
--- old/transformers-compat-0.6.4/src/Control/Monad/Trans/Instances.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/transformers-compat-0.6.5/src/Control/Monad/Trans/Instances.hs 2001-09-09 03:46:40.000000000 +0200
@@ -262,12 +262,13 @@
fail msg = Strict.WriterT $ Fail.fail msg
{-# INLINE fail #-}
-# if MIN_VERSION_transformers(0,5,0) && !(MIN_VERSION_base(4,9,0))
+# if MIN_VERSION_transformers(0,4,0) && !(MIN_VERSION_base(4,9,0))
instance (Fail.MonadFail m) => Fail.MonadFail (ExceptT e m) where
fail = ExceptT . Fail.fail
{-# INLINE fail #-}
+# endif
-# if MIN_VERSION_transformers(0,5,3)
+# if MIN_VERSION_transformers(0,5,3) && !(MIN_VERSION_base(4,9,0))
instance (Monoid w, Functor m, Fail.MonadFail m) => Fail.MonadFail (AccumT w m) where
fail msg = AccumT $ const (Fail.fail msg)
{-# INLINE fail #-}
@@ -275,7 +276,6 @@
instance (Fail.MonadFail m) => Fail.MonadFail (SelectT r m) where
fail msg = lift (Fail.fail msg)
{-# INLINE fail #-}
-# endif
# endif
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transformers-compat-0.6.4/tests/transformers-compat-tests.cabal new/transformers-compat-0.6.5/tests/transformers-compat-tests.cabal
--- old/transformers-compat-0.6.4/tests/transformers-compat-tests.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/transformers-compat-0.6.5/tests/transformers-compat-tests.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -22,7 +22,8 @@
, GHC == 8.0.2
, GHC == 8.2.2
, GHC == 8.4.4
- , GHC == 8.6.4
+ , GHC == 8.6.5
+ , GHC == 8.8.1
source-repository head
type: git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/transformers-compat-0.6.4/transformers-compat.cabal new/transformers-compat-0.6.5/transformers-compat.cabal
--- old/transformers-compat-0.6.4/transformers-compat.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/transformers-compat-0.6.5/transformers-compat.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
name: transformers-compat
category: Compatibility
-version: 0.6.4
+version: 0.6.5
license: BSD3
cabal-version: >= 1.8
license-file: LICENSE
@@ -32,7 +32,8 @@
, GHC == 8.0.2
, GHC == 8.2.2
, GHC == 8.4.4
- , GHC == 8.6.4
+ , GHC == 8.6.5
+ , GHC == 8.8.1
extra-source-files:
.travis.yml
.ghci
1
0
Hello community,
here is the log from the commit of package ghc-th-lift for openSUSE:Factory checked in at 2019-05-17 23:43:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-th-lift (Old)
and /work/SRC/openSUSE:Factory/.ghc-th-lift.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-th-lift"
Fri May 17 23:43:15 2019 rev:9 rq:703479 version:0.8.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-th-lift/ghc-th-lift.changes 2019-05-09 10:10:34.213227350 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-th-lift.new.5148/ghc-th-lift.changes 2019-05-17 23:43:17.077908815 +0200
@@ -1,0 +2,7 @@
+Fri May 10 13:28:40 UTC 2019 - psimons(a)suse.com
+
+- Update th-lift to version 0.8.0.1.
+ Upstream has not updated the file "CHANGELOG.md" since the last
+ release.
+
+-------------------------------------------------------------------
Old:
----
th-lift-0.8.tar.gz
New:
----
th-lift-0.8.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-th-lift.spec ++++++
--- /var/tmp/diff_new_pack.4ik3wC/_old 2019-05-17 23:43:18.393908092 +0200
+++ /var/tmp/diff_new_pack.4ik3wC/_new 2019-05-17 23:43:18.397908089 +0200
@@ -19,7 +19,7 @@
%global pkg_name th-lift
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.8
+Version: 0.8.0.1
Release: 0
Summary: Derive Template Haskell's Lift class for datatypes
License: (BSD-3-Clause OR GPL-2.0-only)
++++++ th-lift-0.8.tar.gz -> th-lift-0.8.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/th-lift-0.8/th-lift.cabal new/th-lift-0.8.0.1/th-lift.cabal
--- old/th-lift-0.8/th-lift.cabal 2019-04-26 22:23:51.000000000 +0200
+++ new/th-lift-0.8.0.1/th-lift.cabal 2019-05-09 18:22:49.000000000 +0200
@@ -1,5 +1,5 @@
Name: th-lift
-Version: 0.8
+Version: 0.8.0.1
Cabal-Version: 1.12
License: BSD3
License-Files: COPYING, BSD3, GPL-2
@@ -35,7 +35,7 @@
Build-Depends: base >= 4.3 && < 5,
ghc-prim,
th-abstraction >= 0.2.3 && < 0.4,
- template-haskell >= 2.4 && < 2.15
+ template-haskell >= 2.4 && < 2.16
Test-Suite test
Default-Language: Haskell2010
@@ -48,3 +48,4 @@
ghc-prim,
th-lift,
template-haskell
+
1
0
Hello community,
here is the log from the commit of package ghc-semigroups for openSUSE:Factory checked in at 2019-05-17 23:43:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-semigroups (Old)
and /work/SRC/openSUSE:Factory/.ghc-semigroups.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-semigroups"
Fri May 17 23:43:09 2019 rev:15 rq:703478 version:0.19
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-semigroups/ghc-semigroups.changes 2018-10-25 09:04:16.402580607 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-semigroups.new.5148/ghc-semigroups.changes 2019-05-17 23:43:10.457912450 +0200
@@ -1,0 +2,18 @@
+Sat May 11 02:00:51 UTC 2019 - psimons(a)suse.com
+
+- Update semigroups to version 0.19.
+ 0.19 [2019.05.10]
+ -----------------
+ * The `(<>)` method of the backported `Semigroup` class no longer has a default
+ implementation in terms of `mappend`. This mirrors the `Data.Semigroup` API
+ that was introduced in `base-4.9`. This is a breaking change for any
+ `Semigroup` instances that are defined in tandem with versions of `base`
+ older than 4.9.
+ * Make the backported `Hashable Arg` instance reflect its respective variants
+ in the `hashable` package. In `hashable-1.3`, the `Hashable Arg` instance
+ only hashes the first argument, lest equal values have different hashes.
+ * Backport the `Lift (NonEmpty a)` instance introduced in
+ `template-haskell-2.15.0.0`.
+ * `Data.List.NonEmpty` is now unconditionally `Trustworthy`.
+
+-------------------------------------------------------------------
Old:
----
semigroups-0.18.5.tar.gz
New:
----
semigroups-0.19.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-semigroups.spec ++++++
--- /var/tmp/diff_new_pack.k4iP25/_old 2019-05-17 23:43:13.641910702 +0200
+++ /var/tmp/diff_new_pack.k4iP25/_new 2019-05-17 23:43:13.641910702 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-semigroups
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%global pkg_name semigroups
Name: ghc-%{pkg_name}
-Version: 0.18.5
+Version: 0.19
Release: 0
Summary: Anything that associates
License: BSD-3-Clause
++++++ semigroups-0.18.5.tar.gz -> semigroups-0.19.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/semigroups-0.18.5/.travis.yml new/semigroups-0.19/.travis.yml
--- old/semigroups-0.18.5/.travis.yml 2018-07-03 00:09:07.000000000 +0200
+++ new/semigroups-0.19/.travis.yml 2001-09-09 03:46:40.000000000 +0200
@@ -1,158 +1,196 @@
# This Travis job script has been generated by a script via
#
-# runghc make_travis_yml_2.hs '-o' '.travis.yml' '--ghc-head' '--irc-channel=irc.freenode.org#haskell-lens' '--no-no-tests-no-bench' '--no-unconstrained' 'cabal.project'
+# haskell-ci '-o' '.travis.yml' '--config=cabal.haskell-ci' 'cabal.project'
#
-# For more information, see https://github.com/hvr/multi-ghc-travis
+# For more information, see https://github.com/haskell-CI/haskell-ci
+#
+# version: 0.3.20190429
#
language: c
-sudo: false
-
+dist: xenial
git:
- submodules: false # whether to recursively clone submodules
-
+ # whether to recursively clone submodules
+ submodules: false
notifications:
irc:
channels:
- - "irc.freenode.org#haskell-lens"
+ - irc.freenode.org#haskell-lens
skip_join: true
template:
- - "\x0313semigroups\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
+ - "\"\\x0313semigroups\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\""
cache:
directories:
- $HOME/.cabal/packages
- $HOME/.cabal/store
-
before_cache:
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
# remove files that are regenerated by 'cabal update'
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
-
- - rm -rfv $HOME/.cabal/packages/head.hackage
-
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
+ - rm -rfv $CABALHOME/packages/head.hackage
matrix:
include:
- - compiler: "ghc-8.6.1"
+ - compiler: ghc-8.8.1
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
env: GHCHEAD=true
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.6.1], sources: [hvr-ghc]}}
- - compiler: "ghc-8.4.3"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
- - compiler: "ghc-8.2.2"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.2], sources: [hvr-ghc]}}
- - compiler: "ghc-8.0.2"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.10.3"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.10.3], sources: [hvr-ghc]}}
- - compiler: "ghc-7.8.4"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.8.4], sources: [hvr-ghc]}}
- - compiler: "ghc-7.6.3"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.6.3], sources: [hvr-ghc]}}
- - compiler: "ghc-7.4.2"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.4.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.2.2"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.2.2], sources: [hvr-ghc]}}
- - compiler: "ghc-7.0.4"
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.0.4], sources: [hvr-ghc]}}
- - compiler: "ghc-head"
+ - compiler: ghc-8.6.5
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}}
+ - compiler: ghc-8.4.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
+ - compiler: ghc-8.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-8.0.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.10.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.8.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}}
+ - compiler: ghc-7.6.3
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.6.3","cabal-install-2.4"]}}
+ - compiler: ghc-7.4.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.4.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.2.2
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.2.2","cabal-install-2.4"]}}
+ - compiler: ghc-7.0.4
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.0.4","cabal-install-2.4"]}}
+ - compiler: ghc-head
+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
env: GHCHEAD=true
- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}}
-
allow_failures:
- - compiler: "ghc-head"
- - compiler: "ghc-7.0.4"
- - compiler: "ghc-7.2.2"
- - compiler: "ghc-8.6.1"
-
+ - compiler: ghc-head
+ - compiler: ghc-8.8.1
before_install:
- - HC=${CC}
- - HCPKG=${HC/ghc/ghc-pkg}
+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
+ - HCPKG="$HC-pkg"
- unset CC
- - ROOTDIR=$(pwd)
- - mkdir -p $HOME/.local/bin
- - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
+ - CABAL=/opt/ghc/bin/cabal
+ - CABALHOME=$HOME/.cabal
+ - export PATH="$CABALHOME/bin:$PATH"
+ - TOP=$(pwd)
- HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
- echo $HCNUMVER
-
+ - CABAL="$CABAL -vnormal+nowrap+markoutput"
+ - set -o pipefail
+ - |
+ echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk
+ echo 'BEGIN { state = "output"; }' >> .colorful.awk
+ echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk
+ echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk
+ echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk
+ echo ' if (state == "cabal") {' >> .colorful.awk
+ echo ' print blue($0)' >> .colorful.awk
+ echo ' } else {' >> .colorful.awk
+ echo ' print $0' >> .colorful.awk
+ echo ' }' >> .colorful.awk
+ echo '}' >> .colorful.awk
+ - cat .colorful.awk
+ - |
+ color_cabal_output () {
+ awk -f $TOP/.colorful.awk
+ }
+ - echo text | color_cabal_output
install:
- - cabal --version
+ - ${CABAL} --version
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
- - BENCH=${BENCH---enable-benchmarks}
- - TEST=${TEST---enable-tests}
- - HADDOCK=${HADDOCK-true}
- - UNCONSTRAINED=${UNCONSTRAINED-true}
- - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
+ - TEST=--enable-tests
+ - BENCH=--enable-benchmarks
- GHCHEAD=${GHCHEAD-false}
- - travis_retry cabal update -v
- - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
- - rm -fv cabal.project cabal.project.local
- # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage
+ - rm -f $CABALHOME/config
+ - |
+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
+ echo "install-dirs user" >> $CABALHOME/config
+ echo " prefix: $CABALHOME" >> $CABALHOME/config
+ echo "repository hackage.haskell.org" >> $CABALHOME/config
+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
- |
if $GHCHEAD; then
- sed -i 's/-- allow-newer: .*/allow-newer: *:base/' ${HOME}/.cabal/config
- for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" ${HOME}/.cabal/config; done
-
- echo 'repository head.hackage' >> ${HOME}/.cabal/config
- echo ' url: http://head.hackage.haskell.org/' >> ${HOME}/.cabal/config
- echo ' secure: True' >> ${HOME}/.cabal/config
- echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> ${HOME}/.cabal/config
- echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> ${HOME}/.cabal/config
- echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> ${HOME}/.cabal/config
- echo ' key-threshold: 3' >> ${HOME}/.cabal.config
-
- grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
-
- cabal new-update head.hackage -v
+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
+
+ echo "repository head.hackage" >> $CABALHOME/config
+ echo " url: http://head.hackage.haskell.org/" >> $CABALHOME/config
+ echo " secure: True" >> $CABALHOME/config
+ echo " root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740" >> $CABALHOME/config
+ echo " 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb" >> $CABALHOME/config
+ echo " 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e" >> $CABALHOME/config
+ echo " key-threshold: 3" >> $CABALHOME/config
fi
- - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
- - "printf 'packages: \".\"\\n' > cabal.project"
- - touch cabal.project.local
- - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
+ - cat $CABALHOME/config
+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
+ - travis_retry ${CABAL} v2-update -v
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
+ - touch cabal.project
+ - |
+ echo 'packages: "."' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(semigroups)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
- - if [ -f "./configure.ac" ]; then
- (cd "." && autoreconf -i);
- fi
- - rm -f cabal.project.freeze
- - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
- - rm -rf .ghc.environment.* "."/dist
- - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
-
-# Here starts the actual work to be performed for the package under test;
-# any command which exits with a non-zero exit code causes the build to fail.
+ - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
+ - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
+ - rm cabal.project.freeze
+ - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all | color_cabal_output
script:
- # test that source-distributions can be generated
- - (cd "." && cabal sdist)
- - mv "."/dist/semigroups-*.tar.gz ${DISTDIR}/
+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
+ # Packaging...
+ - ${CABAL} v2-sdist all | color_cabal_output
+ # Unpacking...
+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
- cd ${DISTDIR} || false
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
- - "printf 'packages: semigroups-*/*.cabal\\n' > cabal.project"
- - touch cabal.project.local
- - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
+ # Generate cabal.project
+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
+ - touch cabal.project
+ - |
+ echo 'packages: "semigroups-*/*.cabal"' >> cabal.project
+ - |
+ echo "write-ghc-environment-files: always" >> cabal.project
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(semigroups)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
-
+ # Building with tests and benchmarks...
# build & run tests, build benchmarks
- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
-
- # cabal check
- - (cd semigroups-* && cabal check)
-
- # haddock
- - rm -rf ./dist-newstyle
- - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
+ - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # cabal check...
+ - (cd semigroups-* && ${CABAL} -vnormal check)
+ # haddock...
+ - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ # Constraint sets
+ - rm -rf cabal.project.local
+ # Constraint set no-binary
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -binary' all | color_cabal_output
+ # Constraint set no-bytestring
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -bytestring' all | color_cabal_output
+ # Constraint set no-containers
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -containers' all | color_cabal_output
+ # Constraint set no-deepseq
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -deepseq' all | color_cabal_output
+ # Constraint set no-tagged
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -tagged' all | color_cabal_output
+ # Constraint set no-text
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -text' all | color_cabal_output
+ # Constraint set no-hashable
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -hashable' all | color_cabal_output
+ # Constraint set no-unordered-containers
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -hashable' --constraint='semigroups -unordered-containers' all | color_cabal_output
+ # Constraint set no-transformers
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -transformers' all | color_cabal_output
+ # Constraint set no-template-haskell
+ - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='semigroups -template-haskell' all | color_cabal_output
-# REGENDATA ["-o",".travis.yml","--ghc-head","--irc-channel=irc.freenode.org#haskell-lens","--no-no-tests-no-bench","--no-unconstrained","cabal.project"]
+# REGENDATA ["-o",".travis.yml","--config=cabal.haskell-ci","cabal.project"]
# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/semigroups-0.18.5/CHANGELOG.markdown new/semigroups-0.19/CHANGELOG.markdown
--- old/semigroups-0.18.5/CHANGELOG.markdown 2018-07-03 00:09:07.000000000 +0200
+++ new/semigroups-0.19/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200
@@ -1,3 +1,17 @@
+0.19 [2019.05.10]
+-----------------
+* The `(<>)` method of the backported `Semigroup` class no longer has a default
+ implementation in terms of `mappend`. This mirrors the `Data.Semigroup` API
+ that was introduced in `base-4.9`. This is a breaking change for any
+ `Semigroup` instances that are defined in tandem with versions of `base`
+ older than 4.9.
+* Make the backported `Hashable Arg` instance reflect its respective variants
+ in the `hashable` package. In `hashable-1.3`, the `Hashable Arg` instance
+ only hashes the first argument, lest equal values have different hashes.
+* Backport the `Lift (NonEmpty a)` instance introduced in
+ `template-haskell-2.15.0.0`.
+* `Data.List.NonEmpty` is now unconditionally `Trustworthy`.
+
0.18.5 [2018.07.02]
-------------------
* Use a more efficient `sconcat` for the `Semigroup` instances for strict and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/semigroups-0.18.5/semigroups.cabal new/semigroups-0.19/semigroups.cabal
--- old/semigroups-0.18.5/semigroups.cabal 2018-07-03 00:09:07.000000000 +0200
+++ new/semigroups-0.19/semigroups.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
name: semigroups
category: Algebra, Data, Data Structures, Math
-version: 0.18.5
+version: 0.19
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -23,8 +23,9 @@
, GHC == 7.10.3
, GHC == 8.0.2
, GHC == 8.2.2
- , GHC == 8.4.3
- , GHC == 8.6.1
+ , GHC == 8.4.4
+ , GHC == 8.6.5
+ , GHC == 8.8.1
source-repository head
type: git
@@ -90,6 +91,14 @@
default: True
manual: True
+flag template-haskell
+ description:
+ You can disable the use of the `template-haskell` package using `-f-template-haskell`.
+ .
+ Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
+ default: True
+ manual: True
+
flag text
description:
You can disable the use of the `text` package using `-f-text`.
@@ -163,7 +172,7 @@
build-depends: text >= 0.10 && < 2
if flag(hashable)
- build-depends: hashable >= 1.1 && < 1.3
+ build-depends: hashable >= 1.2.5.0 && < 1.4
if flag(hashable) && flag(unordered-containers)
build-depends: unordered-containers >= 0.2 && < 0.3
@@ -171,3 +180,7 @@
if flag(transformers)
build-depends: transformers >= 0.2 && < 0.6
, transformers-compat >= 0.5 && < 1
+
+ if flag(template-haskell)
+ build-depends: template-haskell >=2.5.0.0 && <2.11
+ other-modules: Paths_semigroups
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/semigroups-0.18.5/src-ghc7/Data/List/NonEmpty.hs new/semigroups-0.19/src-ghc7/Data/List/NonEmpty.hs
--- old/semigroups-0.18.5/src-ghc7/Data/List/NonEmpty.hs 2018-07-03 00:09:07.000000000 +0200
+++ new/semigroups-0.19/src-ghc7/Data/List/NonEmpty.hs 2001-09-09 03:46:40.000000000 +0200
@@ -1,12 +1,7 @@
{-# LANGUAGE CPP #-}
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702
-#if defined(MIN_VERSION_hashable) || __GLASGOW_HASKELL__ == 702 \
- || __GLASGOW_HASKELL__ >= 708
{-# LANGUAGE Trustworthy #-}
-#else
-{-# LANGUAGE Safe #-}
-#endif
#endif
#ifdef __GLASGOW_HASKELL__
@@ -171,6 +166,14 @@
import GHC.Generics
#endif
+#ifdef MIN_VERSION_template_haskell
+import qualified Language.Haskell.TH.Syntax as TH
+#ifndef CURRENT_PACKAGE_KEY
+import Data.Version (showVersion)
+import Paths_semigroups (version)
+#endif
+#endif
+
infixr 5 :|, <|
data NonEmpty a = a :| [a] deriving
@@ -188,11 +191,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (NonEmpty a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (a :| as) = p `hashWithSalt` a `hashWithSalt` as
-#else
- hash (a :| as) = hash a `combine` hash as
-#endif
#endif
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708
@@ -346,6 +345,24 @@
toList = toList
#endif
+#ifdef MIN_VERSION_template_haskell
+-- | @since 0.19
+instance TH.Lift a => TH.Lift (NonEmpty a) where
+ lift (x :| xs) = do
+ x' <- TH.lift x
+ xs' <- TH.lift xs
+ return $ TH.InfixE (Just x') (TH.ConE neConsName) (Just xs')
+ where
+ neConsName = TH.mkNameG_d semigroupsPackageKey "Data.List.NonEmpty" ":|"
+
+semigroupsPackageKey :: String
+#ifdef CURRENT_PACKAGE_KEY
+semigroupsPackageKey = CURRENT_PACKAGE_KEY
+#else
+semigroupsPackageKey = "semigroups-" ++ showVersion version
+#endif
+#endif
+
-- | Extract the first element of the stream.
head :: NonEmpty a -> a
head ~(a :| _) = a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/semigroups-0.18.5/src-ghc7/Data/Semigroup.hs new/semigroups-0.19/src-ghc7/Data/Semigroup.hs
--- old/semigroups-0.18.5/src-ghc7/Data/Semigroup.hs 2018-07-03 00:09:07.000000000 +0200
+++ new/semigroups-0.19/src-ghc7/Data/Semigroup.hs 2001-09-09 03:46:40.000000000 +0200
@@ -6,14 +6,7 @@
#endif
#if __GLASGOW_HASKELL__ >= 702
-#define LANGUAGE_DefaultSignatures
-{-# LANGUAGE DefaultSignatures #-}
-#if (defined(MIN_VERSION_hashable)) || __GLASGOW_HASKELL__ == 702 \
- || __GLASGOW_HASKELL__ >= 708
{-# LANGUAGE Trustworthy #-}
-#else
-{-# LANGUAGE Safe #-}
-#endif
#endif
#if __GLASGOW_HASKELL__ >= 702
@@ -213,10 +206,6 @@
-- ('<>') = 'mappend'
-- @
(<>) :: a -> a -> a
-#ifdef LANGUAGE_DefaultSignatures
- default (<>) :: Monoid a => a -> a -> a
- (<>) = mappend
-#endif
-- | Reduce a non-empty list with @\<\>@
--
@@ -481,11 +470,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (Min a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (Min a) = hashWithSalt p a
-#else
- hash (Min a) = hash a
-#endif
#endif
instance Ord a => Semigroup (Min a) where
@@ -588,11 +573,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (Max a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (Max a) = hashWithSalt p a
-#else
- hash (Max a) = hash a
-#endif
#endif
instance Ord a => Semigroup (Max a) where
@@ -711,11 +692,14 @@
#endif
#ifdef MIN_VERSION_hashable
+#if MIN_VERSION_hashable(1,3,0)
+-- | Instance like defined in @hashable-1.3@
+instance Hashable a => Hashable (Arg a b) where
+ hashWithSalt p (Arg a _b) = hashWithSalt p a
+#else
+-- | Instance like defined in @hashable-1.2@
instance (Hashable a, Hashable b) => Hashable (Arg a b) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (Arg a b) = hashWithSalt p a `hashWithSalt` b
-#else
- hash (Arg a b) = hashWithSalt (hash a) b
#endif
#endif
@@ -776,11 +760,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (First a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (First a) = hashWithSalt p a
-#else
- hash (First a) = hash a
-#endif
#endif
instance Semigroup (First a) where
@@ -867,11 +847,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (Last a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (Last a) = hashWithSalt p a
-#else
- hash (Last a) = hash a
-#endif
#endif
instance Semigroup (Last a) where
@@ -996,11 +972,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (WrappedMonoid a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (WrapMonoid a) = hashWithSalt p a
-#else
- hash (WrapMonoid a) = hash a
-#endif
#endif
instance Monoid m => Semigroup (WrappedMonoid m) where
@@ -1089,11 +1061,7 @@
#ifdef MIN_VERSION_hashable
instance Hashable a => Hashable (Option a) where
-#if MIN_VERSION_hashable(1,2,0)
hashWithSalt p (Option a) = hashWithSalt p a
-#else
- hash (Option a) = hash a
-#endif
#endif
instance Functor Option where
1
0