Node 4 (LTS) and Node 6 (LTS) compatibility

On a quest to parse big XML quicker, I stumbled across this interesting package, and was quick to try to benchmark it. But it wouldn't build on Node 4.
After inspecting previous issues, I discovered this module only supports node 0.11 by using a compatibility layer on top of 0.8, unless I'm mistaken.
If this thing is really faster than any parser out there, it's quite a gem. Any chance to get this building on Node 4 LTS (and Node 6 soon following as LTS)?
$ npm install --save nkit4nodejs
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No README data
\
><EMAIL_ADDRESS>install /var/www/sites/interseismic/tests/xml4/node_modules/nkit4nodejs
> node-gyp rebuild

make: Entering directory '/var/www/sites/interseismic/tests/xml4/node_modules/nkit4nodejs/build'
  CC(target) Release/obj.target/expat/deps/expat-2.1.0/lib/xmlparse.o
  CC(target) Release/obj.target/expat/deps/expat-2.1.0/lib/xmltok.o
  CC(target) Release/obj.target/expat/deps/expat-2.1.0/lib/xmlrole.o
  AR(target) Release/obj.target/deps/libexpat.a
  COPY Release/libexpat.a
  CXX(target) Release/obj.target/nkit/deps/nkit/src/constants.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/tools.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic_json.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic_path.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic_table.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic_table_index_comparators.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/dynamic/dynamic_xml.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/logger/rotate_logger.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/encoding/transcode.o
  CXX(target) Release/obj.target/nkit/deps/nkit/src/xml/xml2var.o
  CXX(target) Release/obj.target/nkit/deps/nkit/3rd/netbsd/strptime.o
  AR(target) Release/obj.target/deps/libnkit.a
  COPY Release/libnkit.a
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_lex.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_encode.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_parser.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_version.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_alloc.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_buf.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_tree.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl_gen.o
  CC(target) Release/obj.target/yajl/deps/yajl-2.0.5/src/yajl.o
  AR(target) Release/obj.target/deps/libyajl.a
  COPY Release/libyajl.a
  CXX(target) Release/obj.target/nkit4nodejs/src/nkit4nodejs_module.o
In file included from ../src/nkit4nodejs_module.cpp:17:0:
../deps/nan/nan.h: In function ‘v8::Local<v8::Signature> NanNew(v8::Handle<v8::FunctionTemplate>, int, v8::Handle<v8::FunctionTemplate>*)’:
../deps/nan/nan.h:189:78: error: no matching function for call to ‘v8::Signature::New(v8::Isolate*, v8::Handle<v8::FunctionTemplate>&, int&, v8::Handle<v8::FunctionTemplate>*&)’
     return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
                                                                              ^
In file included from /home/redsandro/.node-gyp/4.2.6/include/node/node.h:42:0,
                 from ../deps/nan/nan.h:23,
                 from ../src/nkit4nodejs_module.cpp:17:
/home/redsandro/.node-gyp/4.2.6/include/node/v8.h:4675:27: note: candidate: static v8::Local<v8::Signature> v8::Signature::New(v8::Isolate*, v8::Local<v8::FunctionTemplate>)
   static Local<Signature> New(
                           ^
/home/redsandro/.node-gyp/4.2.6/include/node/v8.h:4675:27: note:   candidate expects 2 arguments, 4 provided
In file included from ../src/nkit4nodejs_module.cpp:17:0:
../deps/nan/nan.h: At global scope:
../deps/nan/nan.h:271:3: error: redefinition of ‘v8::Local<T> NanNew(P) [with T = v8::StringObject; P = v8::Local<v8::String>]’
   NanNew<v8::StringObject, v8::Handle<v8::String> >(
   ^
../deps/nan/nan.h:264:3: note: ‘v8::Local<T> NanNew(P) [with T = v8::StringObject; P = v8::Local<v8::String>]’ previously declared here
   NanNew<v8::StringObject, v8::Local<v8::String> >(
   ^
../deps/nan/nan.h:289:36: error: redefinition of ‘template<class T> v8::Local<v8::RegExp> NanNew(v8::Local<v8::String>, v8::RegExp::Flags)’
   NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                    ^
../deps/nan/nan.h:283:36: note: ‘template<class T> v8::Local<v8::RegExp> NanNew(v8::Handle<v8::String>, v8::RegExp::Flags)’ previously declared here
   NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                    ^
../deps/nan/nan.h:301:36: error: redefinition of ‘template<class T, class P> v8::Local<v8::RegExp> NanNew(v8::Local<v8::String>, v8::RegExp::Flags)’
   NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                    ^
../deps/nan/nan.h:295:36: note: ‘template<class T, class P> v8::Local<v8::RegExp> NanNew(v8::Handle<v8::String>, v8::RegExp::Flags)’ previously declared here
   NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                    ^
../deps/nan/nan.h:481:19: error: ‘NanNew’ declared as an ‘inline’ variable
       v8::String::ExternalAsciiStringResource *resource) {
                   ^
../deps/nan/nan.h:481:19: warning: ‘always_inline’ attribute ignored [-Wattributes]
../deps/nan/nan.h:481:19: error: ‘v8::Local<v8::String> NanNew’ redeclared as different kind of symbol
../deps/nan/nan.h:475:36: note: previous declaration ‘v8::Local<v8::String> NanNew(v8::String::ExternalStringResource*)’
   NAN_INLINE v8::Local<v8::String> NanNew(
                                    ^
../deps/nan/nan.h:481:7: error: ‘ExternalAsciiStringResource’ is not a member of ‘v8::String’
       v8::String::ExternalAsciiStringResource *resource) {
       ^
../deps/nan/nan.h:481:48: error: ‘resource’ was not declared in this scope
       v8::String::ExternalAsciiStringResource *resource) {
                                                ^
../deps/nan/nan.h:495:27: error: redefinition of ‘template<class T> v8::Local<T> _NanEscapeScopeHelper(v8::Local<T>)’
   NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                           ^
../deps/nan/nan.h:490:27: note: ‘template<class T> v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T>)’ previously declared here
   NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T> val) {
                           ^
../deps/nan/nan.h:755:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../deps/nan/nan.h:755:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../deps/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../deps/nan/nan.h:759:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../deps/nan/nan.h:759:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../deps/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../deps/nan/nan.h:766:67: error: no matching function for call to ‘New(v8::Isolate*, const char*&, uint32_t&)’
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
In file included from ../deps/nan/nan.h:24:0,
                 from ../src/nkit4nodejs_module.cpp:17:
/home/redsandro/.node-gyp/4.2.6/include/node/node_buffer.h:31:40: note: candidate: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/redsandro/.node-gyp/4.2.6/include/node/node_buffer.h:31:40: note:   conversion of argument 3 would be ill-formed:
In file included from ../src/nkit4nodejs_module.cpp:17:0:
../deps/nan/nan.h:766:67: error: invalid conversion from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ [-fpermissive]
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
In file included from ../deps/nan/nan.h:24:0,
                 from ../src/nkit4nodejs_module.cpp:17:
/home/redsandro/.node-gyp/4.2.6/include/node/node_buffer.h:43:40: note: candidate: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/home/redsandro/.node-gyp/4.2.6/include/node/node_buffer.h:43:40: note:   conversion of argument 2 would be ill-formed:
In file included from ../src/nkit4nodejs_module.cpp:17:0:
../deps/nan/nan.h:766:67: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../deps/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../deps/nan/nan.h:770:29: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                             ^
../deps/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../deps/nan/nan.h:777:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
../deps/nan/nan.h: In function ‘bool _NanGetExternalParts(v8::Handle<v8::Value>, const char**, size_t*)’:
../deps/nan/nan.h:2103:12: error: ‘class v8::String’ has no member named ‘IsExternalAscii’
   if (str->IsExternalAscii()) {
            ^
../deps/nan/nan.h:2104:23: error: ‘ExternalAsciiStringResource’ in ‘class v8::String’ does not name a type
     const v8::String::ExternalAsciiStringResource* ext;
                       ^
../deps/nan/nan.h:2105:5: error: ‘ext’ was not declared in this scope
     ext = str->GetExternalAsciiStringResource();
     ^
../deps/nan/nan.h:2105:16: error: ‘class v8::String’ has no member named ‘GetExternalAsciiStringResource’
     ext = str->GetExternalAsciiStringResource();
                ^
nkit4nodejs.target.mk:106: recipe for target 'Release/obj.target/nkit4nodejs/src/nkit4nodejs_module.o' failed
make: *** [Release/obj.target/nkit4nodejs/src/nkit4nodejs_module.o] Error 1
make: Leaving directory '/var/www/sites/interseismic/tests/xml4/node_modules/nkit4nodejs/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/redsandro/.nvm/versions/node/v4.2.6/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.4.0-53-generic
gyp ERR! command "/home/redsandro/.nvm/versions/node/v4.2.6/bin/node" "/home/redsandro/.nvm/versions/node/v4.2.6/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/www/sites/interseismic/tests/xml4/node_modules/nkit4nodejs
gyp ERR! node -v v4.2.6
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 4.4.0-53-generic
npm ERR! argv "/home/redsandro/.nvm/versions/node/v4.2.6/bin/node" "/home/redsandro/.nvm/versions/node/v4.2.6/bin/npm" "install" "--save" "nkit4nodejs"
npm ERR! node v4.2.6
npm ERR! npm  v2.14.12
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the nkit4nodejs package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls nkit4nodejs
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /var/www/sites/interseismic/tests/xml4/npm-debug.log

Hi, Sander!
I'll try to fix it soon, but I can not tell you exactly when, because I have not enough free time now.

Ok, I'm looking forward to checking it out when you find the time to fix
the build. :)
On Mon, Jan 30, 2017, 10:54 AM Boris Darchiev<EMAIL_ADDRESS>wrote:

Hi, Sander!
I'll try to fix it soon, but I can not tell you exactly when, because I
have not enough free time now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/eye3/nkit4nodejs/issues/3#issuecomment-276020438, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABn5MYV5dt4cJ1V9Pv-z6O3Ir7ofzAXSks5rXbNSgaJpZM4Lv39Z
.

Hi, Sander!
I fixed this issue. Could you please take last version 2.4.3 and check it on your platform?
npm install<EMAIL_ADDRESS>

Hi @eye3, thanks! :+1:
This is pretty fast! I will verify output at a later time and see if it misses anything.
PS - It's not fair to compare to one of the slow pure-js solutions.
Personally I use xml2js-expat for translation. And nkit is 1.5 times faster!
Rapidx2j is even faster. I've been attempting to get rapidx2j to be an inline replacement, but it still doesn't support parsing the way I like.
However, in my preliminary testing, you place second. I can't believe these fast(er) parsers are not more pupular.
xml parser olympics
Random big xml file

Rank
Module
Time

1.
rapidx2j
210 ms

2.
nkit
290 ms

3.
xml2js-expat
440 ms


Fest/inect-list-countries

Hi! First of all thank you for your time creating this package!! This is awesome!
I created this PR to customize the list of country codes because there are some countries like Argentina that has a different codes for mobile and phones.
Thank you!

@alfredo-handcash thanks a lot and sorry for the delay :)


error while updating user

rails_admin user editing :
ActiveRecord::RecordNotUnique in RailsAdmin::MainController#edit
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "users_pkey" DETAIL: Key (id)=(1) already exists. : UPDATE "users" SET "current_sign_in_at" = $1, "first_name" = $2, "id" = $3, "is_admin" = $4, "last_sign_in_at" = $5, "unconfirmed_email" = $6, "updated_at" = $7 WHERE "users"."id" = 3

Extracted source (around line #74):
72
73
74
75
76
77

    old_time_zone = Time.zone
    Time.zone = current_user.time_zone if user_signed_in?
    yield
  ensure
    Time.zone = old_time_zone
  end

Rails.root: /home/admin/ror/aurum

Application Trace | Framework Trace | Full Trace
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/postgresql_adapter.rb:834:in `get_last_result'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/postgresql_adapter.rb:834:in `block in exec_cache'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract_adapter.rb:367:in `log'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/postgresql_adapter.rb:831:in `exec_cache'
vendor/bundle/ruby/2.1.0/gems/schema_plus-1.6.0/lib/schema_plus/active_record/connection_adapters/postgresql_adapter.rb:237:in `exec_cache_with_schema_plus'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/postgresql/database_statements.rb:155:in `exec_delete'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:101:in `update'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `update'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/relation.rb:84:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/persistence.rb:494:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/locking/optimistic.rb:70:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/attribute_methods/dirty.rb:83:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/callbacks.rb:310:in `block in _update_record'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `run_callbacks'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/callbacks.rb:310:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/timestamp.rb:70:in `_update_record'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/persistence.rb:483:in `create_or_update'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/callbacks.rb:302:in `block in create_or_update'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:215:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `run_callbacks'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/callbacks.rb:302:in `create_or_update'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/persistence.rb:103:in `save'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/validations.rb:51:in `save'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/attribute_methods/dirty.rb:21:in `save'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:268:in `block (2 levels) in save'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:329:in `block in with_transaction_returning_status'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `block in transaction'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:209:in `within_new_transaction'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `transaction'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:208:in `transaction'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:326:in `with_transaction_returning_status'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:268:in `block in save'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:283:in `rollback_active_record_state!'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:267:in `save'
vendor/bundle/ruby/2.1.0/gems/rails_admin-0.6.5/lib/rails_admin/adapters/active_record/abstract_object.rb:23:in `save'
vendor/bundle/ruby/2.1.0/gems/rails_admin-0.6.5/lib/rails_admin/config/actions/edit.rb:33:in `block (2 levels) in <class:Edit>'
(eval):8:in `instance_eval'
(eval):8:in `edit'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/abstract_controller/base.rb:189:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/rendering.rb:10:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:299:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:299:in `block (2 levels) in halting'
app/controllers/application_controller.rb:74:in `set_time_zone'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:424:in `block in make_lambda'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:298:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:298:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `run_callbacks'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/rescue.rb:29:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in `block in instrument'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in `instrument'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/abstract_controller/base.rb:136:in `process'
vendor/bundle/ruby/2.1.0/gems/actionview-4.1.6/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal.rb:196:in `dispatch'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_controller/metal.rb:232:in `block in action'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:82:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:50:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:73:in `block in call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `each'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:678:in `call'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/engine.rb:514:in `call'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/railtie.rb:194:in `public_send'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/railtie.rb:194:in `method_missing'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:73:in `block in call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `each'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:678:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-pjax-0.8.0/lib/rack/pjax.rb:12:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
vendor/bundle/ruby/2.1.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!'
vendor/bundle/ruby/2.1.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/omniauth-1.2.2/lib/omniauth/builder.rb:59:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/rack/error_collector.rb:50:in `traced_call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/rack/agent_hooks.rb:26:in `traced_call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/rack/browser_monitoring.rb:23:in `traced_call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
vendor/bundle/ruby/2.1.0/gems/warden-1.2.3/lib/warden/manager.rb:35:in `block in call'
vendor/bundle/ruby/2.1.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in `catch'
vendor/bundle/ruby/2.1.0/gems/warden-1.2.3/lib/warden/manager.rb:34:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/etag.rb:23:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/conditionalget.rb:35:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/remotipart-1.2.1/lib/remotipart/middleware.rb:27:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/flash.rb:254:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:225:in `context'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:220:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/cookies.rb:560:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/query_cache.rb:36:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/migration.rb:380:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:82:in `run_callbacks'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/reloader.rb:73:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/airbrake-4.1.0/lib/airbrake/rails/middleware.rb:13:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/rack/logger.rb:38:in `call_app'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/rack/logger.rb:22:in `call'
vendor/bundle/ruby/2.1.0/gems/quiet_assets-1.0.3/lib/quiet_assets.rb:23:in `call_with_quiet_assets'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/request_id.rb:21:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/activesupport-4.1.6/lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/static.rb:64:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/airbrake-4.1.0/lib/airbrake/user_informer.rb:16:in `_call'
vendor/bundle/ruby/2.1.0/gems/airbrake-4.1.0/lib/airbrake/user_informer.rb:12:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/engine.rb:514:in `call'
vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/application.rb:144:in `call'
vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-<IP_ADDRESS>/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call'
vendor/bundle/ruby/2.1.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
/home/admin/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/home/admin/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/home/admin/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
Request

Parameters:

{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"F7qy0iFONT97Nq+X3EEVYuXKBInkfyi+WEtFTQtozOI=",
 "user"=>{"first_name"=>"aditya",
 "last_name"=>"9892364777",
 "remove_image_url"=>"0",
 "image_url_cache"=>"",
<EMAIL_ADDRESS> "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "reset_password_sent_at"=>"[FILTERED]",
 "remember_created_at"=>"",
 "sign_in_count"=>"1",
 "current_sign_in_at"=>"November 01,
 2014 15:33",
 "last_sign_in_at"=>"November 01,
 2014 15:33",
 "current_sign_in_ip"=>"<IP_ADDRESS>",
 "last_sign_in_ip"=>"<IP_ADDRESS>",
 "confirmed_at"=>"",
 "confirmation_sent_at"=>"",
 "unconfirmed_email"=>"",
 "failed_attempts"=>"0",
 "locked_at"=>"",
 "is_admin"=>"0",
 "time_zone"=>"Mumbai",
 "username"=>"9892364777",
 "role_ids"=>["",
 ""]},
 "return_to"=>"http://localhost:3000/admin/user",
 "_save"=>"",
 "model_name"=>"user",
 "id"=>"3"}

any updates with this error?
Users need to login to console to reset their password.

I think somewhere, nil.id is being called, which returns 4. I can update the user with the id 4, but I get errors for any other users.
Success for User #4
Started PUT "/admin/user/4/edit" for [FILTERED] at 2015-01-22 17:25:30 +0000
Processing by RailsAdmin::MainController#edit as HTML
  Parameters: {
    "utf8"=>"✓",
    "authenticity_token"=>"[FILTERED]",
    "user"=>{"first_name"=>"[FILTERED]", "last_name"=>"[FILTERED]", "image_url"=>"", "email"=>"[FILTERED]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "reset_password_sent_at"=>"[FILTERED]", "remember_created_at"=>"January 22, 2015 16:49", "sign_in_count"=>"2", "current_sign_in_at"=>"January 22, 2015 16:49", "last_sign_in_at"=>"January 22, 2015 16:17", "current_sign_in_ip"=>"[FILTERED]", "last_sign_in_ip"=>"[FILTERED]", "confirmation_token"=>"", "confirmed_at"=>"", "confirmation_sent_at"=>"", "unconfirmed_email"=>"", "failed_attempts"=>"0", "unlock_token"=>"", "locked_at"=>"", "is_admin"=>"1", "authentication_ids"=>["", ""]},
    "return_to"=>"[FILTERED]",
    "_save"=>"",
    "model_name"=>"user",
    "id"=>"4"}
Redirected to [FILTERED]
Completed 302 Found in 40ms (ActiveRecord: 7.4ms)

Notice the "id"=>"4"
Failure for User #6
Started PUT "/admin/user/6/edit" for [FILTERED] at 2015-01-22 17:39:19 +0000
Processing by RailsAdmin::MainController#edit as HTML
  Parameters: {
    "utf8"=>"✓",
    "authenticity_token"=>"[FILTERED]",
    "user"=>{"first_name"=>"[FILTERED]", "last_name"=>"", "image_url"=>"", "email"=>"[FILTERED]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "reset_password_sent_at"=>"[FILTERED]", "remember_created_at"=>"", "sign_in_count"=>"1", "current_sign_in_at"=>"January 22, 2015 16:49", "last_sign_in_at"=>"January 22, 2015 16:49", "current_sign_in_ip"=>"[FILTERED]", "last_sign_in_ip"=>"[FILTERED]", "confirmation_token"=>"", "confirmed_at"=>"", "confirmation_sent_at"=>"", "unconfirmed_email"=>"", "failed_attempts"=>"0", "unlock_token"=>"", "locked_at"=>"", "is_admin"=>"1", "authentication_ids"=>["", ""]},
    "return_to"=>"[FILTERED]/admin/user/6", "_save"=>"",
    "model_name"=>"user",
    "id"=>"6"}
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "users_pkey"
DETAIL:  Key (id)=(4) already exists.
: UPDATE "users" SET "first_name" = $1, "last_name" = $2, "image_url" = $3, "confirmation_token" = $4, "unconfirmed_email" = $5, "unlock_token" = $6, "current_sign_in_at" = $7, "last_sign_in_at" = $8, "id" = $9, "updated_at" = $10 WHERE "users"."id" = $11
Completed 500 Internal Server Error in 1033ms

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "users_pkey"
DETAIL:  Key (id)=(4) already exists.
: UPDATE "users" SET "first_name" = $1, "last_name" = $2, "image_url" = $3, "confirmation_token" = $4, "unconfirmed_email" = $5, "unlock_token" = $6, "current_sign_in_at" = $7, "last_sign_in_at" = $8, "id" = $9, "updated_at" = $10 WHERE "users"."id" = $11):

Any update on this issue? It seems problem is with cancan(can) integration. Here is the work around in the mean time ...

remove cancan as authorization mechanism from rails admin config.
Use following code

config.authorize_with do
      redirect_to main_app.root_path unless warden.user.is_admin?
end

+1
We're seeing a similar issue (version 0.8.1).
When changing password on one user rails admin changes the password of another user (the current user logged in).

@lazebny
Hi, thanks for getting back on this issue.
We have since moved to version 1.1.1.
To re-test this problem I just created a new Admin user (admin role), logged in with it and tried to update the password on another admin user.
It worked as expected with no adverse effects on the current user.
So I think the observed bug is solved, at least for my part.
Thanks!

Still experiencing the problem with rails_admin-1.2.0:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "users_pkey" DETAIL: Key (id)=(1) already exists. : UPDATE "users" SET "id" = $1, "role" = $2, "updated_at" = $3 WHERE "users"."id" = $4

activerecord (5.1.2) lib/active_record/connection_adapters/postgresql_adapter.rb:620:in `async_exec'
activerecord (5.1.2) lib/active_record/connection_adapters/postgresql_adapter.rb:620:in `block (2 levels) in exec_no_cache'
activesupport (5.1.2) lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
activesupport (5.1.2) lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
activesupport (5.1.2) lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
activerecord (5.1.2) lib/active_record/connection_adapters/postgresql_adapter.rb:619:in `block in exec_no_cache'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/Users/farmisen/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
activesupport (5.1.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
activerecord (5.1.2) lib/active_record/connection_adapters/postgresql_adapter.rb:618:in `exec_no_cache'
activerecord (5.1.2) lib/active_record/connection_adapters/postgresql_adapter.rb:607:in `execute_and_clear'
activerecord (5.1.2) lib/active_record/connection_adapters/postgresql/database_statements.rb:92:in `exec_delete'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/database_statements.rb:130:in `update'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/query_cache.rb:17:in `update'
activerecord (5.1.2) lib/active_record/relation.rb:85:in `_update_record'
activerecord (5.1.2) lib/active_record/persistence.rb:575:in `_update_record'
activerecord (5.1.2) lib/active_record/locking/optimistic.rb:80:in `_update_record'
activerecord (5.1.2) lib/active_record/attribute_methods/dirty.rb:292:in `_update_record'
activerecord (5.1.2) lib/active_record/callbacks.rb:344:in `block in _update_record'
activesupport (5.1.2) lib/active_support/callbacks.rb:131:in `run_callbacks'
airbrake (6.2.0) lib/airbrake/rails/active_record.rb:22:in `run_callbacks'
activesupport (5.1.2) lib/active_support/callbacks.rb:825:in `_run_update_callbacks'
activerecord (5.1.2) lib/active_record/callbacks.rb:344:in `_update_record'
activerecord (5.1.2) lib/active_record/timestamp.rb:107:in `_update_record'
activerecord (5.1.2) lib/active_record/persistence.rb:563:in `create_or_update'
activerecord (5.1.2) lib/active_record/callbacks.rb:336:in `block in create_or_update'
activesupport (5.1.2) lib/active_support/callbacks.rb:97:in `run_callbacks'
airbrake (6.2.0) lib/airbrake/rails/active_record.rb:22:in `run_callbacks'
activesupport (5.1.2) lib/active_support/callbacks.rb:825:in `_run_save_callbacks'
activerecord (5.1.2) lib/active_record/callbacks.rb:336:in `create_or_update'
activerecord (5.1.2) lib/active_record/persistence.rb:129:in `save'
activerecord (5.1.2) lib/active_record/validations.rb:44:in `save'
activerecord (5.1.2) lib/active_record/attribute_methods/dirty.rb:35:in `save'
activerecord (5.1.2) lib/active_record/transactions.rb:308:in `block (2 levels) in save'
activerecord (5.1.2) lib/active_record/transactions.rb:384:in `block in with_transaction_returning_status'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/database_statements.rb:225:in `block in transaction'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/transaction.rb:194:in `block in within_new_transaction'
/Users/farmisen/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/transaction.rb:191:in `within_new_transaction'
activerecord (5.1.2) lib/active_record/connection_adapters/abstract/database_statements.rb:225:in `transaction'
activerecord (5.1.2) lib/active_record/transactions.rb:210:in `transaction'
activerecord (5.1.2) lib/active_record/transactions.rb:381:in `with_transaction_returning_status'
activerecord (5.1.2) lib/active_record/transactions.rb:308:in `block in save'
activerecord (5.1.2) lib/active_record/transactions.rb:323:in `rollback_active_record_state!'
activerecord (5.1.2) lib/active_record/transactions.rb:307:in `save'
activerecord (5.1.2) lib/active_record/suppressor.rb:42:in `save'
newrelic_rpm (<IP_ADDRESS>5) lib/new_relic/agent/instrumentation/active_record_5.rb:15:in `block in save'
newrelic_rpm (<IP_ADDRESS>5) lib/new_relic/agent/transaction.rb:859:in `with_database_metric_name'
newrelic_rpm (<IP_ADDRESS>5) lib/new_relic/agent.rb:587:in `with_database_metric_name'
newrelic_rpm (<IP_ADDRESS>5) lib/new_relic/agent/instrumentation/active_record_5.rb:14:in `save'
rails_admin (1.2.0) lib/rails_admin/adapters/active_record/abstract_object.rb:23:in `save'
rails_admin (1.2.0) lib/rails_admin/config/actions/edit.rb:35:in `block (2 levels) in <class:Edit>'
rails_admin (1.2.0) app/controllers/rails_admin/main_controller.rb:25:in `instance_eval'
rails_admin (1.2.0) app/controllers/rails_admin/main_controller.rb:25:in `edit'

Parameters:
{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"dU7289xh182Yya8Ernnrfcb6XoexYSkgUjCSJSTdjBbP7oOpyoehrSgBcDRxTl0IJa8Nvih3Xgkj1rbuOox1VA==",
<EMAIL_ADDRESS>"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "role"=>"publisher"},
 "return_to"=>"http://localhost:3000/cms/user",
 "_save"=>"",
 "model_name"=>"user",
 "id"=>"2"}

@farmisen The only way I got it to work was to do what pkmishra did with cancan (above) and then creating the table without any indexes in the create_users migrate folder.
So it would just be commenting out like such
    #add_index :users, :reset_password_token, unique: true
    #add_index :users, :confirmation_token, unique: true
    #add_index :users, :unlock_token, unique: true


Proof of concept for variable based subsites

Implemented system to allow settings files that prevent the need for template modification on ward subsites, meaning merging future changes across the network will be simple.
Essentially there are now only 2 files that need editing for a ward subsite:
_includes/ward-settings.njk
_includes/ward-resources.njk
If others see this as the way forward I will implement a more substantial system to allow further ward modifications to be managed in this way.

Nice!


chore(CPlusPlus): added implementation of segment tree

PR Checklist:

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is on refer on the language README.md file
[x] My addition does not have a spelling problem
[x] My submission has a proper and user-friendly description of the algorithm
[x] My submission has the time complexity of the algorithm
[x] My submission has sample input-output of the program (NOT FOR PYTHON)

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[x] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR
Clean and Clear implementation of Segment Tree Data Structure.

@UG-SEP kindly review my PR and do let me know if any further changes are required.

@mohitchakraverty kindly review this PR.

Hi @motasimmakki,
Before the reviewer check the pull request, could you please check the recommendation of codespell action?

Thanks for mentioning @ming-tsai, now it seems fixed.


HIVE-27970: Support Hive table partitioning to multiple storage system

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

Is the change a dependency upgrade?

How was this patch tested?

@aihuaxu
@sunchao
@zhangbutao
Please give a review.

Hi, i am not sure if we should continue to make patch for Branch 3.1.
Hive branch code does not have this issue, I just attached a test in https://issues.apache.org/jira/browse/HIVE-27970. Please check it.

http://ci.hive.apache.org/blue/organizations/jenkins/hive-precommit/detail/PR-4993/1/pipeline serveral failed tests seems to be related this change.  You can try to explore the reason.

http://ci.hive.apache.org/blue/organizations/jenkins/hive-precommit/detail/PR-4993/1/pipeline serveral failed tests seems to be related this change. You can try to explore the reason.

How to open the error log? thanks,

http://ci.hive.apache.org/blue/organizations/jenkins/hive-precommit/detail/PR-4993/1/tests  Check this url.


Support horizontal scrolling via Shift key on non-Apple platforms

Continuing track of what was left in https://github.com/ppy/osu-framework/pull/5179#issuecomment-1128404268 + https://github.com/ppy/osu-framework/pull/5179#issuecomment-1128739985.

So far, the consensus is generally that we want to apply this to all scroll input game-wide, not just in ScrollContainers.
To make this happen, we will somehow need to obtain the shift-pressed state in SDL2DesktopWindow around this call:
https://github.com/ppy/osu-framework/blob/0b4522ebf8f47bdd9e19053e56ad08e94ac8912e/osu.Framework/Platform/SDL2DesktopWindow.cs#L1548
Of note, macOS applies this at an OS level, so we would need to update the pass-through logic to unapply this, or factor it in as a consideration (so we don't apply twice). A more sane option may be to remove the pass-through logic altogether, and apply directly at https://github.com/ppy/osu-framework/blob/dde9eb08ede4aa94d21590f92b7c60f85cac3947/osu.Framework/Platform/MacOS/MacOSWindow.cs#L47-L48

Putting this logic in MouseScrollRelativeInput.Apply makes more sense to me, as we have access to the input state. Having it here means that it'll work for Android as well.
I was thinking something like this, only flipping if there isn't already a horizontal scroll:
if (Delta.X == 0 && state.Keyboard.ShiftPressed)
    Delta = Delta.Yx // or new Vector2(Delta.Y, 0) to be more explicit.

Good point, that's quite a nice location to have it.

I was thinking something like this, only flipping if there isn't already a horizontal scroll:

So far I've heard mixed opinions on how this should work. Best to check everyone agrees with this before deciding on this implementation, but it is by far the simplest to implement.

Is there a reason for flipping only if there isn't horizontal scroll? What's the macOS functionality in cases like this (e.g. when zoomed in a browser and scrolling in 2D)?

Is there a reason for flipping only if there isn't horizontal scroll? What's the macOS functionality in cases like this (e.g. when zoomed in a browser and scrolling in 2D)?

Just tested and it behaves as proposed on macOS. Horizontal will not become vertical when holding shift.

Interesting. Fine to go with the proposal in that case. As mentioned in Discord, it should probably not apply to IsPrecise = true inputs either.


Added foundation-style, swift-compatible error report for assimp im…

…port

Note to self: Test fails as it invokes old import method without error object.

Codecov Report

Merging #86 into master will decrease coverage by 0.44%.
The diff coverage is 21.42%.

@@            Coverage Diff             @@
##           master      #86      +/-   ##
==========================================
- Coverage   69.39%   68.95%   -0.45%
==========================================
  Files          16       16
  Lines        1490     1501      +11
  Branches      142      143       +1
==========================================
+ Hits         1034     1035       +1
- Misses        388      398      +10
  Partials       68       68

Impacted Files
Coverage Δ

AssimpKit/Code/Model/Tests/AssimpImporterTests.m
53.62% <ø> (ø)
:arrow_up:

AssimpKit/Code/Model/AssimpImporter.m
86.52% <0%> (-0.5%)
:arrow_down:

AssimpKit/Code/Model/SCNScene+AssimpImport.m
53.84% <30%> (-14.58%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a603ac7...cf91c46. Read the comment docs.

[x] Need to retain the old method without error object, and mark it as deprecated
[x] Need to add tests and ensure error object is populated for invalid files

Code coverage issue because deprecated methods aren't using in tests and i'm not sure they should.

@anton-plebanovich

Code coverage issue because deprecated methods aren't using in tests and i'm not sure they should.

Makes sense.
Merging. Thanks a ton!


feat: add use_placeholder for easier configuration

We can achieve a simpler configuration method like:
rm_dataset:
  - class: D4RLOfflineDataset
    env: <env>
    batch_size: 64 # [64, 128]
    mode: trajectory
    segment_length: 100
    padding_mode: none
  - class: IPLComparisonOfflineDataset
    env: <env>
    batch_size: 8
    mode: human
  - class: D4RLOfflineDataset
    env: <env>
    batch_size: 512
    mode: transition

We only need to set --env hopper-medium-replay-v2 to switch the environment for all datasets.

lgtm


java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Callback.invoke(java.lang.Object[])' on a null object reference

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=null} to activity {com.mytranspot/com.mytranspot.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.facebook.react.bridge.Callback.invoke(java.lang.Object[])' on a null object reference
Getting this error when BluetoothManager.enableBluetooth() is called. Bluetooth is getting enabled, but app is crashing.
"react": "16.8.6",
"react-native": "^0.63.4",
"react-native-bluetooth-escpos-printer": "0.0.5"

Please help

you fixed it? can you help me?


Description

Description
[Insert description of issue here]
Detailed Information
Is available here

You're running a 1.7 version of PEX on a 1.8 server.


Breaking dependency wayland-window

The library wayland-window was recently updated from 0.4.2, as specified in this library, to 0.4.5. Version 0.4.5 depends on a new release of the wayland-client library version 0.8.0, which as specified by the author has breaking changes. This means that their use of semantic versioning has broken this library.
Due to this, I am unfortunately unable to compile any project that depends on this library.
A very temporary solution to the problem would be to update the version number of wayland-window in the Cargo.toml file from "0.4.2" to "=0.4.2", however the underlying breaking changes in wayland-client would still reside in all later versions of its parents' libraries.

I am running into this problem as well.

The offending version of the library has been yanked for now. I think this issue can be closed.

Ah, thank you very much!


A comparative table of HAL features available per backend

It would be really nice to have an up to date table somewhere at the gfx-hal main page with list of the features that HAL currently provides, filled with their availability per backend, so end user is aware of what to expect.

Outline for completion:

Look through the different backend implementations and look where there are any "TODO"s, unimplemented!()s, etc. and documenting in which functions they exist in
Make a table of these unsupported features on different backends, probably in a markdown file in the info folder of the repo
Link this document from the README

If you have questions or need help feel free to ping me on GitHub, Discord, or our Gitter (https://github.com/gfx-rs/gfx) :)

Greetings, if no one is currently working on this issue, I'd like to start documenting the backends and drafting up the table.


Invalid ga4gh tool registry response

Bug Report
When requesting a list of tools, the verified-source field may be returned with a value of null.  However, the schema specifies that it must be a string.
Expected behaviour
The return value should be a string to match the schema, or the schema needs to be updated so than null is allowed for that field.
Actual behaviour
from bravado.client import SwaggerClient
client = SwaggerClient.from_url("https://dockstore.org:8443/swagger.json",
                                config={'use_models': False, 'validate_responses': True})
print client.GA4GH.toolsGet().result()

$ python tool_reg.py
Traceback (most recent call last):
  File "tool_reg.py", line 6, in <module>
    print client.GA4GH.toolsGet().result()
  File "build/bdist.linux-x86_64/egg/bravado/http_future.py", line 78, in result
  File "build/bdist.linux-x86_64/egg/bravado/http_future.py", line 116, in unmarshal_response
  File "build/bdist.linux-x86_64/egg/bravado_core/response.py", line 109, in unmarshal_response
  File "build/bdist.linux-x86_64/egg/bravado_core/validate.py", line 30, in validate_schema_object
  File "build/bdist.linux-x86_64/egg/bravado_core/validate.py", line 64, in validate_array
  File "/home/peter/work/ga4gh/workflow-service/venv/local/lib/python2.7/site-packages/jsonschema-2.6.0-py2.7.egg/jsonschema/validators.py", line 130, in validate
    raise error
jsonschema.exceptions.ValidationError: None is not of type u'string'

Failed validating u'type' in schema[u'items'][u'properties'][u'versions'][u'items'][u'properties'][u'verified-source']:
    {u'description': u'Source of metadata that can support a verified tool, such as an email or URL',
     u'type': u'string'}

On instance[0][u'versions'][0][u'verified-source']:
    None

Thanks to @tetron


move away from using webview for tabs

WebViews are unstable, and they seem to cause a lot of problems in Electron 12, so they are kinda blocking that update. They were a bad idea. Maybe consider iframes? Or just render everything in the main frame and use workers for all work?

Maybe BrowserView?

Nope, crash still happens with BrowserView 😢


start switching basemap layer from raster tiles to Mapzen Vector Tiles with a Mapzen house style

progress toward #68

Closes #68


network: don't log re-discovered addresses

libp2p might re-discover the same external addresses multiple times (as they are evicted from the swarm registry due to not being very common). This PR introduces a cache of known external address to restrict logging.
Fixes #6874.

bot merge


Draw smooth fonts and curves in various different screen resolutions

Please ensure you have given all the following requested information in your report.
Issue details
I want my game to fit any screen resolution (or window size) (I think it will use Gdx.gl.glViewport(0, 0, w, h) and w, h are calculated by the aspect ratio), although Viewports can deal with different screens, it is far from perfect.
Should we think in pixels when it comes to their world? According to Orthographic camera, LibGDX recommends us to avoid doing, but nonetheless the "Pixel per unit" ratios exist and I need it in some cases (for example, Unit.circleSegments(Unit.radius).
I have to solve it by myself like this:
int width = Gdx.graphics.getWidth();
int height = Gdx.graphics.getHeight();

Gdx.gl.glViewport(0, 0, width, height);

springBatch.getProjectionMatrix().setToOrtho2D(0, 0, Unit.VIRTUAL_WIDTH, Unit.VIRTUAL_HEIGHT);
springBatch.begin();
// draw fps at the lower right corner of window
bmpFont.setColor(Color.BLACK);
bmpFont.draw(springBatch, "FPS:" + fps, 0, bmpFont.getLineHeight(), Unit.VIRTUAL_WIDTH, Align.right, false);
springBatch.end();

// All points whose coordinates (x,y) are in the interval [0 640]x[0 480] will be rasterized.
shapeRenderer.getProjectionMatrix().setToOrtho2D(0, 0, Unit.VIRTUAL_WIDTH, Unit.VIRTUAL_HEIGHT);
shapeRenderer.updateMatrices();
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setColor(Color.BLUE);
shapeRenderer.circle(2 * Unit.radius, 4 * Unit.radius, Unit.radius, Unit.circleSegments(Unit.radius));
shapeRenderer.end();

If (w=640, h = 480)  --> (w=1280, h = 960), the font and circle will zoom to 2 times bigger after avoiding unnecessary multiplying and dividing by constants and just using a fixed 2D projection and applying an adjustive viewport.
I find vertical lines and horizontal lines are drawn smoothly no matter what the screen resolution (or window size) is, if I use a fixed 2D projection like the above example code.
In addition, when textures are drawn, they will be scaled up or down and it's tolerant and out of question for me. However, fonts and curves cannot be handled well. The unit of the former size is in pixels like textures and I don't expect they are also scaled up or down like textures because I can dynamically generate use FreeTypeFontGenerator, and the latter look like polygons because the window size gets larger so they are scaled up and the number of segments is not enough.
Can I get a chance to draw fonts with a right font size instead of scaling up or down they, at the same time, put fonts in the right place?
Reference

Viewports
Orthographic camera
Texture Mapping
LearnOpenGL - Coordinate Systems
Graphics pipeline
Graphics Pipeline & Rasterization
Refer to simple viewport explanation:

Some background reading from the Redbook online will be beneficial. Chapter 3 explains all about the connections between viewport + projections + gluLookAt.
The arguments to Viewport are in pixel units and the rectangle you define with it must be no greater than the actual window itself.
glOrtho maps global X,Y,Z cooridinates to the viewport pixel cooridinates I,J as follows suppose you set
Gl.Viewport(10,20,50,50)
Gl.glOrtho(0, 34.2, 0, 90.6, -1.0, 1.0)

A point at (XYZ)=(0,0,0) would be mapped to the window at the far lower left pixel (IJ)=(10,20) and a point at (XYZ)=(34.2,90.6,0) would be mapped to the upper right window pixel (IJ)=(10+50,20+50). Points outside of the ortho box will simply be clipped ie not plotted to the screen.
So glOrtho allows you to define your global coordinate system in convenient units (ie not in pixels) and points will be automatically mapped back to the viewport pixels -- this is a valuable feature because it is best to avoid thinking in terms of pixels and think in terms of global coordinates appropriate to you model. Typically, the only time you think in terms of pixels is when you set Viewport, and from then on openGL maps your global coordinate system back to the screen for you without you needing to think about pixels again. This is a great help when you allow the window size to change and you only have to change the code accordingly in one spot, the Gl.Viewport() settings!

How to deal with different aspect ratios in libGDX?
KEEP SCREEN ASPECT RATIO WITH DIFFERENT RESOLUTIONS USING LIBGDX

Reproduction steps/code
Even if you think your issue is trivial to reproduce, please supply a SSCCE that demonstrates your issue.  This saves time on our end, and makes it much more likely that your issue will be fixed.
You can find barebones templates here
Version of LibGDX and/or relevant dependencies
gdx-1.9.8
Please select the affected platforms

[x] Android
[x] iOS (robovm)
[ ] iOS (MOE)
[x] HTML/GWT
[x] Windows
[x] Linux
[x] MacOS

The best way is to never scale fonts. Using a screen viewport and fonts generated at runtime depending on device resolution. Or use other font rendering techniques like distance field.

The key issue is that using a fixed 2D projection (coordinate system in 2D world in convenient units) and changing viewport according window size (in pixels) to adapt to fit any window, fonts are magnified so as to become not so sharp and clear when the size of the window become larger.
Now, I find a workaround: regenerate font with a new size and scales the font by the ratio of the current size to the initial size of window/screen using BitmapFont.BitmapFontData.setScale(float scaleXY).


Enable brave tools to reuse existing lxd bridges

If a Bridget already exists, brave tools should reuse it - creation of multiple bridges on the same host seems to result in unresolved DNSs in containers...

Perhaps bravetools should go back to using the bravebr0 name for its bridge if we take this route; if there's only one bravetools bridge by design it is clearer than using the username.

Agreed

I guess the only caveat LXD has a non-brave bridge already set up. Should we create our own for Bravetools, or just re-use the existing bridge?
Looping in @adrozdovbering for thoughts as well.

I was looking into this a bit more - #143 ensures that a bridge gets a unique private RFC1918 IP address. In this case, bravetools can be initialised up with as multiple bridges without any DNS conflicts. I've tested this on linux and Mac and containers are created and networked without any issues.
There's a lot to be said for environment isolation that is allowed by your own bridge - therefore I'm wondering if we should leave this as is.

There's a lot to be said for environment isolation that is allowed by your own bridge - therefore I'm wondering if we should leave this as is.

Yes, that makes sense to me. Given that multiple bridges can work without issues it seems fine to create and use them.


Cannot read property 'useCaseSensitiveFileNames' of undefined

Using the latest version of the typescript npm package to transpile ts in the browser. It throws
Cannot read property 'useCaseSensitiveFileNames' of undefined
in createCompilerHostWorker(...).
While stepping through typescript.js, I see this:
    function createCompilerHost(options, setParentNodes) {
        return createCompilerHostWorker(options, setParentNodes);
    }
    ts.createCompilerHost = createCompilerHost;
    /*@internal*/
    // TODO(shkamat): update this after reworking ts build API
    function createCompilerHostWorker(options, setParentNodes, system) {
        if (system === void 0) { system = ts.sys; }
        var existingDirectories = ts.createMap();
        var getCanonicalFileName = ts.createGetCanonicalFileName(system.useCaseSensitiveFileNames);

Seems like createCompilerHost calls createCompilerHostWorker with only two arguments, while createCompilerHostWorker tries to access a property on the third argument, which is undefined.

How did you fix this?

Passing a custom implementation of CompilerHost to createProgram fixed it for me (without one, TS tries to use ts.sys defaults, which is unavailable in browsers).
const compilerHost = {
            getSourceFile: ...,
            getDefaultLibFileName: ...,
            writeFile: ...,
            getCurrentDirectory: ...,
            getDirectories: ...,
            getCanonicalFileName: ...,
            getNewLine: ...,
            useCaseSensitiveFileNames: ...,
            fileExists: ...,
            readFile: ...,
};


Need to add netaddr as a requirement since you use ipv4 filter

Need to add netaddr as a requirement since you use ipv4 filter in:
ovirt-ansible-hosted-engine-setup/tasks/bootstrap_local_vm/01_prepare_routing_rules.yml:44
as you can see:
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_filters_ipaddr.html
To use this filter in Ansible, you need to install netaddr Python library on a computer on which you use Ansible (it is not required on remote hosts). It can usually be installed either via your system package manager, or using pip:

I meant to that is missing in the README file as you fixed in:
https://github.com/oVirt/ovirt-ansible-hosted-engine-setup/pull/40


Add filter declaration for mass_t

Constructor failed for mass slot, so added a small test to check the constructor so that this is prevented in the future. Packet deserialization has changed according to mass error, this needs to be discussed and reviewed thoroughly.

I added an offset filter along with the out filter, this also needs to be discussed if it is applicable or desireable for this type.

This just works, nice.
I would prefer not having offset, you would be tampering with value from the weigher which is not something I think we would like to do so easily.


Compiling with npm run compile fails ...

... although the app works on my Android phone. Why?

Sorry, missed that issue. See #48.
As for why: Typechecking is probably not done during build, but the type annotations are simply stripped. See also https://www.typescriptlang.org/docs/handbook/babel-with-typescript.html#babel-for-transpiling-tsc-for-types.


A report not yet executed is marked like a success

Hello
A report not yet executed is marked like a success
Screenshot

Another symbol could be used for this state :

Best regards

Agreed, that is confusing. Tagging @kasiazjc for design/icon input, and @yousoph to see if someone can take it under their wing.


README: Document BlueJeans for meetings

In #opencontainers after today's meeting, here's the source for the
change from Google Hangouts to BlueJeans:
12:01 < wking> Is the BlueJeans approach going to be our standard
procedure?  If so, I can file a PR updating our weekly-meeting docs
(which still talk about YouTube and Google Hangouts)
12:03 < mrunalp> wking: Yeah, I think so.
12:04 < wking> ok.  And it's just going to "push the BlueJeans link to
IRC and the list before the meeting"?  Or does BlueJeans have stable
channel URLs or similar?
12:05 < mrunalp> wking: The URL that we used today is stable.
And here's the source for archiving the minutes:
12:10 < wking> Will we still be posting mintes to the mailing-list, or
are they now just on the wiki
(https://github.com/opencontainers/specs/wiki)?
12:12 < mrunalp> wking: I am fine with either or both.
12:12 < wking> I'll go with both in the docs then
12:13 < mrunalp> sounds good
Signed-off-by: W. Trevor King<EMAIL_ADDRESS>

LGTM

Let's review the wiki workflow for a minute

On Wed, Aug 26, 2015 at 03:04:55PM -0700, Vincent Batts wrote:

Let's review the wiki workflow for a minute

So back the wiki reference out of this PR, and we'll file an
independent PR for that if/when it has a few more weeks under its
belt?

Sounds fine
On Aug 26, 2015 18:11, "W. Trevor King"<EMAIL_ADDRESS>wrote:

On Wed, Aug 26, 2015 at 03:04:55PM -0700, Vincent Batts wrote:

Let's review the wiki workflow for a minute

So back the wiki reference out of this PR, and we'll file an
independent PR for that if/when it has a few more weeks under its
belt?
—
Reply to this email directly or view it on GitHub
https://github.com/opencontainers/specs/pull/116#issuecomment-135191665.

On Wed, Aug 26, 2015 at 03:12:34PM -0700, Vincent Batts wrote:

Sounds fine

Done with the force-push from 61930a2 to 4cc06a6.

LGTM


Improper Type Hint

The following gives improper type hint for have s :=
example (h : ∀ x : men, shaves barber x ↔ ¬ shaves x x) : False :=
  Or.elim (em (shaves barber barber))
    (fun s: shaves barber barber =>
      have ns: ¬ shaves barber barber := (h barber).mp s
      ns s
    )
    ---
    (fun ns: ¬ shaves barber barber =>
      have s := (h barber).mpr ns
      ns s
    )

Solution: the only problematic case right now is when we have < or > essentially. I will ignore those for now and at some point we can add explicit types for them

For above, I mean such as let <w, p> := Exists.intro ...


RC fixes

Modulus Pull Request
Description
Increase the tolerance for one of the pytest and cherry-pick the STL fixes commit from the main branch.
Checklist

[ ] I am familiar with the Contributing Guidelines.
[ ] New or existing tests cover these changes.
[ ] The documentation is up to date with these changes.
[ ] The CHANGELOG.md is up to date with these changes.
[ ] An issue is linked to this pull request.

Dependencies

/blossom-ci


Clarify aggregated status

Clarification as discussed in https://github.com/rsmp-nordic/rsmp_core/issues/109

bit 2 and 8 are unused and must be set to false.

bit 2 and 8 are unused and must be set to false.

PR updated

When this is merged and relased, this wiki page can be removed


Content Component is not assignable to type 'FormComponent<{}, unknown>'

When adding a content component that is not within a group it give this ts error:
S2322: Type 'FormComponent<unknown, any>' is not assignable to type 'FormComponent<{}, unknown>'.   The types of 'widget.type.widget' are incompatible between these types.

Could you provide an example that doesn't work? I've tried to reproduce this with the following example form, using the default tsconfig provided with the vite react-ts template and it doesn't give any errors:
const form = createForm({
  test: content({}, () =>
My form
),
});

This should be resolved now.


SankakuComplex Deleting Itself in Grabber Nightly

Bug description
All SankakuComplex sources delete themselves on re-opening the Nightly program.
The files in AppData seem to all still be there, but missing from the actual sources list in the program. Manually re-adding them refuses to find their gallery type.
Steps to reproduce

Fresh install Grabber Nightly (Nothing in Program Files or AppData)
Launch Grabber
Close Grabber
Launch Grabber
All SankakuComplex sources missing

Expected behavior
The sources to not be deleted. It does not delete in latest release.
Context
I noticed that the Nightly supposedly got a fix for infinite scrolling on sources that do not list page count. I wanted to try it on SankakuComplex, but it did not work when I changed the settings. I tried re-opening the program to find that the SankakuComplex source was missing, tried to reproduce and found the steps above to be the simplest reproduction.
System information

OS: Windows 10
Grabber version: Nightly
Head: aac11b6
Date: 2020-01-16T19:05:31.0000000Z

Answer is here : https://github.com/Bionus/imgbrd-grabber/issues/1888#issuecomment-593571950
Pease see : https://github.com/Bionus/imgbrd-grabber/issues/1888 for further information.


[📚] Setup steps should clearly mention to ignore/not ignore the firebase console setup steps

The current documentation says to modify the build.gradle only in the "Getting Started" section. But when I create the application in the firebase, there's more lines of code that firebase says to me to add there. That's confusing to me - so, have I to put these lines in there or not?

The same applies to the Podfile on iOS

Is it in the FlutterFire documentation or in the official Firebase documentation?

@TahaTesser I had to be more straightforward
There's a FlutterFire docs that have the steps to enable the anylitcs described here https://firebase.flutter.dev/docs/analytics/overview
Also, there are basic plugin setup described here https://firebase.flutter.dev/docs/overview
But if you create an application in the firebase console, there's a few additional instructions they give you, that you can see on the screenshots above.
So are they valid, are they not? Are they redundant or are they required?

@nt4f04uNd Ok I understand what you trying to ask now.
The answer to your question is NO. The console setup is invalid when your working with flutter the only time you will follow the Firebase console setup is when your creating a native application on Android/iOS.
If you're creating a new flutter app and your using firebase the only thing you need to add in your gradle files are the following.
In your android/build.gradle you add the following.
`buildscript {
repositories {
  // Check that you have the following line (if not, add it):
  google()  // Google's Maven repository
}

// ...

dependencies {
  // ...

  // Add the following line:
  classpath 'com.google.gms:google-services:4.3.4'  // Google Services plugin
}

}
allprojects {
// ...
repositories {
  // Check that you have following line (if not, add it):
  google()  // Google's Maven repository
  // ...
}

}`
In your module (app-level) Gradle file (usually android/app/build.gradle), apply the Google Services Gradle plugin.
`// Add the following line:
apply plugin: 'com.google.gms.google-services'  // Google Services plugin
android {
// ...
}`
When you want to add firebase libraries to your flutter app you add them in your pubspec.yaml file. Keep in mind to always add your firebase_core: ^verion library to your  pubspec.yaml file. Another thing to keep in mind is that the firebase libraries used in your flutter app should correspond accordingly with each other.
Links for if you need help or get stuck
FlutterFire migration guide:
https://firebase.flutter.dev/docs/migration/
Add Firebase to your Flutter app:
https://firebase.google.com/docs/flutter/setup?platform=android

I just tried doing following only the steps from flutter fire documentation. It won't work and you still need to add classpath/apply/implementation, at least for crashlytics. I haven't tested the others

Please use the official Flutter specific documentation for Firebase here: https://firebase.flutter.dev/docs/overview


Please support windows x86 release

Some customers of small and medium-sized software companies still use x86 systems. We can't give them up because we have no choice. If our products do not support x86, customers will choose the products of competing companies. Flutter's main customers on Windows should be enterprise customers, and individual users usually only need one browser.
部分中小型软件公司的客户任然使用x86系统，我们不能放弃他们，因为我们没有选择，如果我们的产品不支持x86，客户就会选择竞争公司的产品。Flutter 在windows上的主要客户应该都是企业客户，个人用户通常只需要一个浏览器。

Duplicate of https://github.com/flutter/flutter/issues/37777


NTV-217: Add new ProjectPageActivity and remove references to overview recyclerview

📲 What

Create new ProjectPageActivity
Remove all references to the overview recyclerview
Added a button that launches what will be the new project activity from the playground

🤔 Why

We will eventually migrate to the new ProjectPageActivity, and we need to differentiate between the two.
Adding a button that launches the project activity makes testing easier.
Redesigning the overview, so the recyclerview is no longer needed.

👀 See
https://user-images.githubusercontent.com/19390326/134404511-18684a18-aa76-4450-b854-5791fe775224.mp4
📋 QA
No user facing changes, but you can test that the project activity opens using the button from the playground.
Also test current project pages to make sure they're working as usual.
Story 📖
NTV-217: Add new Project activity to playground

@Arkariang duplicated the view model and tests, also confirmed that crash is only happening when you are not logged in. This will be fixed later when it is actually loaded with the correct configuration.


[Plugin upgrade] Unable to update plugin until User/Roles are removed from hieradata

Module version: 5.1.0
Puppet version: 4.8
OS and version: Centos 6.8

Bug description
When performing a plugin update (related to a version update) I am unable to bump the version of the plugin.
Please note I am using local files as plugin url.
I also tried to name the plugin x-pack- followed by the version, but it fails.
I could accept to do a run to remove the plugin and another agent run to re-add it, but with this dependency I am also obliged to remove the users and roles.
Error: Failed to apply catalog: Found 1 dependency cycle:
(Augeas[/etc/sysconfig/elasticsearch] => Class[Elasticsearch::Config] => Elasticsearch::User[spark] => Elasticsearch_user[spark] => Elasticsearch::User[spark] => Elasticsearch::Plugin[x-pack] => File[/usr/share/elasticsearch/plugins/x-pack] => File[/usr/share/elasticsearch/plugins] => Class[Elasticsearch::Config])
Cycle graph written to /opt/puppetlabs/puppet/cache/state/graphs/cycles.dot.

Content of the dot file (use webgraphwiz):
digraph Resource_Cycles {
  label = "Resource Cycles"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::Role[cluster_admin]" -> "Elasticsearch_role[cluster_admin]" -> "Elasticsearch::Role[cluster_admin]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::Role[cluster_admin]" -> "Elasticsearch_role_mapping[cluster_admin]" -> "Elasticsearch::Role[cluster_admin]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[automation]" -> "Elasticsearch_user[automation]" -> "Elasticsearch::User[automation]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[automation]" -> "Elasticsearch_user_roles[automation]" -> "Elasticsearch::User[automation]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[kibana_server]" -> "Elasticsearch_user[kibana_server]" -> "Elasticsearch::User[kibana_server]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[kibana_server]" -> "Elasticsearch_user_roles[kibana_server]" -> "Elasticsearch::User[kibana_server]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[security_manager]" -> "Elasticsearch_user[security_manager]" -> "Elasticsearch::User[security_manager]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[security_manager]" -> "Elasticsearch_user_roles[security_manager]" -> "Elasticsearch::User[security_manager]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[spark]" -> "Elasticsearch_user[spark]" -> "Elasticsearch::User[spark]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
"Augeas[/etc/sysconfig/elasticsearch]" -> "Class[Elasticsearch::Config]" -> "Elasticsearch::User[spark]" -> "Elasticsearch_user_roles[spark]" -> "Elasticsearch::User[spark]" -> "Elasticsearch::Plugin[x-pack]" -> "File[/usr/share/elasticsearch/plugins/x-pack]" -> "File[/usr/share/elasticsearch/plugins]" -> "Class[Elasticsearch::Config]"
}

Excerpt of the hieradata
profile::elasticsearch::es_users:
  'spark':
    password: 'ENC[.....]'
    roles:
      - 'application_rw'

elasticsearch::plugins:
  'x-pack':
    ensure: absent
    url: 'http://puppetmaster/elasticsearch/x-pack-5.3.1.zip'
    instances: ['node1', 'node2']

Excerpt of the profile::elasticsearch module:
  # Required for backward compatibility between 0.16.0 and 5.0.0
  if defined('elasticsearch::shield::user') and defined('elasticsearch::shield::role') {
    $user_class = 'elasticsearch::shield::user'
    $role_class = 'elasticsearch::shield::role'
  }
  else
  {
    $user_class = 'elasticsearch::user'
    $role_class = 'elasticsearch::role'
  }
  $es_users = hiera_hash('profile::elasticsearch::es_users', {})
  if $es_users {
    validate_hash($es_users)
    create_resources($user_class,$es_users)
  }

  $es_roles = hiera_hash('profile::elasticsearch::es_roles', {})
  if $es_roles {
    validate_hash($es_roles)
    create_resources($role_class,$es_roles)
  }

Sorry, I am going to re-verify this as I just discovered the module handles in-place updates (no need of remove-install).


⚠ Bofrost.at has degraded performance

In b9e18d5, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1077 ms

Resolved: Bofrost.at performance has improved in 4f80e8c after 13 minutes.