Frequent HTTP::TimeoutError's (Read) on 1.0.x but not on 0.9.x

I've been using the 0.9.x releases for a few months now and have since upgraded to 1.0.0 and then 1.0.2. I've noticed several HTTP::TimeoutError's on 1.0.x locally but I get it almost every single time I deploy a gem that runs integration tests on CircleCI (Ubuntu). If I update the two gems I've created that depend on http and downgrade it back to add_dependency "http", '~> 0.9' all my integration tests that are making live HTTP requests consistently pass without a single timeout error. At first it seemed that the 1.0.2 release was helping but the timeout errors still occur. I'm trying to debug the issue further but figured in the meantime I'd post this and see if anyone else has had a similar issue when upgrading to 1.0.x. As I learn more I'll report back.
For configuring timeouts I went with a default of { write: 2, connect: 5, read: 10 }. Increasing the read timeout value doesn't help. Note that this is per request. While I don't have stats I know that requests don't take 10 seconds each (just the read part fails). The same timeouts are used for http 0.9.x and all integration tests pass with no frequent timeout errors.
I use http gem in the following JSON API client gems: synapse_payments and paysafe.
Using Ruby 2.2.3 in app and each gem using http gem.

How long does the request normally take, and how long before it times out? Also what version of Ruby?
There's some changes @tarcieri made around the API calls we use for timeouts, but they should work identical to before. I could believe there's a small rounding change where if you were cutting it close on timeouts, but given you said increasing it doesn't help, it's probably not that.

@javierjulio can you provide any sort of timeline of the events that are happening and how those don't line up with your described timeout model?

@zanker I don't know how long requests normally take, since I'm making requests to a sandbox service I'd say about a second or so each. Note that the timeouts are for each request (per operation). I've updated the description with this info and Ruby version (2.2.3). Thanks!
@tarcieri to be honest I don't know what the best timeouts are, I just went with what shown in the README as it seemed better than nothing. I figured I would just come back and fine tune it later. What I do know though is after upgrading to 1.0.x I consistently received HTTP::TimeoutError (Read) errors but I'm not seeing it on 0.9.x. I just deployed 3 separate branches to CircleCI that runs a fair amount of integration tests and all passed without timeout errors. Before it happened on each deploy. Having a hard time figuring out how I can get you more information. If I find out more if you have a suggestion let me know and I'll do my best to get it to you ASAP. Thanks!

@javierjulio more generally, do you think you're getting a HTTP::TimeoutError sooner than you should? I guess my question is: what's misbehaving? What do you expect, and what's actually happening?

@tarcieri that's a great question, I'm not sure. I don't believe so. I'm not expecting it to timeout. It hasn't before and when downgrading its fine. At first I thought it was service related but the third party service has been up and no reported issues any time I check. I started to suspect http since I upgrade dependencies frequently. Since I've been on 1.0.x I've had a few requests fail due to timeout errors consistently. The requests vary. I don't have more info sadly. Sorry. 😩 If I find out more I'll provide it or if any questions I can answer.

We experienced same issue. So we had to downgrade to 0.9.
It fails WAY sooner for us :connection => 15 and it fails instantly...
As soon as I will grab details on issue to be able reproduce - will add it here.

Was unable to 100% simple reproducible variant.
But following one can be used to reproduce:
# reproducible on ruby 2.1.8

url = "https://play.google.com/store/apps/" \
      "category/GAMES/collection/top?start=400&num=100&hl=en&gl=us"

42.times do
  start = Time.now.to_f
  begin
    HTTP.timeout(:read => 5, :connect => 5, :write => 5).get(url).flush
  rescue
    puts "Failed after: #{Time.now.to_f - start}"
    raise
  end
end

Fails for me with:
Failed after: 0.14695525169372559
HTTP::TimeoutError: Read timed out after 5 seconds
from /home/ixti/.gem/ruby/2.1.8/gems/http-1.0.2/lib/http/timeout/per_operation.rb:75:in `block in readpartial'

The snippet abbove reproduces error on ruby 2.1.8, 2.2.4, but not on 2.3.0.

@ixti awesome thanks! I was thinking I might be crazy. Good to know its reproducible elsewhere. I just took your same code snippet, ran it on Ruby 2.2.3 using HTTP 1.0.2 and immediately replicated the issue. It fails right away. The output from the first failure is below. I ran the snippet four more times and each one failed consistently for me.
Failed after: 0.0874330997467041
HTTP::TimeoutError: Read timed out after 5 seconds
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/timeout/per_operation.rb:75:in `block in readpartial'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/timeout/per_operation.rb:61:in `loop'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/timeout/per_operation.rb:61:in `readpartial'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/connection.rb:213:in `read_more'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/connection.rb:83:in `readpartial'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/response/body.rb:41:in `to_s'
	from /Users/javierjulio/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/http-1.0.2/lib/http/response.rb:79:in `flush'

@javierjulio thanks for the repro. Will look into it

Just to explain a bit. It fails pretty randomly:
url = "https://play.google.com/store/apps/" \
      "category/GAMES/collection/top?start=400&num=100&hl=en&gl=us"

42.times do |i|
  start = Time.now.to_f

  print format("%3d ... ", i + 1)
  begin
    HTTP.timeout(:read => 5, :connect => 5, :write => 5).get(url).flush
    puts "pass (#{Time.now.to_f - start})"
  rescue
    puts "fail (#{Time.now.to_f - start})"
    raise
  end
end

It may fail at any cycle. Absolutely randomly. So if you will remove raise from this snippet, results will look like:
  1 ... pass (0.13664865493774414)
  2 ... pass (0.15675663948059082)
  3 ... pass (0.1458735466003418)
  4 ... fail (0.13687992095947266)
  5 ... pass (0.13691043853759766)
  6 ... pass (0.13472723960876465)
  7 ... pass (0.1393880844116211)
  8 ... pass (0.14629626274108887)
  9 ... pass (0.14220976829528809)
 10 ... fail (0.16389107704162598)
 11 ... pass (0.14554977416992188)
 12 ... pass (0.1415846347808838)
 13 ... pass (0.13765287399291992)
 14 ... pass (0.14561843872070312)
 15 ... fail (0.1480247974395752)
 16 ... pass (0.17023563385009766)
 17 ... fail (0.1748495101928711)
 18 ... fail (0.15146231651306152)
 19 ... pass (0.14230012893676758)
 20 ... pass (0.14637160301208496)
 21 ... pass (0.1373133659362793)
 22 ... fail (0.16868877410888672)
 23 ... pass (0.13465023040771484)
 24 ... pass (0.14666128158569336)
 25 ... pass (0.16004157066345215)
 26 ... pass (0.15309667587280273)
 27 ... pass (0.1454617977142334)
 28 ... fail (0.1554243564605713)
 29 ... pass (0.14315485954284668)
 30 ... pass (0.15085339546203613)
 31 ... pass (0.14633703231811523)
 32 ... pass (0.1460552215576172)
 33 ... fail (0.13860630989074707)
 34 ... pass (0.16732072830200195)
 35 ... pass (0.14673137664794922)
 36 ... pass (0.2079026699066162)
 37 ... pass (0.1494007110595703)
 38 ... pass (0.14219236373901367)
 39 ... pass (0.13936614990234375)
 40 ... fail (0.13872718811035156)
 41 ... fail (0.14003658294677734)
 42 ... pass (0.143571138381958)

Notice that each cycle is pretty same in timing. So it has nothing to do with actual timing.
Also, rescue_readable of Null timeout and readpartial of PerOperation (child of Null)
seems like might to affect  each other:
# https://github.com/httprb/http/blob/master/lib/http/timeout/null.rb#L78-L83
class Null
  def rescue_readable
    yield
  rescue IO::WaitReadable
    retry if @socket.to_io.wait_readable(read_timeout)
    raise TimeoutError, "Read timed out after #{read_timeout} seconds"
  end
end

# https://github.com/httprb/http/blob/master/lib/http/timeout/per_operation.rb#L59-L78
class PerOperation < Null
  def readpartial(size)
    loop do
      # JRuby may still raise exceptions on SSL sockets even though
      # we explicitly specify `:exception => false`
      result = rescue_readable do
        @socket.read_nonblock(size, :exception => false)
      end

      if result.nil?
        return :eof
      elsif result != :wait_readable
        return result
      end

      unless @socket.to_io.wait_readable(read_timeout)
        fail TimeoutError, "Read timed out after #{read_timeout} seconds"
      end
    end
  end
end

@ixti @javierjulio if this was working on an earlier version and regressed, can either of you do a git bisect and try to find the commit that introduced the bug?

@tarcieri sure.
f4df840f104b96a4e46500e6b595691f83ee8573 is the first bad commit
commit f4df840f104b96a4e46500e6b595691f83ee8573
Author: Tony Arcieri<EMAIL_ADDRESS>Date:   Fri Dec 25 20:54:23 2015 -0800

    Use io/wait on platforms where it's available

    IO.select is an expensive call, because it has to build an fd_set (large
    bitfield) from an array each time we invoke it.

    We're just interested in IO readiness, so on Ruby 2.0+ we can use the io/wait
    API instead, which adds wait_readable/wait_writable to IO objects.

:100644 100644 aec81d476714d4bd1edba1da786c26774b82b997 e197d7ac9d8cbc41a99956b05054ff9c6f566941 M	.rubocop.yml
:040000 040000 b56dd8a64ff68fe4048bca997f1476a7073d0d13 d66955cb1686a5d387e8a04c41b266eb3b79b52e M	lib

@ixti joy! Since you have it reproed, mind playing with it a bit more?
That commit changed all 3 types of timeouts (global.rb, null.rb, and per_operation.rb). Can you try reverting the individual files there back to their previous versions and see if you can further narrow down what's causing the problem?

@tarcieri sure. :D

But I won;t be able to till weekend. Just for the record.

No worries

@ixti well, I'm thinking I should revert this entirely unless we can narrow it down

@tarcieri I've pushed a patch that makes snippet from the above work on all rubies. Also it passes all tests...

@ixti odd... that is something that sticks out from my changes to the original code. The comment is actually documenting why it's using rescue_readable and rescue_writable despite the :exception => false
We may not have sufficient coverage for EAGAIN cases for SSL (they're rather difficult to test)

After a discussion over an IRC, I agree that proposed patch is terribly wrong.

After my attempt to simplify code in order to find a better fix, it happened that it requires more thoughtful code reading. I will try to find time over a week to come with a better fix.
Meanwhile, @tarcieri if you're OK to revert that particular commit, probably that's the best option.
If anybody wanna jump on fixing this, please do so! :D

@tarcieri I saw the revert in master so I installed http from master locally and in a console ran the same script @ixti wrote. I fooled around with the timeouts too but I still keep getting frequent read errors, in fact more so than what we showed here. I made a small adjustment to the script to be sure the timeout is on read and it is. Although I could very well be doing something wrong. I did verify my install was using the master branch as it printed out the last git commit sha.
url = "https://play.google.com/store/apps/" \
      "category/GAMES/collection/top?start=400&num=100&hl=en&gl=us"

42.times do |i|
  start = Time.now.to_f

  print format("%3d ... ", i + 1)
  begin
    HTTP.timeout(:read => 10, :connect => 5, :write => 5).get(url).flush
    puts "pass (#{Time.now.to_f - start})"
  rescue HTTP::Error => error
    puts "fail #{error} (#{Time.now.to_f - start})"
  end
end

The output:
  1 ... fail Read timed out after 10 seconds (0.09555983543395996)
  2 ... pass (0.09866118431091309)
  3 ... pass (0.1078948974609375)
  4 ... fail Read timed out after 10 seconds (0.10645508766174316)
  5 ... fail Read timed out after 10 seconds (0.11573100090026855)
  6 ... fail Read timed out after 10 seconds (0.10515403747558594)
  7 ... fail Read timed out after 10 seconds (0.09684395790100098)
  8 ... fail Read timed out after 10 seconds (0.10500097274780273)
  9 ... pass (0.15207505226135254)
 10 ... pass (0.11043787002563477)
 11 ... fail Read timed out after 10 seconds (0.0944669246673584)
 12 ... pass (0.10115599632263184)
 13 ... fail Read timed out after 10 seconds (0.10858893394470215)
 14 ... fail Read timed out after 10 seconds (0.09439206123352051)
 15 ... fail Read timed out after 10 seconds (0.13071513175964355)
 16 ... fail Read timed out after 10 seconds (0.13274002075195312)
 17 ... pass (0.09566402435302734)
 18 ... fail Read timed out after 10 seconds (0.11975598335266113)
 19 ... pass (0.09542608261108398)
 20 ... pass (0.09283804893493652)
 21 ... pass (0.11658596992492676)
 22 ... pass (0.31825733184814453)
 23 ... fail Read timed out after 10 seconds (0.09906291961669922)
 24 ... pass (0.10399913787841797)
 25 ... fail Read timed out after 10 seconds (0.09821271896362305)
 26 ... pass (0.08867406845092773)
 27 ... pass (0.08523297309875488)
 28 ... fail Read timed out after 10 seconds (0.09504318237304688)
 29 ... fail Read timed out after 10 seconds (0.1117861270904541)
 30 ... pass (0.11092257499694824)
 31 ... fail Read timed out after 10 seconds (0.10589003562927246)
 32 ... pass (0.09644794464111328)
 33 ... fail Read timed out after 10 seconds (0.10133981704711914)
 34 ... pass (0.096466064453125)
 35 ... fail Read timed out after 10 seconds (0.09136009216308594)
 36 ... pass (0.09183812141418457)
 37 ... fail Read timed out after 10 seconds (0.08922100067138672)
 38 ... pass (0.11403322219848633)
 39 ... pass (0.09183883666992188)
 40 ... pass (0.09493303298950195)
 41 ... fail Read timed out after 10 seconds (0.10203123092651367)
 42 ... pass (0.10525012016296387)

@javierjulio it wasn't a full revert... I was trying to preserve the new changes to support an IO.wait backend.
Can you try bisecting yourself and seeing if you get the same commit as @ixti? f4df840
I can try a full revert of this commit next if so...

@tarcieri oops sorry about that!

@javierjulio what Ruby was that on? I can't reproduce your problem

I did a full revert in #320 and released that as 1.0.4. That should hopefully fix your problem.

Considering this solved for now. Please reopen if you disagree.

Not that I disagree... But unfortunately snippet still fails for me on ruby < 2.3.0:
chruby | sed 's/^[^jr]*//' | while read x; do
  chruby $x && echo "== $(ruby -v)"
  ruby -Ilib -rhttp snippet.rb | cut -b8-12 | sort | uniq -c
done

outputs
== jruby <IP_ADDRESS> (2.2.3) 2016-01-26 7bee00d Java HotSpot(TM) 64-Bit Server VM 25.74-b02 on 1.8.0_74-b02 +jit [linux-amd64]
     42  pass
== ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-linux]
      8  fail
     34  pass
== ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
      6  fail
     36  pass
== ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
     42  pass

Snippet was executed against current master.

@ixti can you repro against 1.0.4 too?

Ok, I'm able to reproduce the problem on Ruby 2.2

I think this actually fixes the problem: https://github.com/httprb/http/pull/322

@ixti @javierjulio please double check, but I think both master and 1-x-stable are fixed now.

@tarcieri sorry, I wasn't able to look at this sooner. I just tried this on Ruby 2.2.3 (Mac OS X latest) with http from 1-x-stable and master with multiple script runs and I got a 100% pass rate. No failures at all. Switched back to 1.0.2 to verify the failures still occurred and they did. Bug is squashed! Thanks! :shipit:

Woop! The root cause is still mysterious, but I'm glad we got this narrowed down and resolved

I confirm that master as well as 1-x-stable work as expected on my laptop with JRuby <IP_ADDRESS> as well as MRI 2.1.8p440, 2.2.4p230 and 2.3.0p0.


Plant Analyzer

Plant Analyzer
I moved the ss13 plant analyzer. I also added the capabilities of the botanist pda analyzer. I added it to the vending machine.
The plant analyzer gives out information:

Potency.
Yeild
Harvest type
Seed health and current plant health
The comfortable temperature for the plant
medicinal components that are in it
The bonuses he gets from mutations.
Current Problems that Concern the Plant

I also slightly changed getting negative traits for mutations. The creator of the original  system Notafet agreed to the changes after a little discussion in discord. Now the negative traits have a constant chance, which will not increase if you increase the chance of mutations with left-4-zed.
Media

[x ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase!

Changelog

:cl:

add: Plant Analyzer
fix: Fixed negative mutation chances

this seems stupidly strong for getting just the right breed with no downsides

If it's really that OP, then it should prolly be science content.

I think items that flatly tell you all the information you could ever need are kinda boring. This seems very unnecessary, in my opinion.

I think items that flatly tell you all the information you could ever need are kinda boring. This seems very unnecessary, in my opinion.
The analyzer has been in ss13 all its life, and it hasn't been boring. It is a necessary thing in botany. I'll tell you more, there was even a gene editor in cc13.

this seems stupidly strong for getting just the right breed with no downsides
The flaws remain, it's just that now the chance of negative genes can't be 100%

It seems to me that a plant analyzer can be a little push for the development of botany, which is in a certain stagnation of ideas. Having such a device, it will become more interesting to play with plant modification.

I completely agree. We must remove the anomaly and health scanner.

Yes.

this but unironically :trollface:

I think items that flatly tell you all the information you could ever need are kinda boring. This seems very unnecessary, in my opinion.

I agree with this regarding the health and anomaly analyzers, but I think the plant analyzer is something than botany desperately needs. There are several hidden plant mechanics that aren’t communicated to the player at all, and the analyzer making it clear what the mechanics are doing would vastly simplify botany onboarding and make it a more enjoyable experience.

if all you have used is health examine, you could say the same for health analyzer too since it doesnt mention radiation or poison at all, and with limited accuracy on others

finally i can stop accidentally killing plants

I completely agree. We must remove the anomaly and health scanner.

Yes.

I agree with wheatley to the extent 90% of botany gameplay is surprise mechanics as none of it is documented anywhere (wiki or guidebook) so as a player it's a blackbox unless you code dive or experiment a lot. What's worse is the fact there's 0 reason to even engage with any of its systems as you can just spam plants out anyway.

I completely agree. We must remove the anomaly and health scanner.

Yes.

I agree with wheatley to the extent 90% of botany gameplay is surprise mechanics as none of it is documented anywhere (wiki or guidebook) so as a player it's a blackbox unless you code dive or experiment a lot. What's worse is the fact there's 0 reason to even engage with any of its systems as you can just spam plants out anyway.

I agree that its a lot of non-visual blackbox mechanics, but adding literally all conceivable info into a single device is overkill.

I didn't review this PR yet so I don't know how they're intended to work here but I'm very familiar with how they work on ss13 so I'll go off of that knowledge.
This would be better to have than the swab system we have now since the swab system is kinda gross and also code is reused between disease and plants.
I prefer to have devices that give you information you need (analyzers) because the game can be cryptic at times. There's also some devices that I think should not exist at all (handheld crew pointer + handheld crew monitors). But maybe the analyzers can be shifted to a vendor/sci unlock/cargo. Which in-lies another problem of making cargo/sci/mining the backbone of the station.

The analyzer has been in ss13 all its life, and it hasn't been boring. It is a necessary thing in botany. I'll tell you more, there was even a gene editor in cc13.

TBH I think botany is one of the departments that should've been redesigned for 14 as it's not sure whether it wants to be genetics powergaming or food growing for chef and I think it should emphasise the latter.
As it stands the genetics side is unfeasible to play without something telling you what is going on so it either needs a lot of refactor around it to trim it down or a plant analyser.

that I think should not exist at all (handheld crew pointer + handheld crew monitors).

Based (agreed).

At the very least, the analyzer should be destructive in some way.

At the very least, the analyzer should be destructive in some way.

Consider that you might have to scan hundreds of plants several times during a shift just to see what’s going on with their genetics. While the idea makes sense, it’s just going to end up being another hidden mechanic that unfairly frustrates and confuses new botanists.

Considering that the actual obtuse mechanics at play are the breeding mutation systems, i don't see how blatantly listing out all the info is fixing the problem. Many of the things that are listed here could easily be observed, which is more interesting imo.
I don't see how being a destructive sample is a hidden mechanic. A system for plant clippings already exists and has balance features. I would much rather prefer having some kind of reasonable downside considering that it lowers skill level so considerably.

At the very least, the analyzer should be destructive in some way.

Plant analyzer should be used on seeds so you still have to damage the plant by taking seeds. Also it should display Maturation and Production genes, they are quite time consuming to figure out by just standing around.

How much overlap does this have with the swab system too? If there's enough then you should also remove the botany swab portions (leave the disease part if it's still in).

@Yter-alt are you coming back to this mate?


PIP4048 PV Input Power

Good day,
The "PV input power" seems to be missing in the Undefinedquery_general_status. It is part of the raw data, but isn't referred to in the calls.json file.
Here is a raw data packet just captured: 241.8 50.1 230.0 50.1 0667 0605 015 455 57.20<PHONE_NUMBER> 0014 071.5 57.33 00000 00110110 00 00 00831 110�8 Length: 115
The PV input power is 00831 watts.
Here is the object sent to influx: undefinedquery_general_status grid_voltage=241.8,grid_frecuency=50.1,ac_output_voltage=230,ac_output_frecuency=50.1,ac_output_power_va=667,ac_output_active_power=605,output_load_percent=15,bus_voltage=455,battery_voltage=57.2,battery_charging_current=3,battery_capacity=100,inverter_heat_sink_temperature=60,pv_input_current_for_battery=14,pv_input_voltage_1=71.5,battery_voltage_from_scc=57.33,battery_discharge_current=0,device_status=00110110,charging_scc=1,charging_ac=1,charging_scc_acc=0

hi relubbe the way i do it is, field(pv_input_current_for_battery) mean() math (*mean(pv_input_voltage_1))


Import coco annotations with keypoints and boxes

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

I have images with two types of annotations (keypoints and bounding boxes) for each instance in each frame. I have a similar scenario as #5904  or #1421 .
When exporting everything works as expected and I get the outside bounding box in the annotation object. The issue comes when I import annotations to get the same/similar results.
Ideally, I would like to directly import the box and the keypoints as a group. If that is not possible, can I import them separately and then manually group them?
I have 2 categories: person, and person_bbox.
I have tried...

Importing as coco keypoints 1.0 the box in the annotation object: { ..., keypoints: [...], bbox: [...], ...]. --> This ignores the bbox data.
Importing two different annotations (coco and coco keypoint) --> This overwrites annotations.
Importing two annotation objects per instance (with different ids) one with category person and another one with person_bbox (this one with no keypoints. --> This throws and error when importing because keypoints are None type.

*Note: I am using cvat.ai online tool.
Expected Behaviour

The expected behavior is to import a keypoint dataset with different bounding box than the one defined by the keypoints. If not, be able to import Groups.
Current Behaviour

Possible Solution

Context

Your Environment

I am using cvat.ai online tool.
All my annotations are in coco format

Hi, I agree that it's inconvenient. You can use this workaround until it's implemented:

import os.path as osp
import sys
from glob import glob
from typing import Dict, Optional
import datumaro as dm
from datumaro.plugins.cvat_format.converter import _SubsetWriter, XmlAnnotationWriter
from unittest import mock

class RemapBboxLabels(dm.ItemTransform):
    def __init__(self, extractor: dm.IExtractor, new_label_id: int):
        super().__init__(extractor)
        self._new_label_id = new_label_id

    def transform_item(self, item: dm.DatasetItem) -> Optional[dm.DatasetItem]:
        updated_annotations = []
        for ann in item.annotations:
            if isinstance(ann, dm.Bbox):
                ann = ann.wrap(label=self._new_label_id)
            updated_annotations.append(ann)

        return self.wrap_item(item, annotations=updated_annotations)

class PatchedCvatSubsetWriter(_SubsetWriter):
    # CVAT will require 'outside' property on the skeleton points,
    # but it is missing in the datumaro export in CVAT format
    # Here we fix this by monkey-patching the export method.

    def _write_shape(self, shape, item):
        xml_writer = self._writer

        def patched_open_points(points: Dict):
            if isinstance(shape, dm.Points):
                points['outside'] = str(int(shape.visibility[0] == dm.Points.Visibility.absent))
                points['occluded'] = str(int(shape.visibility[0] == dm.Points.Visibility.hidden))

            XmlAnnotationWriter.open_points(xml_writer, points)

        with mock.patch.object(self._writer, 'open_points', patched_open_points):
            return super()._write_shape(shape, item)

def prepare_import_dataset(kp_dataset_dir: str, dst_dir: str):
    kp_dataset_annotation_filename = next(
        fn for fn in glob(osp.join(kp_dataset_dir, 'annotations', '*.json'))
        if 'person_keypoints' in osp.basename(fn)
    )
    bbox_dataset = dm.Dataset.import_from(kp_dataset_annotation_filename, 'coco_instances')
    kp_dataset = dm.Dataset.import_from(kp_dataset_annotation_filename, 'coco_person_keypoints')

    # Boxes need to have a separate label in CVAT,
    # but they will be parsed with the same label as skeletons,
    # since they are read from the same annotation. So, we just remap the labels.
    resulting_labels = kp_dataset.categories()[dm.AnnotationType.label]
    bbox_dataset.transform('project_labels', dst_labels=resulting_labels)
    bbox_label_id = resulting_labels.find('person_bbox')[0] # <<<< use your bbox label name here
    assert bbox_label_id is not None

    output_dataset = dm.Dataset.from_extractors(bbox_dataset, kp_dataset)
    output_dataset.transform(RemapBboxLabels, new_label_id=bbox_label_id)

    with mock.patch('datumaro.plugins.cvat_format.converter._SubsetWriter', PatchedCvatSubsetWriter):
        output_dataset.export(dst_dir, 'cvat', save_images=True)

if __name__ == '__main__':
    prepare_import_dataset(sys.argv[1], sys.argv[2])

You'll need to install Datumaro which is used in CVAT now:
python3 -m virtualenv venv
. ./venv/bin/activate
pip install 'datumaro[default]@git+https://github.com/cvat-ai/datumaro.git@ff83c00c2c1bc4b8fdfcc55067fcab0a9b5b6b11'

Convert your COCO dataset using the script above:
python ./convert.py <path/to/coco/dataset/dir> <output/dir>

And import the annotation file in CVAT task using the CVAT format.

Thanks a lot! converting the annotations to cvat 1.1 format and then importing those annotations to cvat worked.

Closing this issue


[FB2Bridge] Do not strip  and

Do not strip
 and
, output looks better when they are retained. See below.
Without

:

With

:

Merged. Thanks for the PR :+1:


[ROCm] Workaround for a known CPU/GPU kernel interface args passing bug

I am working on submitting an update to Eigen to enable fp16 packet optimization for the ROCm platform. When testing those updates with TF, they result in the manifestation of a known bug in the CPU/GPU kernel interface args passing bug.
Basically the CPU code (.cc files) is compiled with an old version of gcc (v5.4, i.e. the that comes default with Ubuntu 16.04) and the GPU code (.cu.cc files) is compiled with HCC (which is clang10 based). This results in the GPU kernel arguments sometimes getting corrupted malformed. We do not have a fix for the issue, short of using a newer gcc version which does not have this "bug".  We have discovered that packing all the arguments within a struct seems to workaround the bug, and that is what this PR does.

/cc @whchung @chsigg @nvining-work

gentle ping

@rmlarsen


Destroy single instance

How do I destroy a single resource created with Terragrunt?

Closing this as the question has been answered. If there are any follow ups, please open a new issue. Thanks!

The target is the folder name, right?


[HOTFIX] Change telemetry to node status

Change "telemetry" to "node status".
A minimal change would have changed the mina daemon opt-out flag and mina advanced command, but I wanted to avoid the confusion and technical debt of having two names for the same thing. Therefore, all mentions of "telemetry" have been changed.
Tested by running a local network, verifying that advanced node-status succeeds.
Closes #8110.

just a nit- change node status data to node status and node_status_data to node_status? (I think there is also a module named like that)

Done, throughout.


iOS 17 doesn't renders the months correctly

Scrolling through months, the days disappear, don't show up

iOS 16 works
iOS 17 doesn't work
Integration method.(cocoapods)
Full steps to reproduce.
Device modal and iOS version.  e.g. iPhone 14 Pro Max
Xcode version.  15
FSCalendar version. e.g. FSCalenda 2.8.4

I had a similar problem. In my case, it was a problem with the width measurements when laying out the calendar on iOS 17, which was resolved when the floor() function was used to wrap the width measurements. Hope this helps.

Scrolling through months, the days disappear, don't show up

iOS 16 works
iOS 17 doesn't work
Integration method.(cocoapods)
Full steps to reproduce.
Device modal and iOS version.  e.g. iPhone 14 Pro Max
Xcode version.  15
FSCalendar version. e.g. FSCalenda 2.8.4

I'm facing the same issue can you please answer if you found any solution for this?

Scrolling through months, the days disappear, don't show up

iOS 16 works
iOS 17 doesn't work
Integration method.(cocoapods)
Full steps to reproduce.
Device modal and iOS version.  e.g. iPhone 14 Pro Max
Xcode version.  15
FSCalendar version. e.g. FSCalenda 2.8.4

I'm facing the same issue, can you please answer if you found any solution for this bug?

Please help in resolving this as soon as possible, I am also facing the same issue. is there any workaround for this?

+1

I fixed it, change constant value 0.5 on trailing constraint of your FSCalendarView.

I fixed it, add constant value 0.5 on trailing constraint of your FSCalendarView.

I fixed it, add constant value 0.5 on trailing constraint of your FSCalendar


main vendor bundle size increased in Volto 11 vs 10.10.0

Volto 11: 481.79 kb

Volto 10: 471.2 kb

@plone/volto-team as of today I would consider this issue superseeded by #5419 and close this one and close this one. Is that ok for everybody?

Closing!


README.md

Has a README.md file that clearly explains what the software is about

Basic README Complete
README
Recognized in part by outside organization (Issue : https://github.com/NFT-DAO/Governance-HOLON/issues/38)


[BUG]  Issue pulling image from k3d managed local registry

Issue pulling image from k3d managed local registry

How was the cluster created?

created registry:
k3d registry create registry.localhost --port 8083

created registry.yaml:
mirrors:
  'localhost:8083':
    endpoint:
      - http://k3d-registry.localhost:8083

created cluster:
k3d cluster create dev -p "8000:80@loadbalancer" --registry-use k3d-registry.localhost:8083 --registry-config registry.yaml

run test:
docker pull nginx
docker tag nginx:latest localhost:8083/nginx:latest
docker push localhost:8083/nginx:latest

kubectl run nginx --image localhost:8083/nginx:latest

output:
Using default tag: latest
latest: Pulling from library/nginx
Digest: sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239f
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest
The push refers to repository [localhost:8087/nginx]
a2e59a79fae0: Pushed
4091cd312f19: Pushed
9e7119c28877: Pushed
2280b348f4d6: Pushed
e74d0d8d2def: Pushed
a12586ed027f: Pushed
latest: digest: sha256:06aa2038b42f1502b59b3a862b1f5980d3478063028d8e968f0810b9b0502380 size: 1570
pod/nginx created

What did you expect to happen
I expected a running nginx pod in my default name space to spin up.
Screenshots or terminal output
However, I got the following:
...
Volumes:
  kube-api-access-r7g65:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  99s                default-scheduler  Successfully assigned default/nginx to k3d-dev-server-0
  Normal   Pulling    16s (x4 over 99s)  kubelet            Pulling image "localhost:8087/nginx:latest"
  Warning  Failed     16s (x4 over 99s)  kubelet            Failed to pull image "localhost:8087/nginx:latest": rpc error: code = Unknown desc = failed to pull and unpack image "localhost:8087/nginx:latest": failed to resolve reference "localhost:8087/nginx:latest": failed to do request: Head "http://k3d-registry.localhost:8087/v2/nginx/manifests/latest?ns=localhost%3A8087": dial tcp <IP_ADDRESS>:8087: connect: connection refused
  Warning  Failed     16s (x4 over 99s)  kubelet            Error: ErrImagePull
  Normal   BackOff    5s (x5 over 99s)   kubelet            Back-off pulling image "localhost:8087/nginx:latest"
  Warning  Failed     5s (x5 over 99s)   kubelet            Error: ImagePullBackOff

Which OS & Architecture
arch: x86_64
cgroupdriver: cgroupfs
cgroupversion: "2"
endpoint: /var/run/docker.sock
filesystem: extfs
name: docker
os: Docker Desktop
ostype: linux
version: 20.10.17

Which version of k3d
k3d version v5.4.6
k3s version v1.24.4-k3s1 (default)

Which version of docker
version:
Client:
 Cloud integration: v1.0.28
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:04:45 2022
 OS/Arch:           darwin/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.11.1 (84025)
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:23 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

info:
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.8.2)
  compose: Docker Compose (Docker Inc., v2.7.0)
  extension: Manages Docker extensions (Docker Inc., v0.2.8)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 4
  Running: 4
  Paused: 0
  Stopped: 0
 Images: 17
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc version: v1.1.2-0-ga916309
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.10.104-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 7.675GiB
 Name: docker-desktop
 ID: QJTY:3BRB:6RZ5:GCOG:3TLQ:XHXA:CM5T:XXX7:VGMS:XLNL:CIG5:EALJ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Username: marko7
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  <IP_ADDRESS>/8
 Live Restore Enabled: false

I was also struggling to get this to work.
In the end I got a working setup using the following config in the k3d.yaml:
...
registries:
  create:
    name: registry
    hostPort: "5000"
  config: |
    mirrors:
      "registry:5000":
        endpoint:
          - http://registry:5000

Then create the cluster with k3d cluster create mycluster --config k3d.yaml
Pushing to the registry only works using localhost:5000/<IMAGE_NAME>:<IMAGE_TAG>
For Deployments in the cluster I have to specify registry:5000/<IMAGE_NAME>:<IMAGE_TAG>


Remove waiting for video in audio-only

Summary: Remove waiting for video in audio-only on amlogic
Type: Fix
Test Plan: UT/ CT, fullstack
Jira: RIALTO-688

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/64811/

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/64814/

Sanity tests for ['BCM 7216OTT Refboard VA'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/64815/

Sanity tests for ['BCM 7216OTT Refboard VA'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/64816/


CI-Failure: build expected contracts prior to uploading to s3

Adds:

building of expected client contracts for tarball upload to s3

bors r+


Add detail check on settings.json before loading.

Is your feature request related to a problem? Please describe.
It is possible to manually edit settings.json which is used to hold installation settings.
Describe the solution you'd like
Add a detail check per setting comparing it with the valid options for each setting.

Hi I will be working on this issue, Is there any standard valid options for each setting?

Yes. You can deduce that from following the settings. Forexample, you have a set of vars that can only be Y or N any other option is immediately invalid. You need to break settings into chunks . Passwords and hence must meet the password requirements, strings that cannot have numbers so alphanumrical , strings that can only be Y or N, only numbers, false and true, any string, strings set to specific options like AWS_LB_TYPE which can only be  "", "clb", "nlb" or "alb".
https://www.gluu.org/docs/gluu-server/4.2/installation-guide/install-kubernetes/#settingsjson-parameters-file-contents
Look over the prompts for each variable.

hi @moabu this VERIFY_EXT_IP variable were not used? this has "Y" or "N" on the docs

Its used to verify the ip if placed manually. It is a Y or N


Add tests for writing in sections.

The inline test is failing due to  (what I believe to be) a bug.
Issue #, if available: N/A
Description of changes:
I have code that requires multiple integrations to all contribute a string to the same line in codegen output.  I use CodeWriter.writeInLine() but this produces no change in the codegen output.  This PR captures the bug.
I've added another test which passes which exercises CodeWriter.write() in addition to the breaking test.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks! I moved the tests to the smithy-utils package since the issue can be reproduced there. I also fixed the bug.


Deploy pdpdmeetup.com

pdpdmeetup.com still redirects to github. It should start serving the awesome codes. The index page can have a link to this github page.

Missed the deployment meetup, at what url is it currently available?

Good question!

The URL is: http://pdpdmeetup.herokuapp.com
On Friday, 8 July 2016, robinchew<EMAIL_ADDRESS>wrote:

Good question!
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/mattharley/pdpdmeetup/issues/20#issuecomment-231333350,
or mute the thread
https://github.com/notifications/unsubscribe/AArt9AzF-GcZgjcYI7R5QJatnWm3YAyiks5qTi43gaJpZM4JHRMr
.

--
Matt Harley
<EMAIL_ADDRESS>mobile: +61 421 933 877
skype: matt.harley
Currently I'm the chief tech guy at hipflask
Website/blog: http://www.hipflaskapp.com/ http://www.hipflaskapp.com/
iOS: http://apple.co/12XnhZn
Android: http://bit.ly/1plwrbP

Shall we make it pdpdmeetup.com?

sure!
On 8 July 2016 at 19:10, robinchew<EMAIL_ADDRESS>wrote:

Shall we make it pdpdmeetup.com?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/mattharley/pdpdmeetup/issues/20#issuecomment-231334676,
or mute the thread
https://github.com/notifications/unsubscribe/AArt9BdEDJN-dTFXyAwI57WUOq6luSNuks5qTjAbgaJpZM4JHRMr
.

--
Matt Harley
<EMAIL_ADDRESS>mobile: +61 421 933 877
skype: matt.harley
Currently I'm the chief tech guy at hipflask
Website/blog: http://www.hipflaskapp.com/ http://www.hipflaskapp.com/
iOS: http://apple.co/12XnhZn
Android: http://bit.ly/1plwrbP

@robinchew i've gone one better and setup SSL!
https://www.pdpdmeetup.com/

Thanks! I wanna merge a PR and do a deploy, but I'm not sure what to do on the heroku CLI. I got the heroku command line, and pulled down mattharley/pdpdmeetup.git, not sure what to do next. Hope you can help me out on Slack or we meet up sometime.


Control the light on C320WS

I own a Tapo camera C320WS and your plugin works fine with it, thanks !
This model is equipped with a light that I would like to control via HomeKit, is it possible to add this feature?
Thank you.

Hello; I'd love to support it but unfortunately as I don't have the following camera I can't really do much without it :)

Maybe we can debug what you need without owning it?

It's not about debugging, we need to reverse engineer the protocol and the network call used to switch on/off the light. If you can do that, happy to implement it

I have a C520WS which has a light that you can toggle on and off within the tapo app.
is it possible if you could let me know how to reverse engineer the protocol and the network call used to switch it on/off so you could implement this feature?
or a video on how to if there is one


Archived Workflows Tree view UI is broken

Checklist

[x] Double-checked my configuration.
[x] Tested using :latest images.
[x] Attached the smallest workflow that reproduces the issue.
[x] Attached logs from the workflow controller.
[x] Attached logs from the wait container.

Summary
After upgrading to Argo workflows 3.4.0, the "Archived Workflows" tree view UI seems to be broken.

I need to zoom out multiple times so that I can view the rest of the side panel options (like the Logs button). This issue happens both in Chrome and Safari.
What version are you running?
3.4.0
Diagnostics
This happens with any workflows I create. The workflow UI is fine, but the Archived Workflows UI is broken.

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

I think I caused this when I submitted https://github.com/argoproj/argo-workflows/pull/8963. Working on a fix.


extract read_money_attribute and write_money_attribute

Why
We need a way for people to overwrite the money columns getters/setters without using super since it will bypass the money_column getters and setters.
What
This PR adds  read_money_attribute and write_money_attribute similar to rails' read_attribute and write_attribute methods. They allows to overwrite the getter and setter methods while getting the money_column functionality. A similar approach was also used by the money-rails gem (https://github.com/RubyMoney/money-rails/blob/master/lib/money-rails/active_record/monetizable.rb#L120)

I split the commits to make it easier on the 👀


feat: updated iOS Page Transition box-shadow

Feature Request
Ionic version:

[x] 4.x
Describe the Feature Request

The iOS page transition includes a box-shadow that fades in-out/out-in while animating between pages. We need to add it in, perhaps using a data uri (?)
Describe Preferred Solution

https://github.com/ionic-team/ionic/pull/18695


Increased verbosity for Value Error raised if backend not installed

[ ] Tests added
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

I just had an interaction with a researcher over at LEAP and they did not have zarr installed but were confused by the error message they got when trying to access an ARCO zarr dataset in the cloud like this:
import xarray as xr
store = 'gs://gcp-public-data-arco-era5/ar/model-level-1h-0p25deg.zarr-v1'
ds = xr.open_dataset(store, engine='zarr', chunks={})

I reproduced their error by removing zarr from the pangeo/pangeo-notebook:2024.06.02 docker image manually and got:

--------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[1], line 3
      1 import xarray as xr
      2 store = 'gs://gcp-public-data-arco-era5/ar/model-level-1h-0p25deg.zarr-v1'
----> 3 ds = xr.open_dataset(store, engine='zarr', chunks={})

File /srv/conda/envs/notebook/lib/python3.11/site-packages/xarray/backends/api.py:557, in open_dataset(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, inline_array, chunked_array_type, from_array_kwargs, backend_kwargs, **kwargs)
    554 if from_array_kwargs is None:
    555     from_array_kwargs = {}
--> 557 backend = plugins.get_backend(engine)
    559 decoders = _resolve_decoders_kwargs(
    560     decode_cf,
    561     open_backend_dataset_parameters=backend.open_dataset_parameters,
   (...)
    567     decode_coords=decode_coords,
    568 )
    570 overwrite_encoded_chunks = kwargs.pop("overwrite_encoded_chunks", None)

File [/srv/conda/envs/notebook/lib/python3.11/site-packages/xarray/backends/plugins.py:205](https://leap.2i2c.cloud/srv/conda/envs/notebook/lib/python3.11/site-packages/xarray/backends/plugins.py#line=204), in get_backend(engine)
    203     engines = list_engines()
    204     if engine not in engines:
--> 205         raise ValueError(
    206             f"unrecognized engine {engine} must be one of: {list(engines)}"
    207         )
    208     backend = engines[engine]
    209 elif isinstance(engine, type) and issubclass(engine, BackendEntrypoint):

ValueError: unrecognized engine zarr must be one of: ['netcdf4', 'h5netcdf', 'scipy', 'argo', 'cfgrib', 'gini', 'kerchunk', 'pydap', 'rasterio', 'store']

I believe that adding some language from the guess_engine function to the ValueError in get_backend could help alleviate this confusion for novice users.
Happy to change the wording, add tests, etc if you think this would be an ok addition.

Very nice, thanks @jbusecke

Yay! Anything I should/need to add to get this moving?


Update LICENSE

Make it under Apache 2.0 since we are aiming for an apache project.

Will add the copyright notice in another PR.


no file creat_datasets

hi, there is no file creat_datasets under ./task

Sorry for that I'm stiling complementing this repository. And now I've added the files 'create_dataset.py' into ./task/dataset_name/data/. Thanks for your issues!


Support Masking Method

There is a requirement to apply vector object as masking source.
ex)
auto maskSource;   //This paint is used for masking source
auto maskTarget;    //This paint is used for masking target
maskTarget->composite(maskSource, AlphaBlend );    //Now, maskTarget can be masked(or clipped) by maskSource.

Please mind this interfaces for implementing basic maksing model.
enum CompMethod { MaskAlpha };
bool Paint::composite(unique_ptr paint, CompMethod method);
ex)
auto scene = tvg::Scene::gen();
auto mask = tvg::Scene::gen();
scene->composite(move(mask), CompMethod::MaskAlpha);

Alpha, InvertedAlpha, Lumininans, Inverted Lumininans

https://github.com/Samsung/thorvg/pull/207

https://github.com/Samsung/thorvg/pull/207

Still need to enhance gradients + Inverse Alpha Masking.

Still need to enhance gradients + Inverse Alpha Masking.

213

213


Disable Timestamp Tracking is not working as is documented?

Your Question
I have this model:
type sqlModel struct {
	Id              string `gorm:"primaryKey"`
	ProductId       string `gorm:"type:uuid;not null;"`
	Quantity        int
	CreatedAt time.Time `gorm:"autoCreateTime:false"`
	UpdatedAt time.Time `gorm:"autoUpdateTime:false"`
}

Gorm keeps updating the fields in the database overwriting any value from the model.
For save/create I use:
if err := r.dbWrite.WithContext(ctx).Save(&sqlModel).Error; err != nil {
		return err
	}

and

if err := r.dbWrite.WithContext(ctx).Create(&sqlModel).Error; err != nil {
return err
}

I'm using: gorm.io/gorm v1.22.5
The document you expected this should be explained
https://gorm.io/docs/conventions.html#Timestamp-Tracking
Expected answer
I miss something?
Is maybe the version i'm using?
Thanks in advance

I finally updated from:
gorm.io/driver/mysql v1.2.3
gorm.io/gorm v1.22.5
to:
gorm.io/driver/mysql v1.5.0
gorm.io/gorm v1.25.0
And now is working as expected.
Thanks


[FEATURE REQUEST] Allow dash-delimited numbers in scan cancel menu

Is your feature request related to a problem? Please describe.
When there are more than 5-10 threads active in the scan cancel menu, it can be cumbersome to type each thread number out, delimited by commas
Describe the solution you'd like
It would be nice to support simple range notation, e.g. instead of 1,2,3,4,5 supporting 1-5. Ideally 1,2,3-5 format
Additional context
Apologies for not contributing a PR for this, it's laughably trivial- but I've not even touched rust code at this point so it's probably a lot more efficient for you to take a quick look
Thanks, the features are coming along really well, very impressed with how quickly you've put this all together. Really appreciate the time and effort

One additional note, it I can fit it into this issue- it would be nice to be able to set a flag so you don't have to confirm each thread before it's cancelled. Example:
───────────────────────────────────────────────────────────
Enter a comma-separated list of indexes to cancel (ex: 2,3)
───────────────────────────────────────────────────────────
100,101,102,103,104
You sure you wanna cancel this scan: https://mail.whatever.com/~old? [Y/n]
...

It's another thing that's very clunky to deal with when a lot of threads are created and need to be cancelled. Ideally it would be on the user to tune the scan so that this many threads don't pop up- either by filtering certain noisy paths, or by adjusting the scan rate- but in some cases there will always be a lot of junk paths to deal with

this is done in #270 ; i just need to push the release


better checking of data returned from training_step

🚀 Feature
let's add more validation checks on what's returned from training_step and provide the user with useful error messages when they're not returning the right values.
Motivation
i feel like i've seen a lot of users confused about what they're supposed to return in training_step and validation_step. additionally, i don't think we document how we treat extra keys as "callback metrics" very well.
Pitch
what you do you think about adding some structure and validation for Trainer's process_output method?
right now, we have expectations about a set of keys {progress_bar, log, loss, hiddens} and assume everything else is a callback metric. however, this is a silent assumption.
we could instead enforce a more rigid structure:
{
  'loss': loss                   # REQUIRED
  'log': {}                         # optional dict
  'progress_bar': {}       # optional dict
  'hiddens': [h0, c0]     # optional collection of tensors
  'metrics': {}                 # optional dict
}

moreover, we can leverage pydantic to do validation automatically and provide useful error message out of the box when data validation fails.
cc @PyTorchLightning/core-contributors
Alternatives
Do nothing, keep things as they are.
Additional context
This would be a backwards incompatible change.

I want to take this up.

@rotalex cool, looking forward seeing a PR from you :]

@Borda given that this proposal is backwards compatible, i think we should get more core contributors to weigh in on the proposed design before moving forward and implementing it.
one thing that is still giving me tension is the fact that there's a lot of overlap between log, progress_bar, and metrics. progress_bar almost always consists of a subset of log, and metrics (or as they currently stand, arbitrary keys) are typically used to store temporary values to be collated and logged at the end of an epoch. i think there's room for improvement here.

@jeremyjordan good point! we had recently an issue about "why there are two dicts - one for the progress bar and the general while it has the same values" so some simplification or more structured way would be welcome...
cc: @PyTorchLightning/core-contributors ^^

log and progress_bar were separated a while back because people wanted to log different things that  they didn't want in the progress bar

i don't really know what metrics is.

the usage for log and progress_bar keys is clear. however, if you look at the method for process output you'll see
# ---------------
# EXTRACT CALLBACK KEYS
# ---------------
# all keys not progress_bar or log are candidates for callbacks
callback_metrics = {}
for k, v in output.items():
    if k not in ['progress_bar', 'log', 'hiddens']:
        callback_metrics[k] = v

if train and (self.use_dp or self.use_ddp2):
    num_gpus = self.num_gpus
    callback_metrics = self.reduce_distributed_output(callback_metrics, num_gpus)

for k, v in callback_metrics.items():
    if isinstance(v, torch.Tensor):
        callback_metrics[k] = v.item()

all keys not progress_bar or log are candidates for callbacks

as far as i know, this isn't documented anywhere.
if you look in the documentation, however, you will see references to keys which are not included in the set of {loss, log, progress_bar} but the only hint about how to use them is through the examples we provided (eg. val_loss below)
class LitModel(pl.LightningModule):
    def validation_step(self, batch, batch_idx):
        x, y = batch
        y_hat = self.forward(x)
        return {'val_loss': F.cross_entropy(y_hat, y)}

    def validation_epoch_end(self, outputs):
        val_loss_mean = torch.stack([x['val_loss'] for x in outputs]).mean()
        return {'val_loss': val_loss_mean}

now that i think about this further, a better solution might be to add more detail to the documentation about how we collect outputs from training steps and expose the outputs at the end of epochs to make this more clear. furthermore, we should document that if you're returning a torch tensor, we expect that it is a scalar value.
the second question is whether or not we want to do more explicit validation of data returned by the user. the motivation for this github issue is #1236 where we could help the user more quickly track down the source of an error. imagine if the error raised to the user was instead ValidationError: Cannot reduce key 'val_loss' to a scalar.

I would be in favour of more rigid structure, also may check #1277

Shouldn't we favor the return type to be a strong type? I've always wondered why the step return type is not a dataclass or named tuple where loss is a required argument.

i wouldn't mind stronger typing, but i don't want to start adding APIs to remember?
although it might be simpler to remember the structured type instead of the possible keys?
@tullie @ashwinb @darktex thoughts?
A potential way to add structure is:
def training_step(...):
      output = pl.Result(loss=loss, logs=logs, progress_bar=progress_bar)

My preference would be a StepResult class. I think it's the best way to document what the outputs should be. We can still support returning a dictionary and just build the StepResult class from the dict on the trainer side anyway. It'd be great if we could create a unified way for callbacks to specify which arguments are required in the StepResult too.
The progress_bar, log overlap that @jeremyjordan brought up isn't idea. I'd love to hear how others think we should address this? The best I could come up with is specifying the desired keys for log and progress bar somewhere in LightningModule init or as a trainer callback argument. The user would then just put all result values in the step result dictionary and the specified keys would be found for the respective outputs (log and/or progress bar).


tabbing priority words list

you would create a group
for example
Kap
and then a list of prioritized words (in order)
KappaRoss KappaClaus Kapp Kappa KappaW (could also be a username)
then when you write and press tab (<TAB> represents the tab key press)
Kap<TAB> -> the first completed word would be KappaRoss, another <TAB> -> KappaClaus, <TAB> -> Kapp, <TAB> -> KappaW, <TAB> other emotes starting with Kap (this should be sorted, see  https://github.com/fourtf/chatterino2/issues/57#issuecomment-368921844 )
If you write Kappa <TAB> -> KappaRoss, <TAB> KappaClaus, <TAB> Kappa, <TAB> -> KappaW, <TAB> -> other emotes starting with Kappa
you probably should be able to create your own words (that means that the tabbed thing doesnt actually have to be a username or an emote, but a word you like to use (or maybe even a sentence? just<TAB> -> Just get a house 4House ))
should be case  insensitive
also maybe a setting for prefer full emote first (like when in the example you write Kappa you would actually get Kappa first because you wrote the full emote)

That would be the best feature for watching streams FeelsG  -> FeelsGoodMan Clap


QueryBuilder forcing limit 1 on generated query

I asked a SO question yesterday that didn't pick up any traction, so I suppose I'll ask it here - I'm skeptical, but I might've uncovered a bug with the library (I hope its just something I'm doing wrong).
As the title says I'm using the QueryBuilder to generate a query against my database, and for some reason am only being returned one result when I expect several. Going a step further and enabling debugging using a debug config flag, I see that the query generated has a limit 1 appended to it, even though I do not specify that.
I actually do some dynamic limiting and offsetting to create a sort of "paging", but my limit is set to 10 (per page), and even if I remove my paging logic, I still end up with that pesky limit 1!!!!!
Here is my code, adjusted for out-of-context clarity:
module.exports = bookshelf.Model.extend({
    tableName: 'my_table' }, {

  getAllMostRecentByUserId: promise.method(function(embed, page, pageSize) {
    var page = parseInt(page), // 1
        size = parseInt(pageSize); // 10

    return this.query(function (qb) {
      qb.whereIn('id', function(){
        this.max('id').from('my_table').where('some_other_key', '!=', 1).groupBy('user_id');
      });
      qb.limit(size).offset((page - 1) * size); // Happens with or without this line
    })
    .fetch({ withRelated : embed });
  })
});

And here is the query being printed out to my console:
sql: 'select `my_table`.* from `my_table` where `id` in (select max(`id`) from `my_table` where `some_other_key` != 1 group by `user_id`) limit 1'

My only guess is that maybe somehow the logic behind max assumes there should be a singular result (since its looking for the max ID), but that logic is being propagated up to my main query from my subquery - hence me raising this issue. I took a look at the max function in the src, and that didn't raise any red flags for me though...so...I'm kinda stumped! Feel free to close this if its not actually a bug - just trying to find some clarity.

I really don't know much about bookshelf, but could the problem be that you are calling .fetch which according to docs is method for fetching just one model instance?

@elhigu oh jeez...that's exactly it. Thanks for taking a look! Closing this.


Add feature to auto-generate authors page

Build author-header block for the authors page

Test Urls:
Before: https://main--blog--adobecom.hlx.page/drafts/smalla/authors/adam-morgan
After: https://authors--blog--adobecom.hlx.page/drafts/smalla/authors/adam-morgan?martech=off

Looks like you add some of the same functions in PR https://github.com/adobecom/blog/pull/8/files. Is that intentional?

@JasonHowellSlavin  Yeah, I wanted to keep both PR separate, but these share some of the same code. They will be merged to one after.

Will merge in the morning if there are no objections.

@saugatmalla can you take a look at the conflicts?


[SecretsManagement][Design] SecretInformation interface needed

Summary of the new feature/enhancement
As a user of SecretsManagement
In order to reliably reason about and code against the output of Get-SecretInfo
It must contain the secret name in a consistent place
It must contain the secret type in a consistent place
It must contain the registered vault name
It should contain the vault module name
In other words, the object returned from Get-SecretInfo needs more structure. At the very least, it's critical that they all have a "Name" which can be passed to Get-Secret, but in order to guarantee looking up the correct secret, they should also have the registered vaultName on them (and Get-Secret needs to support those parameters as ValueFromPipelineByPropertyName). Additionally, the type of secret they are is important, so that users can programmatically search for specific types of secrets.
Proposed technical implementation details
Get-SecretInfo and GetSecretInfo should have a return type based on a new class or interface. That is, the SecretsManagement module should define SecretInformation and require that returned objects be based on that type. For example:
namespace Microsoft.PowerShell.SecretsManagement
{
    public class SecretInformation
    {
        public string ModuleName { get; }
        public string VaultName { get; }
        public string Name { get; }
        public SupportedTypes Type { get; }

        public SecretInformation(string moduleName, string vaultName, string name, SupportedTypes type)
        {
            if (string.IsNullOrEmpty(moduleName))
            {
                throw new ArgumentNullException("moduleName");
            }
            if (string.IsNullOrEmpty(vaultName))
            {
                throw new ArgumentNullException("vaultName");
            }
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            ModuleName = moduleName;
            VaultName = vaultName;
            Name = name;
            Type = type;
        }
    }
}

Of course, if implementers write their own classes derived from this, they should include format files for them.
NOTE: the "VaultName" and "ModuleName" could be added as a NoteProperty by the SecretsManagement module, but I'm not sure it's worth implementing that way.

Added SecretInformation class used to return information from Get-SecretInfo.


Add All Cosmos DB API Versions

Cosmos DB allows several API versions that are identical to the "2015-04-08" version currently documented. This change adds swagger files for all of those versions to improve documentation. These files and examples are just duplicates of the other version.
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[x] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Can one of the admins verify this patch?

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

@qiaozha , can you please light on the breaking change failures?

@shurd , does cosmos db service has these old api-version released? Does it have same version of SDK released? The readme.md is supposed to have the old api-version swagger referenced.

@raych1 Our RP does support these API versions. We created a new API version each time we had a large change in our service, but we also continued to support all schemas in all versions. We only released the one swagger version "2015-04-08" since there is no functionality difference between the API versions before "2019-08-01". The ARM team requested that we publish a swagger for all API versions we support so that auto-generated documentation lists the available API versions. We do not plan on releasing an SDK for any of these new versions because the SDK for "2015-04-08" is sufficient. I will add references to the new versions in the README file.


Several dead links in the docs

Describe the bug
Several links in this list (https://astronomer-providers.readthedocs.io/en/stable/providers/index.html) give me a 404:

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Yeah, the ones for Microsoft and Snowflake are broken.


fix: bump FAB to 4.5.2

SUMMARY
WTForms 3.2.X breaks superset with the following error:
AttributeError: 'tuple' object has no attribute 'items'

More details on: https://github.com/dpgaspar/Flask-AppBuilder/pull/2279
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@dpgaspar Will we need to cherry-pick this into 4.1 which uses wtforms==3.1.2? I'm understanding that this fix is for 3.2.X which would make it not required for 4.1. Is that correct? @sadpandajoe

@dpgaspar Will we need to cherry-pick this into 4.1 which uses wtforms==3.1.2? I'm understanding that this fix is for 3.2.X which would make it not required for 4.1. Is that correct? @sadpandajoe

yes, I think thats safe to say, if our users install superset without using 4.1 specific dep requirements they will automatically upgrade WTForms and FAB

LGTM. However, should we add a lower bound here, too?
https://github.com/apache/superset/blob/16981d63169507b39615ca9037f3b36baafba3c0/pyproject.toml#L48

No strong opinions about it


Run 20210729 (full-length fingerprint)

Description
Generate kissim data with latest version (c294ee15b5fef2c650193dcbf0921eb79222b640) and rerun all notebooks.
Todos
Notable points that this PR has either accomplished or will accomplish.

[ ] Rerun notebook to prepare dataset
[ ] Run kissim on cluster
[ ] Rerun analysis notebooks

Questions
None.
Status

[ ] Ready to go

Closing this PR because the curta scripts do not need to be manually added anymore (input parameters can be passed via command line), see #28.


Subscribe to lightning and dlc events

With https://github.com/get10101/10101/pull/105 we introduced an event_handler that is processing all lightning events. dlc will introduce a similar handler.
There are multiple situations where it would be handy to be able to subscribe to theses events so that follow up processing can happen.

Testing: Currently we poll for a certain state to imply that an event might have happened. By simply subscribing to the expected event this could be done much cleaner.
Payment notifications: Informing the user about an incoming payment, when the event actually arrives.

Additionally it would be nice if the event_handler could be separated into individual handlers for e.g. larger events. Done correctly we could leverage that for a more flexible testing approach. e.g. mocking certain events, etc.

Handing over this to @luckysori and @holzeis . :)

Removing assignment of @holzeis and me since we have not worked on it and it's low priority.

To be fair to us, this has already been done to some extent, so I will close it as done haha.


[BUG] extract with strip can change permissions on existing files when running as root

What / Why
When the tar utility runs with --strip-components and -p (or as root), no existing directories have their permissions changed. However, when node-tar does the equivalent, the existing filesystem can be mutated.
How
Steps to Reproduce
In an empty directory, run
mkdir dir
sudo chown 501 dir
tar -czf tarball.tgz dir
sudo node - <<JS
const tar = require('tar')
tar.x({file: 'tarball.tgz',strip:1})
JS
ls -an

Expected Behavior
When I run
mkdir dir
sudo chown 501 dir
tar -czf tarball.tgz dir
sudo tar --strip-components=1 -xzf tarball.tgz
ls -an

which should be roughly equivalent, the output is
total 8
drwxr-xr-x   4 502  20   128 17 Sep 18:08 .
drwxr-xr-x  46 502  20  1472 17 Sep 18:08 ..
drwxr-xr-x   2 501  20    64 17 Sep 18:08 dir
-rw-r--r--   1 502  20   110 17 Sep 18:08 tarball.tgz

Actual Behavior
When I run the above script using node-tar, the output is
total 8
drwxr-xr-x   4 501  20   128 17 Sep 18:09 .
drwxr-xr-x  46 502  20  1472 17 Sep 18:09 ..
drwxr-xr-x   2 501  20    64 17 Sep 18:09 dir
-rw-r--r--   1 502  20   110 17 Sep 18:09 tarball.tgz

The results are almost identical, except in the node-tar case the current directory has changed ownership from UID 502 to UID 501.
References
I encountered this while investigating a problem with running backstage's tests.

Above I was checking node-tar against bsdtar on macos. I just tried with gnu tar:
mkdir dir
sudo chown 501 dir
tar -czf tarball.tgz dir
sudo gtar --strip-components=1 -xzf tarball.tgz
ls -an

and the output agrees with bsdtar, but disagrees with node-tar


Small fix to 19.2 release notes

In the geo-partitioning improvements section, clarify that show locality
and node status do not require an enterprise license.
Fixes #5836.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b56b0af12459f9f6cbe8620693005b07386abd72/
Edited pages:

releases/v19.2.0.md


Scrutinizer Auto-Fixes

@karbowiak requested this pull request.
It consists of patches automatically generated for this project on Scrutinizer:
https://scrutinizer-ci.com/g/EVE-KILL/projectRena/

hear hear!


Re-recorded VCR cassettes for failing tests.

Re-recorded VCR cassettes for failing tests.

@bzwei @Fryguy Not much to review - new cassettes. The tests run cleanly when run locally.
Merge if/when green.


Opening settings.json (Command-,) on macOS causes Code to open ~ as a git repo.

It still happens with I run code --disable-extensions but when I disable the VSCode git extension manually it goes away.

You have run git init on your home folder. Delete ~/.git if that should not be a git repository.


[RFE] XC diagnostics report

Looking to provide some sort of report for all the XC diagnostics.
This report can be used to more quickly gather which apps can move and which can't
Initial structure could look like this:
{
    "totalApps": 169,
    "sys_https_redirect": 1,
    "stats": {
        "Warning": 58,
        "Information": 110,
        "Error": 18
    },
    "green": [ {
        "appName": "app1",
        "diagnostics": []
    }],
    "Informational": [ {
        "appName": "app3",
        "diagnostics": [
            "Virtual Server references iRule(s), review iRules for compatibility"
        ]
    }],
    "Warning": [ {
        "appName": "app6",
        "diagnostics": [
            "Virtual Server references Local Traffic Policy(s), review policies for compatibility",
            "Local Traffic Policy(s) found in config, review policies for compatibility"
        ]
    }],
    "Error": [ {
        "appName": "app14",
        "diagnostics": [
            "XC cannot match across services, like ftp, control on tcp/21, data on tcp/22"
        ]
    }]
}

Adding the following to provide quick counts of number of apps in each category
    "appCounts": {
        "green": 2,
        "informational": 6,
        "warning": 5,
        "error": 1
    },

Another value add would be the most "hit" xc rules, so I would know where to start my efforts and cover a lot of ground.


[MultiMesh] Populate Surface Spawns Meshes Only Onto Vertices

Godot version
v4.0.dev.custom_build [0e5b0c025]
System information
Linux
Issue description
When using the the Populate Surface feature of a MultiMeshInstance the selected source mesh does not get distributed evenly across the target surface. It seems to accumulate the source mesh at the vertices of the target mesh.
The only expection to the issues occurs when using a capsule mesh as the target mesh; with the capsule as the target mesh, the source mesh gets distributed evenly.
Steps to reproduce
https://user-images.githubusercontent.com/18660100/133925259-35d26910-132d-43d6-a942-b00c53ce0611.mp4
Minimal reproduction project
multimesh_bug.zip

with the capsule as the target mesh, the source mesh gets distributed evenly.

Isn't it because capsules actually have much more geometry than other shapes? https://github.com/godotengine/godot/issues/20030
Does your issue also happen with spheres?
If someone wants to improve this to emit instances on faces, I did some work on this with my runtime instancer: https://github.com/Zylann/godot_voxel/blob/6a6682dfd5e9e8cf34c2af8acb2b56811a8f0872/terrain/instancing/voxel_instance_generator.cpp#L164

Sphere looks good, too. So your assumption about the more complex geometry would be a good fit here.

to emit instances on faces regardless of triangle density

I am not an engine developer myself, but concept wise this seems like a more elegant and scalable approach.

This was a simple fix since the implementation was actually working, Face3::get_random_point_inside just made a call to the integer version of Math::random thus not actually returning a point inside the face.
Generally, is there demand for generally improving this a bit (e.g. something like Poisson disk sampling to get a more uniform distribution)? Is this something that could just be submitted as a PR or should this be made into a feature request first?

Generally, is there demand for generally improving this a bit (e.g. something like Poisson disk sampling to get a more uniform distribution)? Is this something that could just be submitted as a PR or should this be made into a feature request first?

I'd just fix what's available for now, then open a proposal at the same time (or later) about improving the otoling.


(PUP-6359) Fail fileserver auth for mounts with non-global allow

The use of security directives in fileserver.conf mount points has been
deprecated for multiple releases in favor of the use of the auth.conf file.
This commit is a step toward complete removal of support for these
directives.
With this commit, requests will be denied access to a mount point at the
fileserver indirector layer, with a corresponding error message logged, if any
non-global allow (allow *) directives are present in the mount point definition.
Previously, requests made to mount points for which no security directives were
defined would fail authentication at the fileserver indirector layer.  With
this commit, these requests would be granted authentication at the fileserver
indirector layer.

CLA signed by all contributors.

Code changes look sensible. I'll :+1: this after I've verified the changes locally.

@adrienthebo Cool, thanks.  Also, I should mention that I ran the full Puppet acceptance tests against two node beaker configuration - 1 having a master and agent role and the other having just an agent role.  The existing tests all passed for me - without any modifications - under this configuration.

@beergeek @BillWeiss you both have feelings about security, and almost certainly a better understanding of how widespread fileserver.conf rules include auth. Care to opine?

Hm. It's been a while since I was in there, I don't know what's common. Could we package something in the installer that looks for fileserver.conf rules and logs something appropriately urgent seeming?

Could we package something in the installer that looks for fileserver.conf rules and logs something appropriately urgent seeming?

I'm not sure that we really have an installer per-se in the OSS puppet-agent packaging.  I suppose a script could be launched post-install which might do something like this but I've understood that RE has frowned upon doing anything sophisticated like that.  There's probably a more elegant solution which could be done for PE.


My gif won't load. Input image exceeds pixel limit. Width x height should be less than 71000000

My gif won't load.
It outputs
Input image exceeds pixel limit. Width x height should be less than 71000000

But my picture is in line with the requirements.Why does this problem occur?
Thank you.
https://images.weserv.nl/?n=-1&url=https://pic.opop.vip/551f16624001291.gif

But the other one is normal.
https://images.weserv.nl/?n=-1&url=https://pic.opop.vip/551f1662a001291.gif

The first image exceeds our pixel limit since it is 800x240600 (401 frames, with each frame being 800x600).
$ curl -LO https://pic.opop.vip/551f16624001291.gif
$ vipsheader 551f16624001291.gif
551f16624001291.gif: 800x600 uchar, 4 bands, srgb, gifload
$ vipsheader 551f16624001291.gif[n=-1]
551f16624001291.gif: 800x240600 uchar, 4 bands, srgb, gifload
$ vipsheader -f n-pages 551f16624001291.gif
401

The second image does not exeed our pixel limit as it is 400x49500 (165 frames, with each frame being 400x300).
$ curl -LO https://pic.opop.vip/551f1662a001291.gif
$ vipsheader 551f1662a001291.gif
551f1662a001291.gif: 400x300 uchar, 4 bands, srgb, gifload
$ vipsheader 551f1662a001291.gif[n=-1]
551f1662a001291.gif: 400x49500 uchar, 4 bands, srgb, gifload
$ vipsheader -f n-pages 551f1662a001291.gif
165

Well, it would be nice to be able to exceed the maximum number of pages for displaying gifs, after all, it would be uncomfortable if the images could not be displayed.
Thank you very much for your answer!


AI Companion - Safari tabs are missing

Extension
https://www.raycast.com/lin/browser-ai
Raycast Version
1.81.2
macOS Version
14.6.1
Description
[Browser AI Companion] ...When I choose the command "Add focused browser tab..." or "Open browser tab...", no Safari tabs show up.
Steps To Reproduce

Open AI Chat
Click the + button
Choose Add focused browser tabs or Open browser tabs
Although I have Safari and Orion open., only Orion tabs are shown and if I close  Orion the above two commands (in point 3) are not shown

Current Behaviour
No response
Expected Behaviour
No response

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

I think I might not install something from media fire...

I'm guessing it may be some kind of Mac permissions issue, but Raycast seems to have all the permissions it needs. Any suggestions gratefully received, as this is really powerful feature and I'd use it a lot!

Did @aeither have a look?

Still no browser tabs are shown from Safari or Orion. Is there a fix for this?

Anyone: Is this the right channel for support, or is there another way to post bugs/questions?


Feature Request - manage dependencies

This is one feature I desperately want. Many times after installing it becomes very difficult to find out dependencies installed by a package and they stay on. If this could be fixed it would be great.

this would be solved

Not a problem with pyenv — only things you explicitly install are added to Pipfile, and if there are sub-dependencies, they are added to Pipfile.freeze when freeze is run.


Replace custom PHAR build with Box

Hey,
In the deploy command, I noticed that you're using some custom code to build the phar file, maybe it's worth considering the usage of Box which allows building, managing, and much more (i.e. out of box phar compression support).
WDYT?

It's a good question.
At first, this packaging code originated from my own chatbot development framework, and the reason why no other packaging tools were introduced is also very simple: it is very simple enough to do so :P
I haven't written Release Actions for deploy and automatically package an independent binary when a new version is released, because I may need to change the extension availability check process #124 .
Of course, for static-php-cli now, it may be considered to support packaging the project into a single file (using micro) in the future. At this time, using an external packaging tool is a good choice. I've also seen the box project mention this: https://github.com/box-project/box/issues/331

I also want to support this feature before the official 2.0 release, at least other people can just download a ./spc, and don't even need to install PHP to use it.

I have played locally with both static-php & box, building simple PoC for another project without a problem, I was even able to compress easily the Phar file reducing its size by half.

@crazywhalecc Do you have some particular tests/actions that could be done to prove that phar is good?
I have fast PoC locally (just global box compile, no work on command yet), with quite good results so far:

There is currently no test code specifically used to test the validity of its own phar, but you can use the dev command to test whether the configuration file can be read correctly. Under normal circumstances, if the help menu can be displayed normally, it is working normally.
Also, I'm not very familiar with how the box is configured, I might need to look into how it works.

Nevermind, I figured it out. 🙌 Next step is to integrate.

Closing in favor of https://github.com/crazywhalecc/static-php-cli/issues/179


NuGet packages are missing readme.md

Add readme.md files to each package.
https://devblogs.microsoft.com/nuget/add-a-readme-to-your-nuget-package/#add-a-readme-to-your-package

The readme files are now shown:


better compression ratio for png images ( preserve transparency)

Is your feature request related to a problem? Please describe.
problem: I need to compress png images with output as png to preserve transparency. Squoosh tool is quite good at compressing images when the output is a jpeg but not a png.
Describe the solution you'd like
better compression option for png images (preserve transparency)
Does other service/app have this feature?
below tools compress PNGs with a much better compression ratio w/o losing quality.

https://compresspng.com/
https://tinypng.com/

I believe squoosh can at least achieve the same compression ratio, if not better.

Squoosh does support PNG (select “OxiPNG”!). Does that not work for you?

WebP and AVIF also support transparency, and are supported in Squoosh.
To improve compression in PNG and lossless WebP, also use "reduce palette".

reduce palette did the trick!

Cool, that's what https://compresspng.com/ and https://tinypng.com/ are doing, but Squoosh gives you more control.


feat: (Geospatial) Add support for ReverseGeocoder and CheckPointInPolygon

Added Support for Get Point in Polygon and BatchReverseGeocoding APIs
Added a few of Spatial schema objects (More to be added with corresponding apis)
Added a HasSetGeography trait to support creator's geographical endpoints
Added HasUDID, HasLatLonPair traits
Refactored HasAddressInput to separate HasAddressInput and BatchAddressGeocoding traits
Added BatchReverseAddressGeocoding trait to support Batch Reverse geocoding
Renamed AzureMapsSearchSuite to AzureMapsSuite in tests folder

/azp run

Codecov Report

Merging #1337 (7ed790f) into master (906b408) will decrease coverage by 82.16%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master   #1337       +/-   ##
==========================================
- Coverage   84.69%   2.52%   -82.17%
==========================================
  Files         284     258       -26
  Lines       13916   12975      -941
  Branches      673     733       +60
==========================================
- Hits        11786     328    -11458
- Misses       2130   12647    +10517

Impacted Files
Coverage Δ

...azure/synapse/ml/geospatial/AzureMapsHelpers.scala
0.00% <0.00%> (-71.74%)
:arrow_down:

.../azure/synapse/ml/geospatial/AzureMapsSearch.scala
0.00% <0.00%> (-88.89%)
:arrow_down:

...azure/synapse/ml/geospatial/AzureMapsSpatial.scala
0.00% <0.00%> (ø)

...m/src/main/scala/com/microsoft/lightgbm/SWIG.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ain/scala/org/apache/spark/ml/param/MapParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...n/scala/org/apache/spark/ml/param/UDPyFParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...cala/org/apache/spark/ml/NamespaceInjections.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...cala/org/apache/spark/ml/param/DataTypeParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ala/org/apache/spark/ml/param/ByteArrayParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ala/org/apache/spark/ml/param/EvaluatorParam.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 269 more

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 8b64094...7ed790f.


opensubdiv as a Conan only package

Convert OpenSubDiv to a Conan only package

Addressed in 2024.0 releases

Addressed in 2024.0 releases


Add Repository form

Add Repository Form
Fixes https://issues.redhat.com/browse/AAH-2481 and https://issues.redhat.com/browse/AAH-2480

There are issues I could'nt solve:

~Remote dropdown doesn't have a selected value according to init data~
~When pipeline changes it should enable/disable hide from search (if pipeline === staging => hide from search is disabled)~
~distribution enable/disabled not correct~
~hide from search changes value to true when staging is selected~

@nixocio Fixed. Hopefully it works now :D

@nixocio Fixed. Hopefully it works now :D

It is working great. Ty.


[RAT-Profile] (Darkmode) QR-Code should have a black background

Current Implementation

The QR-Code has has a white background on light- and darkmode.
Suggested Enhancement

Use a dark background.
Expected Benefits

Just looks better IMO.

Other
(An inversion of the qr-code picture should be easy to implement)

@jucktnich Are you only asking for the RAT Profile QR-Code or also for the event-registration QR-Code?
If you are only asking for the RAT Profile, why don't you think an implementation for the event-registration should be considered?

See #512

@jucktnich I saw #512 but it does not mention dark mode. The new title is better. Thank you!

Yeah, a bit confusing

Now it's clear, thanks! Supporting this btw!

@jucktnich
Thank you for the request. We have created  EXPOSUREAPP-7301 in our internal Jira for ypur proposal. The devs will discuss the possibility now.

Corona-Warn-App Open Source Team

Yesterday I was in the Airport in Malta and the Health Authority there had Issues scanning the Vaccination Certificate while the Phone (iOS) was in dark mode (max brightness). After setting it to light mode their app could scan the Vaccination Cert right away.
So maybe a black background is not always the best idea. This might need more testing.

@AdamVB Thanks for the info. We will forward this internally.

Corona-Warn-App Open Source Team

@AdamVB the qrcode wasn't inverted right?

no, we tried it in all angles, even putting paper above both phones to avoid light reflexions but none of that helped until a colleague came by and gave the hint that turning on the "light" mode works a lot better. And as soon as we did that it scanned instantly.

@AdamVB you used the CWA right?

yes, displayed the QR Code from within CWA

Yeah, but then this has nothing to do with my issue, I think, since my proposal wasn't implemented yet. Or do I miss something?

Well right now the background is dark grey so maybe it is already implemented?

My proposal is to invert the picture of the qr-code, not make the background black, since as you can see, this is and was already implemented.

ohh, i thought you meant the borders and background around the QR code, not the QR code content itself. Ok then my concerns are not in the right place here.


fix "Passing individual values" issue

Hey man, I got another pull request for you, and I also helped fix your README, too.
It is about the issue "Passing individual values",  I found that the old method you mentioned in README using querystring is not working(seems to be something wrong about your entry path)
And since Node.js had marked the querystring as legacy API in version 14.x, and recommended using URLSearchParams, I think we should give the old method an upgrade .
I am still using webpack loader inline for this problem,  but I change the old method for a little bit (You can check it).
If you have any problem, feel free to contact me using twitter : D
Cheers 👍
fix #11

@mizok
You've helped me again!
Thank you for suggesting a new way to do the old way!
There are a few things I would like to see corrected, please.

Sure, I will change this ASAP.

BTW  it is named htmlWebpackPluginTemplateCustomizerConfig, not WebpackPluggingTemplateCustomizerConfig, or are you intended for this name?

ok~

BTW it is named htmlWebpackPluginTemplateCustomizerConfig, not WebpackPluggingTemplateCustomizerConfig, or are you intended for this name (WebpackPluggingTemplateCustomizerConfig)?
I named this way bc I thought it is only for htmlWebpackPlugin, since this loader has this dependency.

This is a mistake.
You can leave it as it is now!

@mizok
Thanks!
Now we have a way to pass individual values!


KIC 2.0 - Alpha/Beta release slack script

In a previous conversation @Kong/team-k8s agreed that we want to Slack announce our alpha-beta pre-releases to help improve visibility internally and in the community, the purpose of this PR is to put together the script to do those Slack announcements.
Alternatively: this is just a reminder to come up with a release template if we intend instead to do these manually.

I wouldn't necessarily announce as early as alpha.1. I think that we'll benefit more from drawing attention for further (more feature-complete and stable) releases than the first alpha.


Added other parameters as launchfile args + framerate check

Hello, I'm not sure why, but previous changes already merged into your master Also appears here :/.
Simple args adding, with few checks on inputs values :

ff5de5b  show_image
f6b2db2 resolution + default is resolution >3
3a5529c framerate, Also added a warning in case of downgraded framerate due to too high frequency for selected resolution (not changing the behaviour, but I think it's always good to let user know when everything is not running as asked).

Best regards,

fixed in 85b416f :)

5bc4aee added support for encoding selection. It was useful for Kalibr which is not working with brg8 encoding.

I am going to address the comments myself.
Thanks for your contribution.


Installation requires satisfaction of tensorflow-macos on Windows

Before posting a bug report

[X] I have searched exisisting GitHub issues to make sure the issue does not already exist.

Expected behavior
Expect to install the specified version of MrMustard using only system-relevant dependencies.
Actual behavior
Attempting
pip install mrmustard==0.4.1

on Windows 10 throws two errors related to tensorflow-macos and prevents installation.
Trying to circumvent this using the no-dependencies parameter,
pip install --no-dependencies mrmustard==0.4.1

leads to problems when importing MrMustard.
Reproduces how often
On every attempt of
pip install mrmustard==0.4.1

System information
Mr Mustard: a differentiable bridge between phase space and Fock space.
Copyright 2021 Xanadu Quantum Technologies Inc.

Python version:            3.10.9
Platform info:             Windows-10-10.0.19045-SP0
Installation path:         C:\Users\Windows\anaconda3\lib\site-packages\mrmustard
Mr Mustard version:        0.4.1
Numpy version:             1.23.5
Numba version:             0.56.4
Scipy version:             1.10.0
The Walrus version:        0.20.0
TensorFlow version:        2.13.0
Torch version:             1.12.1

#after installation with --no-dependencies

Source code
pip install mrmustard==0.4.1

Tracebacks
(base) C:\Users\Windows>pip install mrmustard==0.4.1
Collecting mrmustard==0.4.1
  Using cached mrmustard-0.4.1-py3-none-any.whl (140 kB)
Requirement already satisfied: numpy in c:\users\windows\anaconda3\lib\site-packages (from mrmustard==0.4.1) (1.23.5)
Requirement already satisfied: scipy in c:\users\windows\anaconda3\lib\site-packages (from mrmustard==0.4.1) (1.10.0)
Requirement already satisfied: numba in c:\users\windows\anaconda3\lib\site-packages (from mrmustard==0.4.1) (0.56.4)
Requirement already satisfied: thewalrus>=0.17.0 in c:\users\windows\anaconda3\lib\site-packages (from mrmustard==0.4.1) (0.20.0)
INFO: pip is looking at multiple versions of mrmustard to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement tensorflow-macos<=2.10.0 (from mrmustard) (from versions: none)
ERROR: No matching distribution found for tensorflow-macos<=2.10.0

Additional information
No response

Hi @ajboon thanks for opening the issue. We are about to migrate to poetry for handling installation and releases (PR #257), which should solve this issue as well. I'm going to close this issue and make a new release using poetry, but feel free to reopen it in case that doesn't solve your problem.