Fix tracking of notification open

We were tracking notification taps in onPushOpen, but since we were overriding Parse's getNotification method without setting the correct intents like it's parent, onPushOpen was never getting called.
I duplicated the code from the parent that sets those intents, and moved the handling of notification opens into onPushOpen.
Fixes: https://openedx.atlassian.net/browse/MA-564

@aleffert Fixed

@1zaman Please review?

:+1:

Also, the Parse library seems to be an old version. I guess it should be updated, and defined as a Gradle dependency (along with the other static libraries).

@1zaman I cleaned this up a bit. Do you want to take a second look? There are now switch statements in the two places I expect we'll need to update for future notification types.

:+1:


ENH: the allocation to CPU is unneeded

TF could place operations to appropriate devices without setting this explicitly, the embedding op is implemented on GPU since 0.9, so the declaration could be safely omitted. Also the placement on GPU gives performance boost about 5-10% in my experiments

@madrugado There's a merge conflict in this PR.

I have tested this on a project derived from this code and it works perfectly fine.

@madrugado @hugovk @wichtounet Thanks guys, I also tested and training runs on my GPU just fine without the explicit device call.


feat: keyboard focusable heading links

What

Making the heading links focusable for navigation using a keyboard's tab button.
Keeping the anchor link in the accessibility tree while hiding the "#" symbol for the screen reader.

After
https://github.com/satnaing/astro-paper/assets/26923823/ef062564-8f9f-48ab-99d0-e881a599dd42

LGTM
Thanks!


Comments on RoutingServiceProvider

Just adding some comments to RoutingServiceProvider.

I've been meaning to do this too :)

:) I forget the return void all the time!

Other than that, looks good. Can merge after the comments :)


implement Fromio::Error for serde::Error

Would it be acceptable to implement Fromio::Error for serde::Error? This would make it easier to combine serde with reading or writing of values, something like:
fn read(value: f6, p: &Path) -> Result<f64, serde::Error> {
        let mut f = ::std::fs::File::create(p)?;
        serde_yaml::to_writer(&f, value)
}

I know there are crates to enable combining of error types, but for my use case that seems excessive, when a simple impl in serde would remove the need for such.

There is no such thing as serde::Error. There are serde::ser::Error and serde::de::Error but those are traits.

My mistake.  I was encountering a serde_yaml::Error and failed to note the yaml portion.


Change reading TFA/Combination in text and fix issues

change reading TFA files in text
change reading combination in text
change uploaded fileName to the original fileName

You can review this pullreq again. @yubowenok

Done review @djasmine

You can review this pullreq again. @yubowenok

LGTM with minor issues. You may merge after correcting them.


fix PRs failing on coverage drop

Current coverage is 98.94% (diff: 100%)

Merging #32 into master will decrease coverage by 1.05%

@@           master        #32   diff @@
========================================
  Files           2          2
  Lines          95         95
  Methods         0          0
  Messages        0          0
  Branches        0          0
========================================
- Hits           95         94     -1
- Misses          0          1     +1
  Partials        0          0

Powered by Codecov. Last update 5e2caa3...d879830

Current coverage is 98.94% (diff: 100%)

Merging #32 into master will decrease coverage by 1.05%

@@           master        #32   diff @@
========================================
  Files           2          2
  Lines          95         95
  Methods         0          0
  Messages        0          0
  Branches        0          0
========================================
- Hits           95         94     -1
- Misses          0          1     +1
  Partials        0          0

Powered by Codecov. Last update 5e2caa3...d879830

Current coverage is 96.84% (diff: 100%)

Merging #32 into master will decrease coverage by 3.15%

@@           master        #32   diff @@
========================================
  Files           2          2
  Lines          95         95
  Methods         0          0
  Messages        0          0
  Branches        0          0
========================================
- Hits           95         92     -3
- Misses          0          3     +3
  Partials        0          0

Powered by Codecov. Last update 5e2caa3...db3b7f9

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...090eb8e

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...090eb8e

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...9c28bcc

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...7398291

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...7398291

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...77d1350

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...77d1350

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...bf417bf

Current coverage is 58.94% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.05%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         95
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         56    -39
- Misses       0         39    +39
  Partials     0          0

Powered by Codecov. Last update ab12e28...bf417bf

Current coverage is 58.24% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.75%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         91     -4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         53    -42
- Misses       0         38    +38
  Partials     0          0

Powered by Codecov. Last update ab12e28...347dc6f

Current coverage is 58.24% (diff: 100%)

Merging #32 into dev will decrease coverage by 41.75%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         91     -4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
- Hits        95         53    -42
- Misses       0         38    +38
  Partials     0          0

Powered by Codecov. Last update ab12e28...54e37eb

Current coverage is 96.96% (diff: 25.00%)

Merging #32 into dev will decrease coverage by 3.03%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         99     +4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         96     +1
- Misses       0          3     +3
  Partials     0          0

Powered by Codecov. Last update ab12e28...085a171

Current coverage is 96.96% (diff: 25.00%)

Merging #32 into dev will decrease coverage by 3.03%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         99     +4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         96     +1
- Misses       0          3     +3
  Partials     0          0

Powered by Codecov. Last update ab12e28...085a171

Current coverage is 96.96% (diff: 25.00%)

Merging #32 into dev will decrease coverage by 3.03%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         99     +4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         96     +1
- Misses       0          3     +3
  Partials     0          0

Powered by Codecov. Last update ab12e28...e5d6b54

Current coverage is 96.96% (diff: 25.00%)

Merging #32 into dev will decrease coverage by 3.03%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95         99     +4
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         96     +1
- Misses       0          3     +3
  Partials     0          0

Powered by Codecov. Last update ab12e28...0e4b32a

Current coverage is 90.65% (diff: 16.66%)

Merging #32 into dev will decrease coverage by 9.34%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95        107    +12
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         97     +2
- Misses       0         10    +10
  Partials     0          0

Powered by Codecov. Last update ab12e28...a59d49e

Current coverage is 90.65% (diff: 16.66%)

Merging #32 into dev will decrease coverage by 9.34%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95        107    +12
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         97     +2
- Misses       0         10    +10
  Partials     0          0

Powered by Codecov. Last update ab12e28...37314a7

Current coverage is 95.04% (diff: 16.66%)

Merging #32 into dev will decrease coverage by 4.95%

@@           dev        #32   diff @@
=====================================
  Files        2          2
  Lines       95        101     +6
  Methods      0          0
  Messages     0          0
  Branches     0          0
=====================================
+ Hits        95         96     +1
- Misses       0          5     +5
  Partials     0          0

Powered by Codecov. Last update ab12e28...c7000f1


Configure Persistent Storage of Zeppelin Components

To enable resiliency in a containerized environment, Zeppelin should be backed with persistent storage

This has been implemented


watching stops without any notification

Already saw multiple times that the watcher just stops ... without crashing / notifying ...
Idk how to reproduce that, but it happens regularly ... and it does not happen for kube-proxy so either there is a bug in this library or kube-proxy go-lang code has some smart disconnect handling
atm using below and calling .restart every x minutes
class KubernetesWatcher
  def initialize(kuber_client, namespace)
    @kuber_client = kuber_client
    @namespace = namespace
  end

  def watch(&block)
    loop do
      @watcher = @kuber_client.watch_endpoints(namespace: @namespace)
      @watcher.each(&block)
    end
  end

  def restart
    @watcher.finish
  end
end

idk how to fix/debug this further but wanted to raise awareness.

cc @cben @agrare @moolitayer

@grosser when you say "just stops" do you mean .each { block... } returns at some point?
or keeps running but never calls the block?
Which kubernetes version are you connecting to?  And which ruby you're running?
don't know if related but I run oc get pod --watch yesterday and noticed it just exited after some time.

idk if the block stops or it just idles ... I'll try to find out ... if
that's the problem then it's easy to fix :D
On Thu, Nov 2, 2017 at 3:35 PM, Beni Cherniavsky-Paskin <
<EMAIL_ADDRESS>wrote:

@grosser https://github.com/grosser when you say "just stops" do you
mean .each { block... } returns at some point?
or keeps running but never calls the block?
Which kubernetes version are you connecting to? And which ruby you're
running?
don't know if related but I run oc get pod --watch yesterday and noticed
it just exited after some time.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abonas/kubeclient/issues/273#issuecomment-341578312,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAsZ4AOcWzGSn82WkeHSt3-l4JrUOXVks5sykOngaJpZM4QQWhG
.

Actually I am not sure we want to add this in the lib. How would you know that there was a disconnection? (Maybe some message was lost, etc.). I would keep this as is.

then we should call that out in the readme ... "watcher will stop when it
is disconnected, run it in a loop to make sure it stays running" or so
On Fri, Nov 3, 2017 at 5:17 AM, Federico Simoncelli <
<EMAIL_ADDRESS>wrote:

Actually I am not sure we want to add this in the lib. How would you know
that there was a disconnection? (Maybe some message was lost, etc.). I
would keep this as is.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/abonas/kubeclient/issues/273#issuecomment-341687956,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAsZwUVxUKbjxfeiSU_FDqn_PFVDLOyks5sywRSgaJpZM4QQWhG
.

then we should call that out in the readme ... "watcher will stop when it
is disconnected, run it in a loop to make sure it stays running" or so

Definitely :+1:

I wrote a service which watches namespaces, for the purpose of emitting a continuous stream of events so a person (the next day) can see when his pod restarted, and for what reason, my complaint here is that yes, mine watch loop is in an infinite loop, but when the loop starts again, you end up getting the same data you previously emitted because they overlap, this stinks, to work around it, I'm generating a hash and drop the "already read" events.  Anyone have a better idea?

ignore first events after restart ... not perfect but maybe better if missing an event is not that critical

  loop do
      ignore_until = Time.now.to_f + 0.5 # re-processing happens in the first 0.4s
      kuber_client.watch_endpoints.each do |e|
        next if Time.now.to_f < ignore_until
        puts e
      end
  end

store the timestamp of the last received event and reject all before that on restart

I've seen this happening with curl after little over an hour in kubernetes v1.7.6+a08f5eeb62
$ time curl -k -s -H "Authorization: Bearer $OSH_TOKEN"     https://$OSH_HOST:8443/api/v1/pods?watch=139024
...
real	71m49.189s
user	0m0.336s
sys	0m0.332s

This suggests this is caused by a k8s issue.

@agrare @ladas FYI the pod watch in ManageIQ will probably encounter this issue and restart the collection worker(which sounds asymptomatic)

Thanks @moolitayer, we're okay because if the thread exits it will be restarted and currently we don't process the initial list of pods.
This is a little concerning when we move to using watches as the primary mechanism for refresh because then we will be processing the entire initial set every hour.  Basically the same scheduled full refresh we do today :worried:

Hey,
So I just wanted to add my latest finding here.
The logs are below, but long story short, the latest resource is 44924022, however if you use that as your starting point, k8s returns 410 GONE (because these particularly resources haven't been updated in quite some time).
The only way to get a watcher started then is to use 0, which returns you ALL the objects.
You'll then need to filter the returned objects to be >= 44924022.
I, [2018-10-16T22:01:26.119618 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 44924022
E, [2018-10-16T22:01:26.882520 #98517] ERROR -- : [App::ApiWatcher#block in watch_from] /apis/atcloud.io/v1/services getting 410 GONE responses for the latest offset 44924022, will restart from 0 which is the next known offset.  Some events may have been missed!
I, [2018-10-16T22:01:26.882659 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 0
I, [2018-10-16T22:01:27.160224 #98517]  INFO -- : [Handlers::Slack#create_apis_atcloud_io_v1_services] shippr-simple
I, [2018-10-16T22:01:27.763382 #98517]  INFO -- : [SlackAPI#parse] 200 OK: ok
I, [2018-10-16T22:01:27.763739 #98517]  INFO -- : [Handlers::Slack#create_apis_atcloud_io_v1_services] platform-testing
I, [2018-10-16T22:01:28.021200 #98517]  INFO -- : [SlackAPI#parse] 200 OK: ok
W, [2018-10-16T22:03:00.473269 #98517]  WARN -- : [App::Runner#block in setup_watch_thread] /apis/atcloud.io/v1/services stopped, will restart from 44891278
I, [2018-10-16T22:03:00.473339 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 44891278
E, [2018-10-16T22:03:00.916934 #98517] ERROR -- : [App::ApiWatcher#block in watch_from] /apis/atcloud.io/v1/services getting 410 GONE responses for the latest offset 44891278, will restart from 44924022 which is the next known offset.  Some events may have been missed!
I, [2018-10-16T22:03:00.917068 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 44924022
E, [2018-10-16T22:03:01.411459 #98517] ERROR -- : [App::ApiWatcher#block in watch_from] /apis/atcloud.io/v1/services getting 410 GONE responses for the latest offset 44924022, will restart from 0 which is the next known offset.  Some events may have been missed!
I, [2018-10-16T22:03:01.411611 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 0
I, [2018-10-16T22:03:01.641530 #98517]  INFO -- : [Handlers::Slack#create_apis_atcloud_io_v1_services] platform-testing
I, [2018-10-16T22:03:01.978240 #98517]  INFO -- : [SlackAPI#parse] 200 OK: ok
I, [2018-10-16T22:03:01.978561 #98517]  INFO -- : [Handlers::Slack#create_apis_atcloud_io_v1_services] shippr-simple
I, [2018-10-16T22:03:02.520127 #98517]  INFO -- : [SlackAPI#parse] 200 OK: ok
W, [2018-10-16T22:04:30.996193 #98517]  WARN -- : [App::Runner#block in setup_watch_thread] /apis/atcloud.io/v1/services stopped, will restart from 44924022
I, [2018-10-16T22:04:30.996243 #98517]  INFO -- : [App::ApiWatcher#watch_from] /apis/atcloud.io/v1/services watch will start from offset: 44924022
E, [2018-10-16T22:04:31.654225 #98517] ERROR -- : [App::ApiWatcher#block in watch_from] /apis/atcloud.io/v1/services getting 410 GONE responses for the latest offset 44924022, will restart from 0 which is the next known offset.  Some events may have been missed!

Does anyone know if resourceVersion is unique to the kind, eg a v1/secret, or is it incrementing across all objects?

reading https://github.com/abonas/kubeclient/issues/273 it looks like you can specify a timeoutSeconds on the watch api call?

Does anyone know if the resourceVersion ever rolls back over.  At the moment quite a bit of my de-dupe code is basically resourceVersion > lastStoredResourceVersion?

The answers in this discussion: https://github.com/kubernetes/website/pull/6540#discussion_r160742783 explain some things well.

Does anyone know if resourceVersion is unique to the kind, eg a v1/secret, or is it incrementing across all objects?

By default shared for many collections, but might be separate, for example Events have independent version by default.  Do not assume any relation between versions of different collections.

resourceVersion > lastStoredResourceVersion
If that value didn't just continually increment then eventually, my app will break

So this presently works AFAIK but k8s devs are very insistent that versions are opaque strings, which might not even be integers in future, and clients shouldn't compare them for order, only equality :-(

The only way to get a watcher started then is to use 0, which returns you ALL the objects.

I think (?) you can just start a watch without specifying resourceVersion, and then you'll only get changes after now?
You can also do a list request (get_foos) and take that version.  That also loads all existing objects, but at least you get them separately from future versions.

If you don't care about the list of existing objects, there are a few api options to reduce the traffic but nothing yet in kubeclient I think: chunking #283 #356, PartialObjectMetadata https://github.com/kubernetes/kubernetes/issues/53224

I think (?) you can just start a watch without specifying resourceVersion, and then you'll only get changes after now?

Nah, my bad, that would be too convenient to be true :wink:  API docs say:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#watch-list-pod-v1-core

resourceVersion — When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

So there is slight difference between 0 and omitted but both give you old data...

FYI code I'm currently using to have cheap restarts and no re-plays on restart:
# frozen_string_literal: true

module Watching
  def initialize(*)
    super
    @started = latest_resource_version
    @last_stats_sent = Time.now
  end

  private

  def watch_resource(type)
    loop do
      get_json(type, watch: true, resource_version: @started) do |notice|
        if notice[:type] == "ERROR" && notice.dig(:object, :code) == 410 # version was too old, watch will stop
          @started = latest_resource_version
        else
          @started = notice.dig(:object, :metadata, :resourceVersion)
          yield notice
        end
      end
    end
  end

  # get something cheap to get latest resourceVersion from the List object that is returned
  def latest_resource_version
    get_json(:namespaces, limit: 1, raw: true).dig(:metadata, :resourceVersion)
  end
end

Already saw multiple times that the watcher just stops ... without crashing / notifying ...
Idk how to reproduce that, but it happens regularly ... and it does not happen for kube-proxy so either there is a bug in this library or kube-proxy go-lang code has some smart disconnect handling
atm using below and calling .restart every x minutes
class KubernetesWatcher
  def initialize(kuber_client, namespace)
    @kuber_client = kuber_client
    @namespace = namespace
  end

  def watch(&block)
    loop do
      @watcher = @kuber_client.watch_endpoints(namespace: @namespace)
      @watcher.each(&block)
    end
  end

  def restart
    @watcher.finish
  end
end

idk how to fix/debug this further but wanted to raise awareness.

Is there no way to accomplish this "persistent" connection without using a loop? 😞

FYI code I'm currently using to have cheap restarts and no re-plays on restart:
# frozen_string_literal: true

module Watching
  def initialize(*)
    super
    @started = latest_resource_version
  end

  private

  def watch_resource(type)
    loop do
      get_json(type, watch: true, resource_version: @started) do |notice|
        if notice[:type] == "ERROR" && notice.dig(:object, :code) == 410 # version was too old, watch will stop
          @started = latest_resource_version
        else
          @started = notice.dig(:object, :metadata, :resourceVersion)
          yield notice
        end
      end
    end
  end

  # get something cheap to get latest resourceVersion from the List object that is returned
  def latest_resource_version
    get_json(:namespaces, limit: 1, raw: true).dig(:metadata, :resourceVersion)
  end
end

@grosser isn't there a race condition here when the latest resourceVersion changes in between and therefore you miss updates?

yes, but that would happen very rarely (when things broken down)
could improve by comparing new versions to previous started


Fix misleading SQL Lab timeout error message

The hint about CTAS is misleading as CTAS will not help. The message is from before when we allowed users to specify whether they wanted sync or async execution or their query, and CTAS meant async. Also did a bit of linting here.

Coverage increased (+0.004%) to 71.449% when pulling 5dc3149cd0b3f235e50e4094510c01b0ac723341 on mistercrunch:fix_timeout_msg into cbcc00c9290faf4d98c562df2a0f802d63669c77 on apache:master.


Fb fe codecleanup

Description
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Change Status

[x] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[ ] Test A
[ ] Test B

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

This is Forests branch but I can't see any commits made by him. I can only see Roberts commits because the branch rc-ProfileInfo-query got merged into this branch twice. There are merge conflicts, so I checked out to this branch and pulled from master to solve conflicts, and other than merging Roberts branch into this one, I don't know the purpose of this branch. There are a few boxes checked here but no description to let me know what is going on. I believe Roberts branch was for testing out the Apollo Client for RC2 if I'm correct. I'm going to hold off on merging it for now.


Unexpected behavior while measuring download time using eventListener

Hi, I hope everyone is fine. I'm using okhttp version 4.3.1. I'm trying to measure the download time for a file. For that I have used the following code:
val okHttpClientBuilder = OkHttpClient.Builder()
                .connectTimeout(5, TimeUnit.MINUTES) // connect timeout
                .writeTimeout(5, TimeUnit.MINUTES) // write timeout
                .readTimeout(5, TimeUnit.MINUTES)

                .eventListener(object : EventListener() {
                    override fun callStart(call: Call) {
                        val callTimeEnd = System.currentTimeMillis()
                        Log.v(TAG, "callTimeEnd: $callTimeEnd")
                    }

                    override fun callEnd(call: Call) {
                        val callTimeStart = System.currentTimeMillis()
                        Log.v(TAG, "callTimeEnd: $callTimeEnd")
                    }
                })

It logged the following timestamps:
callStart:<PHONE_NUMBER>750
callEnd:<PHONE_NUMBER>159
and callEnd - callStart = ~7.4seconds. My device (Android 9.0) has downloading speed of 5 Mega bits per second. File size is 25 Mega Bytes. Ideally, downloading time should be ~40 seconds. Am I missing something or do the library is doing something under the hood?
Moreover, another device (Android 8.0) with downloading speed of 20 Mega bits per second is downloading the same file in ~ 10 seconds i.e., taking longer time than Android 9.0 device. Any pointer will be appreciated.

Possibly gzip or caching? I'd suggest adding an event listener https://square.github.io/okhttp/events/ and recording the byteCount for response body.
I'm going to close this, I suggest continuing on somewhere like stackoverflow, post a link to this request and we'll check there.  But we avoid use of the issue tracker for anything other than reproducible bugs.

@yschimke I have already posted question on https://stackoverflow.com/questions/70631482/unexpected-behavior-while-measuring-download-time-using-okhttp-eventlistener-on . Please see for further comments. Thanks.


create-react-app not working to create a typescript react project. Kindly Help

The above is the screenshot of output from running  npx create-react-app types-project --template typesript
npm version: 8.15.1
Node version: v16.16.0

try removing the types-project and retry this
npx create-react-app my-app --template typescript
or try using vite it quite faster
npm create vite@latest my-vue-app -- --template react-ts

@favourite1975 I used vite shortly after creating this. I must say, a lot less boilerplate and a heck of a lot faster than CRA.  I used your command and it seems to work, must be the project name causing the issues I guess. Anyways, thanks for helping out.


[Bug]:   Stretchly crashes upon unlocking (with pauseForSuspendOrLock = false)

Version

[X] I'm using version 1.14.1

Known issues

[X] I've checked Known issues

Existing issues

[X] I've checked Existing issues

Advanced Preferences

[X] I've checked Advanced Preferences

What operating system are you using?
macOS
Operating System Version
Ventura 13.3
Reproduction steps

Have Stretchly running with pauseForSuspendOrLock = false
Lock the screen/sleep the device
Wait some period of time
Unlock/awaken the device
Immediately be presented with a Stretchly crash message
...
Reproduces how often: [What percentage of the time does it reproduce?]
Unknown, maybe 60% of the time? It does not occur every time I sleep/lock the device.

Expected Behavior
Stretchly will not crash when unlocking/awakening device
Actual Behavior
Stretchly crashes when unlocking/awakening device. I then have to manually start Stretchly.

Preferences
{
	"microbreakDuration": 180000,
	"microbreakInterval": 1200000,
	"breakDuration": 900000,
	"breakInterval": 2,
	"breakNotification": true,
	"microbreakNotification": false,
	"breakNotificationInterval": 30000,
	"microbreakNotificationInterval": 10000,
	"microbreak": true,
	"break": true,
	"microbreakStrictMode": true,
	"breakStrictMode": false,
	"morningHour": 6,
	"microbreakPostpone": true,
	"breakPostpone": true,
	"microbreakPostponeTime": 120000,
	"breakPostponeTime": 300000,
	"microbreakPostponesLimit": 1,
	"microbreakPostponableDurationPercent": 30,
	"breakPostponesLimit": 1,
	"breakPostponableDurationPercent": 30,
	"mainColor": "#1D1F21",
	"miniBreakColor": "#1D1F21",
	"transparentMode": true,
	"opacity": 0.8,
	"audio": "crystal-glass",
	"miniBreakAudio": "crystal-glass",
	"volume": 1,
	"fullscreen": false,
	"ideas": true,
	"naturalBreaks": true,
	"naturalBreaksInactivityResetTime": 300000,
	"allScreens": true,
	"useIdeasFromSettings": false,
	"language": "en",
	"notifyNewVersion": true,
	"isFirstRun": false,
	"posLatitude": 0,
	"posLongitude": 0,
	"useMonochromeTrayIcon": true,
	"useMonochromeInvertedTrayIcon": false,
	"silentNotifications": true,
	"monitorDnd": true,
	"microbreakStartSoundPlaying": false,
	"breakStartSoundPlaying": false,
	"themeSource": "system",
	"endBreakShortcut": "CmdOrCtrl+X",
	"breakWindowWidth": 1,
	"breakWindowHeight": 1,
	"checkNewVersion": true,
	"breakIdeas": [
		{
			"data": [
				"Not alone",
				"Do you find it hard to take a break alone? Try to do it with a co-worker. Aside from making it easier to stick to breaks, you will have a chance to get to know them better. Taking breaks together increases productivity."
			],
			"enabled": true
		},
		{
			"data": [
				"Step away",
				"Do you ever notice how your brain can figure things out by itself? All it takes is to step away from the computer and take a break to think about something totally unrelated."
			],
			"enabled": true
		},
		{
			"data": [
				"Microbreaks",
				"Rest is a key component in ensuring the performance of the musculoskeletal system. Frequent breaks can decrease the duration of a task and help lower the exposure to ergonomic injury risk."
			],
			"enabled": true
		},
		{
			"data": [
				"Meditation",
				"Research studies suggest that mindfulness-based exercises help decrease anxiety, depression, stress, and pain, and help improve general health, mental health, and quality of life. Not sure how to start? There are numerous apps to help you out."
			],
			"enabled": true
		},
		{
			"data": [
				"Blink",
				"Looking at screens for a long time causes you to blink less, thus exposing your eyes to the air. Blink rapidly for a few seconds to refresh the tear film and clear dust from the eye surface."
			],
			"enabled": true
		},
		{
			"data": [
				"Ergonomics",
				"Improper height and angle of the keyboard, mouse, monitor or working surface can cause health problems. Take some time to read about desk ergonomics."
			],
			"enabled": true
		},
		{
			"data": [
				"Move",
				"There are a lot of ways you can exercise within your office. Try marching in place or doing desk push-ups."
			],
			"enabled": true
		},
		{
			"data": [
				"Change",
				"Do you have a stability ball or standing work desk?
			],
			"enabled": true
		},
		{
			"data": [
				"Notice",
				"Are you daydreaming or having trouble focusing? It is a sign that you need to take a break."
			],
			"enabled": true
		},
		{
			"data": [
				"Tech",
				"How about taking a no-tech walk?"
			],
			"enabled": true
		},
		{
			"data": [
				"Metabolism",
				"Emerging research shows that sitting for long periods of time contributes to risk of metabolic syndrome, heart attack and stroke risk and overall death risk, among others. Taking regular walking breaks can help your circulation, working to counteract some of those problems."
			],
			"enabled": true
		},
		{
			"data": [
				"Active Meetings",
				"How about moving meetings from the conference room to the concourse? Walking not only burns calories but it may even foster a sense of collaboration."
			],
			"enabled": true
		},
		{
			"data": [
				"Fruit",
				"Take your time and eat some fruit. Slowly. Notice the flavor, the texture, the freshness."
			],
			"enabled": true
		},
		{
			"data": [
				"Bathrooms",
				"Walk to the farthest bathroom in the worksite facility when going to the restroom."
			],
			"enabled": true
		},
		{
			"data": [
				"Coffee break",
				"Going on coffee break? Consider doing a 5-minute walk every time you go for one."
			],
			"enabled": true
		},
		{
			"data": [
				"Colleagues",
				"Do not email or message office colleagues, walk to their desks to communicate with them."
			],
			"enabled": true
		},
		{
			"data": [
				"Learning",
				"In a study of healthy volunteers, NIH researchers found that taking short breaks, early and often, may help our brains learn new skills."
			],
			"enabled": true
		},
		{
			"data": [
				"Exercise",
				"Evidence suggests small amounts of regular exercise can bring dramatic health benefits, including measurably reducing stress."
			],
			"enabled": true
		},
		{
			"data": [
				"Repeat",
				"Have you found your stretch-ly-routine? Do not forget to repeat it for more than once to better fight effects of prolonged sitting."
			],
			"enabled": true
		},
		{
			"data": [
				"Wrist and forearm",
				"Extend your arms with the palms facing towards you, then slowly rotate the hands four times clockwise, then four times counter-clockwise."

			],
			"enabled": true
		},
		{
			"data": [
				"Mobilize",
				"For every thirty minutes of stagnation, you should have at least one minute of stimulation."
			],
			"enabled": true
		},
		{
			"data": [
				"7 Minute Workout",
				"This workout packs in a full-body exercise routine in a fraction of the time. But as with any exercise, be careful. There are numerous apps to get you started."
			],
			"enabled": true
		},
		{
			"data": [
				"Pulse",
				" Raise your pulse rate to 120 beats per minute for 20 straight minutes four or five times a week doing anything you enjoy. Regularly raising your heart rate results in improved cardiovascular health."
			],
			"enabled": true
		},
		{
			"data": [
				"Take the stairs ",
				"Studies have shown that stair climbing, which is considered vigorous-intensity physical activity, burns more calories per minute than jogging."
			],
			"enabled": true
		},
		{
			"data": [
				"Make art",
				"Art therapy is known to have great mental health benefits, especially when it comes to stress management. How about writing a quick poem, taking a picture or painting something small?"
			],
			"enabled": true
		},
		{
			"data": [
				"Declutter",
				"A clean space helps your focus at work and is often linked to positive emotions like happiness."
			],
			"enabled": true
		},
		{
			"data": [
				"Lunch outside",
				"Nature is linked to positive emotions and decreased stress and anxiety. Whenever possible, try to take your daily lunch break outside, surrounded by some greenery."
			],
			"enabled": true
		},
		{
			"data": [
				"Public transport",
				"If you use public transport regularly, you can stand instead of sitting. If it is possible, try to replace as many of your daily trips as possible with walking or cycling."
			],
			"enabled": true
		},
		{
			"data": [
				"Yawning",
				"Yawning can be really helpful, as it produces tears to help moisten and lubricate the eyes."
			],
			"enabled": true
		},
		{
			"data": [
				"Focus change",
				"Hold one finger close to the eye and focus on it. Slowly move the finger away, focus far into the distance and then back to the finger. Bring the finger back and focus on something far away."
			],
			"enabled": true
		},
		{
			"data": [
				"Palming",
				"While seated, brace elbows on the desk and close to the desk edge. Let your weight fall forward and cup hands over eyes. Close your eyes and inhale slowly through nose and hold for few seconds. Continue deep breathing."
			],
			"enabled": true
		},
		{
			"data": [
				"Hand squeezes",
				"Squeeze a pair of balled-up socks or a soft rubber ball, hold for 5 seconds. Repeat whole process a few times."
			],
			"enabled": true
		},
		{
			"data": [
				"Slow Breathing",
				"Emerging research suggests potential for use of controlled slow breathing techniques as a means of optimising physiological parameters that appear to be associated with health and longevity."
			],
			"enabled": true
		},
		{
			"data": [
				"Imaginative visualization",
				"Close your eyes and imagine yourself in a peaceful and calming place, such as a beach or a forest, focusing on the sights, sounds, and sensations of that environment."
			 Roll your shoulders forward for 10 seconds, then backward.",
			"enabled": true
		},
		{
			"data": "Raise your right arm, stretch it over your head to the left, and hold for 10 seconds. Repeat on the other side.",
			"enabled": true
		},
		{
			"data": "With your right hand, grab each finger of your left hand in turn and squeeze. Repeat on the other side.",
			"enabled": true
		},
		{
			"data": "Stand up and do a lunge. Hold for 10 seconds, then do the other leg.",
			"enabled": true
		},
		{
			"data": "Close your eyes and simply notice whatever arises in current moment, without judgement.",
			"enabled": true
		},
		{
			"data": "Focus every 20 minutes for 20 seconds on an object at 20 feet distance.",
			"enabled": true
		},
		{
			"data": "If you need help, ask for it.",
			"enabled": true
		},
		{
			"data": "Do one thing at a time.",
			"enabled": true
		},
		{
			"data": "Is your attention spent wisely?",
			"enabled": true
		},
		{
			"data": "Change your sitting posture.",
			"enabled": true
		},
		{
			"data": "Expose your eyes to natural light.",
			"enabled": true
		},
		{
			"data": "With your eyes closed, slowly and gently raise your eyes to the ceiling and back down to the floor.",
			"enabled": true
		},
		{
			"data": "With your eyes closed, slowly and gently move your eyes to the left, then slowly to the right.",
			"enabled": true
		},
		{
			"data": "Shake your hands out to get some relief.",
			"enabled": true
		},
		{
			"data": "One at a time, touch the tip of each finger to the tip of your thumb so they make an O-shape.",
			"enabled": true
		},
		{
			"data": "Make a fist and then slide your fingers up until they point toward the ceiling, like you're telling someone to stop.",
			"enabled": true
		},
		{
			"data": "Make a fist and then fan your fingers out and stretch them as far as you can.",
			"enabled": true
		},
		{
			"data": "Sit tall, arms hanging at your sides, and slowly rotate neck in one direction in a large circle.",
			"enabled": true
		},
		{
			"data": "Stand tall and slowly tilt your head toward the shoulder using the same hand until you feel a stretch.",
			"enabled": true
		},
		{
			"data": "Stand tall with your arms by your side. Squeeze your shoulder blades together and hold.",
			"enabled": true
		},
		{
			"data": "Stand tall with your arms raised along your shoulders. Move hands slightly behind your back, hold for a second and return.",
			"enabled": true
		},
		{
			"data": "Sit on the edge of your chair, twist your torso to one side and hold for 10-15 seconds. Repeat on the other side.",
			"enabled": true
		},
		{
			"data": "Stand up and put one foot on a nearby object, like a chair or step stool. Keep your knee bent and hold for 10-15 seconds.   Repeat with the other leg.",
			"enabled": true
		},
		{
			"data": "Stand facing a wall, put one foot back and the other foot forward, then lean into the wall.  Hold for 10-15 seconds. Repeat with the other arm.",
			"enabled": true
		},
		{
			"data": "Tilt your head to one side, then to the other side, and then gently tilt it forward and backward.",
			"enabled": true
		},
		{
			"data": "Reach one arm across your chest, hold onto the elbow with the other hand, and gently pull it in towards your chest. Repeat with the other arm.",
			"enabled": true
		},
		{
			"data": "Stand up, put one foot on a nearby object, like a chair or step stool, and reach down to touch your toes. Repeat with the other leg.",
			"enabled": true
		},
		{
			"data": "Stand in a doorway and place one arm on each side of the doorway, then gently lean forward until you feel a stretch in your chest.",
			"enabled": true
		},
		{
			"data": "Sit on the edge of a chair or on the floor, and place the soles of your feet together, gently pressing down with your elbows to stretch your inner thighs.",
			"enabled": true
		}
	],
	"showBreaksAsRegularWindows": false,
	"appExclusions": [],
	"appExclusionsCheckInterval": 1000,
	"pauseForSuspendOrLock": false,
	"pauseBreaksToggleShortcut": "",
	"screen": "primary",
	"timeToBreakInTray": true,
	"currentTimeInBreaks": false,
	"showTrayIcon": true,
	"__internal__": {
		"migrations": {
			"version": "1.14.1"
		}
	}
}

Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi and thanks for the report. The issue seems to be with showing time in tray, you can disable that until I find where exactly the issue happens

Also, when this happens next time, can you try opening Preferences - About - Cmd+D and copy the contents that gets shown? I am not able to figure out where the issue lies and it does not happen to me.

Unfortunately, when this happens, the Preferences option becomes greyed out. See this screenshot:

@hovancik any other troubleshooting steps I can take?

@whispy sorry I am quite busy these days. I've tried reproducing but no success.
You could try running locally and debug yourself.
The issue is that the time that is supposed to be shown in tray as icon (timeToBreakInTrayString) is for some reason getting under 0, which it should not. Looks like there is some specific case when this happen but I can't replicate that. Must be related to idle time and when your system goes to sleep, I think. (from your logs)
What icon should get used is in file app/utils/appIcon.js  and is called in main as trayIconFileName ()
Stretchly is quite complicated so hard to say where the issue starts. You could try adding some logs to see when this happens, probably values around trayIconFileName (). Time should never be negative

@whispy did you had time to debug? Is this still happening with latest Stretchly?

I don't know how to debug, unfortunately. And I am not sure if it is happening with the latest Stretchly — I have not tested it in a while

@hovancik I just checked and can confirm the crash still occurs.


version bump not using repo it is installed

Describe the bug
So we tried adding to  https://github.com/shabados/gurmukhi-utils/pull/192https://github.com/shabados/gurmukhi-utils/pull/193 https://github.com/shabados/gurmukhi-utils/pull/194 https://github.com/shabados/gurmukhi-utils/pull/195
version bump should be v3.2.0 but it is was picking up this repo's version

https://github.com/shabados/gurmukhi-utils/runs/2811421203?check_suite_focus=true

Yikes, it's probably chdir(path) or similar


changed APIs to api and Terrafrom to terraform in platform urls

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

@schoudhury will review

Looks like a good number of items need to patch. Will pick this back up in the AM.
Frequent broken links are linking to:
- ../secrets/2-add-use-text-secrets.md
- ../../secrets/2-add-use-text-secrets.md
- ../../secrets/3-add-file-secrets.md
- ../../../secrets/2-add-use-text-secrets.md
- ../../governance/14_Policy-as-code/harness-governance-quickstart.md
- ../../governance/14_Policy-as-code/harness-governance-overview.md
- ../../secrets/Secrets-Management/1-harness-secret-manager-overview.md
- ../../secrets/Secrets-Management/7-add-an-aws-kms-secrets-manager.md

Remote Build had an odd error with the images, which is there in source control.
E.g https://github.com/harness/developer-hub/blob/main/docs/platform/Governance/14_Policy-as-code/static/add-a-governance-policy-step-to-a-connector-15.png.
Error: Image docs/platform/governance/14_Policy-as-code/static/add-a-governance-policy-step-to-a-connector-15.png used in docs/platform/Governance/14_Policy-as-code/add-a-governance-policy-step-to-a-connector.md not found.

    at async Promise.all (index 0)

My local build is fine, not sure about the reconcile can look at this branch?

http://localhost:3000/docs/platform/Governance/Policy-as-code/add-a-governance-policy-step-to-a-connector

CC @rohanmaharjan100 / @wei-harness

Ah, remote file system e.g the Linux Build Machine is case sensitive for the directory name vs our Macs are not. Happened before on a user using Windows. Will update the references. We should harmonize having all lower case in the folder structures. CC @schoudhury @wei-harness

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Remove nginx setup from Macro Benchmarks ci job

The nginx is started in Macro Benchmarks job but is not actually used for server. Remove nginx mentions in the bot.yml but preserve all the nginx config in the repo for future usages and testing

/bounty 10$

@tusharmath Can I get this assigned?

Hey @tusharmath i would like work on this it will take few mins.


Sphinx Documentation

aferritto created the following on Apr 15:
Closes #97
Closes #98
Sets up initial Sphinx docs including a recursive package discovery to build docs.
I've added some dummy code to serve as an example and allow me to test building docs
This PR sets up sphinx + Google docstring style
Original issue: https://github.ibm.com/ai-foundation/PrimeQA/pull/124

PR merged, closing .


Project logo

Arguably, the most important aspect of the project!
Tentatively required for the milestone.
As an idea, could just combine symbols "3" and "rs".

Variant #1 from me:

Variant №2 (I know that three means 3, not biologic species):

Totally not inspired.

I thought about having the roman numerals III for the project logo. It didn't come out as well as I'd hoped but the idea is out there. https://github.com/three-rs/three/issues/35#issuecomment-309851441 is my favourite so far.

I'm not much of a graphics designer, so forgive me for not submitting a solid design. Maybe the Rotor in a wankle engine could be used, it has gear teeth so matches the rust sprocket design. Plus it is three sided.

Inspired by the Rust Evangelism Strike Force logo.

@alteous could you re-generate the image and just drag and drop into a comment here (to be stored forever?)

@csherratt this looks like a great start. Just need to be brushed off the high-frequency details, cleaned up, and added a bit of flavor.

Cool stuff from @brson:

Also I had the idea to put inside three circles the following logos:
Left circle: 3D glasses
Center circle: Rust logo
Right circle: Game controller
Great project though 😄 !

Extra logo

@hugoaguirre nice one! I think it worth to play with different fonts and colors

3rs.zip


fix: implement poll_flush properly

Previously, calling poll_flush on a Stream would just be a no-op. This is actually really bad because it can lead to the following race condition:

Assume you have a loop of read, write, flush
Assume that the protocol is as such that the remote can close the write side at any time, triggered an EOF for our reading and thus signalling that the protocol is now over and we can deallocate the stream
Dropping a yamux::Stream will trigger a RST/FIN flag depending on whether we have previously closed the stream

Here comes the catch: yamux::Stream and yamux::Connection are connected via a channel. yamux::Stream uses this channel to send StreamCommand::SendFrame messages. If we drop a stream directly after writing to it, it could be that a frame with the RST/FIN flag is queued before we queue the pending data / window-update frame from the StreamCommand because the garbage collection is implemented inside yamux::Connection which has direct access to the buffer for pending frames.
This PR fixes the bug by introducing a StreamCommand::Flush. This stream command contains a "flush mark" which is the number of frames that we have sent to the connection. On the connection end, we perform book keeping on how many frames we've taken out of the channel and queued for sending. We consider a stream to be flushed if all frames that have been queued for sending have been taken out of the channel by the Connection.
Some notes on the implementation:
Currently, this is implemented using simple counters in the Shared object for simplicity reasons. We could also implement this using atomic counters but I consider that an optimization that needs to be proven with benchmarks. Incrementing a single counter should be extremely quick, thus the lock is not held for very long. Additionally, streams are typically (at least in rust-libp2p) used on the same task as the connection, meaning we are unlikely to ever have any contention on this lock anyway.
Fixes: #117.

Would the following alternative approach as well be an option?

Currently we have a single channel for all streams to send StreamCommand to the connection. How about a unique channel between each stream and its connection?
Flushing a stream is simply the matter of calling Sink::poll_flush on the mpsc::Sender.
Garbage collection can use the Poll::Ready(None) returned by a mpsc::Receiver from a stream as a signal instead of Arc::strong_count.

Given that the above would not require a new command variant and would not require sending Wakers over mpsc::channels, I consider it to be simpler.
@thomaseizinger what do you think? Am I missing something?

I like that idea! Much simpler. Will implement! :)

There is one caveat. poll_flush on Sender only checks whether we can send more items into the channel, not whether they have been taken out on the Receiver end. Thus, we need to set the capacity to 0 for this to work.

I like that idea! Much simpler. Will implement! :)

There is one caveat. poll_flush on Sender only checks whether we can send more items into the channel, not whether they have been taken out on the Receiver end. Thus, we need to set the capacity to 0 for this to work.
See rust-lang/futures-rs#2504.

As far as I can tell, this should be fine. We could even not call poll_flush at all. The receiver will still receive all messages and eventually receive Poll::Ready(None). See https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=def93d1497874d26f93dabf4a74b3feb.

I like that idea! Much simpler. Will implement! :)

There is one caveat. poll_flush on Sender only checks whether we can send more items into the channel, not whether they have been taken out on the Receiver end. Thus, we need to set the capacity to 0 for this to work.
See rust-lang/futures-rs#2504.

As far as I can tell, this should be fine. We could even not call poll_flush at all. The receiver will still receive all messages and eventually receive Poll::Ready(None). See play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=def93d1497874d26f93dabf4a74b3feb.

I am not sure what you are trying to say? The point of this PR is to have poll_flush park the task if the channel is not yet empty. How can we achieve that if we don't forward to the poll_flush call in Sender?
FWIW: I attempted to fix this upstream: https://github.com/rust-lang/futures-rs/pull/2746

Garbage collection can use the Poll::Ready(None) returned by a mpsc::Receiver from a stream as a signal instead of Arc::strong_count.

Ah I forgot about this.

@mxinden This is now available for review again. I implemented your suggestion. It is the much better design :)


Auth0 settings / Basic

"Mark this if you want to enable the regular WordPress login"
Change this to something like:
"Enable to allow existing and new WordPress logins to work. If this site already had users before you installed Auth0, and you want them to still be able to use those logins, enable this."

ready for the next release


Please provide instructions for BYOS basez on az cli

Current instructions show how to configure a storage account for azure log analytics using poweshell, but no explanation about how to do that using azure CLI.
Is it possible to provide instructions for azure CLI?

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

ID: f2faf9c8-54aa-aff6-12ea-c073e1c30a23
Version Independent ID: 8e48a797-9036-e3a4-772f-07b45a246e83
Content: Configure BYOS (Bring Your Own Storage) for Profiler & Snapshot Debugger - Azure Monitor
Content Source: articles/azure-monitor/profiler/profiler-bring-your-own-storage.md
Service: azure-monitor
Sub-service: profiler
GitHub Login: @hhunter-ms
Microsoft Alias: hannahhunter

please disregard my stupidity.

@weltonrodrigo No worries! Do let us know if you have any further questions!

Closed by Customer.


python3Packages.hmmlearn: 0.2.8 -> 0.3.0

Diff: https://github.com/hmmlearn/hmmlearn/compare/0.2.8...13b56b2731716acf33fb13087fb0469c5558b320
Description of changes
ZHF: #230712
https://hydra.nixos.org/build/220632314

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 233161 run on x86_64-linux 1

4 packages built:

python310Packages.hmmlearn
python310Packages.hmmlearn.dist
python311Packages.hmmlearn
python311Packages.hmmlearn.dist

Result of nixpkgs-review pr 233161 run on aarch64-linux 1

4 packages built:

python310Packages.hmmlearn
python310Packages.hmmlearn.dist
python311Packages.hmmlearn
python311Packages.hmmlearn.dist


Policy API: No attribute definition ID existence validation on performing Update requests.

'0 OK' successful response is returned on performing Update entity requests (e.g. UpdateAttribute) if use non-existed id value (quite confusing since it doesn’t affect database and doesn’t provide proper feedback for an operation containing  e.g. id mistake)
Steps to Reproduce:

Run the backend server for the opened/platform (as described in the Readme).
Create a Namespace and an Attribute.
Perform AttributeService.UpdateAttributeValue gRPC request with filling required parameters but use not existed id value.
Invoke the request and observe response.

Actual Result:
Request unexpectedly passes and returns “0 OK” success code in response which may mislead user:

Expected Result:
Request should fail with “3 INVALID_ARGUMENT” response to give a feedback that irrelevant id was used and may require some corrections.
Additional Info:
id validation is performed properly e.g. on Deactivate Entity requests or when using parental entity ids in Create requests etc.
Correspondent JIRA issue: https://virtru.atlassian.net/browse/PLAT-3116

When I run through this scenario, it appears this is now resolved. Please reopen if you're able to reproduce @sievdokymov-virtru.


[Question] Could I translate 'a self-describing media name'->'Translated name'

CUPS version: 2.2.10
OS: Debian buster
Hi.
(I'm not native speaker. I'd appreciate it if you could understand.)
I want to translate 'iso_a4_210x297mm' -> 'A4'.
is it possible??
I found below in .../cups/locale/cups.strings file.
...
"media.iso_a4-extra_235.5x322.3mm" = "A4 (Extra)";
"media.iso_a4-tab_225x297mm" = "A4 (Tab)";
"media.iso_a4_210x297mm" = "A4";
"media.iso_a4x3_297x630mm" = "A4x3";
"media.iso_a4x4_297x841mm" = "A4x4";
"media.iso_a4x5_297x1051mm" = "A4x5";
"media.iso_a4x6_297x1261mm" = "A4x6";
"media.iso_a4x7_297x1471mm" = "A4x7";
"media.iso_a4x8_297x1682mm" = "A4x8";
"media.iso_a4x9_297x1892mm" = "A4x9";
...

When I saw this, I guess the translation is possible.
Additionally, I also refered to  issue #3603.

Use the cupsLocalizeDestMedia function, which handles both standard and custom/dimensional sizes.

Thank you for your reply!
Previously, I tried to  cupsLocalizeDestMedia, but I was using a wrong http_t* http argument (CUPS_HTTP_DEFAULT).
Now, I found this.


Update OWNERS

I (loosebazooka) don't really participate anymore.

/lgtm

(it doesn't lgtm tho tbh)


fix: show empty canvas CTA's only on the first page while creating an app

Description
Show empty canvas CTA's only on the first page while creating an app

Store state in local storage identified by page id
Clear the state once the user adds widgets on the canvas.

Fixes #17696
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Working fine verified it on DP url.

/ok-to-test sha=a91f7de

/ok-to-test sha=6fccf79


GSL dynamic libraries are not copied to dependent targets output folder

I recently uncovered that when dynamically linking to GSL built by Vcpkg, the executables fails to launch, because the DLLs are not next to the EXEs. This is all using CMake for consuming GSL.
Please fix.

Thanks for the bug report! It should be fixed in master (package version 2.4-3) :)


JS Sound Package for API

WHEN user clicks a button to generate sandwich
THEN the user is played a short snippet of silly animal noises?

API TOO COMPLEX, running into google autoplay policy rules.


Misc

Summary by Sourcery
Enhancements:

Refactor distance calculation logic to use a unified function call for both mash and euclidean distances, reducing code duplication.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+3.1%) to 91.947%

Totals

Change from base Build<PHONE_NUMBER>8:
3.1%

Covered Lines:
1176

Relevant Lines:
1279

💛  - Coveralls


Vite is refreshing always in windows

Laravel Version: 9.27.0
PHP Version: 8.1.2
Database Driver & Version: NA
OS: Windows 11, execute directly (no docker, no sail, no WSL)

Description:
When using refresh: false in vite.config.js, the browser is still hot reloaded as soon as a file is saved.
Steps To Reproduce:
Using this vite.config.js config file, execute npm run dev and serve to see the website in the browser. Make a change in a file, save, and the browser is reloaded, although there is refresh: false in the config file.
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/js/app.js',
            ],
            refresh: false,
        }),
    ],
});

@davidjr82 are you using Tailwind CSS with Vite?
Additionally, can you provide a screenshot of the console and what it is reporting when a refresh happens.


Notebook Editor Fails to Show Popups

Feature: Add the ability to show popup windows in Notebook editor
Description
I have a notebook extension that is based on ipyauth which executes an OAuth workflow using a popup window from the Jupyter Notebook browser (via a button on a custom widget). This works fine in a browser but doesn't seem to work in the VS Code Editor. This may be by policy for the Electron web browser, but it would be useful to have a way to whitelist the popup URLs for the purpose of OAuth.

Thanks for letting us know.
We'll look into this after adding nbextensions support. (#7954)


chore: optimize make commands

📑 Description

Summary by CodeRabbit

New Features

Introduced a streamlined approach for creating various command types (e.g., policies, factories, models) using a new supportconsole.NewMake function, enhancing clarity and reducing complexity in command handling.
Added Listener() method to the Stubs struct for improved event handling capabilities.

Bug Fixes

Enhanced error handling and output expectations for command creation and stub population.

Refactor

Removed unnecessary methods related to path handling and name parsing, consolidating logic for improved maintainability across multiple command types.

Documentation

Improved code organization and test structure for better clarity and maintainability of the Make functionality in the console package.

✅ Checks

[ ] Added test cases for my code

@coderabbitai resolve