RSpec/NoExpectationExample false positives

scenario 'test' do
  method
end

private

def method
  expect(1).to eq(1)
end

This gives RSpec/NoExpectationExample but it shouldn't. :)

Similar problem then expect in after block
Something like this:
RSpec.describe do
  after do
    expect('File exists').not_to be_nil
  end

  it 'foo' do
    p 'crete_file'
  end

  it 'bar' do
    p 'crete_file another way'
  end
end

It also does not accept Capybara::Node::Matchers#assert_text as an assertion in an example like:
    it "is not authorized" do
      assert_text("You are not authorized to perform this action.")
    end

A lot of edge cases for single cop, maybe it should be disabled by default

Thanks! I missed the docs

I think we have to account for the expectations in hooks that are in scope. We have the ExpectInHook that would disallow such usage, but it would be frustrating for users to disable that cop just to have NoExpectationExample complain again.
Maybe we also should add the capybara expectations by default to the language (perhaps behind a config option). I'm on a fense for this one, as it would affect things like MultipleExpectations - perhaps the style for capybara scenarios is a bit different.
@rubocop/rubocop-rspec WDYT?

I think this would be Koch easier to check with dynamic analysis that with static analysis. @pirj Is this something that might be built into RSpec itself one day?

No, it's not possible in RSpec, too, since rspec-mocks/rspec-expectations are not the only way of making expectations, e.g. assert_nil being one I frequently see. There was a discussion about this somewhere in RSpec issue tracker, but I can't quickly find it.

I have reviewed a codebase with the cop applied, and now I think that we may add an AllowedPatterns configuration, so people can just whitelist expect_ and assert_ methods without needing to add them to Language. Though having not them in language also forces people to think how to better express them, e.g. creating custom matchers, instead of merely methods that run expectations

My case with sequel-enum_values:
I've got RSpec/NoExpectationExample: No expectation found in this example for such code:
shared_examples(
	'for all enum predicate methods'
) do |predicate_method_names, *expectations|
	predicate_method_names.each do |predicate_method_name|
		describe predicate_method_name do
			subject { item_class.new.public_send(predicate_method_name) }

			## rubocop:disable RSpec/NoExpectationExample
			specify do
				Array(expectations).each do |expectation|
					instance_exec(&expectation)
				end
			end
			## rubocop:enable RSpec/NoExpectationExample
		end
	end
end

I understand, meta-programming is difficult for linters like RuboCop.
But I've also got:

Lint/RedundantCopDisableDirective: Unnecessary disabling of RSpec/NoExpectationExample.

That's non-sense!
> bundle exec rubocop spec/sequel/plugins/enum_values_spec.rb

Inspecting 1 file
W

Offenses:

spec/sequel/plugins/enum_values_spec.rb:167:9: W: [Correctable] Lint/RedundantCopDisableDirective: Unnecessary disabling of RSpec/NoExpectationExample.
							## rubocop:disable RSpec/NoExpectationExample
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/sequel/plugins/enum_values_spec.rb:168:8: C: RSpec/NoExpectationExample: No expectation found in this example.
							specify do ...
       ^^^^^^^^^^

1 file inspected, 2 offenses detected, 1 offense autocorrectable

Unnecessary disabling of RSpec/NoExpectationExample

This would be better reported to the parent project https://github.com/rubocop/rubocop/issues/

meta-programming is difficult for linters like RuboCop.

Not only. Also for people if its sole purpose is to make things dry rather than more readable.
Looking at the spec:
status_enum_values = %w[created selected canceled]

describe 'predicate_methods option' do
  convert_enum_values_to_predicate_methods = lambda do |enum_values|
    enum_values.map { |enum_value| :"#{enum_value}?" }
  end

  status_enum_predicate_methods =
    convert_enum_values_to_predicate_methods.call status_enum_values

  include_examples 'for all enum predicate methods',
    status_enum_predicate_methods,
    -> { expect(subject).to be false }

leads me to a thought that this can be written as
status_enum_values = %w[created selected canceled]

describe 'predicate_methods option' do
  status_enum_values.each do |status_enum_value|
    subject { item_class.new.public_send("#{status_enum_value}?") }

    it 'returns false' do
      expect(subject).to be(false)
    end
  end
end

Or:
status_enum_values = %w[created selected canceled]

shared_examples 'returns false' do |status_enum_value|
  subject { item_class.new.public_send("#{status_enum_value}?") }

  it 'returns false' do
    expect(subject).to be(false)
  end
end

status_enum_values.each do |status_enum_value|
  it_behaves_like 'returns false', status_enum_value
end

Am I missing something? Do those options look worse from your perspective, @AlexWayfer ?

Can you provide an example of a spec with has_text?, @texpert ?

Can you provide an example of a spec with has_text?, @texpert ?

Well, here's one with has_link?, @pirj : - https://github.com/texpert/rails_6_rss_reader/commit/4923144a590cffce414cf0b84d4182dc52cc8c2d
When changing the has_link? to page.has_link?, we get a Rubocop failure:
Offenses:

spec/feauters/home_page_spec.rb:38:9: C: RSpec/NoExpectationExample: No expectation found in this example. (https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/NoExpectationExample)
        it 'has a `New Feed` link' do ...
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

        it 'has a `New Feed` link' do
          within('body') do
            has_link?('New Feed', exact: true)
          end
        end

Are you confident that this code is correct, @texpert ? Isn't it a no-op in terms of expectations?
Shouldn't it be expect(page).to have_link??
I have no awareness if page is the root page or how within affects that scope, unfortunately, but I'd say that within('body') doesn't do much scoping anyway, does it?

I am pretty confident, @pirj - see https://github.com/teamcapybara/capybara#querying and https://github.com/teamcapybara/capybara#scoping
Capybara's matchers are more concise and readable - https://rubydoc.info/github/teamcapybara/capybara/master/Capybara/Node/Matchers

As I can see from the source of e.g. has_link?,
      def has_link?(locator = nil, **options, &optional_filter_block)
        has_selector?(:link, locator, **options, &optional_filter_block)
      end

      def has_selector?(*args, **options, &optional_filter_block)
        make_predicate(options) { assert_selector(*args, options, &optional_filter_block) }
      end

      def make_predicate(options)
        options[:wait] = 0 unless options.key?(:wait) || session_options.predicates_wait
        yield
      rescue Capybara::ExpectationNotMet
        false
      end

just returns false that is not sufficient for RSpec to consider the example failed.
Won't
        it 'has a `New Feed` link' do
          within('body') do
            has_link?('New Feed', exact: true)
          end
        end

be equivalent to:
        it 'has a `New Feed` link' do
          within('body') do
            false
          end
        end

?
As I recall how RSpec predicate matchers work, expect(page).to have_link(...) is a just another way of writing expect(page.has_link?(...)).to be(true).
But omitting expect(page) effectively means no expectation is made.

Personally, I follow the recommendation to use helper methods that is supported by the Effective Testing with RSpec book.
However, since for static checking it creates complications, do you think we can all agree that if something is an expectation, we can name it as such?
def expect_low_value
  expect(product.value).to be_between(0, 50)
end

context 'during summer' do
  it 'has low value' do
    expect_low_value
  end
end

In such a way, we can introduce an option with a default to the cop, say, ConsiderHelperMethodsPrefixes: [expect] that would consider such helper methods as expectations.
Eventually, this can become part of the community RSpec style guide if it gets some traction.
How does that sound?

As I can see from the source of e.g. has_link?,
      def has_link?(locator = nil, **options, &optional_filter_block)
        has_selector?(:link, locator, **options, &optional_filter_block)
      end

      def has_selector?(*args, **options, &optional_filter_block)
        make_predicate(options) { assert_selector(*args, options, &optional_filter_block) }
      end

      def make_predicate(options)
        options[:wait] = 0 unless options.key?(:wait) || session_options.predicates_wait
        yield
      rescue Capybara::ExpectationNotMet
        false
      end

just returns false that is not sufficient for RSpec to consider the example failed.
Won't
        it 'has a `New Feed` link' do
          within('body') do
            has_link?('New Feed', exact: true)
          end
        end

be equivalent to:
        it 'has a `New Feed` link' do
          within('body') do
            false
          end
        end

?
As I recall how RSpec predicate matchers work, expect(page).to have_link(...) is a just another way of writing expect(page.has_link?(...)).to be(true). But omitting expect(page) effectively means no expectation is made.

Yep, @pirj ,you're right - I don't know why I was thinking these matchers are working also like expectations :(

Mildly related discussion in the style guide

expect in after block

RSpec/ExpectInHook disapproves such style, @ShockwaveNN

Does anyone want to send a PR to introduce AllowedPatterns configuration option, so with default expect_ and assert_ as @Darhazer suggests above?

If no one plans to send a PR, I will send. How do you like it?

There's no better candidate than you, @ydah with so many recent contributions, please go for it.


update documentation for hierarchical storage

modify doc for hierarchical storage, adding the configuration of tachyon.worker.data.folder

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/2645/
Test PASSed.

@haoyuan
I have made the change, Thanks

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/2649/
Test PASSed.


presistance Dark Mode #261

I have updated the Dark mode Setting to presist when ever changed or default to dark mode when not changed
issue ::- #261

I just have one question if it is switched to light mode will it persist? @Nktech-Official

yes definately

Really well done @Nktech-Official
Congrats 🎉, your PR got merged. To be eligible for the swags from ClueLess. Follow this steps.

SignIn / SignUp in ClueLess Website .

Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard !
And don’t forget to share your achievement with your friends.


request info

could someone  please put a demo in this repository?

I won't have time to create one if someone feels like doing a PR, feel free.
You can try the really basic implementation and then have a play with the props I guess.
import * as React from 'react'
import {
  StyleSheet, View
} from "react-native"
import PINCode from '@haskkor/react-native-pincode'

type IProps = {}

type IState = {}

class PinCode extends React.PureComponent<IProps, IState> {

  render() {
    return (
      <View style={{flex: 1}}>
        <PINCode
          status={'enter'}
        />
      </View>
    )
  }
}

export default PinCode

const styles = StyleSheet.create({})

You could define the status ('choose', 'enter' or 'locked') in your state and change it based on the result functions ('endProcessFunction' etc).
If you need help just post your implementation.


Clarifying Payload in Swagger Docs

Codecov Report

Merging #13 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #13   +/-   ##
=======================================
  Coverage   65.42%   65.42%
=======================================
  Files           8        8
  Lines         428      428
=======================================
  Hits          280      280
  Misses        139      139
  Partials        9        9

Impacted Files
Coverage Δ

db/db.go
40.14% <ø> (ø)
: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 3640e67...9b00725. Read the comment docs.

Codecov Report

Merging #13 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #13   +/-   ##
=======================================
  Coverage   65.42%   65.42%
=======================================
  Files           8        8
  Lines         428      428
=======================================
  Hits          280      280
  Misses        139      139
  Partials        9        9

Impacted Files
Coverage Δ

db/db.go
40.14% <ø> (ø)
: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 3640e67...9b00725. Read the comment docs.


Feature(CX-1696): Tabs V3 [StepTabs, ContentTabs, NavigationalTabs]

The type of this PR is: Feature

This PR resolves CX-1696
Description

Phone ios
https://user-images.githubusercontent.com/18648835/132239868-f6420ab1-c5cc-41bb-9a62-168fbd82efce.mp4
Tablet Android
https://user-images.githubusercontent.com/18648835/132239323-cb7ba5b8-2a4f-42bb-a6dd-c18500367f1f.mp4
PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a changelog entry below or my changes do not require one.

Changelog updates
Changelog updates

Cross-platform user-facing changes

Migrate Tabs to Palette V3 - kizito

iOS user-facing changes

Android user-facing changes

Dev changes

This PR contains the following changes:

Cross-platform user-facing changes (Migrate Tabs to Palette V3 - kizito)

  Generated by :no_entry_sign: dangerJS against b40dcf36be5430b8f6710793b0564b8c9b297072


LUCENE-10375: Write vectors to file in flush

In a previous commit, we updated HNSW merge to first write the combined segment
vectors to a file, then use that file to build the graph. This commit applies
the same strategy to flush, which lets us use the same logic for flush and
merge.

Some notes:

The HNSW format no longer needs the ability to override merge. It's still possible though -- it seems like helpful flexibility and there's precedent with other formats.
We still can't remove RandomAccessVectorValues or make it package-private to HNSW. This is because SortingVectorValues assumes its input supports random access. We can improve this later as part of LUCENE-9583.

Well, it's certainly a nice cleanup. The performance results are confusing at first glance, since we now write the temp file and then copy it, but consider that now when we traverse the vectors while writing the graph, we are accessing a memory-mapped file that densely stores the vectors, where before we were accessing those same vectors through an array of pointers, requiring an extra lookup, so it seems that it's a net cost savings! awesome!

Ah right, that makes sense. Somehow I thought there'd be significant overhead from decoding vectors from the on-disk format, but I guess that's not true.
Anyways, thanks for taking a look. I plan to merge in the next day if there aren't more comments.


Organize the code base into packages.

This PR is an outcome of the discussion we had previously about where to put some helper functions, without having to do heavyweight importing.  I was about to write the unit tests for the helper functions, but decided that instead of kicking this can down the road, let's just bite the bullet and reorganize our code into proper packages now (vs a monolithic pile).

The new structure is below.  This very cleanly separates out our modules.  The benefit is that we can put service or helper code apart from the handlers, and use them without having to import an entire handler.  I will do this for the resource_dicts in the next PR.

  ufo
     |__ database
     |__ handlers
     |__ services

Having high test coverage in place is awesome!  They make sweeping changes like this really easy and safe to do!

I have tested as much locally and on heroku instance as possible.  The only thing I have not touched are the webdriver tests, which I'm not sure are in working state given the UI work that are in progress.

Looks great to me overall! Can I make a request though: since you're going this far, would you mind fixing the imports for app, db, and setup_required if possible? They technically should be imported via import ufo and referenced as ufo.app, ufo.db, and ufo.setup_required since they are each fields/functions in a module rather than a class. If not, it is no big deal. :+1:

Reviewed 48 of 48 files at r1.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

ufo/handlers/init.py, line 1 [r1] (raw file):
Nit: New line at end of file.

ufo/services/init.py, line 1 [r1] (raw file):
Nit: New line at end of file.

Comments from the review on Reviewable.io

Thanks for the review!  Yes, I can fix the imports.  But let me do that separately from this PR as there are lot of changes in the body of the code.  Otherwise if something goes wrong, I have to rollback the entire change in the worst case.

Review status: 23 of 27 files reviewed at latest revision, 2 unresolved discussions.

ufo/handlers/init.py, line 1 [r1] (raw file):
Done.

ufo/services/init.py, line 1 [r1] (raw file):
Done.

Comments from the review on Reviewable.io


Fixed project version number

cxxopts.hpp still exports version 3.0.0.

This change is

Thanks, but I'll bump the patch number and do another release.


fix(mutations): Refetch instances to optimize the return value

Refetch instances after the mutation to make sure we optimize the result.
Without this, annotated fields would not exist in the return value and would fail to be returned.
I'm also modifying a test to include an annotated field. Without this change applied it would fail.
Fix https://github.com/strawberry-graphql/strawberry-django/issues/635
Summary by Sourcery
Refetch instances after mutations to ensure annotated fields are included in the return value, addressing issue #635. Introduce a refetch method to optimize the retrieval of instances post-mutation. Add a test case to verify the inclusion of the 'isDelayed' field in the mutation response.
Bug Fixes:

Refetch instances after mutations to ensure annotated fields are included in the return value, addressing issue #635.

Enhancements:

Introduce a refetch method to optimize the retrieval of instances post-mutation.

Tests:

Add a test case to verify the inclusion of the 'isDelayed' field in the mutation response.

Codecov Report
Attention: Patch coverage is 96.77419% with 1 line in your changes missing coverage. Please review.

Project coverage is 88.88%. Comparing base (0d59b84) to head (75d41c7).

Files with missing lines
Patch %
Lines

strawberry_django/mutations/fields.py
96.77%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #674      +/-   ##
==========================================
- Coverage   88.94%   88.88%   -0.07%
==========================================
  Files          41       41
  Lines        3737     3752      +15
==========================================
+ Hits         3324     3335      +11
- Misses        413      417       +4

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


Docs demo path

Changed the path for running the demos in the docs from /src to /demos

Accidentally added an extra commit


crypto/tls: improve ConnectionState docs

Issue #36736 proposes using tls.ConnectionState for extra verification during the TLS handshake. Before this is done, it would be good to improve documentation for certain fields to make it clear what the format of each field is. For example, one open question from me is whether or not each chain in VerifiedChains is of the form peer->issuer-of-peer->issuer-of-issuer-of-peer->...

You might be interested in this change @retornam.

Moving milestone to backlog.


ISSUE: Error fetching keymaster data:

Describe the bug
Entities
Environment (please complete the following information):

OS: Debian 12
Type of system that HA is running on: Rpi4
Home Assistant version: 2023.11.3
Docker / Supervised
Component version: 0.0.87
Z-Wave integration name: ZWave-JS-UI 9.3.2 / 12.3.0
Lock make and model: Schlage BE469ZP (5

Logs
Logger: custom_components.keymaster
Source: helpers/update_coordinator.py:322
Integration: keymaster (documentation, issues)
First occurred: 07:42:04 (2 occurrences)
Last logged: 07:42:04

Error fetching keymaster data:

If Keymaster debug enabled :
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 1 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 2 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 3 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 4 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 5 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 6 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 7 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 8 not enabled
2023-11-23 07:55:19.546 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 9 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 10 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 11 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 12 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 13 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 14 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 15 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 16 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 17 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 18 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 19 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 20 not enabled
2023-11-23 07:55:19.547 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 21 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 22 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 23 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 24 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 25 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 26 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 27 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 28 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 29 not enabled
2023-11-23 07:55:19.548 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 30 not enabled`

home-assistant_keymaster_2023-11-23T14-20-38.765Z.log
Which seems to me is exactly my problem but doesn't give me any clue on how solve it. More, as I have several locks it doesn't say which lock it's about.
Screenshots

Additional context
We're dealing with three cabins, Cabin1 Cabin2 and Cabin3.
One Raspberry on each cabin (because one Zwave stick per cabin because of distance and walls issues).
Cabin2 is the one running Home Assistant for everyone.
Cabin1 and Cabin3 are just running Debian12 Docker and ZwaveJS-UI (and portainer).
Cabin1 and Cabin3 have the axact same config.
Integration for Cabin1 and Cabin3 added succesfully using ws:// URL.
Zwave working fine, I can lock and unlock, it reports all status, all Zwave entities are here and oK.
Cabin 1 is the only one having issues with Keymaster.
 I manually deleted all Cabin1 keymaster entities which were unavailable while the corresponding integration (keymaster) was deleted. Rebooted each time I changed something.
Once I found Home Assistant cleaned from the integration and its entities I begun the process of re-adding it, using the same name for the lock (maybe that's the error - but ot shouldn't be), exact same parameters for the Keymaster dialog as I had screenshot the form.
Nothing changes, Cabin1 entities are still unavailable just after Keymaster integration addition.

Means your slots are not available, fix the code slots in ZwaveJS UI.

Hi,
Thanks for the quick answer.
That did the trick for one but not for the other even if...
I restarted Home Assistant
I rebooted the Cabin1 Raspberry
I reloaded the integration
I restarted Home Assistant (after Cabin1 reboot)
I reconfigured the integration (opened the dialog and validate).
Even if the slots were marked as Available in ZWaveJS UI I updated all 30 slots to Available and got 'Value updated' popup for each one.

I deleted the integration (just for this lock), restarted Home Assistant, re-added the integration with the exact same parameters... Stil no luck...Restarted HA... Nope. Gone to ZwaveJS UI to verify states, all slots marked as available, then just in case I asked for a refresh code values... Bingo !
Thanks for your help.


🐛 [firebase auth ui] Firebase auth ui and go_router

Bug report
Firebase UI auth does not work well with go_router. Cancel buttons create error "You have popped the last page off of the stack, there are no pages left to show". The file  ForgotPasswordScreen has Navigator.pop(context) and it does not return to previous screen.
Also now when using delete account in profile screen, that ends with error ChromeProxyService: Failed to evaluate expression 'util': InternalError: Expression evaluation in async frames is not supported. No frame with index 16. ChromeProxyService: Also sometimes the following error pops up Failed to evaluate expression 'TickerCanceled': InternalError: Expression evaluation in async frames is not supported. No frame with index 14
Also sometimes after user verification following errors occur ChromeProxyService: Failed to evaluate expression 'handler': InternalError: Expression evaluation in async frames is not supported. No frame with index 14..
ChromeProxyService: Failed to evaluate expression 'when': InternalError: Expression evaluation in async frames is not supported. No frame with index 14.
Steps to reproduce
Steps to reproduce the behavior:

Go to SignIn
Select Forgotten password
Select Go back
See error or incorrect behavior

Expected behavior
Comes back to signin screen
Steps to reproduce the behavior:

Go to SignIn
Sign in
In profile screen select delete account
See error or incorrect behavior

Expected behavior
Deletes account and returns to signin screen
Sample project
https://github.com/launis/firebaseuiauth
Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
```
PS C:\Users\risto\Documents\flutter\firebaseuiauth> flutter doctor -v
[√] Flutter (Channel stable, 3.7.12, on Microsoft Windows [Version 10.0.22621.1635], locale fi-FI)
    • Flutter version 3.7.12 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (3 weeks ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at C:\Users\risto\AppData\Local\Android\sdk
• Platform android-33, build-tools 33.0.1
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.5)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.5.33627.172
• Windows 10 SDK version 10.0.19041.0
[√] Android Studio (version 2021.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
[√] VS Code (version 1.78.0)
• VS Code at C:\Users\risto\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.54.0
[√] Connected device (4 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 13 (API 33) (emulator)
• Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22621.1635]
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 113.0.5672.64
• Edge (web)                   • edge          • web-javascript • Microsoft Edge 112.0.1722.68
[√] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.19.6
Flutter SDK 3.7.12
firebaseui 1.0.0+1

dependencies:
- cloud_firestore 4.6.0 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cupertino_icons 1.0.5
- firebase_auth 4.5.0 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 2.11.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_ui_auth 1.3.0 [email_validator firebase_auth firebase_core firebase_dynamic_links firebase_ui_localizations firebase_ui_oauth firebase_ui_shared flutter flutter_localizations flutter_svg]
- firebase_ui_firestore 1.4.0 [cloud_firestore firebase_ui_localizations flutter]
- flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine]
- flutter_adaptive_scaffold 0.1.3 [flutter]
- flutter_riverpod 2.3.6 [collection flutter meta riverpod state_notifier]
- freezed_annotation 2.2.0 [collection json_annotation meta]
- go_router 7.0.0 [collection flutter flutter_web_plugins logging meta]
- intl 0.17.0 [clock path]
- riverpod_annotation 2.1.1 [meta riverpod]

dev dependencies:
- build_runner 2.3.3 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_lints 2.0.1 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters collection js matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]
- freezed 2.3.3 [analyzer build build_config collection meta source_gen freezed_annotation json_annotation]
- go_router_builder 2.0.0 [analyzer async build build_config collection meta path path_to_regexp source_gen source_helper]
- json_serializable 6.6.2 [analyzer async build build_config collection json_annotation meta path pub_semver pubspec_parse source_gen source_helper]
- riverpod_generator 2.2.1 [analyzer build build_config collection crypto meta path riverpod_analyzer_utils riverpod_annotation source_gen]
- riverpod_lint 1.3.1 [analyzer analyzer_plugin collection custom_lint_builder meta path riverpod riverpod_analyzer_utils source_span yaml]

transitive dependencies:
- _fe_analyzer_shared 58.0.0 [meta]
- _flutterfire_internals 1.2.0 [collection firebase_core firebase_core_platform_interface flutter meta]
- analyzer 5.10.0 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- analyzer_plugin 0.11.2 [analyzer collection dart_style pub_semver yaml]
- args 2.4.1
- async 2.10.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- build 2.3.1 [analyzer async convert crypto glob logging meta path]
- build_config 1.1.1 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.1.1 [built_collection built_value http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.2.0 [analyzer async build collection crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.7 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.5.0 [built_collection collection fixnum meta]
- characters 1.2.1
- checked_yaml 2.0.3 [json_annotation source_span yaml]
- ci 0.1.0
- cli_util 0.4.0 [meta path]
- clock 1.1.1
- cloud_firestore_platform_interface 5.13.0 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 3.4.3 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.4.0 [built_collection built_value collection matcher meta]
- collection 1.17.0
- convert 3.1.1 [typed_data]
- crypto 3.0.3 [typed_data]
- custom_lint 0.3.4 [analyzer analyzer_plugin args async ci cli_util collection freezed_annotation json_annotation meta package_config path pub_semver pubspec_parse rxdart uuid yaml]
- custom_lint_builder 0.3.4 [analyzer analyzer_plugin collection custom_lint custom_lint_core glob hotreloader meta path pubspec_parse rxdart]
- custom_lint_core 0.3.4 [analyzer analyzer_plugin collection custom_lint matcher meta path pubspec_parse source_span yaml]
- dart_style 2.3.1 [analyzer args path pub_semver source_span]
- desktop_webview_auth 0.0.12 [crypto flutter http flutter_web_plugins plugin_platform_interface]
- email_validator 2.1.17
- fake_async 1.3.1 [clock collection]
- file 6.1.4 [meta path]
- firebase_auth_platform_interface 6.14.0 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 5.4.0 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.7.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.4.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_dynamic_links 5.2.0 [firebase_core firebase_core_platform_interface firebase_dynamic_links_platform_interface flutter meta plugin_platform_interface]
- firebase_dynamic_links_platform_interface 0.2.5 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_ui_localizations 1.4.0 [flutter flutter_localizations path]
- firebase_ui_oauth 1.3.0 [desktop_webview_auth firebase_auth firebase_ui_auth firebase_ui_shared flutter_svg flutter]
- firebase_ui_shared 1.2.0 [flutter]
- fixnum 1.1.0
- flutter_localizations 0.0.0 [flutter intl characters clock collection js material_color_utilities meta path vector_math]
- flutter_svg 1.1.6 [flutter meta path_drawing vector_math xml]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- frontend_server_client 3.2.0 [async path]
- glob 2.1.1 [async collection file path string_scanner]
- graphs 2.2.0 [collection]
- hotreloader 3.0.6 [collection logging path stream_transform vm_service watcher]
- http 0.13.6 [async http_parser meta]
- http_multi_server 3.2.1 [async]
- http_parser 4.0.2 [collection source_span string_scanner typed_data]
- io 1.0.4 [meta path string_scanner]
- js 0.6.5 [meta]
- json_annotation 4.8.1 [meta]
- lints 2.0.1
- logging 1.1.1
- matcher 0.12.13 [meta stack_trace]
- material_color_utilities 0.2.0
- meta 1.8.0
- mime 1.0.4
- package_config 2.1.0 [path]
- path 1.8.2
- path_drawing 1.0.1 [vector_math meta path_parsing flutter]
- path_parsing 1.0.1 [vector_math meta]
- path_to_regexp 0.4.0
- petitparser 5.1.0 [meta]
- plugin_platform_interface 2.1.4 [meta]
- pool 1.5.1 [async stack_trace]
- pub_semver 2.1.4 [collection meta]
- pubspec_parse 1.2.3 [checked_yaml collection json_annotation pub_semver yaml]
- riverpod 2.3.6 [meta stack_trace state_notifier]
- riverpod_analyzer_utils 0.3.0 [analyzer collection crypto custom_lint_core freezed_annotation meta path source_span]
- rxdart 0.27.7
- shelf 1.4.1 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 1.0.4 [shelf stream_channel web_socket_channel]
- sky_engine 0.0.99
- source_gen 1.3.0 [analyzer async build dart_style glob path source_span yaml]
- source_helper 1.3.3 [analyzer collection source_gen]
- source_span 1.9.1 [collection path term_glyph]
- stack_trace 1.11.0 [path]
- state_notifier 0.7.2+1 [meta]
- stream_channel 2.1.1 [async]
- stream_transform 2.1.0
- string_scanner 1.2.0 [source_span]
- term_glyph 1.2.1
- test_api 0.4.16 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 1.0.1 [json_annotation]
- typed_data 1.3.1 [collection]
- uuid 3.0.7 [crypto]
- vector_math 2.1.4
- vm_service 11.5.0
- watcher 1.0.2 [async path]
- web_socket_channel 2.4.0 [async crypto stream_channel]
- xml 6.2.2 [collection meta petitparser]
- yaml 3.1.2 [collection source_span string_scanner]

[firebase auth ui] Error reported in console when verifying email address using web app #10916 might report a similar issue

@darshankawar
I know it is frustrating for you, but I've just run here with this error
ChromeProxyService: Failed to evaluate expression 'xxxx': InternalError: Expression evaluation in async frames is not supported. No frame with index 63..
(many different 'xxxx' already popped up, it's a whack a mole, I change something, it pops somewhere else)
I will try to create something narrow, but please, don't just kill the bug (nor here, nor in flutter). There is something, let's try to find out what.
Best

@diver2
Can you take a look at https://github.com/flutter/flutter/issues/121798 and see if it helps in your case ?


Removed MaterialApp from widget tree

Hi,
is there a reason why the widget includes a MaterialApp? It's causing weird issues on my setup (Could not find a generator for route RouteSettings("/xxx", null) in the _WidgetsAppState) and I don't think it's really useful, is it?
Thanks,
Maurizio

Thank you for the Pull Request @mauriziopinotti , I'll review and test the new code.

⬆ ⬆ ⬆

I'm able to reproduce this issue. I'll try to fix it as soon as I can.


Update Input Actions to be Scriptable Objects

The Input Actions are currently setup as a struct with all the associated data.
To enable easier swap-ability, editing, and customization, it might be more beneficial to update these to be ScriptableObjects as well.
Requirements

[x] Minimal changes to profile creation workflow
[ ] Minimal code changes
[ ] No noticeable performance differences between struct vs scriptable object
[ ] InputActions can be assigned by object reference or guid.
[ ] Provide a way to convert already established /created InputAction profiles with structs to updated scriptable object references
[ ] Retain the ability for an action to raise another action should certain conditions be met (rules) in cases where a dual-axis action would raise another Up action if the Y axis is 1 and X is 0.
[ ] Incorporate expressions / rules to accommodate #258

Acceptance Criteria

[ ] Users can create new Input Actions via profile inspector
[ ] Users can assign Input Actions in Input Handler components
[ ] Devs can utilize Input Actions in code to validate input actions from event data
[ ] Devs can assign/register action specific triggers like double/long press/click etc.

Notes
Care needs to be given in to Action Configuration and Design, to ensure it's not over-complicated, especially if we are merging Actions and Rules.  Ideally, if we are chaining events it should be node based, similar to what is used in Animation for transitions.
Consideration also needs to be given towards inheritance and its role in the new Input Actions extensibility and what that would look like.

Added a few more requirements with the suggestion to merge rules and also come considerations

Found an easy way to add profile guid reference without having to do a lot of refactoring 🎉


refactor data reducer

https://github.com/apollostack/apollo-client/issues/370

Yeah I'll do that tonight

Closing this, Amanda is on it in #417


Add ability to dynamically patch a dependency

Say I have a (list of) patch I want to apply to one of the dependencies of my crate, but I can not have it merged upstream. It would be good if cargo could apply the patch at build time on this crate.
[dependencies.foobar]
version = "1.42"
patches = [
    "path/to/patch-1.patch",
    "path/to/patch-2/foobarize-a-bit-less.patch"
]

This feature would be useful in the following cases:

The maintainer of some crate is not responding but I need to ship my fix quickly;
I am working in a corporate environment, and I need to patch one of my dependencies, but I can not release this patch;
I want to tune some crate for my specific use case, but there is no way the crate maintainer can accept my patch, and I do not want to fork the crate just for this.

How this could work
The patch would only be accepted in the unified diff format, at a fixed directory level. At build time, cargo would unpack the crate sources, parse the diff and apply it to the source before proceeding with compilation.
Are there any drawback of doing this I did not though of?

We already have [replace] for this, no?

Yes, [replace] could work, but it is a bit less ergonomic: I have to pull the whole crate source somewhere (be it in tree or on github) and leave it available there until no one is using the replacement anymore.
Also, the documentation for it looks like you need to put something on git/github to use replace. I did not though of trying this with a path dependency before your message 😄

Yes this is the intended use case of [replace] currently, but one part we've always wanted is a convenient command like cargo fork which easily applies a [replace] and checks it out locally for you to use!
We already have a feature for this, though, so I'm going to close this. Let me know if it doesn't work though!

I'd like to see this issue reopened. While we do now have the [patch] manifest section, this still requires checking out the source code for the entire crate even if only a few lines of the source actually need to be modified.
This seems reasonable for individual Rust projects, however when embedded in much larger build systems that pull hundreds of packages together (e.g. buildroot, openwrt, etc) this quickly becomes unwieldy; each package could represent its own Rust project. What these build systems do is that rather than storing the entire source code for every package they modify, they only store a patch set against a specific release version for each package.
I think this would definitely help with the 2017 roadmap goal of better integration with large build systems.
I'm not sure if I should be posting this here or if I should open an new issue to open the discussion on this again but I'd love to hear some feedback.

@hetmankp it's probably best to open a new issue at this point explaining why this is needed and why [patch] doesn't work


Add secure_random() and secure_random(lower,upper) Presto functions

Add secure_random() and secure_random(lower,upper) Presto functions using the secure random functions available in the folly library. Alias secure_rand(), secure_rand(lower, upper).
Resolves : https://github.com/facebookincubator/velox/issues/5762 , https://github.com/prestodb/presto/issues/20530
Reference : https://github.com/prestodb/presto/blob/8a9e1b6feae2d6caea3d2723c5d6a129448052bb/presto-main/src/main/java/com/facebook/presto/operator/scalar/MathFunctions.java#L704
https://github.com/facebook/folly/blob/e9e2c3f5ae87aa02b3740c935296efddecefd18f/folly/Random.h

@aditi-pandit Can you take another look at this PR?

@arundpanicker : Please can you add the fuzzer output for this function https://facebookincubator.github.io/velox/develop/testing/fuzzer.html#expression-and-aggregation-fuzzer

@aditi-pandit I'm handling this one in https://github.com/facebookincubator/velox/pull/9295
We can close this one.


[python] suppress the warning about categorical feature override

C:\ProgramData\Anaconda3\lib\site-packages\lightgbm\basic.py:1555: UserWarning: categorical_feature in Dataset is overridden.
New categorical_feature is ['C01', 'C02', 'C03', 'C04', 'C05', 'C06', 'C07', 'C08', 'C09', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15', 'C16', 'C17', 'C18', 'C19', 'C20', 'C21', 'C22', 'C23', 'C24', 'C25', 'C26']
  'New categorical_feature is {}'.format(sorted(list(categorical_feature))))
C:\ProgramData\Anaconda3\lib\site-packages\lightgbm\basic.py:1286: UserWarning: Overriding the parameters from Reference Dataset.
  warnings.warn('Overriding the parameters from Reference Dataset.')
C:\ProgramData\Anaconda3\lib\site-packages\lightgbm\basic.py:1098: UserWarning: categorical_column in param dict is overridden.
  warnings.warn('{} in param dict is overridden.'.format(cat_alias))

categorical_column could be set in both lgb.train and lgb.Dataset . But this warning seems always show up if setting  categorical_column. I think this is quite annoying.

I'm willing to take this as my first contribution to the repo.
It seems a new parameter ignore_warnings detault to be True can be added to related functions, right?

From reading other issues, it seems the "correct" way of defining categorical columns is via the Dataset. This might only be a problem when the input is a Pandas dataframe.
The problem is that when calling train the categorical column defaults to auto:
categorical_feature (list of strings or int, or 'auto', optional (default="auto"))
If we had an option of None then that might be a way of getting rid of conflicting settings that require a warning.

Seems to be not a friendly way to suppress this warning:
            XX_train = XX_train[keeperCols]
            XX_valid = XX_valid[keeperCols]
            #I have only one categorical feature 'DOW'
            trainData = Dataset(XX_train,yy_train,feature_name=keeperCols,categorical_feature=['DOW'])
            valid_data = trainData.create_valid(XX_valid,label=yy_valid)
            params["seed"]=theSeed
            bst = lgb.train(params, trainData, valid_sets=[valid_data], categorical_feature=['DOW'],feature_name=keeperCols,
                            num_boost_round=BOOSTROUNDS, early_stopping_rounds=EARLYSTOPROUNDS,verbose_eval=VERBOSEEVAL)

results in these warnings:
C:\Users\meanc\anaconda3\envs\keras\lib\site-packages\lightgbm\basic.py:1551: UserWarning: Using categorical_feature in Dataset.
  warnings.warn('Using categorical_feature in Dataset.')
C:\Users\meanc\anaconda3\envs\keras\lib\site-packages\lightgbm\basic.py:1555: UserWarning: categorical_feature in Dataset is overridden.
New categorical_feature is ['DOW']
  'New categorical_feature is {}'.format(sorted(list(categorical_feature))))
C:\Users\meanc\anaconda3\envs\keras\lib\site-packages\lightgbm\basic.py:1286: UserWarning: Overriding the parameters from Reference Dataset.
  warnings.warn('Overriding the parameters from Reference Dataset.')
C:\Users\meanc\anaconda3\envs\keras\lib\site-packages\lightgbm\basic.py:1098: UserWarning: categorical_column in param dict is overridden.
  warnings.warn('{} in param dict is overridden.'.format(cat_alias))

When I do a grid search using the sklearn api and pass eval_set to fit, I get this warning for every element in the grid (many times!).
I'm just passing a dataframe with categorical features as the train X, never explicitly passing categorical_feature.
I don't think this behavior is desirable.

Indeed it's not necessary to use the sklearn API in order to reproduce the above. I've provided simple instructions in https://github.com/microsoft/LightGBM/issues/3640.

I get this warning when using scikit-learn wrapper of LightGBM. Dataset passed to LightGBM is through a scikit-learn pipeline which preprocesses the data in a pandas dataframe and produces a numpy array. Note that this input dataset which the model receives is NOT a Pandas dataframe but numpy array. I set the feature_name and categorical_feature parameters in fit() method as this is the only place these can be set, if you're not using LightGBM native Dataset creation.
I think the warning is useful in some situations but superfluous in the case mentioned above.
C:..\anaconda3\lib\site-packages\lightgbm\basic.py:1286: UserWarning: Overriding the parameters from Reference Dataset.
warnings.warn('Overriding the parameters from Reference Dataset.')
C:..\anaconda3\lib\site-packages\lightgbm\basic.py:1098: UserWarning: categorical_column in param dict is overridden.
warnings.warn('{} in param dict is overridden.'.format(cat_alias))

Hi all,
same issue here : I'm sepcifying categorical features pretty much everywhere : train and val datasets, plus in train, and I still get warnings.. Very strange.
Warnings obtained :
"Overriding the parameters from Reference Dataset.
categorical_column in param dict is overridden."
Code :
`
train_data = lgb.Dataset(train[feats], label=train[target],
feature_name=feats,
categorical_feature=cat_feats)
val_data = lgb.Dataset(val[feats], label=val[target], reference=train_data,
feature_name=feats,
categorical_feature=cat_feats)
params = {'objective': 'mean_squared_error',
'metric':'rmse', 'eta': 0.1, 'bagging_fraction': 0.5 }
num_round = 300
bst = lgb.train(params, train_data, num_round, valid_sets=[val_data], early_stopping_rounds=20,
categorical_feature=cat_feats, feature_name=feats
)
`

With multiple processes in a grid search it's not event possible to use a context manager to suppress this warning during fit, it seems that the context state is lost somehow, my notebook gets literally flooded of:
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
/Users/carlos/Base/Environments/Jampp/lib/python3.9/site-packages/lightgbm/basic.py:1702: UserWarning: Using categorical_feature in Dataset.
  _log_warning('Using categorical_feature in Dataset.')
....

As a workaround I did the following:
    class SilentRegressor(lgb.LGBMRegressor):
        def fit(self, *args, **kwargs):
            with ignore_warnings(UserWarning):
                return super().fit(*args, verbose=False, **kwargs)

I did some investigation on this issue. There're mainly two kinds of source for these warnings regarding categorical features.
If the dataset doens't have a reference, the warnings come from here:
https://github.com/microsoft/LightGBM/blob/7fa07ee2058eaacd41109347afded8c887507eba/python-package/lightgbm/basic.py#L2045-L2074
This function will be called before the Dataset.construct() is called.
One can use the following code to reproduce:
import random
import numpy as np
import pandas as pd
import lightgbm as lgb

Categorical_Feature_When_Construct_Dataset = ["a", "b", "d"]
Categorical_Feature_When_Train = 'auto'

def get_data(N):
    data = []
    labels = []
    for i in range(N):
        sample = {
            "a": random.choice([100, 200, 300, 400]),
            "b": random.choice([222, 333]),
            "c": random.random(),
        }
        if sample["a"] == 200 or sample["a"] == 300:
            if sample["b"] == 333:
                label = 1
            else:
                label = 0
        else:
            label = 0
        labels.append(label)
        data.append(sample)
    features = pd.DataFrame(data)
    features["d"] = pd.Categorical(
        [random.choice(["x", "y", "z"]) for i in range(N)], categories=["x", "y", "z"], ordered=False
    )
    labels = pd.Series(labels)
    return features, labels

N = 1000
train_features, train_labels = get_data(N)
test_features, test_labels = get_data(N)

lgb_train = lgb.Dataset(train_features, train_labels, categorical_feature=Categorical_Feature_When_Construct_Dataset)

params = {
    'boosting_type': 'gbdt',
    'objective': 'regression',
    'metric': {'l2', 'l1'},
    'num_leaves': 4,
    'learning_rate': 0.5,
    'verbose': 0,
}

gbm = lgb.train(params,
                lgb_train,
                num_boost_round=1,
                categorical_feature=Categorical_Feature_When_Train,
)

Here, if Categorical_Feature_When_Construct_Dataset doesn't equal to Categorical_Feature_When_Train, a warning will be reported. These two parameters have the same default value: auto. It becomes confusing when thw user only sets Categorical_Feature_When_Construct_Dataset, and don't set Categorical_Feature_When_Train. His expectation should be using the same categorical feature as the dataset's setting. But an warning is reported in this case because Categorical_Feature_When_Train has an default value auto, which doesn't align with Categorical_Feature_When_Construct_Dataset.
If we use cf1 to represent Categorical_Feature_When_Construct_Dataset, and cf2 to represent Categorical_Feature_When_Train, we can have the following behavior:

case
cf1
cf2
Current behavior
Warning

1
auto
auto
auto
no

2
auto
specific columns
use cf2
yes

3
specific columns
auto
use cf1
yes

4
specific columns
specific columns
use cf2
yes if cf1 and cf2 are different

For this first source, my proposal is: ** If the user is using specific columns to override "auto", we don't report the warning. Because the user is just overriding the default parameter. ** It aligns with the current behavior. What we need to do is to remove the warning information for case 2 and case 3 in the table.
The second source comes from the dataset with a reference:
https://github.com/microsoft/LightGBM/blob/7fa07ee2058eaacd41109347afded8c887507eba/python-package/lightgbm/basic.py#L1778-L1781
This is always reported if the referenced dataset has any categorical features. For the referenced dataset, its self.params is changed here:
https://github.com/microsoft/LightGBM/blob/7fa07ee2058eaacd41109347afded8c887507eba/python-package/lightgbm/basic.py#L1498-L1518
For this one, my suggestion is to ignore categorical features when comparing the params.

Thanks for your detailed analysis. I think the proposed solution is feasible!

As a workaround I did the following:
class SilentRegressor(lgb.LGBMRegressor):
    def fit(self, *args, **kwargs):
        with warnings.catch_warnings():
            warnings.filterwarnings("ignore", category=UserWarning)
            return super().fit(*args, verbose=False, **kwargs)

following code is fine, if we do not want to create a new class.
import warnings
warnings.filterwarnings("ignore", category=UserWarning)

Is this problem solved??
I still can get this warning even I set auto when construction dataset and train. It's so annoying


test force datetime format to en-us

fix datetime test failure in different culture workstation.

Is this the only class with an en-us problem?

no, I have to fix decimal separator, some odata test fail beacuse my culture setting use , (comma) instead of . (dot)
example "Microsoft.Datasync.Client.Test.Query.Extensions_Tests.ToODataString_ConstantNode(sut: 42,2, expected: "42.2f")"


Upgrade to netty-tcnative-1.1.33.Fork19

Motivation:
New version of tcnative was released.
Modifications:
Bump up version.
Result:
Use latest tncative version.

Cherry-picked into 4.1 (c221d32) and 4.0 (001973db97ca401a4626e0c529e035a9a6ac78c4)


Remove code to delete ownerReferences for orphan VMIs/DVs

What this PR does / why we need it:
This PR removes obsolete code that manually deletes VMI/DV ownerReferences when the owner VM/VMRS has been deleted with the --cascade=orphan option.
This code was introduced as workaround for kubernetes/kubernetes#56348, which has been resolved long ago, hence the workaround is not needed anymore.
Special notes for your reviewer:
There's an existing E2E test that verifies the behavior when VMs are deleted with --cascade=orphan.
Release note:
NONE

cc @rmohr

/test pull-kubevirt-generate

@zcahana I can see that the issue is indeed closed, but there seems to be several PRs that address different aspects of it.

Can you please verify that indeed the PRs cover all asspects?
Did you try the "how to reproduce" steps, listed in https://github.com/kubernetes/kubernetes/issues/56348  and made sure it's working?  (I understand there is also e2e test, but just to be on the safe side)

@zcahana I can see that the issue is indeed closed, but there seems to be several PRs that address different aspects of it.
Can you please verify that indeed the PRs cover all asspects?

Looks like there are only a single PR that addressed this, the other PRs were closed unmerged.

Did you try the "how to reproduce" steps, listed in kubernetes/kubernetes#56348 and made sure it's working? (I understand there is also e2e test, but just to be on the safe side)

Certainly, I've manually deleted VMs with --cascade=orphan, and verified that (1) they complete their deletion, and (2) their owned VMIs have their ownerReferences updated.

/lgtm

/test pull-kubevirt-e2e-k8s-1.19-sig-network

/test pull-kubevirt-e2e-k8s-1.19-sig-network

/test pull-kubevirt-e2e-k8s-1.18

/approve
thanks for the cleanup.

This bugzilla also shows when it got fixed: https://bugzilla.redhat.com/show_bug.cgi?id=1642530

/test pull-kubevirt-unit-test
/test pull-kubevirt-prom-rules-verify


KeyError: 'labels'

You did an amazing job with your research and implementing the code.
Hi..I have been trying to test and use the repository, but I am encountering an error while training the model.
======== Epoch 1 / 3 ========
KeyError                                  Traceback (most recent call last)
Cell In[22], line 3
1 for epoch_i in range(config["num_train_epochs"]):
2     print(f"======== Epoch {epoch_i + 1} / {config['num_train_epochs']} ========")
----> 3     train_info = gan_trainer.train_epoch(log_env=None)
4     result = gan_trainer.validation(log_env=None)
File ~/Desktop/pii Detection/GAN/gan-plus-nlp/base/base_trainer.py:15, in BaseTrainer.train_epoch(self, log_env)
13 self.train_mode_on()
14 for step, batch in enumerate(self.train_dataloader):
---> 15     epoch_info = self.training_step(batch, log_env)
16     self.on_epoch_end(train_info=train_info, epoch_info=epoch_info)
18 self.on_train_end(train_info)
File ~/Desktop/pii Detection/GAN/gan-plus-nlp/trainer/gan_trainer.py:155, in GANTrainerSequenceClassification.training_step(self, batch, log_env)
148 batch_size = batch["input_ids"].shape[0]
149 seq_len = batch["input_ids"].shape[1]
151 output = self.model(
152     input_ids=batch["input_ids"],
153     input_mask=batch["attention_mask"],
154     token_type_ids=batch.get("token_type_ids", None),
--> 155     labels=batch["labels"],
156     labeled_mask=batch["labeled_mask"],
157 )
158 noise = get_noise(
159     (batch_size, self.config["noise_size"]),
160     dist=self.config.get("noise_type", "uniform"),
161     range=self.config.get("noise_range", (-2, 2)),
162     device=self.device,
163 )
164 gen_states = self.generator(noise)
File ~/anaconda3/lib/python3.10/site-packages/transformers/tokenization_utils_base.py:237, in BatchEncoding.getitem(self, item)
230 """
231 If the key is a string, returns the value of the dict associated to key ('input_ids', 'attention_mask',
232 etc.).
233
234 If the key is an integer, get the tokenizers.Encoding for batch item with index key.
235 """
236 if isinstance(item, str):
--> 237     return self.data[item]
238 elif self._encodings is not None:
239     return self._encodings[item]
KeyError: 'labels'
The model has been tweaked, but I have not been able to succeed.
Can please give some guidance or workable code? thanks a lot!
Look forward to hearing from you soon!

Hi @shankara-93 !
Could you please provide more details on what model did you use?
As I can see from your error logs the dataset has no column called  'labels' (all trainers try to access 'labels' column by default). Please see example usage here.


⌨ Improvement for keyboard consistency.

Setup so that down 👇 goes down to emoji grid, up ☝ goes back up to focus the search input 🔎, left/right wraps to next/previous lines like most applications. Super easy 🍰
I noticed in my testing for the other PR's I've got queued up, it was wrapping odd. Normally the experience when using the ⌨ keyboard to navigate through editors is for the cursor to continue to the next or previous row depending on your current position, not for it to keep wrapping back to the same line. Also, it makes sense from a UI/UX perspective for the ⬆ key to actually take you back to the search field when ⬇ key removes you from it.

Makes total sense. Thank you!


Event listing participant count

Currently it shows the amount of interested users, but instead it shall show the amount of participants.

Display entire count (participants + interested ones).


Configurable WORKER_TIMEOUT

Hi guys,
I made a tiny improvement on service_streamer to make WORKER_TIMEOUT configurable. In some applications such as machine translation, prediction time can exceed WORKER_TIMEOUT. This solves the problem by making WORKER_TIMEOUT configurable for users when Streamer is created.
Sorry for dirty commits - please squash them when merging.

@yohokuno thanks for your PR.


Throws error if used under the strict mode

Try this to reproduce (3.8.x)
node --use_strict

> require('mongoose')
crypto.js:538
    function next(er, ret) {
    ^^^^^^^^
SyntaxError: In strict mode code, functions can only be declared at top level or immediately within another function.
    at runInThisContext (node.js:734:18)
    at NativeModule.compile (node.js:797:14)
    at Function.NativeModule.require (node.js:767:18)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:357:17)
    at require (module.js:373:17)
    at Object.<anonymous> (/.../mongoose/node_modules/mongodb/lib/mongodb/commands/db_command.js:5:12)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:349:32)
    at Function.Module._load (module.js:305:12)
    at Module.require (module.js:357:17)

Actually, this is an issue with NodeJS' native crypto module. FWIW I agree that hoisted function definitions are dangerous, so I'll put in a PR and see if they accept it :)

Will be fixed in mongoose 4.0 and node 0.12.1. The issue you saw was due to the aforementioned NodeJS 0.12.0 issue, but there were a couple other issues in some of mongoose's dependent modules, including the horribly outdated hooks module. Mongoose 4 should work fine in strict mode now.


[WIP][Dist] RAF Sharding - Phase 2

Description
(Brief description on what this PR is about)
This PR mainly contains the Expansion Rules and Infer Hints parts.
Checklist

[ ] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage
[ ] Code is well-documented

cc @awslabs/raf-reviewer

@hgt312 @comaniac This PR is ready except for the unit test part.


typo fix

I fixed some sentences in Turkish language.
Issue Id: #105

My prettier setup change single quotes into double quotes. If this will be problem I can change that

I understand that, I will send a clear pr. No problem


added @RequiresPlugin annotation to enforce plugin installation

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Update docker-py to 2.6.0 from 1.5.0

When using current docker version and old docker-py it is possible to get some weird errors. I am getting this one:
"Cannot link to a non running container

Here someone suggest that we sholuld use docker network instead of link.
Update would be nice, but it is hard to tell how much changes are needed to update this lib.

Are you getting the error while running the product tests?
I feel like as long as the two versions are API compatible everything should work as expected. Did you try a Travis run with the new version?

Yes, I got this error while running product tests. I haven't yet started to do anything with the new version.

Fixed with #353


[stable/velero] add option flag for crd installs for #11637 workaround

Signed-off-by: Bill Skulley<EMAIL_ADDRESS>What this PR does / why we need it:
Workaround for #11637; creates a flag createCustomResources which defaults to true.  Can be set to false to skip the creation of CRDs, useful for when the CRDs already exist (from a previous helm run, manual prestep, etc).  Marking this as a "fix" though that may be overly generous.
Which issue this PR fixes

fixes #11637

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/ok-to-test

/lgtm

/lgtm cancel

/retest

@wskulley You might need to have to tweak the CI values to avoid the CRDs.

Looks like these tests are failing due to the CRDs already being present in the test environment I0430 18:43:20.867] Error: object is being deleted: customresourcedefinitions.apiextensions.k8s.io "backups.velero.io" already exists.  This is how the chart behaves as currently released; this PR is to add an optional flag to skip the CRD installs in such a case.

@wskulley See https://github.com/helm/charts/tree/master/test "Providing Custom Test Values"

/retest

/retest

Hm.  Wondering if there are an incomplete set of valero CRDs in the test environment - enough to conflict with a blank default install, but not enough for a createCustomResources=false install to succeed.
https://github.com/helm/charts/pull/12031#issuecomment-484426536
Will continue to ponder but I may be stuck.

/retest

Cleaned up CRDs.
/retest

CI will always fail. One job creates CRD and a subsequent one fails because they are already there. Manual cleanup doesn't help here.
You should remove blank-values.yaml. It's unnecessary and doesn't add any value. We don't need three different tests. All tests should be configured such that either no CRDs are created or that they are cleaned up at the end.

/retest

/hold

I didn't want you to remove all ci values. You should have kept all but blank-values.yaml. Now I have to clean up manually again.

Apologies. The new value I had added was intended for specifically the case where the CRDs were already present (in my particular case where a previous helm run tries to take actions but the CRDs aren't fully populated and thus it fails... but leaves the CRDs).  So running with the new createCustomResources=false in a clean environment will actually fail.  I am not aware of any method to validate the presence of a CRD before attempting its creation, which would be a much better solution than this rudimentary flag.
I had not intended to tackle the removal of CRDs, but solving that problem will not actually solve the issue this PR was intended to fix.

cc @nrb

Ok, I think I see that a PR merged after this one was submitted solved the ci crd cleanup, sorry I missed that.  I have re-added the ci values (that @mattfaina had added before) for that.

/retest

Thanks for tackling this, @wskulley. I'm unsure if this is the correct fix, as upstream we're removing the 00-prereqs.yaml file that had the CRD definitions. The Velero chart should be waiting for the CRDs to be ready via the crd-install hook as of the rename, but I know you mentioned that wasn't working for you.
I'll try with a kops cluster to replicate the the timing problem, but I wasn't able to with KinD or GKE.


dependency error:

We tried to build the cqf-ruler code in eclipse we are getting the dependency error:

We tried to update the project in maven, but the below to dependency jar files are not available.

cql-engine-1.2.51-SNAPSHOT.jar
cql-engine-fhir-1.2.51-SNAPSHOT.jar
The available version is 1.2.20 but we are unable to use this version as we are getting errors.
Can we get the cql-engine-1.2.51-SNAPSHOT.jar & cql-engine-fhir-1.2.51-SNAPSHOT.jar files.

What version of Maven are you using?


Add support for terry tasks.

Add an entry to the md files with name = whatever and terry = true to add a terry-style task.

I'm fixing stuff. Wait before making other changes.


[stdlib] Simplify __SwiftNativeNSArrayWithContiguousStorage.count

There is what looks like unnecessary levels of indirection in the implementation of NSArray.count on the native Array storage class. Remove it.

@swift-ci test

@swift-ci smoke benchmark

Performance: -O

Regression
OLD
NEW
DELTA
RATIO

FlattenListLoop
4709
5186
+10.1%
0.91x (?)

NSStringConversion.Rebridge.Mutable
836
904
+8.1%
0.92x (?)

Improvement
OLD
NEW
DELTA
RATIO

LazilyFilteredArrayContains
36900
33700
-8.7%
1.09x

Array2D
8112
7520
-7.3%
1.08x

RemoveWhereSwapInts
72
67
-6.9%
1.07x (?)

MapReduce
426
397
-6.8%
1.07x

MapReduceAnyCollection
426
398
-6.6%
1.07x (?)

Code size: -O
Performance: -Osize

Improvement
OLD
NEW
DELTA
RATIO

FlattenListLoop
4432
4062
-8.3%
1.09x (?)

Array2D
7216
6624
-8.2%
1.09x (?)

RandomShuffleLCG2
800
736
-8.0%
1.09x

RemoveWhereMoveInts
40
37
-7.5%
1.08x (?)

RemoveWhereSwapInts
67
62
-7.5%
1.08x (?)

MapReduce
433
404
-6.7%
1.07x

Code size: -Osize
Performance: -Onone

Regression
OLD
NEW
DELTA
RATIO

NSStringConversion.Rebridge.Mutable
889
974
+9.6%
0.91x (?)

Improvement
OLD
NEW
DELTA
RATIO

DictionaryBridgeToObjC_Access
1260
1132
-10.2%
1.11x (?)

Code size: -swiftlibs

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB


merge Infection objects into a data structure rather than independent type of agent

No longer doing this as it would make multiple diseases harder


Pipeline response object

This allows the pipeline step to return an object with some response information. The main reason for this addition is to allow subsequent messages to be added as a thread on an initial message. It builds upon the thread support added in a recent PR.
Example usage in a Jenkinsfile:
response = slackSend botUser: true, channel: 'general', message: 'Hello' slackSend botUser: true, channel: "${response.threadId}", message: 'this is a thread response of the initial message'

Also build is failing

How have you setup your bot user?
I don't use this feature myself...
I generated an api token here:
https://api.slack.com/custom-integrations/legacy-tokens
Set it up as a secret text credential
Configured in the UI with botUser true and the new credential
Tested it in a public channel, test says success, but no test message arrives
Tested by dm'ing me, test message arrives fine
Tried to run it in a pipeline and there was a null response

yeah it took some figuring out, it seems like bot users are the most recent and recommended way to do things though.
The normal Jenkins slack app only seems to handle non-bot user messages. You have to create an app in your slack workspace to own the bot from https://api.slack.com/apps. The create new app wizard should offer bot user as a suggestion for your app.
You create a bot with whatever name you need, then go to OAuth & Permissions / Scopes and add the chat:write:bot/Send messages as... permission. Then install the app to the workspace, which will give you a Bot User OAuth Access Token. You might also have to actually invite the bot to the channel in slack.

Thanks for the instructions, I probably won't have time today to set that up, but will get to it tomorrow.
dw it'll be in soon


aya-bpf: Add helper change_proto

This patch adds a new helper function, change_proto, to the SkBuff struct in the aya-bpf crate.
The change_proto function allows changing the protocol of a socket buffer (skb) in BPF programs.
This patch also adds a corresponding wrapper for the change_proto function in the TcContext struct in the aya-bpf crate, making it accessible from TC (traffic control) programs as well.

do you have an example where you're using it?

@vadorovsky I am looking at implementing NAT64 in aya-ebpf, but I don't currently have anything concrete.
The manpage (bpf-helpers(7)) explicitly states that "The main for this helper is to perform NAT64 operations out of an eBPF program".


Add f3d

What is this VTK tool?
F3D (pronounced /fɛd/) is a fast and minimalist 3D viewer desktop application. It supports many file formats, from digital content to scientific datasets (including glTF, USD, STL, STEP, PLY, OBJ, FBX, Alembic), can show animations and support thumbnails and many rendering and texturing options including real time physically based rendering and raytracing.
What's the difference between this VTK tool and similar ones?
Enumerate comparisons.
--
Anyone who agrees with this pull request could submit an Approve review to it.

Thanks! by the way F3D (the project) is written in all caps. Should I open a PR in all caps ?

Thanks! by the way F3D (the project) is written in all caps. Should I open a PR in all caps ?

@mwestphal Yes please.


Broken pipe error when attempting to create a bunch of clients in one process

tl;dr: when I create about 500 client connections in a process I get an error: "Client: connection error: broken pipe".
I realize this is a somewhat unusual thing to do, since normally you'd just create a connection and reuse it rather than creating a bunch of them. I got into this situation because I was creating a small benchmark to compare grpc-rs and tonic where I wanted to simulate a bunch of clients. I noticed that I could create a whole bunch of simultaneous connections to the grpc-rs server, but tonic would fail. (It seems to work fine if the client connections are each in their own process, this error only occurs when the connections are created from a single process.)
I've put the implementation in this repo: https://github.com/nicholasbishop/tonic-limit-bug
The core of it is pretty simple:
async fn send_request() -> Result<(), BoxError> {
    let mut client = MockClientTonic::connect("http://[::1]:50051").await?;
    let request = tonic::Request::new(DoItRequest {});
    let _reply = client.do_it(request).await?.into_inner();
    Ok(())
}

#[tokio::main]
async fn main() -> Result<(), BoxError> {
    let num_clients = get_num_clients();

    let _server = run_server()?;
    // Give the server time to start
    delay_for(Duration::from_millis(100)).await;

    let r =
        join_all((0..num_clients).map(|_| tokio::spawn(send_request()))).await;

    for r in r {
        r??;
    }

    Ok(())
}

@nicholasbishop hey! Can you run this same test to reproduce it but this time add env_logger and run it it with RUST_LOG=hyper=debug and one run with RUST_LOG=h2=debug?

Sure, here are the logs:

https://raw.githubusercontent.com/nicholasbishop/tonic-limit-bug/master/logs/hyper-debug.log
https://raw.githubusercontent.com/nicholasbishop/tonic-limit-bug/master/logs/h2-debug.log

Ok looks like the go server is resetting the connections.
[2019-12-26T19:25:27Z DEBUG hyper::proto::h2::client] connection error: Connection reset by peer (os error 104)
Your join all will fail all clients if one of them fails. So it may make sense to modify how you do the join_all and handle the errors in the spawned task.

Makes sense. I am surprised that I don't get the same behavior when launching a bunch of clients in separate processes, but perhaps the extra time spent launching the processes is enough to avoid hammering the server with quite as many simultaneous connections.


client: hack for TriggerRecipient target parsing

Potentially an issue with the Plugin SDK? Will attempt to construct a repro example
Closes #123

Codecov Report

Merging #132 (980c089) into main (f6fbcc3) will decrease coverage by 0.29%.
The diff coverage is 41.66%.

@@            Coverage Diff             @@
##             main     #132      +/-   ##
==========================================
- Coverage   85.84%   85.55%   -0.30%
==========================================
  Files          25       25
  Lines        1816     1828      +12
==========================================
+ Hits         1559     1564       +5
- Misses        203      209       +6
- Partials       54       55       +1

Impacted Files
Coverage Δ

client/trigger.go
72.50% <41.66%> (-5.45%)
:arrow_down:

Continue to review full report at Codecov.

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


Rest API

I am trying to include RESTful server implementation using library https://github.com/chriskacerguis/codeigniter-restserver
Can you please provide some document how we can implement REST APIs.

Use issues to report bugs, please post your questions on the forums or search the forums for existing solutions.


Fix: Removed line about using condition

Our style guide had a line in it about not using the using logic for joins. We've determined that this is no longer the case and can (and should) be used.

good news everyone!!


security issue with generated metheor methods

Hello there.
Is it supposed to be that all of the gernerated Server methods leak security information? So every user - even a non authorized one - can call the generated methods from his client browser and alter my dataset! I hope I've done something wrong - if not the last 5 days of work where absolutely nonsense if I need to dig into all the generated code to find such issues.
Can anyone give me a feedback please? I'm using latest meteorkitchen and I have setup collection access rules which works well in the UI - but if you dig into the source of the generated js events you see the required methods which don't implement any authorization feature.

@adnoh Hi, thank you for reporting this, but... generated methods for insert/update/remove cannot be performed by user who doesn't have access rights. For example, if user without access rights to delete calls Meteor.call("someCollectionRemove", docId) he will get error.
However, if you want to be sure and sleep better ( :) ) you can modify following files in you meteor kitchen directory:
~/.meteor-kitchen/templates/blaze/code/collection_methods.js and
~/.meteor-kitchen/templates/react/code/collection_methods.js
With following code:
/*IMPORTS*/

Meteor.methods({
	"INSERT_METHOD_NAME": function(data) {
		if(!COLLECTION_VARIABLE.userCanInsert(this.userId, data)) {
			throw new Meteor.Error(401, "Access denied.");
		}

		return COLLECTION_VARIABLE.insert(data);
	},

	"UPDATE_METHOD_NAME": function(id, data) {
		var doc = COLLECTION_VARIABLE.findOne({ _id: id });
		if(!COLLECTION_VARIABLE.userCanUpdate(this.userId, doc)) {
			throw new Meteor.Error(401, "Access denied.");
		}

		COLLECTION_VARIABLE.update({ _id: id }, { $set: data });
	},

	"REMOVE_METHOD_NAME": function(id) {
		var doc = COLLECTION_VARIABLE.findOne({ _id: id });
		if(!COLLECTION_VARIABLE.userCanDelete(this.userId, doc)) {
			throw new Meteor.Error(401, "Access denied.");
		}

		COLLECTION_VARIABLE.remove({ _id: id });
	}
});

And I will do it too in next version of meteor kitchen.

Thank you @perak for your quick response. I will go the way to overwrite the template file to get a sleep :)
My generated Methods file looks for example
 Meteor.methods({
    "newsInsert": function(data) {
        return News.insert(data);
    },
    "newsUpdate": function(id, data) {
        News.update({ _id: id }, { $set: data });
    },
    "newsRemove": function(id) {
        News.remove({ _id: id });
    }
});

which leads me indeed to the possibility to do a Meteor.call("newsRemove", "93SHJY2Z8XZqcNrwg)) as an unauthorized user - so everyone can call the methods from their browsers.
Btw, I've stopped using Methero (and kitchen) for around 2 years - it is great to see how kitchen evolves in the meantime ;) Good work!

User can call the method but insert/update/remove will not execute because allow/deny rules are set for the collection (of course only if you defined the rules)

Sorry - maybe I'm totally misunderstanding something.
I've created a POC
AC6fccMMZd53ajCwd (Public App in Kitchen aka "SecTest"). Maybe you could have a look if something is wrong with this setup?
I get an application which is highly insecure. I can call the Metheor Methods for the above mentiod news collection from any browser without any authentication and alter the Dataset.

I just cloned your app and tried that and this is what I get:

And when directly invoking method:

@adnoh Oh no... you're right. Above is latest code (with access right check in methods)... with old code, unauthorised user is able to call method and modify collection :o fixed.... deploying fixed version...

Thank you for bug catch! :+1:

OK, deployed https://www.meteorkitchen.com/news

@perak Thank you for this quick patch. 👍  Looks good to me! I think this issue can be closed
But one little follow up - you're defining some prebuild Server Methods like sendMail (for Email Verification) - in your server.js which are also some kind of dangerous because of the leak on authentification or validation - so you're Meteor App can act as an open mail relay - which nobody realy wants in production I guess ;) It can go as far as beeing blacklisted with your mailserver on the public anti-spam lists.
sendMail simply wraps and passes everything to the Email package - I think it needs to check the DB for open Mail Verification Requests or at least lock down some settings like the sender of the mail.
I have 2 some kind of "cosmetic" issues - I don't think they are big ones and I patch it locally but I'd like to mention them for short:
in the /components/data_view_table_items.html you have a line:
 <input type="checkbox" class="inline-checkbox EDIT_BUTTON_CLASS" data-field="FIELD_NAME" {{checked FIELD_NAME}}> which leads to not showing the checkbox (because of EDIT_BUTTON_CLASS) if you don't have edit rights which is confusing in a dataview. I'd like to sugged changing this or adding something like <span>{{booleanToYesNo FIELD_NAME}}</span>
second one is in
/ui/bootstrap3/bootstrap3-plugins/bootstrap-tagsinput/bootstrap-tagsinput.js
this.$input.get(0).style.cssText = "width: " + inputWidth + " !important;";
I'd like to suggest to comment or remove this line. The inputWidth is NOT calculated on each keypress. So if you enter a tag which is a longer word it is always trimmed to the width of 3em (Linenr. 46)


dotnet CLI

This page should include the dotnet CLI commands for a new project and installing packages and so.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0888bc80-798f-ebdd-459a-7543be1efdad
Version Independent ID: c24ded82-d56c-e8c7-fd6a-e39929227177
Content: Tutorial: Build a movie recommender - matrix factorization - ML.NET
Content Source: docs/machine-learning/tutorials/movie-recommmendation.md
Product: dotnet-ml
GitHub Login: @briacht
Microsoft Alias: johalex

Thank you for the feedback @baruchiro. The CLI doesn't currently support the recommendation task. Once it does, we will add documentation for it.

@natke An ML.NET 1.1.0 tutorial for this would be nice as well. I believe it should have to do with the FieldAwareFactorizationMachineTrainer namespace.


Add chargeback report for Configured Systems

This PR adds a new chargeback report for Configured Systems - implementation for https://github.com/ManageIQ/manageiq-providers-ibm_terraform/issues/55

@gtanzillo @lpichler could you give this a look?

The provider bits look good to me, I'll let @lpichler and @gtanzillo review the chargeback changes

This is looking good. @k-chu would you have a sample report output that you can include here? Also, is there an env where there is provider data that we can use to test this out?

@lpichler Re. the UI, i will create a separate PR to address those. I have also added a new spec for ChargebackConfiguredSystems. Please let me know if i missed something. Thanks for the review.

@gtanzillo I added some screenshots to the first post. I only have the changes/provider data in my local environment, not sure if there's a way to share that.

@lpichler Re. the UI, i will create a separate PR to address those. I have also added a new spec for ChargebackConfiguredSystems. Please let me know if i missed something. Thanks for the review.

Thanks @k-chu, I added some comments, please take a look. Otherwise looks good 👍