New version of hashie breaks omniauth

The new version of hashie is blowing up our build on travis:
Bundler::GemRequireError: There was an error while trying to load the gem 'omniauth-google-oauth2'.
Gem Load Error is: uninitialized constant Hashie::Extensions::RubyVersionCheck::ClassMethods::RubyVersion
Backtrace for gem load error is:

hashie-3.5.0/lib/hashie/extensions/ruby_version_check.rb:10:in `with_minimum_ruby'
hashie-3.5.0/lib/hashie/array.rb:8:in `<class:Array>'
hashie-3.5.0/lib/hashie/array.rb:5:in `<module:Hashie>'
hashie-3.5.0/lib/hashie/array.rb:4:in `<top (required)>'
hashie-3.5.0/lib/hashie/mash.rb:2:in `<top (required)>'
omniauth-1.3.2/lib/omniauth/strategy.rb:1:in `<top (required)>'

Looking into trying to debug this.
We use a lot of gems in our project
Any insight would be great, thanks

Oh no.
A fix similar to https://github.com/intridea/hashie/pull/368 is probably needed, @kbrock would you give it a try? I am not sure how we can guard against this forever, the better fix is probably not to require 'hashie/mash' in downstream gems moving forward.
/cc: @michaelherold

@dblock yup, am testing a fix here, and also made that suggestion over in omniauth.

It makes sense to me especially with the current hashie test suite requiring toplevel hashie in spec_helper, it's impossible for this suite to detect a regression that other projects might have.
Perhaps, hashie should deprecate the current behavior used by other gems and raise in the future if other gems try to load only parts of hashie (without the toplevel).

I'm trying to add an integration spec in https://github.com/intridea/hashie/pull/392.

I'm trying to add an integration spec in #392.

Nice @dblock.  That would be great if it fails in the same way.

I have a fix in https://github.com/intridea/hashie/pull/392, with a spec this time, if anyone cares to give it a try?

@jrafanie That's an interesting suggestion.

I just released version 3.5.1.
I think we'll yank 3.5.0 (I'll do it at the end of the work day today) unless someone has a reason not to.
I apologize for the breakage, everyone!

I would keep 3.5.0 cause the mash problem only affects a small portion of gems that require hashie/mash. It will just add pain and suffering to anyone who's working OK and got locked at 3.5.0.

I agree with @dblock, those of us who hit this will be fine to upgrade to 3.5.1.

Good point, thanks!

thanks all

This indeed does fix the problem, however now I am getting a warning:
WARN -- : You are setting a key that conflicts with a built-in method OmniAuth::AuthHash::InfoHash#name defined at F:/Ruby225/lib/ruby/gems/2.2.0/gems/omniauth-1.3.2/lib/omniauth/auth_hash.rb:34. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.

That's because they have an OmniAuth::AuthHash::InfoHash#name method, which is often set with the writer method Mash#name=. We often have people complain that the Mash behavior isn't what they expect when a key collides with a built-in method, so we added logging to that point.
If you aren't using Hashie anywhere else, you can set the Hashie logger to a nil logger with:
Hashie.logger = Logger.new(nil)

in an initializer.

@michaelherold Yeah, makes sense. Thank you!

I've yet this problem and my Gemfile look like t his:
gem 'omniauth', :github => 'omniauth/omniauth'   gem 'omniauth-twitter', :github => 'arunagw/omniauth-twitter'
And in my Gemfile.lock hashie is this:
hashie (3.5.1)

I've yet this problem and my Gemfile look like this:
gem 'omniauth', :github => 'omniauth/omniauth'
gem 'omniauth-twitter', :github => 'arunagw/omniauth-twitter'
And in my Gemfile.lock hashie is this:
hashie (3.5.1)

@inchr Can you copy-paste the error you're getting with the stack please?

weird, now it don't give me the error anymore :)
but give me a warning:
[2017-02-01T17:31:40.874860 #91523]  WARN -- : You are setting a key that conflicts with a built-in method OmniAuth::AuthHash::InfoHash#name defined at /Users/inchr/.rvm/gems/ruby-2.3.3/bundler/gems/omniauth-01809cb63237/lib/omniauth/auth_hash.rb:34. This can cause unexpected behavior when accessing the key via as a property. You can still access the key via the #[] method.

@inchr see above https://github.com/intridea/hashie/issues/391#issuecomment-276492956 Though the suggested fix does not really help :(

I'm working on a patch for Hashie that will make this behavior toggleable. I'll then make a patch for OmniAuth to take care of that functionality.

Hi. Problem persists here and only gets better when downgraded to hashie v3.4.6.
Gemfile with:
rails (5.0.1)
hashie (3.5.2)
omniauth (1.4.1)
omniauth-gplus (2.0.1)

Ruby 2.3.1
Backtrace:
Backtrace for gem load error is:
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:334:in `log_built_in_message'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:139:in `custom_writer'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:207:in `block in deep_update'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:200:in `each_pair'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:200:in `deep_update'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/hashie-3.5.2/lib/hashie/mash.rb:115:in `initialize'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/omniauth-1.4.1/lib/omniauth/auth_hash.rb:24:in `new'
...
/home/romeu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/singleton.rb:140:in `instance'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/omniauth-1.4.1/lib/omniauth.rb:119:in `config'
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/omniauth-oauth2-1.4.0/lib/omniauth/strategies/oauth2.rb:127:in `<top (required)>'

...
/home/romeu/.rvm/gems/ruby-2.3.1@genesis-devise/gems/bundler-1.14.3/lib/bundler.rb:107:in `require'
/home/romeu/Projetos/Pessoal/genesis/config/application.rb:7:in `<top (required)>'

Full backtrace here: https://gist.github.com/romeuhcf/edf0b50cdbc9975b19aa7eb2e4148378

Same here, this happens with Hashie 3.5.2, but not with 3.5.1

Discussed in https://github.com/intridea/hashie/issues/401


Proper way to check if selection exists in MATCH with multiple expressions

OrientDB Version, operating system, or hardware.

v2.0 SNAPSHOT[ ] - .18[ ] .17[ ] .16[ ] .15[ ] .14[ ] .13[ ] .12[ ] .11[ ] .10[ ] .9[ ] .8[ ] .7[ ] .6[ ] .5[ ] .4[ ] .3[ ] .2[ ] .1[ ] .0[ ]
v2.1 SNAPSHOT[ ] - .16[ ] .15[ ] .14[ ] .13[ ] .12[ ] .11[ ] .10[ ] .9[ ] .8[ ] .7[ ] .6[ ] .5[ ] .4[ ] .3[ ] .2[ ] .1[ ] .0[ ]
v2.2 SNAPSHOT[ ] - .11[x] .rc1[ ] .beta2[ ] .beta1[ ]

Operating System

[x] Linux
[ ] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

Expected behavior and actual behavior
I have a MATCH query with multiple traversal expressions, per the docs:
MATCH {
    class: Foo,
    as: foo_1
}.out('Foo_Bar') {
    optional: true,
    as: bar_1
}, {
    class: Foo,
    as: foo_1
}.out('Foo_Baz') {
    where: ???,
    as: baz_1
} RETURN $matches

In the ??? region, I would like to use an expression to this effect: either bar_1 did not exist (it's optional), or if it did then count >= bar_1.count. However, I am not sure how to write this check given the docs, and the few ways I tried have failed. For example:
Attempt 1: The following causes a NullPointerException traceable down to $matched.bar_1 IS null:
MATCH {
    class: Foo,
    as: foo_1
}.out('Foo_Bar') {
    optional: true,
    as: bar_1
}, {
    class: Foo,
    as: foo_1
}.out('Foo_Baz') {
    where: ($matched.bar_1 IS null OR count >= $matched.bar_1.count),
    as: baz_1
} RETURN $matches

Attempt 2: The following also causes a NullPointerException, traceable down to $matched containsKey 'bar_1':
MATCH {
    class: Foo,
    as: foo_1
}.out('Foo_Bar') {
    optional: true,
    as: bar_1
}, {
    class: Foo,
    as: foo_1
}.out('Foo_Baz') {
    where: (not ($matched containsKey 'bar_1') OR count >= $matched.bar_1.count),
    as: baz_1
} RETURN $matches

Attempt 3: The following allows all records through and does not filter based on count, meaning that 'bar_1' in $matched is always false:
MATCH {
    class: Foo,
    as: foo_1
}.out('Foo_Bar') {
    optional: true,
    as: bar_1
}, {
    class: Foo,
    as: foo_1
}.out('Foo_Baz') {
    where: (not ('bar_1' in $matched) OR count >= $matched.bar_1.count),
    as: baz_1
} RETURN $matches

Steps to reproduce the problem
Here's the schema and data I used:
CREATE CLASS Foo EXTENDS V
CREATE PROPERTY Foo.name String
CREATE CLASS Bar EXTENDS V
CREATE PROPERTY Bar.count Integer
CREATE CLASS Foo_Bar EXTENDS E
CREATE CLASS Foo_Baz EXTENDS E

CREATE VERTEX Foo SET name = 'foo'   // assigned #12:0
CREATE VERTEX Foo SET name = 'new_foo'   // assigned #12:1
CREATE VERTEX Foo SET name = 'bad_foo'   // assigned #12:2

CREATE VERTEX Bar SET count = 1   // assigned #13:0
CREATE VERTEX Bar SET count = 2   // assigned #13:1

// "foo" #12:0 has both edges, and the "count" condition is satisfied
CREATE EDGE Foo_Bar FROM #12:0 TO #13:0
CREATE EDGE Foo_Baz FROM #12:0 TO #13:1

// "new_foo" #12:1 has no Foo_Bar edge, so it too should be selected
CREATE EDGE Foo_Baz FROM #12:1 TO #13:1

// "bad_foo" #12:2 has both edges, but its "count" condition isn't satisfied
CREATE EDGE Foo_Bar FROM #12:2 TO #13:1
CREATE EDGE Foo_Baz FROM #12:2 TO #13:0

The expected result for the query I want is the following:
foo_1   bar_1   baz_1
-------------------------
#12:0   #13:0   #13:1
#12:1           #13:1

Of the 3 attempts I made above, 2 returned errors, and one did not filter because it always evaluated the filter to true as described above, meaning that it returned the above two rows plus the row #12:2  #13:1   #13:0 which is incorrect.

Hi @obi1kenobi
I think the easiest and safest way to do it is to use a subquery, eg.
SELECT FROM (
  MATCH {
    class: Foo,
    as: foo_1
  }.out('Foo_Bar') {
    optional: true,
    as: bar_1
  }, {
    class: Foo,
    as: foo_1
  }.out('Foo_Baz') {
    as: baz_1
  } RETURN $matches
) WHERE bar_1 is null or baz_1.count >= bar_1.count

Anyway, I'm checking the NullPointerException that should not happen

Thanks

Luigi

Hi @luigidellaquila thanks for the suggestion. Unfortunately, the subquery is not an option, because the real queries I am using are about 40x the size of this one. It's a very bad idea to pull out all their conditionals to an outer query, because then I end up traversing millions of records and then at the very end only filter down to a few.
If you were to add support for an operator that checks whether a location is selected in $matched, I would be finally able to move off of Gremlin and get that 100x speedup from MATCH. I hope you and @lvca are willing to reconsider -- it shouldn't be too complex of an addition but will dramatically expand the capabilities of the MATCH query.

Hi @obi1kenobi
sure, this is a quite common use case, probably fixing the use case will also solve the problem, but if it's not the case I'll see what's the effort to implement it.
Thanks
Luigi

The reason I need this is because I'm building (and hoping to open-source soon!) a module that gives OrientDB support for Facebook's popular GraphQL language: http://graphql.org/
It's impossible to fix the use case because the point of GraphQL is that queries can be arbitrarily complex -- so I can't lift all of the filtering into an outer SELECT statement.
I have already found a way to turn GraphQL into Gremlin, but it's really slow. I believe that this problem is one of the last few things standing between GraphQL and MATCH. If you are able to solve this problem with me, OrientDB could be one of the first databases to support GraphQL queries!

@obi1kenobi wow, that's cool! @luigidellaquila how much time does it take?

@lvca thanks, I thought you might like it!
As for the proper way to check if selections are made -- Gremlin makes its equivalent of $matched.unselected_location be null for any locations that aren't selected, but I don't particularly care which of the three approaches above you decide is the "most correct". Just let me know once it's fixed and update the docs, and I will be a happy camper :)

Hi @lvca
I'm still investigating it, I have to change the execution flow of the MATCH statement. Right now optional nodes are evaluated at the end, so the condition on the non-optional node cannot use a result from the optional node... The easiest and quickest way is to evaluate that condition at the end of the pattern matching, but it would be the same as doing a nested SELECT.
I'll give you a feedback in next hours
Thanks
Luigi

Hi @luigidellaquila
Just to make sure there's no misunderstanding -- I'm not asking for the "optional" keyword to be supported anywhere but at the end of one MATCH expression. All I need is this: when there are multiple MATCH expressions in the same MATCH query, the subsequent expressions should be able to tell whether a previous "optional" traversal succeeded. Note that in my example, the "optional" keyword is still the right terminal, and a new MATCH expression starts after it.
Assuming my understanding of OrientDB's code is correct, all I need is the OrientDB IN or CONTAINSKEY operators, when called on the $matched special variable, to call the matchContext.matched.containsKey() method inside OrientDB. I believe that this should not cause changes to the execution flow of MATCH.

Hi @luigidellaquila, any updates on this? Any chance it'll be available in 2.2.12?

Hi @obi1kenobi
no, unfortunately to support it in 2.2.x I have two alternatives:

add a filtering step at the end of the full pattern evaluation
partially rewrite the execution flow of the MATCH statement

Solution 2 is quite expensive, so it's hard for me to do it in 2.2.12
Solution 1 is much easier, but it would have the exact same performance of an outer SELECT, so it's not worth the effort.
I'm doing it in 3.0 in the meantime, maybe I'll find a way to backport some parts of it and make it work, but I cannot give you an ETA
Thanks
Luigi

Here's another alternative that will not require a different execution flow, but will still let me compile GraphQL to MATCH -- please let me know what you think!
Let's use this example graph:
Foo(@rid=#1:1) --SomeEdge-> Bar(@rid=#2:1) ------
                                                  \
                                                   ===FinalEdge=> Baz(@rid=#3:1)
                                                  /
Foo(@rid=#1:2) --DifferentEdge-> Bar(@rid=#2:2)---

Currently, when a traversal is being evaluated, any paths that don't match a given step are eliminated from consideration. Let's call such paths detached. In the following example, the path that starts at Foo(@rid=#1:2) becomes detached at bar_1 because it didn't satisfy the .out('SomeEdge') step:
MATCH {
    class: Foo,
    as: foo_1
}.out('SomeEdge') {
    as: bar_1
} RETURN $matches

You could add a keyword called "resume" that allows detached paths to be resumed at a later time. Here are a few examples.

Simple demonstration of the syntax:

MATCH {
    class: Foo,
    as: foo_1
}.out('SomeEdge') {
    optional: true,
    as: bar_1
}.in('SomeEdge') {
    resume: bar_1,
    as: foo_2
} RETURN $matches

The above query would return:
|  foo_1  |  bar_1  |  foo_2  |
------------------------------
|  #1:1   |  #2:1   |  #1:1   |
|  #1:2   |  null   |  #1:2   |

More powerful than existing MATCH:

MATCH {
    class: Foo,
    as: foo_1
}.out('SomeEdge') {
    optional: true,
    as: bar_1
}.out('FinalEdge') {    // note this traversal only applies to the non-detached paths
    as: baz_1
}.in('FinalEdge') {
    where: (@rid == $matched.bar_1.@rid),
    as: bar_2
}.in('SomeEdge') {
    resume: bar_1,
    as: foo_2
} RETURN $matches

Since the path from Foo(@rid=#1:2) became detached (with optional: true) at bar_1, it is not evaluated further until the resume: bar_1 statement, which allows it to reattach. Using resume: bar_1 implies where: (@rid == $matched.foo_1.@rid) in addition to any other filtering -- a path can only resume from the @rid where it became detached. Here, foo_1 was the last location visited by the detached path before becoming detached at bar_1, which is why the implicit filter checks agains $matched.foo_1.@rid.
The query would return:
|  foo_1  |  bar_1  |  baz_1  |  bar_2  |  foo_2  |
---------------------------------------------------
|  #1:1   |  #2:1   |  #3:1   |  #2:1   |  #1:1   |
|  #1:2   |  null   |  null   |  null   |  #1:2   |

Adding the resume: true option allows users to write queries where optional: true is not the last (right-terminal) traversal step, making MATCH much more powerful. While the same effect can be achieved using subqueries, this approach is much cleaner and far more efficient, because it doesn't have complex nesting and does not require a full query evaluation before the filtering.

Backward-compatible with existing optional: true:

MATCH {
    class: Foo,
    as: foo_1
}.out('SomeEdge') {
    optional: true,
    as: bar_1
} RETURN $matches

When optional: true is on the last (right-terminal) traversal step, this is equivalent to having a resume: bar_1 just before outputting the results.
@luigidellaquila and @lvca, please let me know what you think! I think this is one of the last few technical obstacles before I can use GraphQL with OrientDB!

Hi @obi1kenobi
It's definitely worth evaluating this proposal. We decided to adopt a json-like syntax specifically because it's very flexible and we can add new behaviors like this, so in terms of pure syntax it's a GO. In terms of execution planning, I have to think about this a little bit and see how hard it is to implement and if it gives real advantages in terms of expressive power and performance.
Thanks
Luigi

Thanks for looking into it @luigidellaquila. Let me know if you have any questions or updates!

Hello @luigidellaquila and @lvca -- did you have a chance to consider my proposal in more detail?
This is the only missing feature blocking my progress with using GraphQL, and I really would love to make progress as soon as possible and then open-source the code :)

Hi @obi1kenobi
It's in my TODO list, I'll check it in next two days.
I'll keep you posted!
Thanks
Luigi

Ok guys, I checked it.
I have to review the order of the pattern calculation, so that in some cases optional edges are calculated in advance (now they are calculated at the end) based on conditions on $matched.
It's not a trivial fix, it will require one or two working days to make sure that nothing breaks.
I'll schedule it in next days.
Thanks
Luigi

That sounds great, thank you! Will this be part of the 2.2.13 release? It's not assigned to any milestone at the moment.
Also, which of the two approaches I proposed did you decide to go with? Just so I know in which direction to take my GraphQL work :)

I'll do the solution 2, I'll partially rewrite the execution flow of the MATCH statement.
It will be much more efficient, so it makes sense to invest one or two day on it.
I think I'll be able to do it in 2.2.13 (unless the team decides to release it at the beginning of next week, but I don't think it's the case, unless we find and fix any serious issue)
Thanks
Luigi

@obi1kenobi - in what language are you creating the GraphQL implementation?
Scott

@luigidellaquila thanks, that's great news! Looking forward to it :)
@smolinari I'm currently using pyorient and Python, because Python has a very nice GraphQL library. However, if you can find a GraphQL library, you should be able to port my code to any language you like.

I'm interested. :) I'm looking to do the same thing with PHP. However, not with normal PHP, but rather with appserver. Normal PHP doesn't cut it for GraphQL (and why Facebook came up with HHVM).
Scott

Hi @obi1kenobi
I have news for you: I just pushed some changes that fix the basic flow.
For the record, the right syntax is the first one you proposed:
MATCH {
    class: Foo,
    as: foo_1
}.out('Foo_Bar') {
    optional: true,
    as: bar_1
}, {
    class: Foo,
    as: foo_1
}.out('Foo_Baz') {
    where: ($matched.bar_1 IS null OR count >= $matched.bar_1.count),
    as: baz_1
} RETURN $matches

Now this query executes correctly, but I'm still checking if there are some cases when the pattern conditions are evaluated in the wrong order, so I'm now closing this issue yet
Thanks
Luigi

Just to make sure I didn't misunderstand, $matched.xyz now evaluates to null if no location marked as: xyz was visited?
Thanks!

Yes, exactly
Thanks
Luigi

@obi1kenobi - did you miss my question? :smile:
Scott

@luigidellaquila looking forward to it!
@smolinari sorry, I didn't see your edit. It's not public yet, I'm working with my company to get it open-sourced at the moment.

@luigidellaquila thank you so much for prioritizing this -- I really appreciate it! I am currently testing with the 2.2.x branch so we can uncover any problems before 2.2.13 is released, and shorten the development cycle of this feature.
Here are a couple of issues that you may want to look into.
I am not going to use the same schema as above because it isn't suitable to express these edge cases. Just imagine that all the vertices and edges are declared to fit the queries below.

Having two traversals that end at the same location currently returns no results.

Consider a query like the following:
MATCH {
	class: Foo,
	as: foo
}.out('Foo_Bar') {
	optional: true,
	as: optional_bar
}, {
	class: Baz,
	as: baz
}.out('Baz_Bar') {
	optional: true,
	as: optional_bar
} RETURN $matches

This returns no results even when such Foos, Bars and Bazs exist. Even if no Bars existed, it is my understanding that this should return the cartesian product of Foo X Bar for all Foo and Bar vertices.

It seems that traversing from a node that was part of a previous optional traversal is not supported.

This is unfortunately a necessary feature for my GraphQL project. I need queries like the following:
MATCH {
	class: Foo,
	as: foo
}.out('Foo_Bar') {
	optional: true,
	as: optional_bar
}, {
	class: Bar,
	as: optional_bar
}.in('Baz_Bar') {
	as: baz
} RETURN $matches

If a matching Bar exists at optional_bar, this should include it in the traversal. If no matching Bar exists in the step that has optional: true, then it's just as if the subsequent traversal didn't exist (because it starts at an optional location that doesn't exist) and $matched.baz should subsequently be null for the same reason.
Thanks again, and please let me know if you'd like me to re-test an updated version of the branch!

Regarding the second part of my last post:
If a matching Bar exists at optional_bar, this should include it in the traversal. If no matching Bar exists in the step that has optional: true, then it's just as if the subsequent traversal didn't exist (because it starts at an optional location that doesn't exist) and $matched.baz should subsequently be null for the same reason.

I'm also perfectly happy to accept a solution that only triggers this behavior when a special keyword is applied to the root of the traversal starting at the optional node. For example, something like this:
MATCH {
    class: Foo,
    as: foo
}.out('Foo_Bar') {
    optional: true,
    as: optional_bar
}, {
    class: Bar,
    as: optional_bar,
    nullWhenEmpty: true
}.in('Baz_Bar') {
    as: baz
} RETURN $matches

@luigidellaquila please let me know what you think!

Hey @luigidellaquila, just double-checking if there's anything I can do to help with closing down this very complex issue! The progress so far has been great, and I'm hoping we can resolve this fully before 2.2.13 is out. A lot of people at my company are excitedly awaiting this so they can use GraphQL with OrientDB, and I'm sure open-sourcing my work will get the general OrientDB community quite excited as well :)
Please let me know how I can best help with this!

Hi @obi1kenobi
Thank you very much, unfortunately some internal refactoring is needed to support this and it's definitely not trivial. I hope I'll manage to fix these points in next very few weeks, I'll keep you posted
Thanks
Luigi

Thanks for the update, and please let me know if you'd like me to test a new build -- I set up an OrientDB development environment, so I can check out any OrientDB branch and run my GraphQL-to-MATCH compiler there.

Hi @obi1kenobi
This issue fell through the cracks, I guess it's already solved with last patches.
Can I close it?
Thanks
Luigi

Hi @luigidellaquila, this is a separate issue than the topological scheduler I contributed and shouldn't be closed. From my earlier post in this thread, reproduced here for your convenience:
If a matching Bar exists at optional_bar, this should include it in the traversal.
If no matching Bar exists in the step that has optional: true, then it's just as
if the subsequent traversal didn't exist (because it starts at an optional
location that doesn't exist) and $matched.baz should subsequently
be null for the same reason.

I'm also perfectly happy to accept a solution that only triggers this behavior when a special keyword is applied to the root of the traversal starting at the optional node. For example, something like this:
MATCH {
    class: Foo,
    as: foo
}.out('Foo_Bar') {
    optional: true,
    as: optional_bar
}, {
    class: Bar,
    as: optional_bar,
    nullWhenEmpty: true
}.in('Baz_Bar') {
    as: baz
} RETURN $matches

Hi @luigidellaquila, any luck with the above? I'd really love to have a way to traverse from optional nodes -- it would add so much flexibility!

Hi @obi1kenobi
not yet, sorry, it's in my TODO list but we are also finalizing the 3.0 M1 so we are pretty busy with that...
Thanks
Luigi

Hey @smolinari, I just realized I never updated the discussion here with the news on my GraphQL work. Long story short, it's now open-source and I wrote a blog post about it!
Let me know what you think!


Look for AI.exe and steam_api.dll in the mod's working folder

That way users could just drop the mod's files into AI's dir instead of creating shortcuts.

1.0.4 now allows the path to be easily specified. It also detects Steam versions by looking for steam_api.dll


Parse async closures

https://github.com/withoutboats/rfcs/blob/async-await/text/0000-async_await.md#async--closures
fn main() {
    let closure = async || {
         println("Hello from async closure.");
    };
}

I rebased #450 as 4e5d9660e714b8db860b32ac66aa18e5ad233863 and it will be releasing in 0.15.0.


The application "Sabaki" can't be opened. (on macOS Sierra)

Hi Yishn,
I downloaded the release (0.30.1), but I got an error message (The application "Sabaki" can't be opened. ) when I run it on my MacBook Pro (macOS Sierra) after extracted the release package (sabaki-v0.30.1-mac-x64.7z).
Is there anything I missed?
Thank you.
Camus

I got the failed reason: I extracted the release package by The Unarchiver.

I found the reason, I extracted the release package by The Unarchiver.

Can I ask why the export target is .7z? A .zip can be opened by macOS without extra dependencies and I believe a .gz would be fine too, but .7z is a bit non-standard.

7z gives the best compression in terms of size.


Use OVMF code shipped by the OS

OVMF is required to boot VMs with oses that uses UEFI firmware like ClearLinux.
Rather than download the OVMF.fd file from the internet and place it in a non-standard location,
Install the package that provides OVMF (ovmf in ubuntu, edk2-ovmf in fedora or kvm-host bundle in clearlinux) and let ciao-launcher choose the right location for the file based on the OS it is running.

Coverage decreased (-0.05%) to 64.848% when pulling a4d4a57dff9e6adc05cac26e809d95712f118e34 on albertomurillo:ovmf into a331483d4d867167fb368e368bced083eea24838 on 01org:master.

IIRC, in the early days of ciao, I had problems booting clearlinux images on Ubuntu when using the OVMF.md file shipped by Ubuntu.  This was an older version of Ubuntu in fairness, but to get the clear images to boot properly I needed to use the clearlinux OVMF.md file instead.  Have you tried getting launcher to boot a cleallinux VM on Ubuntu with these patches?  You need to ensure that you can ssh or netcat into the VM to see if it's running.

I have an openstack cloud in ubuntu that boots clearlinux but doesn't allow me to ssh, maybe is the ovmf code and not the cloud image itself... I will test.

Coverage increased (+0.02%) to 64.87% when pulling f8ec1d266b7a2e89598dd0cfbcdf4b15f0498c29 on albertomurillo:ovmf into cc089c2ca1e9adbf3b6a5150806f0a98f47597a1 on 01org:master.

Coverage decreased (-0.005%) to 64.919% when pulling 6a1d3a2e561b0a29bf07e502825271144498d9ef on albertomurillo:ovmf into 43401be4f7cc952a14829945777ee642e7c48dd5 on 01org:master.

Coverage decreased (-0.09%) to 64.837% when pulling 6a1d3a2e561b0a29bf07e502825271144498d9ef on albertomurillo:ovmf into 43401be4f7cc952a14829945777ee642e7c48dd5 on 01org:master.

Coverage decreased (-0.03%) to 64.892% when pulling 412035e1b5c33d52ffee74cb66f33c7447725f76 on albertomurillo:ovmf into 43401be4f7cc952a14829945777ee642e7c48dd5 on 01org:master.

Coverage decreased (-0.9%) to 64.035% when pulling 412035e1b5c33d52ffee74cb66f33c7447725f76 on albertomurillo:ovmf into 43401be4f7cc952a14829945777ee642e7c48dd5 on 01org:master.

Coverage decreased (-0.03%) to 64.731% when pulling 5f3c314101d095afb883feb310893040f258fb32 on albertomurillo:ovmf into 480a803785b4f31eb855988aa8c4fd4326844624 on 01org:master.

Coverage decreased (-0.01%) to 64.726% when pulling 97fbc191ed62fcf901b888b12aeb71b80dac0120 on albertomurillo:ovmf into e7e35eb09db9e1dfabb11ecd2cf5613f2d4aedb0 on 01org:master.

This PR is ready to be merged.
I just tested in an ubuntu cluster and clearlinux vms launched with ubuntu's OVFM_CODE.fd bios (clear cloud and cnci image) are getting the right login key from cloud-init.

Do we have performance data on how much slower instance start is on non-ClearLinux distros with this change?

Using ciao-cli trace feature i got the following numbers when booting clear-10820-cloud.img with OVMF_CODE.fd from ubuntu vs OVMF.fd from clearlinux.
Using ubuntu's OVMF_CODE.fd bios
<EMAIL_ADDRESS>~ $ ciao-cli instance add -workload e35ed972-c46c-4aad-a1e7-ef103ae079a2 -label ubuntu
Created new instance: c7a8030c-d3d5-4e13-bf6a-413d787e3470
<EMAIL_ADDRESS>~ $ ciao-cli trace show -label ubuntu
Trace data for [ubuntu]:
        Number of instances: 1
        Total time elapsed     : 0.486016 seconds
        Average time elapsed   : 0.486016 seconds
        Average Controller time: 0.083001 seconds
        Average Scheduler time : 0.000000 seconds
        Average Launcher time  : 0.178997 seconds
        Controller variance    : 0.000000 seconds²
        Scheduler variance     : 0.000000 seconds²
        Launcher variance      : 0.000000 seconds²

Using ClearLinux OVMF.fd
<EMAIL_ADDRESS>~ $ ciao-cli instance add -workload e35ed972-c46c-4aad-a1e7-ef103ae079a2 -label clear
Created new instance: 7cf0169a-fc70-483f-bc09-d8d46afeb312
<EMAIL_ADDRESS>~ $ ciao-cli trace show -label clear
Trace data for [clear]:
        Number of instances: 1
        Total time elapsed     : 0.499977 seconds
        Average time elapsed   : 0.499977 seconds
        Average Controller time: 0.084007 seconds
        Average Scheduler time : 0.000966 seconds
        Average Launcher time  : 0.187004 seconds
        Controller variance    : 0.000000 seconds²
        Scheduler variance     : 0.000000 seconds²
        Launcher variance      : 0.000000 seconds²

I wouldn't expect to see any difference in those numbers.  Launcher reports that an instance has booted as soon as qemu starts.  It doesn't actually wait until the bios or the OS has booted.  The only way to check this would be to get cloud-init to phone home.

clear-10820-cloud.img vm booted in ubuntu compute node with clear OVMF.fd
root@788e3b6b-0858-4000-89e0-2421d4201436 ~ # systemd-analyze
Startup finished in 5.4104s (firmware) + 45.1ms (loader) + 280.4ms (kernel) + 1.5646s (userspace) = 7.3006s
root@5f0e7e78-0948-4e0c-9ba0-ce65c69def4f ~ # systemd-analyze
Startup finished in 5.3625s (firmware) + 45.2ms (loader) + 286.0ms (kernel) + 1.4655s (userspace) = 7.1593s
root@2b208988-871f-4af5-863f-c79e92c75b7e ~ # systemd-analyze
Startup finished in 5.4024s (firmware) + 45.1ms (loader) + 284.3ms (kernel) + 1.5764s (userspace) = 7.3083s

clear-10820-cloud.img vm booted in ubuntu compute node with ubuntu OVMF_CODE.fd
root@eb603ebc-2c65-40e8-884c-6e2806cb19f6 ~ # systemd-analyze
Startup finished in 9.0732s (firmware) + 45.2ms (loader) + 285.4ms (kernel) + 1.5808s (userspace) = 10.9846s
root@209edf0c-081f-406f-9499-e74a617cace8 ~ # systemd-analyze
Startup finished in 9.2477s (firmware) + 45.4ms (loader) + 287.1ms (kernel) + 1.5652s (userspace) = 11.1456s
root@129549b0-aba2-4677-9d10-81941b918849 ~ # systemd-analyze
Startup finished in 9.0433s (firmware) + 45.2ms (loader) + 292.3ms (kernel) + 1.5585s (userspace) = 10.9394s

There's been some IRC discussion around this, but it needs recorded here.
I worry that we're almost 100% slower on a key metric if we don't have the optimized OVMF.  That's quite dramatic.  That leads me to think Ciao should ship its own preferred OVMF.  But that brings some license complexity.
@albertomurillo can you put this on the agenda for the next weekly meeting to discuss with the broader team?

@erick0z is the owner of the task to ship the optimized ovmf code in ubuntu/fedora.
I think once the packages are ready I can use this PR to update the playbooks.

@tpepper Latest version of ciao packages for ubuntu/fedora includes the clearlinux optimized OVMF.fd code.
I have updated this PR to make use of them.

Coverage increased (+0.02%) to 64.766% when pulling fc064ee8f991aaca02077f9e73d44991006f3078 on albertomurillo:ovmf into 7a8bec34479bd5b990407a0803ee53b5a3ac824a on 01org:master.

@tpepper @markdryan is this good to merge?

I'm sorry I missed the email notification.  Yes this looks good to me after https://github.com/01org/ciao/pull/846#issuecomment-265806792


is there any way to focus on the editor

For example, the editor is hidden at somewhere of the page , I click on a button, that makes the editor visible, for a better user experience, the editor is better to be focused at the same time, any way for this?
i have tried the following code but it's not working:
<vue-editor v-model.trim="content.desc" useCustomImageHandler @imageAdded="handleImageAdded" class="editor" :editorToolbar="customToolbar" :placeholder="$t('communityList.fill_in_the_detail')" ref="editor">
And js code to focus:
this.$refs.editor.quill.focus()

The code above is correct
Most probably you called it too soon and you have to wait for the next tick:
this.$nextTick( () => this.$refs.editor.quill.focus() )
That's because Vue creates and destroys v-if controlled elements not immediately but in Vue ticks.

This issue is stale because it has been open for 60 days with no activity.

This issue was closed because it has been inactive for 7 days since being marked as stale.


[SPARK-10304][SQL]: throw error when the table directory is invalid

Throw error if the directory of a table is invalid, validated by either all files in the directory are partitioned, or none of them are partitioned.
The consistency of detailed partition spec is validated by existing parsePartitionColumn.

Merged build triggered.

Merged build started.

Test build #41855 has started for   PR 8547 at commit be5522d.

Test build #41855 has finished for   PR 8547 at commit be5522d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41855/
Test FAILed.

Merged build finished. Test FAILed.

Adding an PartitionValues.empty does not cover all problems. Will close this PR, and investigate other approaches.


Red and Green backwards?

Red and Green seem to be backwards.
strandtest.py has this:
colorWipe(strip, Color(255, 0, 0))  # Red wipe
colorWipe(strip, Color(0, 255, 0))  # Blue wipe
colorWipe(strip, Color(0, 0, 255))  # Green wipe
The comments are wrong in any case.  I would expect to see Red, then, Green, then Blue, but in reality, I get Green, Red, Blue.
Using the original rpi-ws281x code, the colors are correct.

You probably need to change the strip_type when creating the strip object. Like this:
import time
from rpi_ws281x import PixelStrip, Color, ws  # add this ws to the import list
import argparse

...

LED_BRIGHTNESS = 255  # Set to 0 for darkest and 255 for brightest
LED_INVERT = False    # True to invert the signal (when using NPN transistor level shift)
LED_CHANNEL = 0       # set to '1' for GPIOs 13, 19, 41, 45 or 53
STRIP_TYPE = rpi_ws281x.ws.rpi_ws281x.ws.WS2811_STRIP_RGB   # Add this line

...

 # Create NeoPixel object with appropriate configuration.
    strip = PixelStrip(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL, STRIP_TYPE) # add the STRIP_TYPE argument
    # Intialize the library (must be called once before other functions).
    strip.begin()

...

I chose the rgb type because of your post. I may have gotten it wrong though. You still may need to change the type, the types are:
WS2811_STRIP_RGB
WS2811_STRIP_RBG
WS2811_STRIP_GRB # This one is the default
WS2811_STRIP_GBR
WS2811_STRIP_BRG
WS2811_STRIP_BGR


[android] Fixed getting product id and product name

Problem
In the #19514 there was a mistake done, as Android methods were meant to only be moved to other module not change
their implementation.
Change overview
Restored the previous implementation/

Note it overlaps with https://github.com/project-chip/connectedhomeip/pull/20202 to some extent.

@kkasperczyk-no HI Kamil,I had debug the tv-app found that this change was not worked, it didn't reach src/platform/android/DeviceInstanceInfoProviderImpl.cpp

Could you elaborate on what didn't reach means? Does it mean this file was not compiled? Are you using Android platform? I don't understand why it would not be compiled, as it is directly added to Android platform files without any condition: https://github.com/project-chip/connectedhomeip/blob/master/src/platform/android/BUILD.gn#L47
What can I do to reproduce this problem?

Anybody familiar with Android to help? @andy31415 or @austinh0?

Fast tracking platform changes.


PostCSS plugin is not assigned when PostCSS plugins is typeof Array

I am getting an error, because previously in my Nuxt.js project (scaffolded with create-nuxt-app) I have build.postcss which type is Array. I googled a little and found out that this syntax is deprecated, and you should use object notation instead, like stated in docs.
I skimmed through module.js and found the following line of code:
this.options.build.postcss.plugins.tailwindcss = this.options.build.postcss.plugins.tailwindcss || configPath

I think it would be nice if you can support deprecated syntax, so users do not get sneaky errors.

Maybe solution can look something like this:
const { plugins } = this.options.build.postcss

this.options.build.postcss.preset.stage = 1

if (typeof plugins === 'object' || plugins === undefined) {
  this.options.build.postcss.plugins = this.options.build.postcss.plugins || {}
  this.options.build.postcss.plugins.tailwindcss = this.options.build.postcss.plugins.tailwindcss || configPath
} else if (Array.isArray(plugins)) {
  plugins.push(require('tailwindcss')(plugins.tailwindcss || configPath))
}

Hi @andrewvasilchuk
I think it's possible yes, actually it should be quite easy, I don't have much time right now but will be happy to review a PR :)

Released in v1.2.0


[Ionic 4/Cordova] Build issue on iOS

Report
Plugin Version
6.1.11
On what Platform are you having the issue?
iOS
What did you do?
Run ionic cordova build ios --device --release --prod -- --buildConfig build.json
What did you expect to happen?
The .ipa to be generated correctly.
What happened instead?
We got the following error:

ld: warning: ignoring file /usr/lib/libstdc++.6.0.9.dylib, building for iOS-arm64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture arm64:   "OBJC_CLASS$_AppsFlyerCrossPromotionHelper", referenced from:       objc-class-ref in AppsFlyerPlugin.o   "OBJC_CLASS$_AppsFlyerShareInviteHelper", referenced from:       objc-class-ref in AppsFlyerPlugin.o   "OBJC_CLASS$_AppsFlyerLib", referenced from:       objc-class-ref in AppsFlyerPlugin.o       objc-class-ref in AppsFlyerX+AppController.o ld: symbol(s) not found for architecture arm64

Please provide any other relevant information.
The issue happened when we first ran on iOS, Android builds and works fine, it does generate the .apk correctly.

@Galiza did you try to build it directly from Xcode?

@amit-kremer93 No, as we actually use a Jenkins machine that runs the ionic command. So the .ipa is generated through the command, not from XCode.

@Galiza I sent the solution through our support team. If you have any questions, please feel free to contact<EMAIL_ADDRESS>

@amit-kremer93 Can you send me solution also, I have the same issue on ionic 3

@amit-kremer93 Please post the solution, its falling for us too. [Compiling via xcbuild and xcode ui both]

@vlad-grigoryan @rajparekh07 please share on which iOS version, xcode version and cordova version you are facing the problem

Xcode 12.4, iOS 14.5.1, Cordova 8 and cordova ios 6.1 @amit-kremer93

no solution  untill now???


Wrong include order of CSS/LESS files

It I have something like:
link rel="stylesheet" type="text/css" href="ccss/layout.css"
link rel="stylesheet/less" type="text/css" href="css/bootstrap.less"
link rel="stylesheet" type="text/css" href="ccss/other.css"
link rel="stylesheet/less" type="text/css" href="ccss/page.less"
script src="/FL_NT/html/js/less-1.1.3.min.js" TYPE="text/javascript" language="javascript"
The less compiled add the compiled .less css appending the css after the last style/link tag. That change the order of the CSS rules and you may end up with something unexpected if an element has class="c1 c2", c1 is defined in other.css and c2 is defined in bootstrap.less.
Less.js should attach the compiled css just after the stylesheet/less that generated it.

+1.
Adding the new style blocks after the LESS script can cause CSS specificity issues when mixing LESS stylesheets with CSS stylesheets.

+1
You can work around it by just sending the css files to less.

Yes, that works, but wastes time parsing files we know don't use LESS.

I don't disagree with you, but we build the css when we push to the
production servers.
On Feb 6, 2012 7:49 PM, "Michael Mattiacci" <
<EMAIL_ADDRESS>wrote:

Yes, that works, but wastes time parsing files we know don't use LESS.

Reply to this email directly or view it on GitHub:
https://github.com/cloudhead/less.js/issues/423#issuecomment-3842086


Update var.py

622/3 - I assume that this is a typo on the web page as it is the only entry without a space in front of the (
634 - Duplicate

couple things here:

changes need to be made in tools/parse-aue.py so we can continue to parse the Google help article easily as Google adds new models and makes other changes to the page.
I'm about to submit a change to use a dict in parse-aue.py so we don't get dups (and the code is cleaner)
I'm going to move the AUE dates list out of var.py and into a standalone file that GAM will download from GitHub on demand. That will allow updates to AUE without the need to upgrade GAM while also giving us a chance to confirm Google didn't modify the help article HTML in some way that trashes parse-aue.py output. It'll also make updates easier since we can just run parse-aue.py > cros-aue-dates.txt, git diff to see changes/do sanity checks and then push it.
Google's recovery.json is useful when comparing model names between the AUE page and what the API / admin console return. Model names from API should generally match model names in the recovery.json file though due to timing issues a model may be in one and not the other. Based on recovery.json, the cb5-311 will show as "Acer Chromebook 13 (CB5-311)" and there is no c810. Since this model is reaching AUE in September c810 is likely just a marketing name by Acer that is really just the CB5-311.


Add ScheduleExpression validation

The field troposphere.events.Rule::ScheduleExpression is a basestring. The validity of it is confirmed during the stack creation of CloudWatch.
The documentation for that field can be found here.
Would it be possible to validate the cron when JSON is being generated?

Totally possible - it'd likely have to be regex's though.  PRs welcome!


Endless loading screen when checkout or return in Android

When checking out or returning, the custom tab on Android is unresponsive and displays an endless loading screen.
pay.webm
back.webm

Can you explain if this issue is resolved and how?


(Postgres and Oracle) Advanced Copy as JSON, wrong value when copying date-like types

Description
When inspecting the value of a record copied using the option "Advanced Copy" > "Copy as JSON" certain date types (Oracle) and timestamp (Postgres) do not represent the information stored in the database
The table is mirrored in Postgres and Oracle
DBeaver Version
Community Edition Version <IP_ADDRESS>405051837
Operating System
Windows 10  x64
Database and driver
Database: Postgres 14.11
Driver Name and version: PostgreSQL JDBC Driver
Steps to reproduce
As an example in Postgres:
We have certain table with this row
ALTER TABLE "OSC"."REF_TERRITORIES" ADD sys_last_updated_date timestamp NULL;

The value of the cell is 2024-05-13 19:35:46.807

I query the table using the Dbeaver view, then I select the whole row, next I use the option "copy as JSON"

Then I paste the json in any editor and I get the wrong time

Additional context
SSL: Use SSL ON, SSL mode: allow

Please try checking this setting to disable client-side formatting. Does it help?

Hello, I tried checking the option, then exporting the data to a .json and the clipboard and both options kept the wrong date times.
Note: The copied time does not correspond to the local machine time

Database value

Copied value


label_filter support for zookeeper_dns

Extends label_filter functionality for ZookeeperDnsWatcher. This requires a change to ZookeeperDnsWatcher to forward the discovery options for label filtering and a change to DnsWatcher to pass a long any server labels.
Tested that label functionality is working for ZookeeperDnsWatcher with this patchset.
to: @SonicWang @igor47 @jolynch

:+1:
Code seems fine, can you add label_filter to the relevant docs in the readme?
Do we want to add a spec test for the zk dns watcher similar to the zk spec?

Thanks jolynch! I'll work on README docs in a separate PR.
For a spec test, I took a look at it earlier. The class ZookeeperDnsWatcher needs a refactor to make it more easily testable. I was concerned that maintaining these specs would be more work than their absence.


New feature to switch to the last focused editor tab

Often I'm shuffling between 2 files where I'm making a change to one, then the other, back and forth. It would be nice if there were a command that would allow switching to the last focused editor tab.
I could assign that command to a keyboard shortcut and it would allow me to easily shuffle between 2 files.
This feature would still be useful even though there's the split window view, as sometimes I don't use that view because of a small screen for example.

@rightaway The closest we have to what you are looking for is Cmd/Ctrl+P followed by another Cmd/Ctrl+P. You could also use Open Preview Editor from History.

Ctrl+Q is your friend.
Sorry, but this is not the right place for questions. Please post questions over at StackOverflow: http://stackoverflow.com/questions/tagged/vscode
Thanks for understanding.

@bpasero Ctrl+Q seems to close the application. I haven't overwritten the shortcut. Is it meant to switch to the last edited file?

@rightaway on what OS are you? Did you try Ctrl+Tab?

@bpasero Linux, Ctrl+Tab works thanks!


clickHouse-jdbc error

dbeaver version: <IP_ADDRESS>206051253
error：
Network unavailable:
javax.net.ssl.SSLHandshakeException:PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
Network unavailable:
javax.net.ssl.SSLHandshakeException:PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed

Hello @wencyGit
What ClickHouse driver version do you have? Do you use bunled java from DBeaver or your own?
Also, maybe this topic can help you: https://stackoverflow.com/questions/32279964/pkix-path-validation-failed-java-security-cert-certpathvalidatorexception-sign

@LonwoLonwo
Yesterday, dbeaver linked Clickhouse to download the Clickhouse jdbc driver message. Today, it is downloaded normally


Go Live [Dec 23]

Push to live

Docs Build status updates of commit b41d9c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/tabs/how-to/authentication/auth-aad-sso.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


fix render of required property attribute in docs

Coverage increased (+0.03%) to 71.375% when pulling 4386c87fff91c2814f3ce4269786c14821085028 on displague:fix-required into edd99dc4e1be5ab8190f243c3dbf8b830716255e on linode:master.

Change base to release 14.2 instead?


adding a dye trader (buyer/seller) addon wiget/button

add a section for Dyes from the Original Dye traders in guild halls etc into toolbox like the material trader
buying/selling

The use cases is too narrow, there is no reason to increasing the complexity of the project for that.


paths=source_relative support

Are there plans to support paths=source_relative option for bindings generation?

I'll need to look into it. Happy to support PRs.

I've created https://github.com/grpckit/omniproto which takes a different approach to code generation for protofiles. It's declarative, and allows pass-through support for grpc plugin commands. It supports this parameter.

Hi @kchodnicki , please checkout the option to pass --go-source-relative which was added since you've opened this issue.
Thanks!


add disabled property to LineEdit

Copying #314 code to LineEdit widget.
This could probably apply to all widgets based on a <input> tag.
Can we just do the same for BaseDropDown widget?

This could probably apply to all widgets based on a  tag.

That leaves the Slider and the ColorSelectWidget. Do you want to look into these in this PR?
The DropDown is a custom widget, so that would need a little more work.

Isnt the dropdown a simple wrapper around ?

No, the combobox has a text <input>, but the dropdown part is all custom.

Don't know how to do it for dropdown...

Don't know how to do it for dropdown...

That's ok. I'd need to sit down for that and fiddle with some CSS, I think. Let's go with what we have for now.
Is this ready from your end?

Yes, nothing to add from my part.

Thanks!


chore(deps): bump secp256k1 0.28

no breaking changes in new minor release
https://github.com/rust-bitcoin/rust-secp256k1/blob/master/secp256k1-sys/CHANGELOG.md

@divagant-martian sorry I totally forgot about this one -.-
I've replaced the deprecated Message::from_slice with from_digest([u8;32])
I believe there are some unrelated clippy issues, happy to fix them as well.


Add documentation about setting up a proxy

Context
It's recommended that teams use a web proxy to allow traffic to our API through a secure network. We do not support firewall whitelists of IP addresses (there's more on this in technology blog post about [a whitelisting approach for cloud APIs](A whitelisting approach for cloud APIs)).
Changes proposed in this pull request
Update https://docs.payments.service.gov.uk/api_reference/ with information about using a web proxy and avoiding firewall whitelists.
Guidance to review
Please check if factually correct.

yes, factually correct 👍


Can't connect to shard🐛 [BUG] -

Description
I have tried the official UO shard. After verification of the account it shows available locations to join like Oceania, Sakura, etc. and stucks on proceeding showing the message Logging into Shard.
Also I have tried to log into UOG: Demise, the verification of the account does not happen, there is and error There is some problem communicating with Origin. Please restart Ultima Online and try again
Reproduction steps
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

Screenshots
![DESCRIPTION](LINK.png)

Logs or Error messages
No response
Browsers
No response
OS
No response

Hey @jabinb! I have connected successfully to the official UO, but there is one bug when I can't enter any text in the game.
At the same time the connection to UOG: Demise can't be established by the reason, that I have described.
Thanks for fixing the original UO connection!


Update languages.yml

Update the languages.yml for support to Yulang

You've clearly made no attempt to follow the details in the CONTRIBUTING.md file and didn't even take the time to fill in the required template.
We have a minimum usage requirement documented in the CONTRIBUTING.md file which is set sufficiently high that it means we don't accept requests for hobby or experimental languages like this.
If and when your new language meets our usage requirements, please feel free to follow the instructions in CONTRIBUTING.md file and open a new PR.
Closing.


Apple Pay support

It seems the support for Apple Pay payments is missing from the cartridge.
I will try to find what to add/change and where so it can work but it would be great if that was somehow documented or even part of the cartridge.

Hi @gmoulin ,
Apple pay will work with the built in functionality of SFCC.
You can find the configuration here:
https://docs.adyen.com/plugins/salesforce-commerce-cloud/set-up-payment-methods#set-up-apple-pay-on-the-web
Kind regards,
Bas Maassen
Adyen

Hello Maassenbas,
After checking all the code with the newer version of Adyen 20.1.3. I don't see applePay rendering on OOTB SFRA 5.3/5.1
It is not coming in the checkout page with other payment methods.
Is additional code or step required not mentioned in the above document?
Confirm how it works via Plugin_applepay or direct via Adyen cartridges.
Thanks
Yogesh

Hello,
I'm interested too about this. I need to enable Apple Pay. I did the configuration liked it said in the documentation but nothing happen in front.
Thanks,


return useful error on clamd initialization

this PR adds a more useful error if initializing the ClamAV scanner fails. Currently if initializing fails, the user gets an error "unable to start clamd session" while information about the actual error (e.g. unable to connect to clamav socket) is lost. This change ensures the error will be bubbled up to the caller

@mfojtik can you review? cc @enoodle @pweil-

@mfojtik @pweil- do you want this in the next milestone?

one nit but LGTM
@simon3z yes this will be nice to have in next milestone


Invalid Syntax error

When I run migration.py, I'm getting a SyntaxError.

I'm running Python 2.7.6 on Windows.  Any ideas on how to fix this?

Hi Lihaywar,
You need Python 3+ in order to run the programm. Then it should work :)

Thanks for the fast response! Updating to Python 3.4 fixed that issue.


Add PHP 7.1 to build script

Can we have Travis re-enabled please?

Hello, I would love to, I just don't have the permissions to add Travis to Daux.
@justinwalsh Can you please help ?


Make examples compile again.

What does this pull request do?
This PR fixes the examples.
Updated dependency on purescript-halogen-storybook and purescript-halogen.
purescript-halogen-select has moved on since the last time the halogen-5 branch was updated. The new parser in PS 0.13 also made some changes necessary.

Thanks!


How to serve static&cached file from different location.

Hi, my rollup init is this:
app.use(rollup({
    mode: 'polyfill',
    src: './',
    root: __dirname,
    cache: '../bin',
}));
app.use(express.static(path.join(__dirname, '../bin')));

The JS file is on  app/base/public/js/main.js.
My goal is, to get the main.js file from /static/js/main.js instead of /base/public/js/main.js in my html file.
How can i accomplish this?
// Edit
The same is possible with the postcss-middleware.
app.use('/static/css', postcssMiddleware({
    src: request => path.join(__dirname, '**/public/css', request.path),
    plugins: [ cssnext, ],
}));

Here i can access my css files via /static/css/main.css.

Hi! I think mode: polyfill is not the right one for you. Have you tried using compile mode (the default mode) with the dest option? Maybe I did't understand you correctly

Thanks for the fast response. Yes i tried with compile mode. But maybe wrong. I will try again. :)
My current solution or workaround is this one:
app.use('/static/js', rollup({
    mode: 'polyfill',
    src: './base/public/js',
    root: __dirname,
    cache: '../bin',
    debug: true,
}));
app.use('/static/js', express.static(path.join(__dirname, '../bin')));

I think it should work if you set the bundleExtension to .js. This only affects how a request is mapped to the entry file of you js code.
Quick note on serve: This option is set to false by default because I'm sure the express guys have implemented a better way to get a local file into a response.

Ok, I'm just now seeing your glob problem. Can you elaborate on this use case?

When i use bundleExtension: '.js', then my css isn't loaded.
With the serve option, i will check this.
A use case for the glob would be with this app structure:
app
    - module1
        - public
            - js
            - css
    - module2
        - public
            - js
            - css

I need to glob the module names. It is already done in the postcss-middleware.
Is it possible to describe in detail the options dest and serve? The readme is not so talkative about them.
And thanks for the help so far. :)

Ok, i think i found a way to accomplish what i need. Only the glob feature is missing. ;)
app.use('/static/js', rollup({
    src: './base/public/js',
    root: __dirname,
    debug: true,
}));
app.use('/static/js', express.static(path.join(__dirname, 'base/public/js')));

With this code, i can serve my js to http://localhost:3000/static/js/main.js.

I am glad you found a configuration to satisfy your needs. I have picked up your feature request and generalized it a little in #15. I will try to implement it some time when I can. I am closing this issue in favor of the other. Thanks for your feedback.

Sounds cool. Thanks. :)
Also, i think this line app.use('/static/js', express.static(path.join(__dirname, 'base/public/js'))); is not really DRY? Because i need to write destination and source twice. It's not a big deal but maybe it is possible to avoid the extra line with express.static.


Lists type to 'uint32_t'

Just to come to full circle, here's the modification for the list type, too.
I performed a benchmark regression test on a "unification" branch with all my recent pull-request, and here's the results
binary_trees - wren            ..........  2545  0.39s  107.32% relative to baseline
delta_blue - wren              ..........  4927  0.20s  104.56% relative to baseline
fib - wren                     ..........  1566  0.64s   96.72% relative to baseline
for - wren                     ..........  3671  0.27s  104.67% relative to baseline
method_call - wren             ..........  3340  0.30s  114.32% relative to baseline

OK, I'm going to close these out for now since we have more important stuff to worry about. We'll still be able to use them for reference later if we decide to start worrying about numbers again. :)

Fine. Perhaps in the next days I'll just propose a fix for some minor warning.
I'll keep the branches for future reference.


Patch query with limit causing problem on ClickHouse

System information:

macOS 12.3.1
DBeaver Version <IP_ADDRESS>204021640

Connection specification:

ClickHouse 22.3
clickhouse-jdbc 0.3.2-patch7
No tunnel or proxy used

Describe the problem you're observing:
select * from numbers(5) format JSONEachRow does not work because DBeaver patched the query with limit, resulting below query sent to ClickHouse. This was discussed in PR #15492.
select * from numbers(5) format JSONEachRow
LIMIT 0, 200

Steps to reproduce, if exist:
Issue above query against ClickHouse.
Include any warning/errors/backtraces from the logs

Hi, @zhicwu! Thank you for bug report!
You can turn off "Use SQL to limit fetch size" setting (Connection settings -> Data editor). It should help.

I think we should return it back to disabled state by default  for drivers version v0.3.2-patch7 and newer as it was workaround due to bug in Clickhouse driver. Now bug seems to be fixed https://github.com/dbeaver/dbeaver/pull/15492#issuecomment-1066736083.


UserGuide: remove TASK_UNIQUE_INDEX

After thinking about it, I'm strongly against a TASK_UNIQUE_INDEX, for the reasons that I outlined in #39.
The index to be used in commands should just be whatever is displayed in the UI.
The UserGuide needs to be updated to remove all mentions of a TASK_UNIQUE_INDEX.

oh just saw this, will work on it


https for scm url

Saw while looking through the pom

Aaaahh just a few seconds to late for making it into 2.17 ....


Conditions cvo

What this PR does / why we need it:
Bubble up conditions from CVO into HCP and into HC
Follow up for https://github.com/openshift/hypershift/pull/1851.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Ref https://issues.redhat.com/browse/HOSTEDCP-474
ref https://issues.redhat.com/browse/HOSTEDCP-643
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/retest

@enxebre I left some comments in https://github.com/openshift/hypershift/pull/1853 that are meant for this PR

/test e2e-aws

/test e2e-aws

/lgtm

/test e2e-aws

/test e2e-aws

/test e2e-aws

/lgtm


Mobile Support - minicart window width

Unless I'm misunderstanding this, is it correct that the minicart window, by default, is fixed at  400px across?
If this is the case, is it the intention that on a mobile screen, at 320px across, the device is used  horizontally so the whole minicart window can be seen rather than the sides being cut off?
Before I create a custom CSS file /HTML but in order to have a window that is max 320px across,  I thought I'd confirm before I tackle this.
Thanks.

Here are the css changes I made for it to look good on mobile, you can adjust how you want but this keeps all the elements and doesn't remove anything. Probably don't need the !important tags but I keep them in: http://pastie.org/private/jjehs7phggllifpvs9bg

Thanks Jeff. I look forward to trying this out this week. Thanks for not forgetting this post.
///
Hector Cabarcas, Creative Director
Fuzen Design
Brand Development and Design
330.280.6210
fuzendesign.com

On Jan 20, 2015, at 1:08 PM, Nate82<EMAIL_ADDRESS>wrote:
Here are the css changes I made for it to look good on mobile, you can adjust how you want but this keeps all the elements and doesn't remove anything. Probably don't need the !important tags but I keep them in: http://pastie.org/private/jjehs7phggllifpvs9bg http://pastie.org/private/jjehs7phggllifpvs9bg
—
Reply to this email directly or view it on GitHub https://github.com/jeffharrell/minicart/issues/227#issuecomment-70702085.


Support passing the path to the ESLint module

Allowing the path to the ESLint module to be passed would support use of this loader with reusable modules which also manage ESLint dependencies for you, e.g.:
var path = require('path')
var resolve = require('resolve')
var webpackConfig = {
  module: {
    rules: [
      {
        test: /\.js$/,
        enforce: 'pre',
        loader: 'eslint-loader',
        options: {
          configFile: require.resolve('reusable-eslint-module/.eslintrc'),
          eslintPath: resolve.sync('eslint', {basedir: path.join(__dirname, 'reusable-eslint-module')})
        },
        exclude: /node_modules/
      }
    ]
  }
}

Implementation-wise, ESLint could be imported only when needed (and similarly in the lint() function):
   // Create the engine only once per config
   var configHash = objectHash(config)
   if (!engines[configHash]) {
+    var eslint = require(config.eslintPath || 'eslint')
     engines[configHash] = new eslint.CLIEngine(config)
   }

Why not :)

I have submitted a PR here https://github.com/MoOx/eslint-loader/pull/181
@MoOx do you mind have a look?

Closed by #181


Bumps spring boot version and aids running Pact Broker

Hi, there!
I've added a docker-compose.yml file that enables running an instance of the Pact Broker with docker-compose up. I've also bumped the version of Spring Boot to RC1.
Let me know what you think.
Cheers,
Greg

Hi,
Thanks very much for your help on the Pact Broker Docker image, just merged it to master. 👍
To the Spring Boot 2.0 RC, I tried on two of my Mac machines, for some unclear reason, it's not working stable with the ProviderState case, that set the Profile is not always working, while using the old version is everything fine, so I prefer to keep it for now.
Thanks again for your help. 🥇

Cool! I'm happy you like it.
As for the RC bump, I get it. No worries. I should've actually update the code as well in order for it to use the latest features. That might come in a later PR though.
Thanks for putting together such a nice example! I recently showcased it at work and it was huge success.
Cheers,
Greg


feat(data): Implement DELETE /event/age/{age} V2 API

PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-go/blob/master/.github/Contributing.md.
What is the current behavior?

Issue Number:
fix #2943
What is the new behavior?
Per https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-data/2.x#/default/delete_event_age__age_,
implement DELETE /event/age/{age} V2 API.
As this API may delete hugh volume of events/readings, this API is
intentionally implemented to use async way to delete events/readings.
As a result, the return HTTP status code is updated from 200 to 202.
Corresponding API doc is also updated for such change.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

New Imports

[ ] Yes
[x] No

Codecov Report

Merging #2946 (b62e361) into master (c80d9cd) will increase coverage by 0.02%.
The diff coverage is 40.00%.

@@            Coverage Diff             @@
##           master    #2946      +/-   ##
==========================================
+ Coverage   40.61%   40.63%   +0.02%
==========================================
  Files         170      170
  Lines       14163    14218      +55
==========================================
+ Hits         5752     5778      +26
- Misses       8033     8060      +27
- Partials      378      380       +2

Impacted Files
Coverage Δ

internal/pkg/v2/infrastructure/redis/event.go
0.00% <0.00%> (ø)

internal/core/data/v2/application/event.go
63.86% <60.00%> (+3.33%)
:arrow_up:

internal/core/data/v2/controller/http/event.go
76.01% <79.16%> (+0.30%)
:arrow_up:

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 c80d9cd...b62e361. Read the comment docs.


Supporting playback of video files in local storage

Would it be possible for the example to show how to playback a video file in local storage? Converting the file to uri and then toString() doesn't work for me...

I think that this Chromecast implementation can only stream from URI, if you can't play the URI from a browser, you can't play it on Chromecast.


provide for cli agruments useful error from schema-utils

Feature request
const problems = require('webpack').cli.processArguments(coreFlag, options, coreConfig);

if (problems) {
  problems.forEach((problem) => {
    console.log(proble.type); // Fine
    console.log(proble.argument); // Fine
    console.log(proble.argument); // Fine, but why?
    console.log(proble.hint); // I think here we can have helpful message for better DX like from `schema-utils`
 });

  process.exit(2);
}

What is the expected behavior?
Have helpful message like from schema-utils
What is motivation or use case for adding/changing the behavior?
Provide better DX
How should this be implemented in your opinion?
Are you willing to work on this yourself?
Don't have time rihgt now

I am willing to work on this.
Can you please tell me How should this be implemented?

https://github.com/webpack/webpack/blob/master/lib/cli.js#L484

Thanks

Do you want a message property in the Problem info, which is a formatted version of the data.

Yep, helpful message for better DX - i.e. possible values

is DX stands for Debugging Experience ?

Yep, helpful message for better DX - i.e. possible values

Possible values is already provided via expected. I think all information is already there. I can add an additional property which provides a readable text version of the data. I didn't do that initially because I thought the cli might want to be in control of messages, so I provided a type and the data instead.

Fixed in webpack-cli, expected is enough for us


Housekeeping: Paint it Black, separated workflows, and linting

Makes a number of changes to the GitHub Actions workflows defined in this repo, with some code changes intended to help pass the new tests. Functionally, code is the same as before, but formatted with Black and adjusted based on errors from Flake8.
Actions separated
More work on GitHub Actions workflows for the project.
With this update, the original main.yaml has been broken down, with new workflow functionality added to different files (filenames don't matter to Actions). While much of this could be accomplished in the same workflow, I wanted to break down those concerns into more succinct workflow files that can handle separate concerns, potentially having different triggers in future.
Plus, the testing suite runs across 3 OSes and 4 Python versions, and we don't need 12 separate calls for generating coverage reports for each push. Best to have a single VM do a single task.
Breakdown

main.yaml renamed testing.yaml, and workflow renamed to simply "Testing" (from "CI Testing").
pytest-cov and codecov removed from "Testing" workflow. Now reside in their own workflow, coverage.yaml / "Coverage report".
Added workflow for checking Black formatting, formatting.yaml / "Code formatting check"

This marks the start of a preference for code that is formatted with Black before being merged, with the goal of reducing the size of code diffs and removing a concern over code formatting issues. Contributors will be encouraged to update future PRs to match this style.

Added flake8 linting back to the tests, in linting.yaml / "Linting"

Configuration in setup.cfg has been updated to ignore some errors on which black and flake8 might disagree (we prefer that the formatting by black never be the cause of an error in flake8).

Code formatted and linted, with old imports removed
Per addition of the "Code formatting check" and "Linting" workflows, all Python files in the code base have been reformatted automatically using Black's default settings, with some minor adjustments made in order to pass Flake8 (with some key errors ignored so that Flake8 and Black don't conflict).
I also took the opportunity to remove old from __future__-style imports, as those only apply to Python 2 (which we no longer support). Some other import statements have been refined to use the package name when available, instead of dotted paths (such as from ..utils import Foo: now uses from mws.utils import Foo).

Per the Codecov report, one side effect of applying Black is an occasional increase in number of code lines. For files already well-covered, this can look like a positive delta in testing coverage, even if nothing has really changed.
I will ignore the coverage report for the moment, and work on added testing in a future update.

On the face of it this seems ok and I can't see any reason not to merge.
I'll try to spend 15 minutes later this evening having a more in-depth look


feat(ci): add self-hosted runner

Codecov Report
Patch and project coverage have no change.

Comparison is base (6279cf1) 24.29% compared to head (a0a03df) 24.29%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #818   +/-   ##
========================================
  Coverage    24.29%   24.29%
========================================
  Files           62       62
  Lines         5994     5994
========================================
  Hits          1456     1456
  Misses        4432     4432
  Partials       106      106

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Closing for now, we might revisit this later.


docs: Add docs for allow_reuse

Change Summary
adding docs for enable_reuse
Related issue number
Continuation of #941

Overall I think this is great!
The one semi-large thing I would change would be to replace the examples with examples where you use the same validator on different models, rather than multiple fields of the same model.
You can already use the same validator for multiple fields by just listing out the name of each field manually, and so I worry it might confuse people / establish the wrong habit if the only examples we show are something that can (and arguably should) be done using a different approach.
That said, I think it would still make sense to add a note that you can also do this to add the same validator multiple times to multiple fields of the same model.

also probably good to add a change description.

great, thank you.


Refractor CSS to use ansys-sphinx-theme variables

Linked Issue
This PR addresses #531.
Description
In this PR, I have replaced various hardcoded values across 3 CSS files with corresponding variables defined in the ansys-sphinx-theme variables.css file.  I have also tested it by running on my local device and have found there are no discrepancies.
Note: I have not made any modifications to the ansys-sphinx-theme variables.css file. file itself because the issue (#531) did not explicitly state to update that file. However, I have identified some additional hardcoded values that could potentially be moved to ansys-sphinx-theme variables.css file. for further improvement.
Questions
Should I also update the ansys-sphinx-theme variables.css file.. to introduce new variables and replace more hardcoded values? Your feedback on this would be greatly appreciated.
Review Request
Could you kindly review these changes and let me know if further adjustments are needed? I am happy to incorporate any additional changes or suggestions you might have.

HI @Revathyvenugopal162 - if you could replace further hardcoded variables as part of this PR I think it'd be great =)

HI @Revathyvenugopal162 - if you could replace further hardcoded variables as part of this PR I think it'd be great =)

sure i can fix those

Thank you for your contribution @Abhinav-gh! This is really appreciated =) Sorry, I deleted my previous comments because I thought the PR had be open by one of our colleagues. @Revathyvenugopal162 since you are the expert in this package, please review the PR at your earliest convenience.

@Abhinav-gh Thank you for your contribution! I appreciate your findings on the hardcoded values. My suggestion is to add these properties to the variables.css file if they are background color, box shadow, drop shadow, font color, font-size or font family. Properties that stay the same between dark and light themes, such as font weight, can remain hardcoded. Font sizes, font family, and color variables should be defined in the variables.css file.
If you find any such variables, feel free to add them using the naming convention with the --ast prefix. For example: --ast-sphinx-design-tab-color.
I hope this is clear. Feel free to reach out if you need any further clarification

@Abhinav-gh Thanks for this contribution. On top of your changes, can you update the CONTIBUTORS.md file to add your name as an individual contributor ? Also, can you state that you agree with the CLA ?

@SMoraisAnsys Sure. I will do that.

Hi @Abhinav-gh, as soon as you add yourself to the list of CONTRIBUTORS and accept the CLA, we can merge this.  Thanks! 🚀

Hey @jorgepiloto ! I have added my name to the CONTRIBUTORS file and have already accepted the Contributor License Agreement (CLA). Thank you @Revathyvenugopal162  @RobPasMue @SMoraisAnsys for giving me this wonderful opportunity to contribute!

Let's merge even if failing - outside collaborators do not have access to secrets when PRs come from their forks


Create a Job Aid for CSV Uploader Users

This Issue is related to 3455

User Story
As a ReportStream CSV uploader user, I need to prepare a CSV file with the correct criteria and required formatting guidelines.
Acceptance Criteria

Instructions explaining each ReportStream CSV Field
Guidance for formatting and data considerations

Deliverable

[x] Guide (job aid) for the CSV uploader user

12.28.2021 Current DRAFT has section 1 complete ("Preparing a CSV file for ReportStream). Working on section 2 ("Uploading a CSV file to ReportStream) and should be done hopefully by EOD today. Had to save the current DRAFT DOC as a PDF to upload here on this ticket. Will upload new PDF by EOD today. https://app.zenhub.com/files/304423150/76a88970-4595-477b-a217-bdecd901eccf/download

12.28.2021 Here's the DRAFT in review/QA. I've saved it as a PDF for GitHut, but I will also share it as a DOC file in Slack. Sharepoint messes up the format so I am not sharing the file/s there at this time. I'm having design team review it with me to make sure links work and flow makes logical sense. https://app.zenhub.com/files/304423150/aee2e8f3-3e3a-4796-b4ed-b46e0f8c94e7/download

Link to CSV Uploader Guide on SharePoint (source of truth)
Link to "How to register for a free ReportStream user account" on Sharepoint (source of truth)

1.10.2022 Content is now live on RS website - here are the URLs:
Main section: https://reportstream.cdc.gov/getting-started/testing-facilities/
Account registration guide: https://reportstream.cdc.gov/getting-started/testing-facilities/account-registration-guide
CSV upload guide: https://reportstream.cdc.gov/getting-started/testing-facilities/csv-upload-guide
CSV schema documentation: https://reportstream.cdc.gov/getting-started/testing-facilities/csv-schema


Don't use a makefile, run tasks from npm-scripts

this bugged me all last night.
is this just massive over-engineering? are the reasons we added it in frontend and then to DCR no longer valid?
e.g. does every dev now expect to use a node version manager? maybe...

closing for now. i think we think we should go with makefile approach for now. at least this PR lists the areas to address in the future


Fix historically_non_vital for erasure chunks and explicit vitality changes

This PR fixes two bugs introduced with historically_non_vital:

Erasure chunks were always considered vital, even when explicitly setting @vital = %false on their owning nodes.
Setting @vital to %false and then back to %true triggered historically_non_vital = %true. This wasn't intended, as it makes @vital = %false unusable for "muting" LVC.

Shipped!


On Windows, the import field from path-types to context gets wrong slashes while others are fine

import type { Context } from "..\..\..\paths\_.context.ts";
import type { ResponseBuilderFactory } from "../../../types.d.ts";

I know the easy fix is to switch to a posix, its on the docket.

Ugh! This has bitten me so many times!  This one, being a type import, must have slipped by the unit tests.
What do you mean by POSIX? I know what POSIX is -- at least at high level -- but I'm what exactly it is you're saying is on the docket?
Thanks for letting me know about this!


Last Persistend id

Hello!
Is it possible to get all notifications from one last persistent id?
And what is the best way for getting(not listening) notifications?
Now im starting listening and with setTimeout closing connection.
Thank you!

// Id of the last notification received       clientEvent          : [],       receivedPersistentId : this._persistentIds,
I mean is it possible to send only one(!) last viewed persistent id?

I don't think so telling google that you have received a message does not mean you have received the previous ones.


Homebrew pyenv is good. Now Feature Request or Issue or Just a question...

I also had an issues attempting to build various versions. I tried 3.4.2 and others ....
But I decided to use homebrew to install the versions instead.
Now the questions is how to "link" or symlink so that pyenv can do it's job
Is this a question? or a Feature Request or not what pyenv is about ....
Homebrew makes installing of many things easy and one stop.
I have experience with rbenv so the question becomes how to use pyenv in the best way.

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

I really don't like feature request without working patch. Basically you don't have to symlink executables. As same as rbenv, pyenv has system version and it tries to find python executables from PATH as same manner as standard shell.


Fix dead letter topic keeping message in original topic

This PR adds a missing return statement that caused messages dropped into the dead letter topic to be kept and retried on the original topic.
Also adds a minor change for code readability and fixes wrong metric from Retry to Success when the app returns 2xx.

Change makes sense but I see a lot of pubsub errors in the e2e.

Yeah the e2e test needs to be rechecked.

@Taction I want to get your take on the e2e test case you wrote.
This PR fixes a bug where messages would still be kept on the original topic after an app returned an error and the topic was sent to dead letter queue. This means topics would get redelivered to the app from the original topic when they shouldn't have been.
I can confirm the correct behavior by:

Publishing 10 messages to topic X
Subscribing to topic X and returning an error, with having a dead letter topic Y configured
Confirm messages from topic X are not getting delievered
Consume 10 messages from dead letter topic Y
Confirm messages from dead letter topic Y are not getting redelivered

Looking at the e2e test logs above, it looks like the test was written to expect redelivery of messages sent to the dead letter topic. Can you confirm this needs to be changed?

@yaron2 Thanks for your fix, I'll look into the e2e tests.

@yaron2 The e2e topic check is changed, fixed now.

@yaron2 The e2e topic check is changed, fixed now.

Thanks!

@yaron2  @Taction  looks like after this PR was merged, E2E tests on AKS are now failing almost every time with errors due to PubSub.

My attempt (hoping I understood the intent correctly): https://github.com/dapr/dapr/pull/4792

I think I found the issue, it was in the tests. The messages were re-delivered in the DLQ a bit too slow and they came in too late. I increased the sleep times here: https://github.com/dapr/dapr/pull/4793


App doesn't scale on mobile browsers

Description
First of all congratulations for the very good work! I wanted to try the demo you linked, but unfortunately the app page doesn't get scaled in mobile browsers. All you can see is the sidebar

Expected behavior
The dashboard should be responsive and scale according to the screen size.
vizro version
Latest
Python version

OS
Android 12
How to Reproduce

Open the demo on a mobile browser

Output

Code of Conduct

[X] I agree to follow the Code of Conduct.

thank you @baffelli ! (and for raising the issue - the described behaviour is clear to understand)
the current version is optimised for desktop first, so currently this is expected behaviour for mobile devices (including Android and iPhone)
optimisation for mobile is on the roadmap for future development, and a pathway is identified for enabling it, so that will be added once necessary prior dependencies have been implemented, though there is no fixed timeframe for them yet (and we'll be able to revert back here as/when that is implemented)
(thanks again for raising the issue - it is very much appreciated!)

Yes looks promising although mobile viewing is not viable currently (iPhone).
For inspiration Streamlit.io have done an awesome job at auto-scaling their presentation layer.

Hello guys,
Good news! 🗞
This should look much better in the latest vizro>=0.12.0 release. A default button has been added, letting you collapse/expand the side panel. It automatically collapses for portrait mode on mobile. Everything should also be scaled better now.
It's not our fully optimized mobile solution yet, but this should already be a significant improvement in the meantime 👍


Merge multiple polygon2d in one if overlapping

Is it possible to implement a feature in Polygon2D, or maybe in math core with 2 vectorpoints in parameter to merge 2 polygons that overlap in only one?
Example

Merge and split/cut polygon could be great to have as part of Polygon2D.
Theres a gdscript utility to do the merge here, kind of old but works https://github.com/ScyDev/Godot-Scripts

First of all thank you for your report and sorry for the delay.
We released Godot 3.0 in January 2018 after 18 months of work, fixing many old issues either directly, or by obsoleting/replacing the features they were referring to.
We still have hundreds of issues whose relevance/reproducibility needs to be checked against the current stable version, and that's where you can help us.
Could you check if the issue that you described initially is still relevant/reproducible in Godot 3.0 or any newer version, and comment about it here?
For bug reports, please also make sure that the issue contains detailed steps to reproduce the bug and, if possible, a zipped project that can be used to reproduce it right away. This greatly speeds up debugging and bugfixing tasks for our contributors.
Our Bugsquad will review this issue more in-depth in 15 days, and potentially close it if its relevance could not be confirmed.
Thanks in advance.
Note: This message is being copy-pasted to many "stale" issues (90+ days without activity). It might happen that it is not meaningful for this specific issue or appears oblivious of the issue's context, if so please comment to notify the Bugsquad about it.

As it is a feature proposal, it's still relevant.

Thought so. I was wondering if such functionality had been implemented (e.g. in Geometry singleton) in the meantime.


Add topic/artificial-intelligence

AI -> ML -> DL

GGLM -> GGUF

Uncensored Models are a bit more performant than the regular models.
https://huggingface.co/TheBloke/Wizard-Vicuna-30B-Uncensored-GGUF/blob/main/Wizard-Vicuna-30B-Uncensored.Q4_K_M.gguf

Stable Diffusion
Checkpoints?
Beginner's Guide:
https://stable-diffusion-art.com/models/#Realistic_Vision


added missing german translations

Hey,
i added a few missing translations to stuff that was still in english.
The whole file should now be translated.
(Not using translator, native german)

Thank you for the PR.


Don't fetch ECS tags when they're not consumed

What does this PR do?
This avoids calling ECS ListTagsForResource when the ecs_collect_resource_tags_ec2 configuration setting is not enabled.
Motivation
I observed rate-limiting from AWS during deployments to large ECS cluster when this agent is in use. Looking at cloudtrail, it's clear that ListTagsForResource originating from the datadog agent is the culprit. While this could likely be tuned with better backoff/retry behaviour, I don't believe we even use the results from this (ecs_collect_resource_tags_ec2 is defaulted to off), so it's easier to avoid the calls altogether.
Additional Notes
There were no previous tests here, but I've added some for the new functionality. I had to slightly change the ECS client interface to make this more testable.
Possible Drawbacks / Trade-offs
It's possible that these tags are used elsewhere that I didn't notice, feel free to correct me if that's the case.
Describe how to test/QA your changes
It should be easy to run this version of the agent and check cloudtrail/logs to see that tags are not fetched.
Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

@L3n41c thanks for taking a look! I've responded inline to your comment, since there are some issues with your suggested approach.


PagerDuty alerts are stuck if I mute the alert after it's firing but before it's resolved

What did you do?

Have an Alertmanager setup that has PagerDuty as a receiver
Do something that triggers an alert that is routed to PagerDuty receiver
Mute an alert
Fix it so it'd get resolved
Alertmanager doesn't send a notification on a resolved alert as it's muted
PagerDuty doesn't know it's fixed so it's stuck there unless I manually go to PagerDuty app and resolve it there
Mute expires, so I end up with a case when the firing is no more firing, but PagerDuty thinks it's still firing and bugs me until I resolve it via PagerDuty app

The procedure I describe above is something I do constantly (as in, something breaks, I mute it so it won't annoy me with notifications as I know it's broken and I am fixing it, it's fixed before the mute is expired, and the alert is stuck in PagerDuty). For Telegram it seems ok, as nothing wrong will happen if I won't receive a resolve notification, but for PagerDuty (and I think for other similar services like OpsGenie, but I cannot verify that as I do not use it) it might be annoying as they might have their own set of alerting rules, like pinging a person every hour or sending them a push notification/SMS/call once the alert is firing.
What did you expect to see?
Alert is resolved in PagerDuty.
What did you see instead? Under which circumstances?
Alert is not resolved and is stuck, although is fixed.
Environment

System information:
Linux 5.15.0-91-generic x86_64

Alertmanager version:

alertmanager, version 0.26.0 (branch: HEAD, revision: d7b4f0c7322e7151d6e3b1e31cbc15361e295d8d)
  build user:       root@df8d7debeef4
  build date:       20230824-11:11:58
  go version:       go1.20.7
  platform:         linux/amd64
  tags:             netgo

Prometheus version:

Pretty sure it's not relevant, but:
prometheus, version 2.48.1 (branch: HEAD, revision:<PHONE_NUMBER>8f0d6be310c9d16fb48293c45c9310)
  build user:       root@71f108ff5632
  build date:       20231208-23:33:22
  go version:       go1.21.5
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels

Alertmanager configuration file:
Something similar to this (I removed some parts that are not relevant, like inhibit rules):

global:
  pagerduty_url: 'https://events.eu.pagerduty.com'

route:
  receiver: 'telegram'
  group_wait: 10s
  group_by: ['host', 'hosting', 'datacenter', 'alertname']
  repeat_interval: 1h

  routes:
    - receiver: 'telegram'
      match_re:
        severity: critical|warning
      continue: true

    - receiver: 'pagerduty'
      group_by: ['...']
      match_re:
        severity: critical
      continue: true

receivers:
  - name: 'telegram'
    telegram_configs:
      - send_resolved: true
        message: '{{ template "telegram.text" . }}'
        bot_token: 'xxxx'
        chat_id: 123

  - name: 'pagerduty'
    pagerduty_configs:
      - service_key: xxxx

templates:
  - /etc/alertmanager/templates/template.tmpl

Prometheus configuration file:

insert configuration here (if relevant to the issue)

Logs:

insert Prometheus and Alertmanager logs relevant to the issue here

In the provided config there is no send_resolved: true for the pagerduty receiver

@TheMeier yes, but it's true by default, according to https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config
Additionally, I have most of the alerts resolving itself fine if they are not sent as a batch.

This is an unfortunate side effect of how the Alertmanager works. This is a frequent complaint and fixing it requires a lot of effort.
The issue is that the Alertmanager will delete the alert from the group if:

The alert is resolved.
A notification for the group was just sent (even if the alert was not in that notification because it was muted).

If this happens while a mute time is still active the resolved alert is deleted. That means when the mute time ends it doesn't even know that this alert existed – for example – it could have been deleted 6 hours ago.
A possible fix for this is to read the nflog when checking if an alert can be deleted – however it does not work if the Alertmanager is restarted because alerts are kept in memory and not persisted to disk.


Pester testing for detection rules

Required items, please complete
Change(s):

Added GitHub Action / Workflow for testing and validating Microsoft Sentinel Detection Rules

Reason for Change(s):

This GitHub Action / Workflow helps organizations keep their detection rules structured and working.
It uses a big amount of Pester tests to validate coding standards, patterns, entities, tactics, techniques matches, etc.

Testing Completed:

[x] The Solution is fully tested and working. Ran it against the Azure/Azure-Sentinel detections folder and found many errors in the repo ;-)

[x] Checked that the validations are passing and have addressed any issues that are present:

@aprakash13 : Please review the Detections.Thanks !

@v-rucdu and @NikTripathi : Please review the Tools validations. Thanks!!

@aprakash13 : Please review the Detections.Thanks !!

@v-spadarthi - These are not Detections, this is validations.  Removing Ajeet.

@v-spadarthi - These are not Detections, this is validations. Removing Ajeet.

@v-rucdu : Please review and provide your feedback. Thanks!!

@v-rucdu : Please review and provide your feedback. Thanks!!

@v-rucdu : Please review and provide your feedback. Thanks!!

@azurekid: I know you already said the build was successful, but that was long time ago. Could you please repeat the process with the most recent GitHub content and keep us updated? We can merge this PR as soon as we get your confirmation... Thanks!!

Thanks for the update @azurekid

@mkchiliveri: Hey Mahesh as discussed with you yesterday, please have a look in the PR as it might be helpful for the validation enhancement work you are doing... Thanks!!!

@mkchiliveri  can you please address the above the comment and provide your update. thanks!!!

@mkchiliveri can you please address the above the comment and provide your update. thanks!!!

Code is also available on my Github and also available in the GitHub Marketplace
Github Marketplace

Approving as its in Tools folder... Thanks!!


Difference array implementation in Julia

@Nikola-Mircic Please avoid force pushing as this might change commit histories. If you want to safely force push, do git push --force-with-lease to not overwrite any of contributor's work


Fix patchouli book extension

(https://github.com/baileyholl/Ars-Creo/issues/12) Fixed patchouli book extension for 1.20 according to author's guide: https://vazkiimods.github.io/Patchouli/docs/upgrading/upgrade-guide-120

This was added in another PR but thank you.


runtime.js in component.json making noflo-ui build fail

https://github.com/jonnor/microflo/commit/a9822e20beb9f8795c33e68b1fe89abbd37d7ce7

Fixed long time ago


refactor(generator): prepare for dynamic query params

Part of the work for #14492, #10176
To support repeated fields and arbitrary message nesting, we will need to dynamically add the query parameters. An initializer list cannot handle that complexity.
This PR just refactors the construction of the query parameters (in generated code) to prepare for adding loops and such, e.g.: https://github.com/dbolduc/google-cloud-cpp/commit/7874e790c64a2e0a61c7da727ff471da190b35ec

This change is

Do we want to emit this code when there are no query parameters?

I do. And the ghost of @devbww would. (He would say: no default parameters for internal functions).
I think it is easier to do the same thing all the time instead of handling an empty vector as a special case.

Fair enough, but let's remove the call to TrimQueryParameters when there are no parameters. I'm pretty sure the optimizer cannot reason about a function in another TU and will have to always call it.

I am not worried about calling a function that returns immediately when compared with the subsequent network call.... but it is easy enough to do, so done.