Initial implementation of numeric report charts.

Replacement for #3528 w/o use of "Consolidation"
Work towards numeric report charts: https://bugzilla.redhat.com/show_bug.cgi?id=1213294

Number of VMs per host

@martinpovolny This is looking pretty good . . . I did a report on disk space and noticed that maybe we could use the same formatting for the legend markers as we have in the report, as seen below:
Report sort criteria

Report chart options

Note the legends with all the zeroes and no commas

Report shows them as humanized, to MB, GB, TB, etc

Same in column view with vertical axis legends

This may be a jqPlots issue, but something to keep in mind for the future C3 charting is that with the flash charts, we could hover over a bar or chart item or node on a line chart and it would show a popup with the actual value.  Would be a nice feature to keep.
Pie charts for values look good and they have hover text over the pie slices, but same note about formatting of the values shown

Pie chart using counts didn't fare as well, chart is blank.

Column chart based on counts results in a line chart (strange)

@martinpovolny Lots of feedback above, let's discuss where you're at tomorrow morning.  Thx, Dan

@dclarizio :

fixed the missing chart and the line chart -- seems chart type information was missing in the json
added a spec for 2 main cases of the count-based charts -- this shoul cover the case above
fixed some problem in the report editor when switching chart types

@martinpovolny more testing . . .
Summary tab set to counts with no aggregations set, Chart tab should not allow values.  Currently lets you select values, but the data column has a null choice.  If no aggregations are being done, it should show Counts as a string with no choice and, of course, not show the column drop down.  Here are the screenshots:

Running the report with counts, not sure the output is correct.  I can see some break lines in the report output and 1 of them lines up with the legend and has a value of 3 showing.  The others, I think the name is too long so I can't see the count in the legend???  The chart shows percentages (which is probably ok), but hovering the mouse over the pie slices doesn't tell me which provider it is or the count, there is no popup.  Basically, I can't tell if the chart matches the report.

@martinpovolny Simple test, ran the "Vendor and Guest OS" report with the stacked bar chart (so 3d charts by count) and the charts look identical, so it seems those are working as before.  Thought I would post some good news as well.  :)
Before:

After:

@martinpovolny More good news, testing of column charts with values.  Only issue here is from before, Y axis labels need formatting.  Would be nice to have hover over values, but we can wait for C3.
Chart configuration:

Chart/Report:

@martinpovolny Same issues as above for bar charts (X axis labels crazy) . . . they look pretty good tho:

@dclarizio : Thinking about the use of MiqReport::Formatting for the formatting of the axis labels. The problem is that the ticks for numeric values are calculated by the javascript library. The same most likely holds for the flash charts.
For one we don't know the values for the ticks when calculation the chart. Then depending on type of chart we might have a problem with associating labels of the axis with the values in the chart. In jqplot you can have a formatter class for the ticks or you can use a special axis renderer for a couple of typical axis such as Date and Cathegory.
Seems to me that the proper way would be providing formatters based on column types similarly to what we have in db/fixtures/miq_report_formats.yml -- bytes, mHz, percent etc. No idea how to do this for the flash charts. Also might be work investigating what we will do if we use the C3 charts instead and do in in a general way. Definitely even though the labels are pretty ugly (I can rotate them at least to fit better) I would say that we need a separate issue and some research for this.
@himdel : do you know that ways one can use in the C3 to format axis values?

@martinpovolny sure, I think this should be useable :)

@himdel : http://www.jqplot.com/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html#$.jqplot.CanvasAxisTickRenderer.formatter
so we need

some javascript code that would take understand how to format according to the db/fixtures/miq_report_formats.yml formats and
then we just pass in the format of the column that is being projected on the axis along with the other options as we generate the charts

@dclarizio : I'd probably create an issue for that

@himdel : do you know about some nice js library we could use? https://github.com/adamwdraper/Numeral-js maybe?

Uh, looking at the formats, angular actually has most of these as filters but it'd be rather hacky to use here I guess... I've never heard of Numeral.js but looks like it could be useful for the numeric formats. We already have moment.js so we can use that for dates/times, and possibly something like sprintf-js to cover the rest?
I can look more into it tomorrow .. sounds like simply reimplementing most of miq_report/formatting.rb in JS, right?

@himdel : seems to me to be the best way to reimplement that in JS. In the reports we way for the user to specify his/her format so we might actually end really reimplementing it so that we have the same format specification on both sides.

@himdel : if you can look into it, I'd be glad. I can make the charts pass in the formating information for the right column, but If you could help with the javascript implementation of the formating function, it would be great help for me. Your experience with variety of javascript libraries would be usefull here ;-)

@martinpovolny sure, no problem :) I'm assuming we want to keep the same function names mentioned in :function :name, I'll put it under .. say, ManageIQ.charts.formatters or something like that, ok?

Support for strftime-like date format specifiers in format_date will depend on this moment-strftime PR. Is there any chance we may need other format specifiers not mentioned in the yaml?

@martinpovolny Minor detail in pie popup, not sure why it shows 2 values with : separator.  Maybe legend has the value in the text, then it is adding the actual value again after the text in the popup.

2dim usecase

The text shortening code is suboptimal at best. It simply cuts what's over certain limit N and adds "...".
We should probably change it to shortening what's longer than N+3 and then cut at N and add the "...".

@dclarizio: fixed the "2 values with : separator..." in the last commit.

@martinpovolny Tried a 2 dim chart, got the following when viewing the report/chart:
I just noticed when taking the screen shots that on Summary tab I specified Counts, so on Charts tab it shows "Counts", but I have the Avg aggregation selected.  I'm thinking maybe that's an editor bug?  I will change it to use an aggregation on the Summary tab and the same on Charts tab to see if that works, but this still may be a bug in editor where it should have used Counts and not showed me the aggregation drop down.
[----] I, [2015-08-28T14:21:30.039953 #26232:e4d98c]  INFO -- : Started GET "/report/render_chart?height=250&rand=431984952&width=350" for <IP_ADDRESS> at 2015-08-28 14:21:30 -0700
[----] I, [2015-08-28T14:21:30.100082 #26232:e4d98c]  INFO -- : Processing by ReportController#render_chart as JSON
[----] I, [2015-08-28T14:21:30.100291 #26232:e4d98c]  INFO -- :   Parameters: {"height"=>"250", "rand"=>"431984952", "width"=>"350"}
[----] F, [2015-08-28T14:21:30.276852 #26232:e4d98c] FATAL -- : Error caught: [ArgumentError] comparison of String with nil failed
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `sort'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/jqplot.rb:142:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:560:in `build_reporting_chart_numeric'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:62:in `call'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:62:in `build_document_body'

Report details:

@martinpovolny Same error as above with Summary/Charts configured correctly:

@martinpovolny Changing Summary and Charts tabs to use Counts instead of values as above, charts are drawn successfully:

@martinpovolny I just noticed something in my prior comment (and screen shots).  I selected the Bars (2D) chart, but it is creating Columns Stacked (2D) charts.  Changing to Columns (2D) chart also shows the same thing, Columns Stacked (2D).  Changing to Bars Stacked (2D), same thing . . . almost like it's hard coded to do Columns Stacked.
Donuts and Pies seem to work fine.

fixed report editor (disallow value charts when summary changed from "Yes")
fixed field parsing in charts to fix above reported lib/report_formatter/chart_common.rb:448:in sort'` happening for fields with underscore

@martinpovolny So, the Bars (2D) and Columns (2D) charts CAN support multiple series, as shown in the sample charts in the editor.  It simply places the series values for each axis point next to one another:

Running these reports incorrectly results in a change to the stacked charts:

Along these lines, I think we can also remove (2D) from all of the chart type names as none of them support 3D as DHTMLX used to.

@martinpovolny Noticed the values chooser is using the internal field name, should show the same as in summary tab.

@martinpovolny When linked to productization, run this report (screenshot) and when rendering the chart, I get this exception (log).  Was trying to see if the dhtmlx charts did the non-stacked bar/col charts properly still.  Just noticed this is the same error as above, so perhaps this code is also in productization?

[----] I, [2015-09-02T10:11:39.560391 #19620:5d7988]  INFO -- : Started GET "/report/render_chart?height=250&rand=513429900&width=350" for <IP_ADDRESS> at 2015-09-02 10:11:39 -0700
[----] I, [2015-09-02T10:11:39.617529 #19620:5d7988]  INFO -- : Processing by ReportController#render_chart as HTML
[----] I, [2015-09-02T10:11:39.617761 #19620:5d7988]  INFO -- :   Parameters: {"height"=>"250", "rand"=>"513429900", "width"=>"350"}
[----] F, [2015-09-02T10:11:39.786693 #19620:5d7988] FATAL -- : Error caught: [ArgumentError] comparison of String with nil failed
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `sort'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:560:in `build_reporting_chart_numeric'

@dclarizio : thanks for detailed testing!
Now I:

fixed the field labels in editor
unified the formating of counts and value based 2dim charts

@martinpovolny looks like a relevant spec test failure on vmdb.

@martinpovolny Reran my saved chart report (with 2 series and non-stacked chart selected) with the new code, got this error again when chart is rendered for display (same as above with productization):

[----] I, [2015-09-03T15:03:15.888138 #5574:ad9990]  INFO -- : Completed 200 OK in 500ms (Views: 0.3ms | ActiveRecord: 16.4ms)
[----] I, [2015-09-03T15:03:16.048822 #5574:ad9990]  INFO -- : Started GET "/report/render_chart?height=250&rand=558489395&width=350" for <IP_ADDRESS> at 2015-09-03 15:03:16 -0700
[----] I, [2015-09-03T15:03:16.109741 #5574:ad9990]  INFO -- : Processing by
ReportController#render_chart as JSON
[----] I, [2015-09-03T15:03:16.109938 #5574:ad9990]  INFO -- :   Parameters: {"height"=>"250", "rand"=>"558489395", "width"=>"350"}
[----] F, [2015-09-03T15:03:16.274265 #5574:ad9990] FATAL -- : Error caught: [ArgumentError] comparison of String with nil failed
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `sort'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:448:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/jqplot.rb:127:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:560:in `build_reporting_chart_numeric'

@martinpovolny Easy fix, remove (2D) from chart type names since there are no 3D charts:

@dclarizio : on "Reran my saved chart report (with 2 series and non-stacked chart selected) with the new code, got this error again when chart is rendered for display (same as above with productization):"
Can  you, please, either create the report again from scratch or send me also a screenshot of the "Summary page". I cannot reproduce the error.
Seems to me you must have only one sort criteria in the Summary (which the editor does not allow any more) -- so you have an invalid combination or I don't know. Just cannot create the situation on my box.

@martinpovolny Still seeing the exception when rendering the values chart, screenshots below.  Also IRC'd you a link to my DB.

@dclarizio : please, retest with the last patch. I have also modified the spec to fail w/o the change.

@martinpovolny Exception is gone upstream.  When productized, I get the following when rendering the chart with values (counts renders fine).  Should be able to reproduce this with the DB I sent you.
[----] I, [2015-09-04T13:21:45.238407 #7786:64f988]  INFO -- : Started GET "/report/render_chart?height=250&rand=144678747&width=350" for <IP_ADDRESS> at 2015-09-04 13:21:45 -0700
[----] I, [2015-09-04T13:21:45.294838 #7786:64f988]  INFO -- : Processing by ReportController#render_chart as HTML
[----] I, [2015-09-04T13:21:45.295038 #7786:64f988]  INFO -- :   Parameters: {"height"=>"250", "rand"=>"144678747", "width"=>"350"}
[----] F, [2015-09-04T13:21:45.453925 #7786:64f988] FATAL -- : Error caught: [NoMethodError] undefined method `match' for nil:NilClass
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:437:in `build_numeric_chart_grouped_2dim'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:560:in `build_reporting_chart_numeric'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:62:in `call'
/home/dclarizio/dev/manageiq/lib/report_formatter/chart_common.rb:62:in `build_document_body'

@dclarizio : the above error seems as if you where loading a broken report from DB. That's a failure in parsing the saved chart column from the report definition.
Also I was not able to reproduce this even when I tried your database, opened "Dan's Chart Tests" and then tried to edit your report (changing Value based to Counts based and more).

@martinpovolny OK, so I created a chart report from scratch when productized and it worked just fine.  I also copied the suspect chart and when I went to the summary screen, non of the aggregations were defined.  Defined those and the charts worked there as well.  Merging this now.


Cherry-pick #647

fix(snapshot/timeout): add missing volume snapshot timeout

Signed-off-by: Tiago Castro<EMAIL_ADDRESS>

refactor(snapshot/destroy): rename delete to destroy as per convention

Signed-off-by: Tiago Castro<EMAIL_ADDRESS>

bors merge


super-productivity: 1.10.45 -> 6.3.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/johannesjo/super-productivity/releases.
meta.description for super-productivity is: "To Do List / Time Tracker with Jira Integration"
meta.homepage for super-productivity is: "https://super-productivity.com"
meta.changelog for super-productivity is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 6.3.3 with grep in /nix/store/ayp91xz6mwnc1hqli13vn0vvazqavqdn-super-productivity-6.3.3

directory tree listing: https://gist.github.com/ed61a949f617c3e9ed0ff90d17c5bce5

du listing: https://gist.github.com/1f6de36eac81c3617a42a8da6de7a213

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
0 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
super-productivity

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ayp91xz6mwnc1hqli13vn0vvazqavqdn-super-productivity-6.3.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A super-productivity https://github.com/r-ryantm/nixpkgs/archive/406227757f54635454de7fc3d6bd35f90698bc34.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ayp91xz6mwnc1hqli13vn0vvazqavqdn-super-productivity-6.3.3
ls -la /nix/store/ayp91xz6mwnc1hqli13vn0vvazqavqdn-super-productivity-6.3.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

super-productivity

Maintainer pings
cc @offlinehacker for testing.

fails for me when starting with:
/nix/store/zrhblv9954v9icwivzwl1d6bnvvmch4l-super-productivity-6.3.3/libexec/superProductivity/superproductivity: error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory


VW - Feedback alert/confirmation that Vetting Note has been saved

provide some type of active feedback to user that the new data has been saved after the 'save' button is clicked.

Check to see if this is resolved with Rohin's fix for #129

Fixed in most recent commit with fixes by Rohin.


net/http: unix socket does not get removed when application exits, which makes restart fail

Go version
go version go1.23.4 linux/amd64
Output of go env in your module/workspace:
env really doesn't matter here, this bug have years.

I initially thought it was Gin bug ( https://github.com/gin-gonic/gin/issues/3817 ) but I digged deeper

What did you do?
Running this code
func main() {
	u, err := net.Listen("unix", "sock_raw")
	fmt.Println(err)
	if err == nil {
		defer u.Close()
	}
}

over and over will work every time unless killed by SIGKILL because u.Close() cleans up the socket.
but adding http.Serve in the mix:
package main

import (
	"fmt"
	"net"
	"net/http"
)

type H struct{}

func (h *H) ServeHTTP(w http.ResponseWriter, r *http.Request) {

}

func main() {
	u, err := net.Listen("unix", "sock_http")
	fmt.Println(err)
	if err == nil {
		defer u.Close()
		fmt.Println("press C-c and run me again")
		fmt.Println(http.Serve(u, &H{}))
	}

}

will fail after first run because of leftover socket that now for some reason is not cleared by u.Close(). Even if cleanup is added manually by defer os.Remove()
...
func main() {
	u, err := net.Listen("unix", "sock_http")
	defer os.Remove("sock_http") # <-- here
	fmt.Println(err)
	if err == nil {
		defer u.Close()
		fmt.Println("press C-c and run me again")
		fmt.Println(http.Serve(u, &H{}))
	}
}

the result is still the same:
-> ᛯ go run main.go                                                                                1
<nil>
press C-c and run me again
^Csignal: interrupt
-> ᛯ go run main.go                                                                                1
listen unix sock_http: bind: address already in use
[20:44:53] ^ [/tmp/g]
-> ᛯ

I even tried adding
		defer func() {
			c := exec.Command("/bin/rm", "sock_http")
			c.Run()
		}()

but that didn't remove it either. Also tried adding signal handler so it gets clean os.Exit:
package main

import (
	"fmt"
	"net"
	"net/http"
	"os"
	"os/signal"
)

func main() {

	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	go func() {
		for _ = range c {
			fmt.Println("exiting")
			os.Exit(1)
		}
	}()
	u, err := net.Listen("unix", "sock_http")
	fmt.Println(err)
	if err == nil {
		defer u.Close()
		fmt.Println("press C-c and run me again")
		fmt.Println(http.Serve(u, nil))
	}

with same result:
-> ᛯ go run main.go
<nil>
press C-c and run me again
^Cexiting
exit status 1
-> ᛯ go run main.go                                                                                1
listen unix sock_http: bind: address already in use

What did you see happen?
Socket not being removed when http.Serve uses it
What did you expect to see?
I'd expect one of 2 things to happen:

net.Listen user pre-created socket if it can, which allows to, for example, set the permissions to the socket before listening on it which might desirable security-wise
the socket is correctly cleared if removed when http.Serve is using it

Related Issues

net/http: Server still handling new connections after Close (or Shutdown) returns #36093 (closed)
net/http: SIGKILL, SIGABRT appear to cause server termination yet zombie processes with address still bound persist #16599 (closed)
net/http/server.go: the server doesn't exit when the listener socket fd closed #68175 (closed)
net/http: Server.Close does defer Lock #17878 (closed)
httptest failed to bind newly released port #24818 (closed)
net/http: shutdown on http.Server serving through net.Listener closes listener twice #24803 (closed)
net/http: something about semantics of Server.Close #17880 (closed)
net: Listener.Close() does not fully stop the server when Accept()'ing at the same time #22502 (closed)
net/http: TCP connection is not closed after http client makes a https request via a http proxy server which doesn't response #28012 (closed)
net/http: Server.Close may not able to close all connections #48642 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

This is how Unix domain sockets work - you have to delete the file before you can use the same address again. See https://man7.org/linux/man-pages/man7/unix.7.html

Binding to a socket with a filename creates a socket in the
filesystem that must be deleted by the caller when it is no
longer needed (using unlink(2)).  The usual UNIX close-behind
semantics apply; the socket can be unlinked at any time and will
be finally removed from the filesystem when the last reference to
it is closed.

You should either do os.Remove first (and ignore os.ErrNotExist), or consider using the abstract namespace instead if you only need to support Linux.

@rittneje net.Listen does that cleanup on its own when unix socket is closed.
The problem is really that most of the apps that use http.Serve() will handle it incorrectly because what you'd need to do is delete the socket in sigint/sigterm signal handler coz defer is not executed when app gets SIGINT.  i.e most obvious use case is also wrong by default because most people don't expect defer being skipped when getting SIGINT or even running os.Exit

I didn't think there much we can do if you choose to use os.Exit or not allow cleanup to run by handling signals

@seankhliao the first examples do not handle signals in any way and cleanup does not happen. That's why I'm reporting it, I actually found it out by just using gin that uses standard http.Serve with nothing special and cleanup doesn't happen on Ctrl+c

Also, if you want SIGINT/SIGTERM to run any defers, then you need to handle these signals yourself instead of relying on the default behavior, which cannot know about any of your defers since it would be in a completely different goroutine.

Okay, I didn't knew that is possible, how you can exit Go while triggering all defers ? Coz that would solve my problem.

See signal.Notify or signal.NotifyContext.

@rittneje I asked about triggering defers (that might be dug 2 dependencies deep, like in case where I originally found that problem inside gin framework), I know how to handle signals

@XANi We don't use the issue tracker for questions.  You will get better and faster answers on a forum.  See https://go.dev/wiki/Questions.


Default int display width difference

As far as I can tell, all ActiveRecord int columns are set with display width of 11.
Example below modified from Rails Guides:
CREATE TABLE products (
   id int(11) NOT NULL auto_increment,
   val int(11) NOT NULL,
   name varchar(255),
   PRIMARY KEY (id)
);

This makes sense with the MySQL default for signed int, since it requires 11 characters to display the min value and the negative sign. See this SO question.
Currently, the gem modifies the default behavior and all int value columns are created with a display width of 10. This causes slight differences in the structure.sql files created by ActiveRecord.  In the spec migrations you refer to the int(10) being the default ActiveRecord primary_key, but that does not appear to be true.
Does it make more sense to respect the default ActiveRecord behavior and for signed int columns set the display width to 11 and for unsigned int columns set it to 10?
CREATE TABLE products (
   id int(10) unsigned NOT NULL auto_increment,
   val int(11) NOT NULL,
   n int(10) unsigned NOT NULL,
   name varchar(255),
   PRIMARY KEY (id)
);

After making sure I updated the gem to the latest, the behavior is correct. However, perhaps the spec migration should be updated?


Added checking the unit tests for Android project

common tests are UI tests in fact. yes, there is a confusion in general...
so, it doesn't work if you run them as unit tests

no.
The common UI tests work on all platforms as UI tests.
And common unit tests work as well.
But them should be run different (with a test filter by test class) on the android target


Interactive Mode for CLI

Is your feature request related to a problem? Please describe.
I'm always frustrated when rubocop is introduced into an existing codebase or gets out of sync and there are a lot of offenses at once.
Describe the solution you'd like
If you could run in interactive mode and have each offense come up with some options, like "autofix", disable cop (in file, directory, project), "add to todo", etc.
Describe alternatives you've considered
The process I've used in the past is to bulk autofix (which has caused problems), add everything to todo, and/or disable cops across the whole project.
Additional context
This is something I would be willing to help on

It seems like this could be handled in a fairly automated somewhat brute-force fashion though it may be more useful for cops where there are explict settings and where the Rubocop todo would probably just turn the cop off.
I feel like it would be possible to build something on top of robocop that handle this (which could potentially be later merged into it). Call it rubocop-dispatch maybe? That just runs rubocop collects the failures and then dynamically changes the settings via an auto-generated .rubocop-dispatch.yml file with the aim of figuring out a setting for each cop that generates the least number of failures for that cop. However, looking at the code, it doesn't seem like robocop stores a list of valid parameters. Though admittedly in theory it only requires creating a master list of valid configurations over time that could be brute force searched though.
If there is no passing configuration, then the list of configurations are provided and the user is asked to select one, including turning the cop off and adding the cop to the todo list.
Commenting mostly as I saw this:
https://www.reddit.com/r/ruby/comments/yprznd/how_to_make_rubocop_be_more_versatile/


Arroyo creates slightly confusing stacktraces for application level errors

https://sentry.sentry.io/issues/4252310678/events/ab963ef95d334ca1b8b20079b4421d41/?project=1
this error seems like it comes from the arroyo library code, even though it happened in our application level code. It would be nice if we could have more straighforward stacktraces from our consumer errors.

I think this is very similar to the grouping issues we had in native, with random signal handlers interrupting the work of the main thread. We should try and figure out some additional updates to the grouping algorithm to make those stacktraces group better (truncate a few threadbases) + also add logic to arroyo so that teh stacktrace becomes more readable


It looks like graph is falling down

While cases are actively increasing every day, The current graph is showing a negative slope.

Duplicates #761


[REST API] check our fork schedule complies with rest api description change

https://github.com/ethereum/eth2.0-APIs/pull/159

Confirmed, we list future forks and forks that are no longer active, just basically the entire fork schedule as known by the beacon node.
No corrective action required to conform with the api change.


Multiple Errors when trying to run :KeySeer

Description
three different errors/messages, (the first one multiple times), and then the popup window from keyseer is completely empty.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
   Info  15:20:51 notify.info keyseer.nvim No keycode found for <BS>
   Error  15:20:51 msg_show.lua_error    KeySeer Error executing Lua callback: ...hare/nvim/lazy/keyseer.nvim/lua/keyseer/keymaps/init.lua:243: table index is nil
stack traceback:
	...hare/nvim/lazy/keyseer.nvim/lua/keyseer/keymaps/init.lua:243: in function 'get_current_keycaps'
	...are/nvim/lazy/keyseer.nvim/lua/keyseer/ui/panes/home.lua:25: in function 'render'
	...l/share/nvim/lazy/keyseer.nvim/lua/keyseer/ui/render.lua:34: in function 'update'
	...cal/share/nvim/lazy/keyseer.nvim/lua/keyseer/ui/init.lua:158: in function 'update'
	...cal/share/nvim/lazy/keyseer.nvim/lua/keyseer/ui/init.lua:77: in function 'show'
	....local/share/nvim/lazy/keyseer.nvim/lua/keyseer/init.lua:47: in function <....local/share/nvim/lazy/keyseer.nvim/lua/keyseer/init.lua:24>

Steps to reproduce

default options
Run :KeySeer

I have a lot of keybindings ( ~ 1000 lines), which probably matters here
Expected behavior
no errors
Environment
neovim 0.9.1 (homebrew)
neovide 0.10.4 (homebrew)
macOS 13.4.1 (M1)
keyseer: latest

Please try now.

There are fewer errors, and the now the keyseer popup can be seen, but there are still some a bunch of messages left:
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim Found more than one keycode in a keystring, this shouldn't happen.
  Info  15:41:56 notify.info keyseer.nvim No keycode found for <LeftMouse>
  Info  15:41:56 notify.info keyseer.nvim No keycode found for �


kube:obejcts:events:watch are not capturing all events

So i switch from pull to watch for events after Fluent Plugin Kubernetes Objects v1.1.2 was released.  But i seem to be only getting a couple of events, not all events.  A lot of events are missing.   I could go back to pull, but pull is returning duplicate events every 15 mins.  So, I really like to get watch working.  Please advice.  thanks.
objects:
core:
v1:
- name: pods
- name: namespaces
- name: nodes
- name: events
mode: watch

Hey Beth,
This is a known issue with the objects pods version kube-objects:1.1.1 or earlier.
Can you please patch your objects deploy to the latest tag on dockerhub?
kube-objects:1.1.2
you can update your helm chart with this parameter:
https://github.com/matthewmodestino/container_workshop/blob/a5b10ec0cf72850af4a8872473b4e85805fcc2bf/splunk_connect_for_kubernetes/kubernetes_connect.yaml#L24
or just edit the deployment directly and update it.

@matthewmodestino  thank you.  that works.   much appreciated.


(lint-staged) Fix prettier error 'No parser could be inferred for file' using pnpm

Using pnpm as package manager, when commit an Astro template, prettier throw the error 'No parser could be inferred for file: ...'.
To reproduce you can create a new branch, install the packages with pnpm install, modify an Astro template (ex. src/pages/index.astro) and try to commit.
Adding the parameter --plugin-search-dir=. to prettier command in lint-staged section of package.json solved the problem for me. I found the solution in this comment for more details.

It seems to be working fine on npm and yarn. Thanks for pointing this out.


[SQL lab] 3 dot menu in SQL editor

Screenshot

Description
3 dot menu dislocated

lol... that's a regression from menu refractoring... i think
@rusackas

I am having a look at this

@junlincc this issue looks resolved in master

Thank you @geido i believe this solved by your PR. https://github.com/apache/superset/pull/14566


feat: use Datadog error tracking fields for crashes

This updates the DataDog error handling to follow the standard DataDog attributes for error tracking.

Hello @btkostner, sorry for the delayed reply. This is already implemented in master branch, please give it a try.


⚠ SceneTime has degraded performance

In effe09e, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2569 ms

Resolved: SceneTime performance has improved in bd33898 after 12 minutes.


docs: remove outdated FAQ

basically every part of this FAQ is outdated
closes https://github.com/sveltejs/kit/issues/12985

preview: https://svelte-dev-git-preview-kit-12988-svelte.vercel.app/
this is an automated message


Add build command to readme

With the recent yarn workspaces change (https://github.com/v0l/snort/pull/274), I was unable to initially run the app. I added some text to the readme that directs the user to run the build command for the nostr package so they can avoid nostr package errors.

I added a new script to the root, yarn start will work as normal

nice! https://github.com/v0l/snort/commit/94bdd44192337909a82dae6f3c0fe3c76359b7f7 adds yarn start which does the trick.
But, the two commands in the readme now only work if the user first builds the nostr package (via the root start or build scripts), should those two commands be removed in favor of suggesting the root yarn start? I updated this PR with one more commit 4bdc393029d1b8ec43debeac25ae685e260d6001


Permit Caching of HTTP methods not allowed by RFC 9111

This addresses #158 by doing three things:

Documenting the fact that RFC 9111 only permits caching of GET and HEAD methods, and linking to the appropriate documentation.
Adding an allow_unsafe_methods option to the Controller to expressly allow caching of methods deemed unsafe by RFC 9111
Adding more informative error messages to the Controller if errors are raised based on methods.
Adding test coverage with this behavior:

If allow_unsafe_methods is unset or False, raise a RuntimeError with anything other than safe methods.
If allow_unsafe_methods is True, raise a RuntimeError with any invalid HTTP method names.
If allow_unsafe_methods is True, and a Request is passed with a specified method, return is_cacheable as True

Is there any good examples of where we might want to cache non-cacheable methods?

Yes, tons. The most significant is the prolific use of POST requests as extended GET requests. Think of GraphQL (and many REST API's) that use POST JSON bodies rather than GET query strings to request specific content. That content is often catchable, and doesn't suffer from the safety issue that RFC 9111 is concerned with - changing data on the server.
I will put this to immediate use with my EPO OPS client which uses XML bodies in POST requests as de-facto GET requests.
Also, by making this explicit, we give people the option to make this choice, but not by default and not without calling it unsafe.
As the great GVR once said, "we're all consenting adults here," so I think it's okay to provide this potentially unsafe lever for those that want to pull it.

And maybe at a more basic level, the HTTP verbs come from a time where they related to file operations. That link has long since been severed, with API's using HTTP verbs for all kinds of non standard things.
The authors of RFC 9111 seem to still be operating from the idea that there are neat and well respected divisions between how HTTP verbs are used. But those lines are far fuzzier now. And this helps deal with the fuzz.

Yeah it makes sense. Thanks for this PR.

Hey. Let's hold on this for a moment.
I was looking at the implementation and realized there's a problem. In order to prevent cache collisions, the cache key MUST include the request body. Otherwise, it wouldn't be able to tell these two requests apart:
response = hishel.Client().post("https://example.com/api", content=b'{"_id": 1}')
# Assume that Hishel caches that response based on method and url
response = hishel.Client().post("https://example.com/api", content=b'{"_id": 2}')
# The body has changed, but the cache will return the response above because the cache key matches

OK, easy enough, add the body to the cache key in generate_key. In most circumstances, that shouldn't be hard. But the problem comes if a user submits an AsyncIterable[bytes] as the content. Which is a permitted type for RequestContent.
In that circumstance, the sync interface should raise an error (the easy case), but now the async interface must iterate through an asynchronous iterator in a synchronous generate_key function. Which is impossible. As I see it, we have three options:
1. Create an asynchronous form of generate_key and use that with the asynchronous transports. Raise an error if an AsyncIterable[bytes] is passed as content in the sync transports.
But this creates lots of problems:

mypy will complain that the synchronouskey_generator has a type error because it can't handle AsyncIterables
Now there's two separate generate_key functions, which isn't DRY.
The generate_key functions will either need to live on the Transports, or we need to fork the Controller into a sync and async variant. Also not DRY and very annoying.

2. Have generate_key take a new parameter body which is a Union[bytes, Iterable[bytes], and the transport converts the AsyncIterable to an Iterable (maybe by consuming the AsyncIterable to a tempfile, and then returning an iterator on that tempfile).
The main downside with this is:

The function signature for generate_key is less elegant and simple.
Any advantage of using an AsyncIterable request body is probably lost by now reading synchronously from disk, and it could consume a lot of disk space for large request bodies.
If we instead of writing to a tempfile create a io.Bytes buffer, we could run out of memory for large request bodies.

3. (my preference, if we move forward with this) Have generate_key take a new parameter body_hash which is a blake2b hash of the body, which is created by the transport. This then passed to generate_key.
The main downsides of this is:

The function signature for generate_key is less elegant and simple.
The iterable is run twice, which may increase the execution time.

BUT, this approach has several advantages:

Keeps generate_key synchronous, and thus can still live on a single controller.
Is memory/disk efficient, since the hash can be updated with chunks out of the iterator, rather than being read all at once, or stored somewhere.
mypy will be happy because generate_key doesn't have to deal with Request.stream

Thoughts?

As an example, I implemented my preferred approach. generate_key now takes an optional body hash parameter that the relevant transports and pools now take advantage of, using two new helper functions a/sync_generate_body_hash. This should now work with differing response bodies, and resolve the issue I found. And works for unlimited size streaming requests bodies of either sync or async varieties.
The only downside here is that a potentially large streaming response body is streamed twice, once by Hishel, and once by httpcore over the wire. But there's no other reasonable way to handle it. If the cache key includes the body, then the cache key has to be calculated before the request hits the wire, and the only way to do that is read the whole thing.
But, the only "gotcha" here is that using Hishel to cache a request/response with a large streaming request body results in a extra execution time. Hopefully users won't do that unless they really want to cache the request/response.

Can't understand why should we discuss or implement generating cache keys using request body in this pull request? How it relates to this pull request.

It is necessary to this pull request to prevent introducing a major bug into Hishel by permitting caching "unsafe" methods that are not fully defined by their URL. Because they are not, a cache key based solely on the URL and HTTP action will result in cache key collisions like I mentioned earlier, thus resulting in incorrect content being served from the cache.
The main issue here is POST requests, which as I mentioned earlier are used prolifically as extended GET requests, in addition to their usual function as an "append" style function to a remote resource. Per RFC 9110:

9.3.3 POST
...
Responses to POST requests are only cacheable when they include explicit freshness information (see Section 4.2.1 of [CACHING]) and a Content-Location header field that has the same value as the POST's target URI (Section 8.7). A cached POST response can be reused to satisfy a later GET or HEAD request. In contrast, a POST request cannot be satisfied by a cached POST response because POST is potentially unsafe; see Section 4 of [CACHING].

So, RFC 9110 recognizes that POST responses are occasionally cacheable in some circumstances. But because a POST necessarily includes body content to be posted, that body content must be included in a cache key to prevent a key collision that could result in an invalid response being returned from the cache. This is in contrast to GET requests:

9.3.1. GET
The GET method requests transfer of a current selected representation for the target resource. A successful response reflects the quality of "sameness" identified by the target URI (Section 1.2.2 of [URI]). Hence, retrieving identifiable information via HTTP is usually performed by making a GET request on an identifier associated with the potential for providing that information in a 200 (OK) response.
. . .
The response to a GET request is cacheable; a cache MAY use it to satisfy subsequent GET and HEAD requests unless otherwise indicated by the Cache-Control header field (Section 5.2 of [CACHING]).

What that means is that if Hishel is going to support caching POST requests, it needs to generate a cache key that does not depend solely on the URI / URL. The cache key should also take into consideration the POST body, which may vary from request to request, even if the URL does not. And that's a reasonably complex task if we want Hishel to support 100% of httpxs functionality, including the ability to use AsyncIterator streaming request bodies.
Hishel's emphasis is, of course, RFC 9111, which only allows caching of HEAD and GET requests, and basing a cache key solely on URI works for those applications. Thus, a totally reasonable response to this PR would be to say "not my problem, this is a RFC9111 cache,"and reject the PR.
BUT, at present, Hishel is the only reasonably mature httpx caching library under active development.

httpx-cache was archived on October of last year (despite being pretty far along).
httpx-caching is an early alpha that hasn't had any pushes in 5 months.

And, we've seen issues submitted from people wanting to use Hishel with POST requests (e.g. #158). So maybe this represents a fork in the road. Do you want Hishel to be an RFC 9111-only library? Or do you want Hishel to be an RFC 9111 compliant library with sufficient flexibility for other use cases? You're the author, so you get to make that call.

@parkerhancock have found small bug using changes in this PR. If i use POST for requests hishel lib does not store anything in cache until i provide extension setting to force caching procedures. This bug detected when i use RedisStorage and InMemoryStorage. Pretty sure it is reproducible at any storage. Dumping of extensions attribute in response object always show False for 'from_cache' dict key
Right now i'm try to find where is issue but not promise that can do this fast.
Anyway thank for you impressive job.

@parkerhancock have found small bug using changes in this PR. If i use POST for requests hishel lib does not store anything in cache until i provide extension setting force_cache to force caching procedures. This bug detected when i use RedisStorage and InMemoryStorage. Pretty sure it is reproducible at any storage. Dumping of extensions attribute in response object always show False for 'from_cache' dict key Right now i'm try to find where is issue but not promise that can do this fast.
Anyway thank for you impressive job.

Verify if the response of you POST has the cache-control with this values: no-cache, no-store, max-age=0, must-revalidate. this values forces to revalidate the response even having it saved in cache.
If you want to to disable this flow, inherit from Controller and change just this part of this two functions in hishel/_controller.py,:
def construct_response_from_cache(
        self, request: Request, response: Response, original_request: Request
    ) -> tp.Union[Response, Request, None]:

        [...]

        # the stored response does not contain the
        # no-cache directive (Section <IP_ADDRESS>), unless
        # it is successfully validated (Section 4.3)
        if (
            self._always_revalidate
            # or response_cache_control.no_cache # <-- comment to disable the response no-cache
            # or response_cache_control.must_revalidate # <-- comment to disable the revalidade flow
            or request_cache_control.no_cache
        ):
            self._make_request_conditional(request=request, response=response)
            return request

        [...]

def is_cachable(self, request: Request, response: Response) -> bool:

        [...]

        if not any(
            [
                response_cache_control.public,
                response_cache_control.private,
                expires_presents,
                #response_cache_control.max_age is not None, # <-- comment to disable the max-age=0 of trigger no-store, no-cache
            ]
        ):
            return False

        [...]

Passes the new Controller class to CacheClient or CacheTransport, the extension force_cache makes the two part of code never been even checked, that's why it's probabily working when you set it to True.
OBS: Sorry, i used translate.

@Vinealius Got it. Not bug, just feature :) will take a look little bit later, cause right now busy with another task. There was tryout to make upgrade from httpx-cache to hishel.
Thanks for help

Sorry for such a delayed answer.
This is a great work @parkerhancock, thank you!
Let's include this into the next hishel release 🎉

@parkerhancock thanks you so much for your work, #183 added this feature!
I thought we had some problems here, we have consumed the request.stream data to generate the request key.


Show warning when trying to delete own user account

When deleting a user in the user list via the garbage can icon it is possible to delete the logged-in account without a warning. In this case, a warning with the need for confirmation could prevent some nasty issues afterward.

hi @sebastianbuechler
Thanks for your request. We will schedule it on Wednesday and update the issue.
Kind regards

[ ] Extend the warning on clicking delete user in the users overview, if its own user

WARNING: This is your own user account, by permanently delete this user you will be logged out.


try to get rid of some for statements

Still working on that to avoid some for loop.

I see. I will update this pull request.

Thanks @luohuazju


ELMo warm up

From ELMo's instruction page (https://github.com/allenai/allennlp/blob/master/tutorials/how_to/elmo.md#notes-on-statefulness-and-non-determinism), looks like we would achieve a better performance if we use a few batches of data to warm up the BiLM. Looks like this is not currently implemented here? Is there any plan for that?

Hi  @ZhaofengWu
I think I tested that. However, I didn't noticed a big difference between a cold-start and a warm-start when producing ELMo embeddings.
More evaluation would be nice, so maybe someone has the time to test if the cold-start actually affects the produced ELMo embeddings.
But so far I think there is not that big of a difference.
If you still like to warm up the BiLM, you can pass to the code (e.g. at inference) some dummy sentence in the beginning and the sentence you like to be tagged are than passed afterwards.

Thanks!


fix: re export ts enum type

🔗 Linked issue
Resolves #318
❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme, or JSdoc annotations)
[x] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
Added the declaration field in Import to distinguish between dts and enum When transfer exports to imports in toImport function findExports will tag enum as declaration, after dedupe imports, enum can only be used as a value.
Maybe add a type in mlly ESMExport is a better way? Or edit the return value after findExports instead of adding a field to the Export type?
Fix typescript enum auto import error, enum should be import as both value and type.
Resolves #318
📝 Checklist

[x] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

Yeah I think it makes sense to have mlly support that information later.
/cc @pi0 does the interface fields looks good to you?

Generally yes! I would probably name it declarationType in interface btw or something  that hints it is only a type indicator. And PR is more than welcome upstream I can release asap 👍🏼


v2.6 throws error when using with react-leaflet

Hi!
I have been using leaflet-geoman with react-leaflet without problems. When upgrading to v2.6 I get a TypeError t.segment is undefined when moving a circle previously added. This works without problem in v2.5.

code sandbox with v2.5 enabled (working version)
code sandbox with v2.6 enabled(broken version)

steps to reproduce:

open code sandbox
draw a circle
move or change the size of the circle

cheers and thanks for keeping this plugin available - very useful!

@jeppe-style thx for reporting. There is already a fix. #627

Fixed in Release:  2.7.0

@Falke-Design great! Thanks!


TSC suggestion: briefly mention goals for candidates

When nominating members I'd like us to know a little more about their intentions for the project - be it evangelism, platform support, performance testing, etc
This would be as simple as...
Hi, I'm ... and I'd like to be on the TSC. I'd like to see the project focusing on infrastructure improvements, platform support, and collaboration with organisations such as ... in order to achieve ...

@a-roberts Can you shift this to the TSC project?

Yeah should have been under TSC but they're at this PR now anyway


Build with only the compiler (no cmake or any other build tools)

Hi,  would you mind supporting the usage, which includes the sources by the compiler directly, not as a CMake package?
For example, let's say I have a server.cpp file, compiling with the following command without installing:
g++ -std=c++17 -fcoroutines \
  -DAGRPC_STANDALONE_ASIO \
  -DASIO_HAS_CO_AWAIT -DASIO_HAS_STD_COROUTINE -DASIO_HAS_CO_AWAIT \
  -Iasio-grpc/src -Iasio/asio/include -I</path/to/any/other/includes> \
  server.cpp \
  -lgrpc++ -lgpr -lgrpc++_reflection -lprotobuf -lpthread

The changes to support this seems little. The only problem is "memory_resource.hpp" not found since "memory_resource.hpp" is generated by CMake through src/agrpc/detail/memory_resource.hpp.in. A seemed reasonable way is to use a definition instead of a cmake variable.
// src/agrpc/detail/memory_resource.hpp.in
@ASIO_GRPC_MEMORY_RESOURCE_INDLUCES@

// =>

// src/agrpc/detail/memory_resource.hpp
#ifdef ASIO_GRPC_USE_BOOST_CONTAINER
namespace pmr = boost::container::pmr;
namespace container = boost::container;
#else
namespace pmr = std::pmr;
namespace container = std;
#endif

And then compile with g++ -DASIO_GRPC_USE_BOOST_CONTAINER ...

Yes that should now work on master branch  by passing -DAGRPC_USE_BOOST_CONTAINER to the compiler.
Btw the reason the CMake generation is needed is due to https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#a-feature-may-replace-polyfills-with-aliases-provided-that-replacement-is-baked-into-the-installed-tree

Thank you


[#4398] feat(core): support credential cache for Gravitino server

What changes were proposed in this pull request?
add credential cache for Gravitino server,  not support for Iceberg rest server yet.
Why are the changes needed?
Fix: #4398
Does this PR introduce any user-facing change?
no
How was this patch tested?
testing in local env,  get credential from Gravitino server and see whether it's fetched from remote or local cache

@tengqm @jerryshao @yuqi1129 @orenccl  , it's ready to review now, please help to review thanks

@jerryshao @orenccl @tengqm please help to review again

Overall LGTM.

Thanks @jerryshao @tengqm @orenccl for reviewing


Merge Train

Did this squash the commits from 0.20? That would cause conflicts the next time we merge from 0.20.

Going to merge in my fix here. Will resolve before we merge. As that fix is critical.

I propose we drop this for #2789. I unsquashed a9a5183 so we can keep merging, and then applied the scalafmt.


bug: App shell conflicts between cortex-nightly and cortex-stable

Cortex version
v172
Describe the Bug
App shell conflicts between cortex-nightly and cortex-stable:
when I load a model on one version, the model is loaded on both cortex and cortex-nightly
when I unload the model on one version, the model is unloaded on both cortex and cortex-nightly
Not sure if this is a cortex ps issue or installation/data folder conflict with cortex and cortex-nightly
Steps to Reproduce
No response
Screenshots / Logs

What is your OS?

[X] MacOS
[ ] Windows
[ ] Linux

What engine are you running?

[X] cortex.llamacpp (default)
[ ] cortex.tensorrt-llm (Nvidia GPUs)
[ ] cortex.onnx (NPUs, DirectML)

Our CLI and Server communicate by TCP IP socket for now and the Server does not know about cortex variant, so it is expected.
This will be solved after we support Unix domain socket
cc: @namchuai @nguyenhoangthuan99

@vansangpfiev do we have plans to move to UDS, and should this be done earlier rather than later?
cc @dan-homebrew @0xSage

Decision:

move Bug to icebox (Sprints: 2 sprints away)

create new Epic (size: large) on moving to Unix Domain Sockets

Dumb/nonurgent question: If we switch to UDS, what about devs directly embedding Cortex in their apps and only using the API? Will we still support TCP/IP (the most common protocol)?

IMO, we will support both UDS and TCP/IP. Clients (CLI, Jan, ...) can switch to which protocol they want.

@gabrielle-ong A temporary solution for TCP/IP is to use different ports by configuring apiServerPort in .cortexrc*.

Thanks @vansangpfiev, Ill use that workaround
iceboxing this bug and creating a planning ticket #1517


Fixes #1042 : RPM repo https fix

Description
Fixes issue #1042
Tested in the local environment. Changes look good.
Changes would affect just one page and fix a issue in documentation.
This PR addresses  https://github.com/projectcalico/calico/issues/1042

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Rahul Krishna Upadhyaya seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Rahul Krishna Upadhyaya seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

I have signed the CLA. However the PR still shows that CLA is not signed. Any help on this ?

Closing this pull request and opening one with proper commit


prod build: lang_1.global.System.import is not a function ;

I lazy load my component:
{ path: 'dashboard', loadChildren: 'app/+dashboard/dashboard.module' },
When I run the dev build its works fine. When I run the prod build I get the following error:
lang_1.global.System.import is not a function ;
It goes wrong in this part of the code:
            var _this = this
              , _a = path.split(_SEPARATOR)
              , module = _a[0]
              , exportName = _a[1];
            return void 0 === exportName && (exportName = "default"),
            lang_1.global.System["import"](module).then(function(module) {
                return module[exportName]

path = app/manager/+dashboard/dashboard.ma.page.module
_SEPARATOR = #

Yes, that is because we're bundling the application as a commonjs module now. Currently the production build doesn't support lazy loading but it's in the roadmap.

is there any prevision to support lazy loading?

https://github.com/mgechev/angular2-seed/issues/864#issue-154456682


Issue during exporting Customers data

Bug report
Title
When customer create an account using a special character in the first name and last name then during the exporting customer's data an error occurs kindly fix this issue
https://www.loom.com/share/9f03fa0b14114d55b018534c4d6c7c39

Special characters like-->

GDgE>naitD
$/$5$\'%`$6'
$8$>$$\Z%\0$9$0 \'$8$$8%\n$%$$'
$(%\0$2$>`$-
$6%\n$0%\0$5$>$8%\n$$$5'
$*%\n$0$5%\0$#
$%$.$>`$0


remove white space when passing rescale parameters for float32 value

closes #39

🤦 the fix is in my local titiler code.

this was a TiTiler problem https://github.com/developmentseed/titiler/blob/master/CHANGES.md#036-2021-08-23


Unknown ports

Some of the data categorized as port == unknown is quite high. For example, for Black Sea bass, 50% of landings come from unknown ports...

FIxed on data. Allocated all to one port. See methods


shift ci tests from python 3.6-3.9 to 3.8-3.10

Python 3.6 is deprecated.
3.10 installations are becoming more common.
Version shift the CI tests to keep track of supported python versions

Thanks for the merge! :sunglasses:
Kindly look at my other PR's, to merge those as they have a bit higher priority :innocent:

I've added you as maintainer, so you can merge directly. This project isn't a priority for me recently, so happy if someone else takes care for a while.

@m3nu
Thanks! I'm glad to be added as a maintainer.
With the merge of PR's the current open PR's can't be merged.
As they are still looking for the python3.6 tests.
The tests are managed differently from the rules to be able to merge PR's.
Can you also change the requirements from python 3.6 to python 3.10.6?
see:
https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule

Yes, already changed the branch protection rules.

Great! Oud messages/actions crosser each other


Executing the previous run from command line

User should be able to run the previous run from the command line.
Proposed behavior

Add a flag --repeat to run subcommand.
Execute the last run with same flags and env by running gauge run --repeat command.

@BugDiver @riju91  What is the use case of this?
It sounds like a good feature only if we could pass the number of times to repeat. This can be really useful when trying to replicate a intermitted issue.
E.g. gauge run --repeat=3.
I guess the only problem will be reporting when running multiple times.

@haroon-sheikh - this issue is a pre-requisite for https://github.com/getgauge/gauge-vscode/issues/41
TLDR: we are implementing a feature in vscode plugin that will allow users to author implementation, and repeat scenario run without having to toggle between files.

should be available in nightly >= 20-11-2017

Test cases

[ ] Should be able to repeat run for passed, failed, skipped tests
[ ] Should give an error message if there is no last run
[ ] Should be able to repeat run with tags, parallel run, data driven execution, selective data driven execution, folder execution

If gauge does not execute specs
example: -

[ ] No specifications found in specs. - for a tagged expression
[ ] Failed to load env. something1 environment does not exist - for a non existing env input

What should be the behavior of re-run in such scenarios

What should be the behavior of re-run in such scenarios

It should show and info on the problems mentioned.

Expected behavior
Should show info when previous run has failed.
Actual behavior
Runs the previously successful gauge execution.

Should be fixed in nightly >= 27-11-2017

Please find the failing test cases inline in the previous comment

If the previous command is gauge run --failed what should gauge run --repeat do?

If the previous command is gauge run --failed what should gauge run --repeat do when run multiple times? Should it run only the failed tests repeatedly?

IMO, gauge run --repeat should just repeat the last run. It should be synonymous with running the previous command again.
In this case this:
> gauge run --failed
> gauge run --repeat
> gauge run --repeat

should be equivalent to:
gauge run --failed
gauge run --failed
gauge run --failed

This would imply that any test that passes in the 2nd run will not be repeated in the 3rd.

Should be available in nightly >= 12-12-2017


Segfault or encoding error when parsing a URL

See https://github.com/scrapy/scurl/issues/58#issuecomment-513520254 and https://github.com/scrapy/scurl/issues/58#issuecomment-513583355
Also repeating here
Traceback (most recent call last):
  File "./bin/triage_links", line 34, in get_url_parts
    link = urljoin(record.url, record.href)
  File "scurl/cgurl.pyx", line 308, in scurl.cgurl.urljoin
  File "scurl/cgurl.pyx", line 353, in scurl.cgurl.urljoin
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf0 in position 503: invalid continuation byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./bin/triage_links", line 102, in <module>
    main()
  File "./bin/triage_links", line 13, in main
    CSVPipeline(callback=process).execute()
  File "./bin/../crawler/utils/csvpipeline.py", line 42, in execute
    self.save_csv()
  File "./bin/../crawler/utils/csvpipeline.py", line 96, in save_csv
    df = df.compute()
  File "/usr/local/lib/python3.7/site-packages/dask/base.py", line 175, in compute
    (result,) = compute(self, traverse=False, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/dask/base.py", line 446, in compute
    results = schedule(dsk, keys, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/dask/threaded.py", line 82, in get
Segmentation fault: 11

To reproduce, run a broad crawl on this dataset and extract all links:
https://www.kaggle.com/cheedcheed/top1m
use urljoin() and urlsplit() on each one.

For clarity, you only need to extract all links from the front page.

scurl.csv.zip
^ Seems to be enough to reproduce on my system.
$ python
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> from scurl.cgurl import urlparse
>>> df = pd.read_csv('data/scurl.csv')
>>> test = df.drop_duplicates()
>>> test.url.apply(lambda r: urlparse(r))
[... works fine...]
Name: url, Length: 2150750, dtype: object
>>> df.url.apply(lambda r: urlparse(r))
Segmentation fault: 11

That it works fine when I drop dups is somewhat intriguing. Maybe the code is running out of memory or something.


Unable to open under vs2015

Unable to open under vs2015,
Can only upgrade vs?

Building the repository from source requires VS 2017 (15.3) or higher. You should be able to build it using VS 2017 Community Edition (https://www.visualstudio.com/downloads).


javac-wrapper.sh: prepend bootclasspath jar to use packaged javac tools [phab:D763]

Created by schroederc at 2016-03-10 23:40:24:
Without the -Xbootclasspath/p:"$JAVAC_EXTRACTOR_JAR" flag, the javac
extractor will crash when called with a JRE version lower than the
packaged javac tools version (currently v9).
This change also includes a new release test for the javac extractor to
ensure that the wrapper works correctly out-of-the-box.

zarko accepted this revision at 2016-03-11 19:00:40

schroederc closed via commit 4f304ec193f2a835c0bf94d3e091e2d729bb6613 at 2016-03-11 19:05:59


[mariadb] Update 10.7.4, 10.6.8, 10.5.16, 10.4.25, 10.3.35, 10.2.44

https://mariadb.com/kb/en/mariadb-1074-changelog/
https://mariadb.com/kb/en/mariadb-1068-changelog/
https://mariadb.com/kb/en/mariadb-10516-changelog/
https://mariadb.com/kb/en/mariadb-10425-changelog/
https://mariadb.com/kb/en/mariadb-10335-changelog/
https://mariadb.com/kb/en/mariadb-10244-changelog/

Can you add 10.8 as well as it is GA now
https://mariadb.com/kb/en/mariadb-1083-changelog/


Reimplement two functions using select() to instead use poll().

This is to avoid running out of file descriptors in cases where the
application already uses a lot.

Can one of the admins verify this patch?

Bear in mind, the driver is going to use some number of fds no matter what.... if you are running up against the limit, setrlimit in the application should be where you look to. If our driver is taking an unusual number of fds, that is a bug of course. I'd imagine this PR only saves a few fds, though. What sort of ballpark numbers are you seeing? I've no issue taking something like this, but I want to be sure it solves the actual issue.
I've summoned folks more familiar with this to look at this as well.

The issue we ran into with select isn't due to exhausting file descriptors but the fact that the file descriptor used in PAL was >= 1024 (FD_SETSIZE) which is the limit select fd_set will handle in glibc's implementation. Using poll doesn't have the same constraint and allows an application which already has many open file descriptors to work correctly with PAL.

Oh, that makes a LOT more sense! Bot commands to follow, ignore them.

ok to test

test this please

Test summary for commit 6dee65bd7711e6d6fd048f728efd22cd73352ee3
Driver commits used in build
CWPACK: amd-master 7387247eb9889ddcabbc1053b9c2052e253b088e
METROHASH: amd-master 3c566dd9cda44ca7fd97659e0b53ac953f9037d2
LLPC: dev 35c49f87a03f38f420d7e757a1c3c33e80c7d2e5
SPVGEN: dev e1f1881d84cd1c7a6c1d661cbac0e619b4e110c1
XGL: dev 87430a6fa88da11473eed49603def2fa47b51fa0
LLVM-PROJECT: amd-gfx-gpuopen-dev 88613f67ca2e3e64cc1c7c4ccd47e126495e6e23

CTS tests (Failed: 0/144366)Built with version <IP_ADDRESS>
Ubuntu 20.04, Gfx10
Passed: 26276/48129 (54.6%)
Failed: 0/48129 (0.0%)
Skipped: 21853/48129 (45.4%)

Ubuntu 18.04, Gfx9
Passed: 26275/48129 (54.6%)
Failed: 0/48129 (0.0%)
Skipped: 21854/48129 (45.4%)

Rhel 8.2, Gfx8
Passed: 24807/48108 (51.6%)
Failed: 0/48108 (0.0%)
Skipped: 23301/48108 (48.4%)

Test summary for commit 4674400f543a363e1aac7c59ad481aee05708715
Driver commits used in build
CWPACK: amd-master 7387247eb9889ddcabbc1053b9c2052e253b088e
METROHASH: amd-master 3c566dd9cda44ca7fd97659e0b53ac953f9037d2
LLPC: dev 35c49f87a03f38f420d7e757a1c3c33e80c7d2e5
SPVGEN: dev e1f1881d84cd1c7a6c1d661cbac0e619b4e110c1
XGL: dev 87430a6fa88da11473eed49603def2fa47b51fa0
LLVM-PROJECT: amd-gfx-gpuopen-dev 88613f67ca2e3e64cc1c7c4ccd47e126495e6e23

CTS tests (Failed: 0/144366)Built with version <IP_ADDRESS>
Ubuntu 20.04, Gfx10
Passed: 26276/48129 (54.6%)
Failed: 0/48129 (0.0%)
Skipped: 21853/48129 (45.4%)

Ubuntu 18.04, Gfx9
Passed: 26275/48129 (54.6%)
Failed: 0/48129 (0.0%)
Skipped: 21854/48129 (45.4%)

Rhel 8.2, Gfx8
Passed: 24807/48108 (51.6%)
Failed: 0/48108 (0.0%)
Skipped: 23301/48108 (48.4%)

Ping for code review.

@JakeMerdichAMD ping for code review


Wrapping support

Please consider adding support for std::num::Wrapping.
Use-case: using #[derive(Serialize, Deserialize)] on RNGs like ChaChaRng.
Of course, a work-around is possible, but derive won't work without support for Wrapping.

Added in #1072, released in 1.0.17.


prop-types & fix classlist=== readonly in Die.js

replaces deprecated internal (React) PropTypes with the recommended separate prop-types package

fixes a bug in Die.js - line 21 (this.die.classList ='die') - while Chrome  & Firefox don't mind that the spec is that .classList is read-only and Edge balks at it. Changed it to this.die.className = 'die'

Hoping to get this merged soon so we don't have to patch it individually @AdamTyler @Serexx


Modify build_visit to also apply "apply_qt_5101_centos8_patch" on debian 10.

Describe the bug
A user tried to use build_visit to build visit on debian 10 and ran into a Qt compile issue. We have a patch in the script for this error but it is only getting applied for centos 8 and ubuntu 19. We should also apply it in this case.
Desktop

OS and version: Debian 10
VisIt Version: 3.1.1

Resolved on 3.1RC and develop with commits #4718, #4719.


abouttraining loss

Can u provide the training log? i have try toI tried to fit on a small dataset (1000 culanes, or my own dataset , batchsize = 1), but focalloss1 has been around 1.35 (culane 800*320) and cannot be decreased.
i have let other loss weight zero.

It is unusual that the focalloss keeps high. I suppose batchsize=1 might be the reason. You can try to use larger batchsize during training. Also, try to use the provided checkpoint for parameter initialization and finetune on your dataset with smaller learing rate. Since the original log is not available now, I trained on tusimple for several epochs and paste the log below.  Hope it could help you.


[MB-7407] Record EDI 858 generation errors in database

Description
When we run into an error while generating a EDI 858, the error will now be recorded in the edi_errors table.
If we have new errors while trying to save the error, I chose to log the new errors and return the original error.
Fro example, edi_errors doesn't let you leave the ICN field blank, so if the query to get the ICN corresponding to the payment request for the 858 fails, we can't save the 858 error 😢, but it will appear in the logs.
Reviewer Notes
I'm not sure if my manual test case is due to a payment request in our e2e data being set up wrong, or just being incomplete, and I'm not sure how to set up a PR that would break 858 generation from scratch. I'm open to any suggestions about other ways to test this.
Setup
rm bin/prime-api-client && make bin/prime-api-client
make db_dev_e2e_populate
make server_run

sendtosyncada.json:
{
  "body": {
    "sendToSyncada": true,
    "readFromSyncada": false
  }
}

prime-api-client --insecure support-reviewed-payment-requests --filename sendtosyncada.json

This should crash while generating an 858. This response will look something like:
{"detail":"function ProcessReviewedPaymentRequest failed call to generator.Generate: id: ebf89e73-06e9-4150-a9e0-fde56a651a22 not found for paymentServiceItemParam","instance":"f4bb3f32-8782-4a97-9891-107ef89edb2d","title":"Internal Server Error"}

Then, check the edi_errors table:
select * from edi_errors;

You should see that a single record has been created.
The description column in that record should look something like:
function ProcessReviewedPaymentRequest failed call to generator.Generate: id: ebf89e73-06e9-4150-a9e0-fde56a651a22 not found for paymentServiceItemParam
Acceptance
Since this is just happening in the DB, I don't think there is acceptance to do.
References

Jira story for this change

Messages

:book:
:link: MB-7407

  Generated by :no_entry_sign: dangerJS against d97197739b16036bdaf166ccddb7d93f034f4210

doesn't let you leave the ICN field blank
The intention was the allow blank ICN fields, so either you aren't on the latest or I goofed the in the sql

Do you think you can modify that column to be allow null?
Done. I made the column nullable and removed the query to try to add the icn to 858 errors.


bashauto sdk go-cli autocomplete doesn't work for me

Environment details:

Mac El Capitan 10.11.6
iTerm2 3.0.7
bash terminal

$ wsk property get
whisk API host      openwhisk.ng.bluemix.net
whisk API version       v1
whisk namespace<EMAIL_ADDRESS>whisk CLI version       2016-08-10T15:49:14+00:00
whisk API build     2016-08-12T07:58:09Z
whisk API build number  whisk-build-172

Steps to reproduce the issue:
🚀  $ wsk sdk install bashauto
The bash auto-completion script (wsk_cli_bash_completion.sh) is installed in the curent directory.
To enable command line completion of wsk commands, source the auto completion script into your bash environment
🚀  $ source wsk_cli_bash_completion.sh
Type wsk action and type the TAB key you see the message "_get_comp_words_by_ref: command not found " and new line
🚀  $ wsk action -bash: _get_comp_words_by_ref: command not found
Here are my environment variables in case is useful for troubleshooting
$ env
MANPATH=/Users/csantanapr/.nvm/versions/node/v6.4.0/share/man:/usr/local/share/man:/usr/share/man:/opt/X11/share/man:/usr/local/MacGPG2/share/man:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/share/man:/Applications/Xcode.app/Contents/Developer/usr/share/man:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man
TERM_PROGRAM=iTerm.app
WSK_HELLO=action invoke /whisk.system/samples/echo -p message hello --blocking --result
ANDROID_HOME=/Users/csantanapr/Library/Android/sdk
NVM_CD_FLAGS=
TERM=xterm-256color
SHELL=/bin/bash
CLICOLOR=1
TMPDIR=/var/folders/dx/cb6bdd2s5375fgpgzjrjc69h0000gn/T/
DOCKER_HOST=tcp://<IP_ADDRESS>:4243
NVM_PATH=/Users/csantanapr/.nvm/versions/node/v6.4.0/lib/node
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.2a1OetX74N/Render
TERM_PROGRAM_VERSION=3.0.7
OLDPWD=/var/folders/dx/cb6bdd2s5375fgpgzjrjc69h0000gn/T/tmp.0AlGsbvg
TERM_SESSION_ID=w1t0p1:2308A59F-B9AB-4B9E-B73D-ED93EDA075BE
ANT_HOME=/Applications/apache-ant-1.9.6
NVM_DIR=/Users/csantanapr/.nvm
USER=csantanapr
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.uVmpkvZZWb/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
PATH=/Users/csantanapr/bin:/Users/csantanapr/.nvm/versions/node/v6.4.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/Applications/IBM/MobileFirst-CLI:/Applications/apache-ant-1.9.6/bin:/Users/csantanapr/Library/Android/sdk/platform-tools:/Users/csantanapr/Library/Android/sdk/tools:/Users/csantanapr/dev/cordova/cordova-coho
NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
PWD=/Users/csantanapr
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
LANG=en_US.UTF-8
ITERM_PROFILE=Default
XPC_FLAGS=0x0
ITERM_ORIG_PS1=\[\033[1;35m\]\w\[\033[0;32m\]$(git_branch)\[\033[1;37m\]\n🚀  $
PS1=\[\033[1;35m\]\w\[\033[0;32m\]$(git_branch)\[\033[1;37m\]\n🚀  $
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/csantanapr
STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
ITERM_PREV_PS1=\[
\]\[\033[1;35m\]\w\[\033[0;32m\]$(git_branch)\[\033[1;37m\]\n🚀  $ \[\]
ITERM_SESSION_ID=w1t0p1:2308A59F-B9AB-4B9E-B73D-ED93EDA075BE
LOGNAME=csantanapr
NVM_BIN=/Users/csantanapr/.nvm/versions/node/v6.4.0/bin
GOPATH=/Users/csantanapr/go
NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
OPENWHISK_HOME=/Users/csantanapr/dev/whisk/git/openwhisk
DISPLAY=/private/tmp/com.apple.launchd.ff1RHSG7da/org.macosforge.xquartz:0
WSK_LIST=package list /whisk.system
_=/usr/bin/env

PS: By the way I not trilled with the current UX of bashauto install, we should improve on it by having a way to put the content of wsk_cli_bash_completion.sh into STDOUT this way doesn't generate files for the user and easier to script (i.e. source $(wsk sdk install bashauto))

@dubeejw @mdeuser any ideas what's could be wrong here?

+1 to generating bash auto conf to stdout. Could add -o  to write it to a file.

personal preference is by default to do STDOUT always, to have an option to output to a file, not necessary, user can always redirect the output to a file.

I suspect (i.e. Goole and StackOverFlow 😸 ) I need to install bash-completion but I don't see it in the help as a requirement, maybe script can be smart enough to tell me when I source it

Workaround at least for Mac is install bash-completion, don't know for Linux this is something that has a good chance to be already installed
🍔  $ brew install bash-completion
==> Downloading https://homebrew.bintray.com/bottles/bash-completion-1.3_1.el_capitan.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring bash-completion-1.3_1.el_capitan.bottle.1.tar.gz
==> Caveats
Add the following lines to your ~/.bash_profile:
  if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
  fi

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/bash-completion/1.3_1: 188 files, 605.9K
🍔  $   if [ -f $(brew --prefix)/etc/bash_completion ]; then
>     . $(brew --prefix)/etc/bash_completion
>   fi
🍔  $ cd
🍔  $ source wsk_cli_bash_completion.sh
🍔  $ wsk action
create  delete  get     invoke  list    update

Apparently, bash must be at version >= 4.1 for bash-completion to work.  Docker CLI uses Cobra to generate it's bash-completion script as well.  For Mac, they recommend installing manually installing bash-completion as you mentioned above via brew install bash-completion since Mac currently ships bash version 3.2
https://docs.docker.com/compose/completion/
Most recent Linux distributions should have the correct version of bash.

Thanks @mdeuser
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

It looks Mac El Capitan version is 3.2 lower than 4.1

For those that want to edit their ~/profile and ~/bashrc
He is the workaround that I have for now
pushd $(mktemp -d) > /dev/null && wsk sdk install bashauto > /dev/null && source wsk_cli_bash_completion.sh && popd > /dev/null

labeling documentation to use issue to document the feature and requirements

document the usage of wsk install sdk bashauto
document for Linux to use bash 4.1 or higher
document for Mac if using bash less than 4.1 to install bash-completion via brew brew install bash-completion

This is now fixed


[Hub Generated] Review request for Microsoft.DataProtection to add version preview/2023-02-01-preview

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM API Information (Control Plane)
Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[x] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[x] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

ARM team has reviewed and signed azure-rest-api-specs-pr PR. https://github.com/Azure/azure-rest-api-specs-pr/pull/10751
This PR addresses the last comment also regarding the identityId field.
Swagger validation report failure analysis:

Avocado: These are existing ARM resources. This PR's API version default tag in there in the readme.md.
ApiRedinessCheck: ARM manifest changes to add this API version is yet to be done.
BreakingChange(Cross Version) warnings: It for existing & refers to another preview version.

Thanks for the approval.
We do not have a working backend API code yet; we're working on it. Once it merges & updated the ARM manifest with this API version, we will re-check, fix validation errors & ask Swagger team to merge.

After internal review, we need to a field in the Encryption state. Hence updated the PR with the new field. Please review.


Import does not handle multiple instances of same song

The import script will use the same (first) file it encounters for the second instance of a song in a show. It should not re-use a file and instead look at the next match.

Fixed in ed847cb8d46222007eb37dad509116948f4e44a5


[Feature] Support netease arctic as external table

Search before asking

[X] I had searched in the issues and found no similar issues.

Description
As Doris has supported the hive/iceberg as external table, the netease arctic may be a more advanced option for federation query scenario in the future. Result in making the ecosystem more powerful.
Use case
No response
Related issues
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Arctic is the compatible adapter layer for Iceberg/Hive. Doris also plays this role at present. Is it suitable to implement the connector of Arctic?

I think Doris and Arctic is two different product in big data era. I just plan to use Arctic as an enhanced Iceberg, and build my app on top of Doris.


New GUI

Added new GUI thanks to @plunstyle AKA TH
Few More Memory Leaks

Updating String Table as well


SplitContainer fixes.

SplitContainer fixes:

non-use of 'bg' custom style. (Close #37215)
wrong drawing of custom icon.

No container provide a background texture but the PanelContainer. This "bg" style should be removed, not used.

No container provide a background texture but the PanelContainer. This "bg" style should be removed, not used.

It's not the bg of the container but of the grabber area itself... could be renamed grabber_bg

This "bg" style should be removed, not used.

Or renamed grabber_area, since it would indeed not be the layout container bg, but the grabber element itself... Some more control over icon placement would be nice too.


Fix #393: duplicate log message

Overview
This PR fixes issue #393.
Changes:

A log handler is only added when there is no one configured yet.

Related Issue / Discussion
Issue #393.
Additional Information
Contribution Agreement
(as per https://github.com/geopython/pywps/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[x ] I'd like to contribute [feature X|bugfix Y|docs|something else] to PyWPS. I confirm that my contributions to PyWPS will be compatible with the PyWPS license guidelines at the time of contribution.
[x ] I have already previously agreed to the PyWPS Contributions and Licensing Guidelines

Coverage decreased (-0.9%) to 73.741% when pulling 9230c687c1670b375b4fea26a2a8554e9ce484ca on bird-house:issue-393-duplicate-log-message into c0197c5653dd12be529448e5f6e33dc7f2d0e490 on geopython:master.

@jachym this PR can probably be improved (code duplication) but it fixes the issue. Can adapt this later.

done.


Loop with sequential subcircuit

I think (although not thoroughly tested by any means) I have figured out how to run sequential subcircuits inside of loops for the list-based representation. The key here is the observation that, because delays are represented in the value list, running the loop body on a single input gives me the values on the feedback wire from t=1 onward (1 because of the loop-feedback delay). If there are already values queued on the feedback wire, then my circuit is malformed if it produces anything but delays in those cases -- I can safely overwrite them with the values I already have.
The operation overlap performs this chaining of loop step outputs. I've added a test (no proofs yet) that is pretty much countBy but with an extra delay inserted inside the loop body.
What do people think of this representation? Especially keen to hear if either of you have any insights about whether it will generalize to subcircuits that are more complicated (I did try with two delays also, and it seems to work, but have not tried loops-within-loops or anything with variable delay).

Related to #371 , just so we can keep everything tracked on that issue


Add flag to enable tracking in preview mode

We currently disable tracking in preview mode to avoid sending "irrelevant" data to analytics tools. Let's add a flag that would enable it so devs can test out the implementation before going to production.
While at it let's also add stepID to the tracking function.

This update will be very helpful, I am waiting for testing it out

Let's also add:
event type ("startFlow" | "nextStep" | "prevStep" | "finishFlow" | "cancelFlow")


resourcesReady does not mean a script has finished parsing

The resourcesReady event does not take into account the fact that scripts might not yet have finished loading/being parse.
This creates a racing condition on certain projects, especially ones that attach component contructor functions to jQuery.

Proposed solution is to fire a scriptReady event from scripts added by the resource-loader, in the handler for javascript assets:
const emitScriptParsed = (nodes: HTMLElement[]) => {
  const scriptParsedEvent: CustomEvent = new CustomEvent('scriptParsed', { bubbles: true });
  nodes.forEach((node: Node) => {
    node.dispatchEvent(scriptParsedEvent);
  });
}

const onJsLoaded = (options: HandleOptions): void => {
    const script: HTMLScriptElement = document.createElement('script');
    script.src = options.resource.path;
    script.async = true;
    script.onload = () => emitScriptParsed(options.resource.elements);
    document.body.append(script);
}

const jsHandler: Handler = {
    match: isJs,
    handle: onJsLoaded
}

Developers on codebases which use the legacy "evaled" data-init could then hook on this event to safely initialise any plugins:
window.addEventListener('scriptParsed', (event) => {
  const { target } = event;
  const intializationFunction = eval(target.getAttribute('data-init'));
  intializationFunction($(target))
})


template: :8:10: executing "" at <(len .Chapters) gt 0>: can't give argument to non-function len  .Chapters"

当前master分支源码编译结果无法跑通README.md中的示例，最后报错如下
time="2021-09-09T21:13:48+08:00" level=info msg="Wrote 229137 bytes to OPS/images/p_243.jpg" from=zipOp
time="2021-09-09T21:13:48+08:00" level=info msg="Writing file to zip" file=OPS/fb.opf
time="2021-09-09T21:13:48+08:00" level=info msg="Wrote 166454 bytes to OPS/images/p_248.jpg" from=zipOp
time="2021-09-09T21:13:48+08:00" level=fatal msg="template: :8:10: executing \"\" at <(len .Chapters) gt 0>: can't give argument to non-function len
.Chapters"

好了好了，上古小工具了，好久懒得看轻小说了（


(x/mint) Use new BeginBlock extension

Sorry, need this one ELI5'd if that's okay.

Still need the change explained - probably me being dumb but what's the actual impact?

is just a refactoring, so that the modules don't have to add BeginBlock/EndBlock functions they will not use.