Add metrics output to docker

This adds metrics support to docker via the prometheus output.  There is a new /metrics endpoint where the prometheus handler is installed.
This adds metrics to the daemon package for basic container, image, and daemon operations.
The client package being used is located here:
https://github.com/docker/go-metrics
This pr is the beginning, any more packages need to be instrumented but help/suggestions from the individual subsystem maintainers is needed to collection relevant and useful information.

Thoughts on adding expvar collector if daemon is in debug mode?
❤ this PR! 😃

@xbglowx you might be interested in this PR

So cool design LGTM

@crosbymichael Ha, nice! You might want to look into #9130 for what naming I proposed. That follows the prometheus best practices better. In doubt, see: https://prometheus.io/docs/practices/naming/
Would be really great if those metrics followed the best pratices.
@fabxc You might be interested in this as well.

Would be really great if those metrics followed the best pratices.

@discordianfish We've read through this in detail, a few times now, and we think we are following them. It would be more constructive if you could identify the areas where we don't follow best practices or suggest how making them different could help out.

@stevvooe I referred to my PR for specific naming suggestions. Beside that by quickly skimming through:

Standardize on seconds everywhere
Use self-explanatory metric names (not network_tx but network_tx_packets for example, you could also try to use similar/same names as in node_exporter or container_exporter)

Since we're migrating away from Docker, I can't really put much more time in this though. Still, if you have specific questions I'm happy to answer.

Ping @LK4D4: PTAL!

@crosbymichael I wonder how heavy all registrations in init. Reexec is still used in overlay2 storage driver, chrootarchive and in multiple places in libnetwork.

Ok, seems like it quite heavy, but that's supposed way to use prometheus client.
@crosbymichael need rebase.

Rebased and placed this feature behind the experimental flag.
@LK4D4 for the initialization, these counters are not heavy at all and have no out of process calls or allocations.  They are just initializing types and they are small

@crosbymichael DockerDaemonSuite.TestBuildOnDisabledBridgeNetworkDaemon appears to be real.

There looks like a panic in the network code causing the tests to fail
2016-09-30 16:43:08.394541 I | http: panic serving @: assignment to entry in nil map
goroutine 27300 [running]:
net/http.(*conn).serve.func1(0xc420bf9d00)
	/usr/local/go/src/net/http/server.go:1491 +0x12a
panic(0x161caa0, 0xc421064720)
	/usr/local/go/src/runtime/panic.go:458 +0x243
github.com/docker/docker/daemon.(*Daemon).updateNetworkSettings(0xc420368540, 0xc4211cd860, 0x2274000, 0xc421300a80, 0xc420176240, 0xc421064700, 0x0)
	/go/src/github.com/docker/docker/daemon/container_operations.go:275 +0x26d
github.com/docker/docker/daemon.(*Daemon).updateNetworkConfig(0xc420368540, 0xc4211cd860, 0x2274000, 0xc421300a80, 0xc420176240, 0x2274001, 0xc421300a80, 0x0)
	/go/src/github.com/docker/docker/daemon/container_operations.go:632 +0x1f0
github.com/docker/docker/daemon.(*Daemon).connectToNetwork(0xc420368540, 0xc4211cd860, 0xc4208b7b55, 0xc, 0xc420176240, 0x1, 0x0, 0x0)
	/go/src/github.com/docker/docker/daemon/container_operations.go:667 +0x17f
github.com/docker/docker/daemon.(*Daemon).ConnectToNetwork(0xc420368540, 0xc4211cd860, 0xc4208b7b55, 0xc, 0xc420176240, 0x0, 0xc42146fd40)
	/go/src/github.com/docker/docker/daemon/container_operations.go:937 +0x321
github.com/docker/docker/daemon.(*Daemon).ConnectContainerToNetwork(0xc420368540, 0xc4210646a8, 0x6, 0xc4208b7b55, 0xc, 0xc420176240, 0x30, 0xc4208eb980)
	/go/src/github.com/docker/docker/daemon/network.go:343 +0x88
github.com/docker/docker/api/server/router/network.(*networkRouter).postNetworkConnect(0xc4207421b0, 0x226dbe0, 0xc4208eb980, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0xc421064601, 0xc4208eb980)
	/go/src/github.com/docker/docker/api/server/router/network/network_routes.go:117 +0x1e1
github.com/docker/docker/api/server/router/network.(*networkRouter).(github.com/docker/docker/api/server/router/network.postNetworkConnect)-fm(0x226dbe0, 0xc4208eb980, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0x19, 0x2259ce0)
	/go/src/github.com/docker/docker/api/server/router/network/network.go:38 +0x69
github.com/docker/docker/api/server/middleware.VersionMiddleware.WrapHandler.func1(0x226dbe0, 0xc4208eb890, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0x2, 0x2255820)
	/go/src/github.com/docker/docker/api/server/middleware/version.go:49 +0x754
github.com/docker/docker/api/server/middleware.UserAgentMiddleware.WrapHandler.func1(0x226db60, 0xc420012d90, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0x0, 0x0)
	/go/src/github.com/docker/docker/api/server/middleware/user_agent.go:45 +0x272
github.com/docker/docker/pkg/authorization.(*Middleware).WrapHandler.func1(0x226db60, 0xc420012d90, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0x0, 0xc421132a10)
	/go/src/github.com/docker/docker/pkg/authorization/middleware.go:34 +0x7ad
github.com/docker/docker/api/server/middleware.DebugRequestMiddleware.func1(0x226db60, 0xc420012d90, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0, 0xc4208eb6b0, 0xc421132bb0, 0x8)
	/go/src/github.com/docker/docker/api/server/middleware/debug.go:53 +0x5bb
github.com/docker/docker/api/server.(*Server).makeHTTPHandler.func1(0x226a560, 0xc420bf36c0, 0xc4215ac1e0)
	/go/src/github.com/docker/docker/api/server/server.go:139 +0xc5
net/http.HandlerFunc.ServeHTTP(0xc420889960, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
github.com/gorilla/mux.(*Router).ServeHTTP(0xc42013a870, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0)
	/go/src/github.com/docker/docker/vendor/src/github.com/gorilla/mux/mux.go:103 +0x255
github.com/docker/docker/api/server.(*routerSwapper).ServeHTTP(0xc4208c9320, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0)
	/go/src/github.com/docker/docker/api/server/router_swapper.go:29 +0x70
net/http.serverHandler.ServeHTTP(0xc420446280, 0x226a560, 0xc420bf36c0, 0xc4215ac1e0)
	/usr/local/go/src/net/http/server.go:2202 +0x7d
net/http.(*conn).serve(0xc420bf9d00, 0x226c020, 0xc42083a840)
	/usr/local/go/src/net/http/server.go:1579 +0x4b7
created by net/http.(*Server).Serve

fixed the networking issues, it was caused by a bad rebase

@crosbymichael Fail on experimental looks to be valid :(
20:53:20 FAIL: docker_cli_external_graphdriver_unix_test.go:340: DockerExternalGraphdriverSuite.TestExternalGraphDriver
20:53:20
20:53:20 [da5a9ea1936cc] waiting for daemon to start
20:53:20 [da5a9ea1936cc] daemon started
20:53:20 [da5a9ea1936cc] exiting daemon
20:53:20 [da5a9ea1936cc] waiting for daemon to start
20:53:20 [da5a9ea1936cc] daemon started
20:53:20 [da5a9ea1936cc] exiting daemon
20:53:20 docker_cli_external_graphdriver_unix_test.go:341:
20:53:20     s.testExternalGraphDriver("test-external-graph-driver", "spec", c)
20:53:20 docker_cli_external_graphdriver_unix_test.go:381:
20:53:20     c.Assert(s.ec[ext].stats, check.Equals, 3)
20:53:20 ... obtained int = 5
20:53:20 ... expected int = 3
20:53:20
20:53:23

After discussing with the prometheus folks (@beorn7 @juliusv), we thought it would be best to bind the metrics on a separate port so that the engine metrics can be exported separately from the engine api.

@stevvooe yes that is a good idea. I was thinking about that as well

Thanks for the feedback. I'll work on updating this code today and let you all know when its pushed for another review.

@crosbymichael did you update?

Has anyone confirmed this can effectively be used on Windows?

@jhowardmsft Not a Docker expert, but at least from the Prometheus metrics side of it, there should be nothing OS-specific here. The Prometheus server that can scrape and store these metrics can also be run on Windows.

Looks like we would not be able to merge this PR because of merge conflicts. Please rebase, fix conflicts, and force push to your branch.

@jhowardmsft yes, there should not be anything platform specific with this and its serving the metrics API on a separate TCP port so there shouldn't be any issues there for windows.

Pushed an update that puts the metrics api on a separate port.  It has no default address and must be explicitly specified if the user wants metrics.
This update addresses all of the existing feedback and should be ready for another pass of reviews.

Replying inline, since github is being weird:

It gets really frustrating when you're already trying to understand a bug code spread across 10s functions in 10s files, to then have to open up another set of files to find out what the metrics available are and another set of files again to see which confusing behaviour this team's metrics wrapper has.

I agree with your point but it will be easier to keep the number of metrics under control if they aren't littered about. We'll try both models and see what works in practice for this project.
Sorry, terrible question: do you have tooling setup? This is super obnoxious without something like vim-go.

For Prometheus itself our stability guarantees don't include the metrics, as that'd be too constraining and effectively prevent significant development as any major internal change would likely become a breaking change to metrics. Given Docker is under rapid development, you may wish to take a similar stance.

Does that become a problem for users instrumenting prometheus itself? This project would be a lot easier if people didn't expect stability in the first few releases, but I'm afraid, even with documented caveats, there will be those who will rely on metric naming.

LGTM
I have a few questions but let's handle those offline. This meets the requirements and gets the ball rolling.

I agree with your point but it will be easier to keep the number of metrics under control if they aren't littered about. We'll try both models and see what works in practice for this project.

I wouldn't worry about keeping the number of metrics under control. Labelless metrics are effectively free (e.g. the health checks here), it's labeled metrics that tend to bite you over time as they gain in cardinality.

Sorry, terrible question: do you have tooling setup? This is super obnoxious without something like vim-go.

Most of my experience was in C++ actually, with very good tooling for reading code. Vim-go isn't sufficient for this sort of use case, you need an actual IDE. Having 10 browser tabs open at once, at least 4 visible at a time was on the low end of where this sort of debugging typically takes you - and that's before I got to reverse engineering the obfuscating abstractions on top of common libraries such as instrumentation.

Does that become a problem for users instrumenting prometheus itself?

It hasn't been a problem yet for Prometheus. We've yet to have to break any of the "important" metrics.

This project would be a lot easier if people didn't expect stability in the first few releases, but I'm afraid, even with documented caveats, there will be those who will rely on metric naming.

Thus is life unfortunately. I expect ye're going to have it a lot tougher than we do, so it'd be good to clarify the guarantees.

Vim-go isn't sufficient for this sort of use case, you need an actual IDE.

I'd recommend you give it another look. It does most things an IDE can. VSCode is also an option if you're struggling with Go code navigation. Anyways, it allows me to bounce around from file to file without these issues. I haven't tried it in awhile, but SourceGraph can help with Go navigation in github.

oh no, not the editor debate ;)

LGTM

ping @thaJeztah

Since this is a new API, we need a new section in the docs for this. Let's do so in a follow up before 1.13 is released
/cc @mstanleyjones

opened https://github.com/docker/docker/issues/27843 for tracking docs

Am I right that in current implementation only prometheus can be used for collecting metrics? Why not to have extensibility as in log drivers? Current implementation is really tight to the prometheus client library without any abstractions.

Am I right that in current implementation only prometheus can be used for collecting metrics?

For clarity I define "collection" to mean instrumentation, and "ingestion" as the process of getting the collected metric data into a monitoring system.
In that context, the answer is yes as I understand things on the Docker side.

Why not to have extensibility as in log drivers? Current implementation is really tight to the prometheus client library without any abstractions.

The challenge is that metric instrumentation is nowhere near as standardised as logs. Indeed Prometheus client libraries can be viewed as one standardisation option to allow for extensiblity, as they are designed to be an open ecosystem.
You could add an abstraction at the instrumentation level as I believe you are suggesting. You'd likely end up with a lowest-common denominator library, which would lose you the benefits of things like labels, floating point numbers, take a performance hit and not be idiomatic for any monitoring system. In short you'd gain abstraction, at the cost of good instrumentation. I personally do not believe that is a good tradeoff, and have never seen it work out well when attempted.
With Prometheus client libraries there's abstraction at the ingestion level. The Prometheus approach is to instrument full-on with Prometheus client libraries, and then you use a small shim (called a "bridge") to output to other systems like Graphite (currently in code review to be included out of the box for the Go library, already exists for Java/Python), New Relic, InfluxDB, CloudWatch etc. There's no need for a user to run a Prometheus server in such a scenario, see https://www.robustperception.io/exporting-to-graphite-with-the-prometheus-python-client/ for example. There are other ways you can plumb that too.
Prometheus client libraries put all the smarts in the server rather than the instrumentation and have a data model that's on the powerful end of the scale, so it's almost always possible to automagically convert to something sensible in other monitoring/instrumentation systems. The reverse is unfortunately rarely true.

You could add an abstraction at the instrumentation level . . .

Self-plug: one candidate is go-kit/kit/metrics, which provides exactly this abstraction and suffers none of the drawbacks you mention. I'm not necessarily advocating for it in this circumstance—it seems exceedingly unlikely that Docker should or would use a different metrics backend than Prometheus—but at least the option is there.


Sink not working in .NET Framework 4.5.2

Based on a reproducible report by @GFoley83 in issue #23 . The following code should work (and does on .NET Core) but does not when targetting .NET Framework 4.5.2
var config = new LoggerConfiguration().WriteTo.Slack("https://hooks.slack.com/services/XXX");
Log.Logger = config.CreateLogger();

Log.Logger.Information("Hello world");
Log.CloseAndFlush();

@TrapperHell  I can confirm that v.2.2.1 works as expected with .NET Frameworks v4.5.2. Thanks for your help!


Pop-up of button_type "name" does not use icon / name of provided entity

Describe the bug
If changing the button_type to "name" the entity attributes were not used in the header section.
Screenshots

YAML
If applicable, add any relevant YAML code.
      - type: custom:bubble-card
        card_type: pop-up
        button_type: name
        entity: light.og_as_l_decke

Hi! This is the normal behavior, that's because the name type is the only one that doesn't supports entities, you can use state instead.


Adding logging statements for pullsecret controller

Which issue this PR addresses:
https://issues.redhat.com/browse/ARO-6600
What this PR does / why we need it:
This PR adds logging statements for the ARO Operator pullsecret controller to understand what it's updating and when, without surfacing any explicit secret data.
Test plan for issue-

[ ] Run the operator locally (out of cluster) and see the logs.

How to test
First, create an OpenShift cluster and run the ARO Operator locally.
To test recreation of the pullsecret- In a seperate terminal, backup the pullsecret oc get secret/pull-secret -n openshift-config > backup.yaml and delete it oc delete secret/pull-secret -n openshift-config.
To test updating of the pullsecret- Edit the pull-secret by editing the pull-secret.json file  oc get secrets pull-secret -n openshift-config -o template='{{index .data ".dockerconfigjson"}}' | base64 -d > pull-secret.json and then oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=./pull-secret.json

@microsoft-github-policy-service agree [company="Red Hat"]

/azp run e2e

/azp run e2e

FYI @slawande2 and others watching this PR - it seems to me that the previous E2E run failure was related to an orphaned E2E cluster from a cancelled agent VM. So I deleted the orphaned resource group and started a new E2E run.


Setting layers which impact on variety

Hi, @rounakbanik! I suppose it is the most user-friendly code to work with on this subject. Thanks a lot!
However, I have a challenge: I have 6 layers in total, and I want only 2 of them that program will treat as unique, and others wont.
I explain, there are layers, such as backgound (4 layers) that are needed just "for beauty" and 2 important layers. So I want program to work like this: when it is mixing layers and have combination like (XXXX XX) and (XXXX XY) - are distinct, but (XXXX XX) and (XXYX XX) as "the same" puctures and DO NOT create such picture. So the maximum number of combinations is less than multiplication of all layers by all treats.
Sorry, I am not so pro in coding)
Thanks in advance!

Well, sorry for disturbing! I have managed my issue. If someone is interested in my case, it is solving just in easy way: in 183 line of nft.py there is a method "drop_duplicates" and I added param "subset=['xxx']" to use only needed columns. After generating images it will delete undistinct.
Thank again for this tutorial! Good luck!


Comparison to similar projects

Hello everyone. This is a great project. I entered selling points of this project and I made the following comparison of a few projects to show how they differ. If you have any corrections to make you can do so by commenting in the spreadsheet from which this is generated. If you are wondering why I went to such lengths it's not to promote a particular project. It's because I want people to stop competing and start working together. It is overwhelming to learners who have to pick a starting point and causes unnecessary duplication of work by the disagreeing project owners. Imagine what could happen if everyone worked together!

 I couldn't agree more. One of the reasons I did not create my own seed was for this very reason. It's why this is simply an extension and compliment to Minko's - because it was already an amazing seed - no need to create yet another. This seed serves 3 primary purposes:

Serve as solid example of how to extend Minko's awesome seed.
Serve as experimentation ground for multi-platform development from single codebase.
Provide a nice foundation for others that want to kickstart projects with the core features this seed provides out of the box.

Thank you for taking the time to put this information together, would be great to follow up with an article expanding on your analysis and concluding thoughts 🌮

Thanks. I appreciate your agreement. 🌮
I started working on this a few years ago and have written about the situation a few times. I held Google Hangouts for a while with various project leaders and Google people. I have a few conclusions.

I'm terrible at moderating Google Hangouts
It's hard to get people to agree
People want to agree more than we might think they want to agree
This example I made is a sort of conclusion in that it demonstrates a pathway to agreement. I consciously ordered various expert approaches/styles to make this app and used the ordering to resolve conflicting opinions on how to do the same things. It's not perfect and I'm not an expert, but I think the idea of combining incompatible expertise systematically is possible if the experts are willing to give it a try. I hadn't come across your project until I already had enough projects to get sufficiently dizzy, but I welcome any offers to incorporate its virtues into the project if anyone wanted to do that.

My goal also evolved from reducing to a single starting point to sparing people massive amounts of time figuring out what's different between the different starting points. I respect the need to experiment but I also want to ease the path to convergence once the experiments have been conducted.
I have already done the bulk of the work to make figuring out differences much easier, but collecting and updating the facts about things is an ongoing chore. If anyone wants to help, the best way would be to comment "YES" (with links please) into the cells of the spreadsheet for benefits provided by technologies you know.

Really awesome @dancancro! I am a seed user, and contributed a little bit at some point (although I'd love to contribute more, if I had the time or expertise).
When I started learning/playing with Angular2, I also bumped into some of those on your list, and ended up using Minko's awesome seed. I then moved to @NathanWalker's advanced-seed for one  the primary purposed he mentioned above: multi-platform support.
And that is one item missing from your spreadsheet: mobile support. That is what brought me to the seed, the ability to use a single codebase and generate web, desktop and mobile apps. Although you do mention the ability to Deployment automation, to a native executable, that does not give enough weight to native mobile support.
Just my $0.02 contribution.

@fourctv Thanks. I'm always open to suggestions. How would you put it?
The items above are a subset of all the selling points of all the web dev technologies I've read about over the past couple years - about 1500 at the moment - respecting inheritance of benefits from dependencies to dependents. To keep the above table from being too crazy, I have filtered it to just the important ones with some  minimum subjective importance level I've given it.
You are welcome to send me a request for access to the spreadsheet and let me know if you think I should add anything, rename anything or give anything more importance points.

Hi @dancancro my only suggestion at this point be a new row indicating support for "Mobile deployment". Feel free to name it as you please.

@dancancro , Thank you , wow, amazing consolidation thank you for sharing it . I also agree with @fourctv, after my research i decided to go with  @NathanWalker's advanced-seed because the of ability to have one code base and multi "Front Ends" that compile natively.  With Electron  you can have the executables for Windows 10, Mac and Linux; that is unimaginable / inconceivable for most developers unless they see it. Then another "wow effect" is the elegant use of NativeScript to allow the app have views that compile Natively for Android and Iphone. I think those facts definitely call for another Column in your awesome spreadsheet .

@OscarAgreda No argument there. Write once run everywhere is holy grail level stuff. I'm going to read more about Electron and NativeScript and try to clarify what benefits they each deliver.
In what ways does angular-seed-advanced save you time that you'd otherwise need to spend putting Electron and NativeScript to use in your apps?
Also, I'm curious about the structure of this project that uses a 'frameworks' directory. That idea isn't part of the Angular style guide. If you'd like to talk about that, I brought it up in this thread on the ngrx project where file structure is being discussed.

From my point of view, and @NathanWalker please correct me if I am wrong, the frameworks directory exists exactly because of the seed's multi-plataform nature. Code that is shared between the various platforms resides in that directory. (at least that where I have mine).
Sure, it is not in Angular's style guide, but maybe that is an oversight of that guide, which does not take into account the idea/possibility of sharing code between multiple platforms. That guide does provide support for multiple 'apps' under one project, but it seems to assume all 'apps' are targeted for a single platform (web).

@dancancro Ok, let’s say we need to architect a multi-tenant software application (like Facebook for example, I am not sure if Facebook has this enterprise architecture but most likely yes), in which each of the millions and millions of users thinks and feels as if the application was specifically built for him/her. That is accomplished by having some type of Identity Server that injects some properties (claims) to each user that when she/he logs in makes the application behaves accordingly based on his/her assigned credentials.
Also, lets sat, this same app, must have just one “code base at the server level”, meaning that the developers will only work in one application, not many which will be impossible to maintain.
I use Facebook as an example because there are millions of users running the same app “Code Base”.
Fakebook has a web interface and a Mobile version of the same application, and they use the same Sever Code. (If the developers find a bug, they only need to fix it in one place).
From my humble opinion, applications that only run on the web are a thing of the past, every business nowadays wants a mobile app version for whatever app they have (or will have) for the web.
NativeScript is the solution for the native mobile world. As a side note, I am a crazy Silverlight developer, then WPF so XAML comes easy to me, and I can tell you that I will not use Xamarin to build mobile apps (been there done that), in addition React Native seems to foreign to me.

So when @NathanWalker decided to go the extra mile with NativeScrip , you can see the benefits of having the same code base.. not to mention using Electron, well as i said is unthinkable to most developer .
Will be nice to see how @NathanWalker explains it , his explanation will be truly awesome.

I'm getting into testing and see that this project has given that a ton of thought. I have a couple questions about why things were done the way they are done in this project. I hope this is an ok place to ask them.

What's the story with the "sample" directory? I can't imagine real projects based on this seed are meant to have their special stuff in a "sample" directory. I'm confused about the difference between what resides in src/client/app/components and src/client/app/shared/sample.

What's the difference between the src/client/app/shared/test directory and the src/client/app/shared/core/testing directory? I contrast this with the src/testing directory prescribed in the Angular Documentation which is my moral authority. I'm not saying deviations are bad. I just want to know the rationale behind them.

Was there a conscious reason behind putting the core directory in src/client/app/shared/core rather than src/app/core as it is in the Angular Documentation? I'm a little confused how the Angular team meant core and shared to be distinguished. I think it has to do with the number of instances things should have.

@dancancro

This directory explanation may help:
https://github.com/NathanWalker/angular-seed-advanced#code-organization-overview
Sample directory is Just a sample module pre-configured with a scalable ngrx setup. meant to serve as an example of how to potentially build your own module out. It's meant to be deleted 👍
Components directory is also explained there.

shared/test is meant for shared testing code. Each directory which equates to a module can have it's own specific test helpers, hence shared/core/testing, etc.

Since the app directory is shared with the native mobile app, to reduce the amount of folders showing up in either locations, they are all collapsed down into the shared folder 👍   In the case of the seed, this naming has nothing to do with Angular team principles.

@dancancro Seems you've tested a lot of things, do you mind if i ask how would you persist state through application exit?
In my case state lives in Redux store through @ngrx/store, and cross-platform (NativeScript/Electron/Browser) persistence is done with LocalStorage, what would you recommend?

@luchillo17 I don't know how things work without a browser but with a browser you can use the browser's local storage like this for small things like an authentication token or the indexedDB like this for more data. The ngrx example app and others demonstrate it too.
I recently read this article about the various kinds of state in an application. I'm still trying to understand it. The author takes an approach that has a reducer making calls to the server which sort of breaks the main rule of Redux. He recommends and uses ngrx in his work but unfortunately he did not in the example code. So I'm working on figuring out how to do that so I can add this to my example app.

@dancancro As far as i know that's the purpose of @ngrx/effects, though haven't got to use them yet.

@luchillo17 That's right. My example app uses lots of @ngrx/effects if you want to see how they work. And supposedly the author of the article uses them in his projects too. He just didn't use them in this article's example code. So I'm trying to figure out how he would have done this example if he had chosen to do it with effects.

For now i'm trying to figure NativeScript out, dev builds get me startup times of 12 secs, and trying aot generates error, depending on this i might have to go with ReactNative, which also generates some errors.


lowers memory burden of listing external compactions in monitor

Each request to the monitor for the list of external compactions would create a copy of the per compaction information in the o.a.a.m.r.c.RunningCompaction constructor.  For many concurrent request when there are lots of external compactions running this could cause memory problems on the monitor.
This commit changes the code to only create a single RunningCompaction object every 30 seconds that is used by all request.  This should lower the amount of memory used when there are concurrent request or even refreshing the page really frequently.

I manually tested this locally by running some external compactions and looking at them in the monitor.  Was able to see them.

This looks good as far as I can tell. The only thing I'm wondering is if the 30 second memoization interval should be adjusted. Did you see the mentioned memory issue actually happen or is this more preventative?
I am also wondering it would simplify the code if we used the memoizeWithExpiration in place of the other code that checks if an interval has passed before computing again (getScans(), getScanServerScans(), getCompactions(), getCompactorsInfo()). Although this should probably not be done in this PR.

Did you see the mentioned memory issue actually happen or is this more preventative?

Its a preventative change.  The number of external compactions has the potential to scale with the number of tablets.  A lot of the Accumulo code tries to avoid assuming that per tablet information fits in memory.  This code is kinda doing that and its doing it per web request.

I am also wondering it would simplify the code if we used the memoizeWithExpiration in place of the other code that checks if an interval has passed before computing again (getScans(), getScanServerScans(), getCompactions(), getCompactorsInfo()). Although this should probably not be done in this PR.

That would be good to investigate for a a follow on PR.  Looking around in the monitor there is other code that also rate limits the amount of time data is fetched and that would be nice to use memoizeWithExpiration if its workable.  Looking into this I noticed a REFRESH_TIME constant in the montior, I think I will use that for this PR.

I am also wondering it would simplify the code if we used the memoizeWithExpiration in place of the other code that checks if an interval has passed before computing again (getScans(), getScanServerScans(), getCompactions(), getCompactorsInfo()). Although this should probably not be done in this PR.

I updated the code to use an existing timeout that the functions you mentioned were using in dc5f043.   Those existing functions seems to have a bug there they will never refresh if nanoTime starts off negative (which the nanoTime javadoc mentions can happen).  So using memoizeWithExpiration or Timer w/ those functions would probably fix a bug.


On the Initializing From State example what is the purpose of initializeForm property?

On the Initializing From State example what is the purpose of initializeForm property? It doesn't appear to be used anywhere.

Excellent observation and question. That's vestigial from an older way of doing it. I will remove it.

Is props.initializeForm going to be deprecated?
I see two different ways of initializing the form:

from the state like http://redux-form.com/5.2.5/#/examples/initializing-from-state?_k=sxni9f
from the props, by using

componentWillReceiveProps(props) {
  let { name, initializeForm } = props;
  if (name) {
     initializeForm({ name });
  }
}

Personally I am using the second version because using props doesn't force the component to depend on specific part of the state by specifiying mapStateToProps.

Is props.initializeForm going to be deprecated?

No. It's called props.initialize in v6, though.


StrokeWidth doesn't work for GeoJsonDataSource

Step to reproduce:

go to https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=GeoJSON and TopoJSON.html&label=DataSources
For Basic styling, edit strokeWidth to 30
Run

Expected - Line width should be wider
Actual - Line width didn't change

@lydart this is a limitation of Windows browsers (it works on Linux, Android, iOS, and Mac), see https://stackoverflow.com/a/25405483/3191039 for full details.  Basically the maximum limit is whatever viewer.scene.maximumAliasedLineWidth reports.
The good news is that we have an alternate implementation that would allow this, but no exact ETA on when it will be in.  Keep your eye on #6694.


Bugfix: IndexError slicing Surface with higher-dimensional vertex_values

Description
This fixes an off-by-one error on Surface layers extent data, which was causing an IndexError slicing that dimension.
Type of change

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

References
closes #5620
Disussed in community meeting on 2023-03-15
How has this been tested?

[x] all tests pass with my change (though I had to change two of them)
[x] thanks to @brisvag who tested to make sure the mesh was in the correct spot wrt an image

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

Actually, one thing I haven't checked: how does it behave with higher dimensional vertex data, if at all?

The limits for the slider for the vertex data are calculated separately (just above this) and appended. So I think it just works? I have tested and it seemed okay to me but again I'm not too familiar with this code and want to make sure it is working as expected with multiple layers.

Hmm - even on main I can't get a 4D Surface to behave as I thought it  would. I'm going to convert this to draft while I play with that.

Okay I spent some time and understand the extra dims on the vertices a bit more. I think this is ready for review.
Here's some sample code that will split a cow in half and assign (3, 3) random sets of vertex_values:
from vispy.io import imread, load_data_file, read_mesh

import numpy as np

mesh_path = load_data_file('spot/spot.obj.gz')
vertices, faces, *_ = read_mesh(mesh_path)

v = np.pad(vertices, ((0, 0), (2, 0)))
v[np.where(vertices[:, 0] < 0), 0] = 1
values = np.random.random((3, 3, len(v)))
viewer.add_surface((v, faces, values))

So in this screenshot slider 2 is the extra dim on the vertices, and sliders 1 and 0 are the extra dims on the values.

Yes I was tempted to reformat that, but oh well :/

Sorry @aganders3 , forgot about this one. Failures may be unrelated, but I'm not sure. Rerunning tests.

This one (pyside6, 3.10 ubuntu)
https://github.com/napari/napari/actions/runs/4545923589/jobs/8027552735?pr=5635#step:8:270
is this issue: https://github.com/napari/napari/issues/5657
So unrelated. the other one is the random dims hang?

Thanks @psobolewskiPhD for checking; let's mark as ready to merge then :)

Thanks to both of you for following up!


[cryfs-mac] Update to latest version 0.11.3

Please update to latest cryfs, 0.11.3
Thanks!

Thanks for the heads-up! Version bumped cryfs-mac and rclone-mac.


Side positionals are 90°, are they not?

The plugin gives 45° of side positional area. Shouldn't these be 90°? I understand that you're not really supposed to be in that area 99% of the time as melee, but still it should be an option IMO.

Sweet Zenos, I might have had this misconception for a while. I'll test this in a bit and get an update out if it holds true.

Tested and confirmed, with a fix in https://github.com/aulus-asina/resonant/commit/9f0938868df2ac10425ba29eb4b305a41fc7cd71 . Give it a go and let me know what you think.

Don't worry it was a surprise to me too ;)

<IP_ADDRESS> is broken btw

That is peculiar, might have been an artifact of reusing latest as a tag. I've deleted the release and rebuilt it, which seems to be working for me now. I'll have to improve on that release process later.


Python version bump

Bump required python versions
Fix parsing bug
Update readme files

Wait for next release before merging please


Add support for spatial coverage

Science on schema has an explicit way of handling spatial data; if the EML document supports it-we should definitely include it in the graph. This can be a strong case for third party integrations (eg KWG).

Closing as this is done in https://github.com/DataONEorg/slinky/tree/feature_update_graph_pattern.


Remove opacity property from unpublished page text

Fixes #5370

Nice one @InjuMichorius.
Merged in ac38343. Thank you for your first contribution to Wagtail 🎉

Thanks for the opportunity and clear explanation. Glad I could help!

Woo!


[AutoPR containerregistry/resource-manager] Azure Container Registry Auto Build Feature Swagger and examples

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2378

Codecov Report

Merging #2035 into restapi_auto_containerregistry/resource-manager will increase coverage by 0.01%.
The diff coverage is 92.64%.

@@                                 Coverage Diff                                 @@
##           restapi_auto_containerregistry/resource-manager    #2035      +/-   ##
===================================================================================
+ Coverage                                            53.17%   53.18%   +0.01%
===================================================================================
  Files                                                 4724     4724
  Lines                                               117293   117327      +34
===================================================================================
+ Hits                                                 62371    62405      +34
  Misses                                               54922    54922

Impacted Files
Coverage Δ

.../v2017_10_01/operations/replications_operations.py
93.58% <100%> (+0.21%)
:arrow_up:

...ainerregistry/v2017_03_01/operations/operations.py
28.12% <50%> (+2.31%)
:arrow_up:

...ainerregistry/v2017_10_01/operations/operations.py
28.12% <50%> (+2.31%)
:arrow_up:

...stry/v2017_10_01/operations/webhooks_operations.py
83.64% <93.75%> (+0.63%)
:arrow_up:

...ry/v2017_03_01/operations/registries_operations.py
86.95% <94.44%> (+0.59%)
:arrow_up:

...ry/v2017_10_01/operations/registries_operations.py
86.71% <95%> (+0.53%)
:arrow_up:

Continue to review full report at Codecov.

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

(message created by the CI based on PR content)

Will solve conflict on https://github.com/Azure/azure-sdk-for-python/pull/1935 directly


Optimizer changes for the LIPFilter feature.

There will be three PRs for adding the LIPFilter feature: optimizer changes / execution generator changes / relational operator changes. This is the first PR that does optimizer changes.
LIP (lookahead information passing) filter is an improved semi-join optimization technique that pushes "future selectivities" down a left-deep query plan tree. For linear / bush trees, we can also search for the left-deep pattern in the tree and apply the LIP filter optimization.
With LIP, the overall SSB benchmark (scale factor 100) performance will be improved from ~19 seconds to ~12 seconds on the cloudlab machine. The TPC-H benchmark performance will also be improved greatly (e.g. Q02 6.7s -> 0.7s, Q17 166s -> 1.7s, Q20 55s -> 1.7s).
Main changes in this PR:
(1) Rewrote StarSchemaHashJoinOrderOptimization. This changed some of the TPC-H query plans. One or two SSB query plans were also slightly changed due to an adjustment in StarSchemaSimpleCostModel. Nevertheless we will achieve an overall performance of ~12 seconds for the SSB benchmark when the full feature is there.
(2) Added a LIPFilterConfiguration data structure to store the LIP filter information during query optimization.
(3) Changed ExecutionHeuristics to an optimizer rule AttachLIPFilters to decide and attach LIP filters to the physical query plan.

@jianqiao Nice! LGTM. If you squash the commits to one and rebase, I can merge.

@pateljm Thanks! Will sit together with Harshad tomorrow to go through the code once more. Perhaps it's safer to merge the PR after that.


Disable webgl for camera type: flat

Hi, I'm creating a map application for which I'm thinking of using tangram for client-side styling. I want it to run on old browsers which might not have webgl support. Since only flat camera type needs to be supported, is there a way to disable webgl and use only leaflet to render the tiles?

Tangram doesn't have any mechanism for that – it uses WebGL for everything it draws to screen, so disabling it would mean nothing would ever be drawn. However, you could still serve a different Leaflet-only version of your map to clients with no WebGL support.

However, you could still serve a different Leaflet-only version of your map to clients with no WebGL support.

Part of the reason I want to use Tangram is because it abstracts out tile styling to the .yaml. Can you suggest Leaflet-only libraries with such a feature?

Hi @parinporecha -- you could check out a demo of this Canvas-only renderer, working with Mapzen vector tiles served from Mapzen (though not developed by people at Mapzen): https://github.com/mapzen/hoverboard
However, while promising, that project is fairly light-weight on the styling side and shouldn't be considered a full-blown rendering solution.
Out of curiosity, which devices/browsers is it that you are concerned about WebGL support for? Support is by no means universal, but it is quite broad at this point and only growing by the day.

Hi @parinporecha -- you could check out a demo of this Canvas-only renderer, working with Mapzen vector tiles served from Mapzen (though not developed by people at Mapzen): https://github.com/mapzen/hoverboard

@bcamper , yes I looked at hoverboard, MVT, VECNIK and couple of other canvas libraries, but most of them are experimental and do not support either labels or advanced styling features.

Out of curiosity, which devices/browsers is it that you are concerned about WebGL support for? Support is by no means universal, but it is quite broad at this point and only growing by the day.

A lot of the browsers will be on Ubuntu LTSP, and supporting them is part of the use case.

Yes, unfortunately that is more or less the state of things right now :)  Most new vector renderers are WebGL-based. I think there would be a decent audience for Canvas-only rendering, but we simply don't have enough time to devote to it right now! Good luck though...


Support custom developer fields

Hi Richard, I see you're actively working on a big re-write, so thought I'd check with you before doing anything about this issue. I've got a Wahoo Elemnt BOLT that I'd like to get functioning with your crate—it has developer fields apparently.
Is your current re-write working on including these, or could this be worked on independently? Could you let me know what you've done (if anything) already?

Hey, thanks for getting in touch. Currently the rewrite is only aimed at the same level of functionality as the released version (for simplicity's sake). But supporting developer fields is absolutely next on the list.
I should hopefully be more or less ready with the rewrite in a few days. There's more speed that could be gained, but I feel like that can be just as easily accomplished at a later date or else I might never be finished. A ~10x speedup is good enough for now :)
The good news is that I have an old elixir implementation that supports developer fields so it should go pretty quickly using that logic as a template.

Cool, OK. Well it'd probably be worth me waiting to assist once that's done then so I can get acquainted with the new codebase. Ping me when you're ready and I'll help out!

Right, the new rewrite is more or less ready now, and merged to the master branch. It's not finished, but the design is stable enough.
I'll make a start on this issue now.

Great! Since you have your elixir code I guess there's no need for me to delve into the API at all. If you run into issues, let me know. I can run some tests with my fit files on the initial implementation once you've translated the elixir template.

Closed in 8b4af8a34601b51f60de220030170539442c593b


Improve modals

We would like to improve existing modal in various ways. Changes should be done for confirmation modal, wallet editor modal and transaction editor modal
Buttons

Make all buttons 50% wide, secondary button should use angular material stroked style, primary button should use angular material raised style
Make this change global for all modals
Add 30px padding on top of actions to separate them from the content

Sizes

Adjust default global config for modals to have min width 300px and max width 90vw
Inputs in modals should take all available width, if there is one input in single row in modal it should take 100% width, if there are two inputs in single row those should take 50% with 10px gap between them etc

Forms

Remove appearance="fill" from all inputs and globally adjust config so all inputs have outline appearance

Przypisane do Bartka :)


operator odf-node-recovery-operator (0.0.2)

Thanks for submitting your Operator. Please check the below list before you create your Pull Request.
New Submissions

[x] Are you familiar with our contribution guidelines?
[x] Are you familiar with our operator pipeline?

[x] Have you considered whether you want to use semantic versioning order?
[x] Is your submission signed?
[x] Is operator icon set?

Your submission should not

[x] Add more than one operator bundle per PR
[x] Modify any operator
[x] Rename an operator
[ ] Modify any files outside the above-mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description of the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human-readable name and 1-liner description about your Operator
[ ] Valid category name 1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/retest

/pipeline restart operator-hosted-pipeline


Do after hooks block?

After a user is created, I want the client's Accounts.createUser call to return, and then I want to add something to the user's record that is fetched with a HTTP request that is wrapAsynced. Can I put that HTTP request in Meteor.users.after.insert, or would that block the createUser returning?

Have you given it a try?

Just did this, which blocks createUser returning.
Meteor.users.after.insert (x, doc) ->
  l 'after insert'
  a = (cb) ->
    setTimeout ->
      cb()
      l 'timeout'
    , 5000
  block = Meteor.wrapAsync a
  block()
  l 'end'

Just calling Meteor.setTimeout does not block, so I guess you should wrap things that take long and aren't needed at return time:
Meteor.users.after.insert (x, doc) ->
  Meteor.setTimeout =>
    console.log @_id
    apiCall()
  , 0

Perhaps worth noting in docs?
Also, using  _.defer doesn't work, gives:
[Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.]

(I'm assuming methods other than createUser that insert docs that have hooks similarly block on the [insert+insert hook] returning.)


fix(ui): prompt user to select google account on web

Description
See the issue for more details
Related Issues
Closes #7980
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

I think an earlier PR that has been merged had analyzer issues 🤔 since CI here is failing
[flutterfire_ui]:    info - lib/src/auth/actions.dart:77:50 - This function has a nullable return type of 'bool?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'. - body_might_complete_normally_nullable
[flutterfire_ui]:    info - lib/src/auth/screens/profile_screen.dart:92:62 - This function has a nullable return type of 'bool?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'. - body_might_complete_normally_nullable
[flutterfire_ui]:    info - lib/src/auth/screens/universal_email_sign_in_screen.dart:27:43 - This function has a nullable return type of 'bool?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'. - body_might_complete_normally_nullable
[flutterfire_ui]:    info - lib/src/auth/widgets/email_sign_up_dialog.dart:29:50 - This function has a nullable return type of 'bool?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'. - body_might_complete_normally_nullable
[flutterfire_ui]:    info - lib/src/auth/widgets/phone_input.dart:83:18 - This function has a nullable return type of 'String?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'. - body_might_complete_normally_nullable


How to use setuptools v 40.0.0?

Now pybuilder requires setuptools ~=39.0.0. pip/virtualenv needs root privileges to downgrade Setuptools from v 40.0.0.
How can I use pybuilder with setuptools v 40.0.0?

Similar problem here. Another package (cairocffi 1.0.2) is requiring setuptools>=39.2.0 but pybuilder keeps it at 39.0.0.
Any suggestions?

Fixed in #648


reduce NSS operator permission

Reduce NSS operator to full namespace admin permission

update role and rolebinding file
remove NSS-restricted  operator
update Makefile bundle generate

issue: https://github.ibm.com/IBMPrivateCloud/roadmap/issues/57301


operator overloading

Related Issue #3
Changes:

Overloading operator to make the syntax simpler.

If this is something interesting I can help adding the corresponding doc
Usage:
Before

After

@noklam sorry I missed this! Feel free to at-mention me to ensure I get notified.
I think the operator should be +=, since it's modifying the LHS - what do you think?

@jph00  Thx, I think += make sense, unfortunately it seems not as straight forward as changing __add__ to __iadd__, I couldn't make it work.

Oh that's interesting. What happened when you tried that?

Instead of returning a pydot object, it return a fastai L

@jph00 @mentioning again in case you missed it.

Thanks - I did miss it. I don't think we can use + in this way. At least for me, I just can't get my head around it! I'm fine with >> however. Maybe remove + for now, since += isn't working?


[FEATURE] Fixed Navbar

Navbar Fixed

It seems there are merge conflicts Shoron. Can you fix those first?

ok


Calling Stored Proc with Out Parm that returns null

I am trying to call a stored procedure that has an out parameter, I found your example and your code and its working fine, until the out param is return null.  I tried setting the calling variable to datatype sql.NullString but I am still getting an oracle error of  ORA-01405: fetched column value is NULL.  Can you let me know if this doesn't work if the parameter might be null?
var er string
	_, errd := db.Exec( "call P(:1,:p_out )","2", sql.Named("p_out", er))

	if errd != nil {
	panic(errd)
	}

Did you look this code?
https://github.com/mattn/go-oci8/blob/e93e9d0c9702cb2bfad8b9ba2c4216b360ab4797/_example/dbms_output/main.go#L27-L29

Yes, I did, and copied it and it worked.   I wanted to know if the out parameter happens to be null, would that work?

Could you please show me your code of procedure?

PROCEDURE p (
p_string                   IN       VARCHAR2,
p_out out varchar2
) IS
l_string   LONG DEFAULT p_string;
BEGIN
LOOP
EXIT WHEN l_string IS NULL;
DBMS_OUTPUT.PUT_LINE (SUBSTR (l_string, 1, 250));
l_string := SUBSTR (l_string, 251);
p_out := 'hi';
END LOOP;
END p;
when I commented out    p_out := 'hi';  it gave me that error.

#220 Anybody can fix it?

This is caused by the bind calls specifying nil for the indicator variable. Call sites like
https://github.com/mattn/go-oci8/blob/048cd9670c0a15373c1b367e77359f2a3b95a468/statement.go#L232
Its a bit vague, but when the indicator is not returned to oracle an error will be reported to the user to allow capture of these potentially error prone states. per https://docs.oracle.com/cd/B10500_01/appdev.920/a96584/oci02bas.htm#422173 and https://docs.oracle.com/cd/B28359_01/appdev.111/b28427/pc_04dat.htm#i12463
A simple, though potentially troublesome, fix is to simply pass an indicator variable (any C.sb2 will work) to the binding functions and then not use it. Im not familiar enough with the go-oci8 codebase to say how it should be handled or if it is already handled and such a fix is enough. In my usecase I do not care about null or truncated results so I am fine with passing a dummy indicator value to the functions.

Note that Go string cannot be null, so if binding to a string, best effort is to return an empty string.
Is this still an issue otherwise?

Oracle packages are not under our control, so I cannot control what it returns.
In this case the package in error is DMBS_OUTPUT.GET_LINE which is provided in the example code. When called with an empty buffer it returns an error instead of appropriately binding and returning status=1

Did you try this after the recent commit? This might be fixed.

Unfortunately I am on a rather old version, I will see if I can update and test. But if calling DBMS_OUTPUT.GET_LINE on a new session doesnt return an error I would assume my specific issue is fixed.

@mattn Close this?


建议增加一个删除存量订阅仓库的功能

Clear and concise description of the problem
大量订阅以后，以后有的仓库已经不再维护，只能手动到后台删除，可视化和易用性低
Suggested solution
建议增加一个删除订阅仓库的功能
Alternative
No response
Additional context
No response
Validations

[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

2.16.0 已支持


Display invalid textures nicely

UXGeoTexture now implements an is_valid method. Every texture is expected to be extracted in order, so even invalid textures are included in the texture array. Invalid textures should not show properties, but should instead display a warning icon and replace the properties tooltip with [the error message]?

Added in cf7a3f688fcb39b3b8b285842e542718f720d2cb


Host detail page constantly throwing error in development tools

Rancher Version: v1.2.0-pre4-rc6
Steps to Reproduce:

Open dev tools
Go to host detail page

Results: Error is constantly throwing.
ember.prod.js:18000 Uncaught TypeError: Cannot read property 'indexOf' of undefined(…)
Expected:  Shouldn't have error.

I think this is the same as https://github.com/rancher/rancher/issues/6498 , stats coming back with no id.

Version - master 11/06
Verified fixed

Is this fix available in pre4-rc7?

I'm still seeing massive TypeError: Cannot read property 'indexOf' of undefined and Uncaught TypeError: Cannot read property 'outlets' of undefined(…)

@natami This fix is v1.2.0-pre4-rc11, but we don't recommend using RC versions. These are for our internal testing purposes.


Renaming more variables

Part of #320
Of course #321 only fixes internal JSON translations.
This fixes JSON translations between app and respective device OS.

It wasn't entirely fixed actually
A lot of event arguments have changed names some time ago, probably during the setup for timezones, and wasn't updated across the board. Ie. Currently the event title and other fields created by toJSON can't be read by fromJson. Reading and writing to devices were fine though since probably only toJSONwas edited.
I only discovered that when I merge the PR for testing.
I just realized that any JSON maps previously created will be unusable. Either we make toJSON able to read both of them or we need a mitigation.

This is where it all got wrong
https://github.com/builttoroam/device_calendar/commit/aea337990b410ed411d03bdb80712486195854fd#diff-9e474c05021706fff3750cb85b2d9a25f4d2d528b95c285bb1881cc5bfff03b9
Either we follow through or we need to revert.

I tried it on iOS and it seems fine. You said that any maps created previously will be unreadable, you mean anything that was persisted? Within the scope of a single session the values should be consistent now?

Any Event JSONs created prior to 4.0 are unreadable after 4.0. If somebody store event JSONs and reuse them they are in big trouble.
4.0 and 4.0.1 will still create faulty JSONs because the conversion is incomplete. Said people are in moderate trouble.
But everything should stay consistent now? We definitely need better testing procedures.


Create Dockerfile

As I commented on discord:
Looks good, but given that it's specific to only the lucina testnet, I think it might belong better in the testnets repo - as in "if you want to run this testnet using docker, grab this dockerfile [link] and run"
So I think I'd add it there & add a line to instructions. 'Cos we're likely to have at least one more testnet and it's easier to keep track of/update there. The production docker inspired by other projects in this main repo is a different thing and probably best to not get them confused, I would say.
This is really good work though, so we should get it up where people can use/see it! Just suggest testnets is the correct place.

So I have long felt that repositories like Gaia are sorely lacking a very fast way to launch the node software.
I don't really think that this belongs in Chestnut but instead here, as the fastest way to run a node.
It is not suitable for use by validators.

moving to faddat/instachainz


Q: custom JSON response with data for form "options"

Hi,
First of all looks like you have nice gem for Datatables and I'd like to try it out.
I was wondering would it be possible to have JSON response like this?
{
    "data": [{
        "id": 3,
        "name": "some name here",
        "statuses": [{
            "value":  "planning",
            "label": "In planning"
        }]
    }],
    "options": {
        "statuses[].id": [{
            "value": "planning",
            "label": "In planning"
        }, {
            "value": "active",
            "label": "Active"
        }]
    }
}

I'm using Editor Datatables and would need to get back something like this in order to have my drop-down options populated correctly in my form. In my table I would have column named "Status" and value in view would be "In planning". In my form I would have field "Status" with values from "statuses[].id", where my value would be selected. This is done by Editor Datatables if I pass JSON as shown above.
In my app I get status as this array of arrays
status = [
   ["Deleted", "deleted", 0],
   ["In planning", "planning", 1],
   ["In approval", "approval", 2]
]

and can transform it to array of hashes with
status.map { |s| {label: s[0], value: s[1]} }
So far I'm thinking I could get this by tweaking these lines from your example:
column(:statuses, header: "Status") do |user|
   user.status
end

I'm not sure if this ir correct way to do + how can I pass that "statuses[].id" as options?
I'd be happy for any help. Thank you.

@brolycjw  I'm sorry, but it seems I can't access my current_user in datatable.
In my controller I have this:
  def index
    campaigns = Campaign::CampaignDatatable.new(view_context)
    respond_with campaigns
  end

then in datatable I have this scope:
  scope do
    current_user.campaigns.order("date_trunc('day', updated_at) DESC")
  end

and I get this error: NameError (undefined local variable or method "current_user"
current_user is defined in my SessionsHelper
What am I doing wrong here, please?
In my console I can do user=User.first and then user.campaigns
I checked I can get all records by Campaign::Campaign.order("date_trunc('day', updated_at) DESC") in my scope so in general datatable works.

@matissg There is a bug in the current version which I will fix in the coming week. In the meantime, you can workaround this issue by adding this line.
class CampaignDatatable
  # add this line
  delegate :current_user, to: :@view

  scope { current_user.campaigns.order("date_trunc('day', updated_at) DESC") }
end

Also, appreciate if you can create a new issue, so I can reference it once it is fixed.


Time zones don't match up.

See https://github.com/byu-oit/github-action-start-standard-change/issues/29

It looks like this has been going on for a while.
When we start the standard change, we don't specify a start time - it's assumed based on when we make the call.
When we end the change, I see that we go out of our way to create a timestamp in ServiceNow's format, in America/Denver time. Looks like we can now get rid of that timezone calculation and instead provide a timestamp in UTC.


Please add new team members

What type of help do you need?

[ ] Question
[ ] New Repo
[ ] Delete Repo
[x] User Membership (please make sure new members are familiar with the CDC open practices and set up their profile with name and org info to help people collaborate with them)
[ ] Other

I'm a data science lead at CFA and I'm wondering if you could please add these team members to CDC Gov?
Name / CDID / github id
Patrick Corbett<EMAIL_ADDRESS>PatrickTCorbett
Kingsley Iyawe<EMAIL_ADDRESS>kingsleyiyawe

Invited kingsleyiyawe and PatrickTCorbett to https://github.com/cdcgov, they'll have 7 days to accept the invitation.


Dev

Add plan to the section folder.

can we split the plan.tex into mutiple sections so that it is easier to edit tin the future? like create separate tex files for each subsection. thanks

See #39


Revert "Roll Flutter Engine from 16e2ab7e986c to 1b1ccdd1f527 (13 revisions)"

Reverts flutter/flutter#130458

well, I tried

Yes, you need to add the 'revert' label and not the 'autosubmit' label. But this will be simplified shortly.


Release 2.0.0

https://github.com/gds-operations/vcloud-core/compare/v1.2.0...v2.0.0

I'm not sure whether the removal of Ruby 1.9.3 warrants a bump to 2.x.


[DevOps] Move Clusters to a more restrictive Cipher Suites

Affected module
Does it impact the UI, backend or Ingestion Framework?
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Screenshots or steps to reproduce
Expected behavior
A clear and concise description of what you expected to happen.
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

moving it to collate


Implement Safety Measures Within Encryption and Authentication Processes

Throw warnings and errors in the correct places, and potentially halt glEEmail, or cause it to re-initialize encryption if relevant parts fail.


iterate subfolders in src directory

currently, wing only looks at source files in the src directory, and does not traverse subfolders within src to find source files. we need to traverse those too as it's an important part of project structure

resolved by e8de2431a62f1b06d6951975c4f20cb7fc033148


Get-ChildItem returns nothing if -Path contains []

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
To recreate please create the following directory structure.
C:\Test\
C:\Test\[core]\
C:\Test\[core]\test.txt

Running Get-ChildItem -Path "C:\Test\[core]" -Recurse runs fine but returns nothing.  Running Get-ChildItem -Path "C:\Test" -Recurse works as intended however.
Expected behavior
PS> Get-ChildItem -Path "C:\Test\[core]" -Recurse

    Directory: C:\Test\[core]

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2024-09-30     08:00              0 test.txt

Actual behavior
PS> Get-ChildItem -Path "C:\Test\[core]" -Recurse
PS>

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      7.4.5
PSEdition                      Core
GitCommitId                    7.4.5
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals

This is know issue, see e.g. StackOverfflow:

Is Get-ChildItem -Recurse broken when there are square brackets in the input path?
Dealing with a variable containing a path with brackets
powershell get-childitem not finding files that contains [ ] [duplicate]

The solution is to use the -LiteralPath parameter

Escaping with a backtick produces the same results, sorry, I left that out

@iRon7 I googled and googled and never hit someone that had the same issue, thank you for the LiteralPath, that did it, never even noticed that

FYI the reason why your escaped backtick didn't work was because of your use of double quotes. In double quoted (or unquoted) strings you need 2 backticks, one to escape the backtick in the string interpretation and another to escape the actual char in the path provider.

Martin, you just blew my mind, I've never ran into a situation that calls for a double backtick, super interesting info, thanks so much for that!


Issue about logs of WhereHows

Where is the log address about WhereHows? I want to check the running logs. Could you please give some guide for me. thanks in advance.

Hi, what do you mean log address? I guess depending on what log you are trying to find, you will find it in different places. Could you elaborate your question please? thank you.

Are you running it in docker containers or just using the pure gradle build?

Dear issue owner,
Thanks for your interest in WhereHows. We have recently announced DataHub which is the rebranding of WhereHows. LinkedIn improved the architecture of WhereHows and rebranded WhereHows into DataHub and replaced its metadata infrastructure in this direction. DataHub is a more advanced and improved metadata management product compared to WhereHows.
Unfortunately, we have to stop supporting WhereHows to better focus on DataHub and offer more help to DataHub users. Therefore, we will drop all issues related to WhereHows and will not accept any contribution for it. Active development for DataHub has already started on datahub branch and will continue to live in there until it's finally merged to master and project is renamed to DataHub.
Please check the datahub branch to get familar with DataHub.
Best,
DataHub team


exclude node_modules

When there are typescript files in the node_modules directory, the typescript compiler tries to compile them. This takes very long, and worse, it sometimes cause the entire project to fail.
For example, if you install rx you'll see that meteor tries to compile the .ts files.
Is there a reason it tires to compile the typescript files in the node modules?
Is there a way to prevent this to happen?

I turns out, that this problem is solved in the newest version.


upxtreme: Add UP Xtreme support

UP Xtreme is based on the Intel(R) Core(TM) i3/i5/i7 Whiskey Lake SoCs.
The UP Xtreme presents one Raspberry Pi compatible HAT connector.
This implementaion supports i2c, spi, uart, adc and gpio through the
40pin HAT connector.
Gpio chardev capabilities have been disabled in this implementation. When
gpio chardev capabilities are enabled an input becomes unreadable after an
isr has been registered to the pin. See here for details:
https://github.com/intel-iot-devkit/mraa/issues/937
Tested on UP Xtreme, with UP Board Linux kernel 5.0.0
Features tested: gpio, gpio interrupts, i2c, spi, adc and uart.
Signed-off-by: Michael Campion<EMAIL_ADDRESS>

Thanks Propanu for your comments and feedback!
Yes autodetection does work without the force option.
Yes this does require the custom kernel for UP Boards. A new PPA will be released this week for the UP Xtreme. This is based on Linux Kernel 5.0. I will update you as soon as the PPA is released.
There is Kickstarter campaign active for the UP Xtreme, currently on the community page you should be able to see an introduction to the UP Xtreme. For more detail on UP Xtreme you can visit:
https://up-board.org/up-xtreme/
Regards,

@mlkcampion, one more quick question. I noticed the 40-pin header includes and analog pin like the previous boards, and this is also reflected in the code. Is ADC0 supported by default with the new kernel, or will you be providing instructions on how to enable it on the wiki?
Thanks!

@Propanu
Yes, the ADC is enabled by default in the BIOS, it will be supported by the new kernel and made available by default on the Linux file system as an IIO device.
Regards,

Hay @mlkcampion would it be possible to get a rebase ontop of the latest master?

Hi tingleby
I have rebased ontop of master and made the required changes.
If you have any question please feel free to contact me.
Regards
Michael

Could you please see the contribution guidelines regarding the ECA
https://github.com/eclipse/mraa/blob/master/CONTRIBUTING.md#eclipse-contributor-agreement

Hi tingleby
I've signed the ECA and successfully revalidated the check here.
Regards,
Michael

Thanks!


add ru and uk locales

add some Russian and Ukrainian locales

Hello, @Fokusnica! Thank you for contributing. Can you sign our CLA so that I can merge your pull request?

Hello!
I signed your CLA https://codecombat.com/cla so that you can merge pull
request. Thank you!
2015-09-14 13:19 GMT+03:00 Imperadeiro98<EMAIL_ADDRESS>
Hello, @Fokusnica https://github.com/Fokusnica! Thank you for
contributing. Can you sign our CLA https://codecombat.com/cla so that I
can merge your pull request?
—
Reply to this email directly or view it on GitHub
https://github.com/codecombat/codecombat/pull/3028#issuecomment-140029014
.


Fix SearchWithin aria-label and aria-labelledby

Closes #2174
✅ Pull Request Checklist:

[x] Included link to corresponding React Spectrum GitHub Issue.
[x] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[x] Filled out test instructions.
[x] Updated documentation (if it already exists for this component).
[x] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

Check id, aria-label, and aria-labelledby of group, input, and picker on 'Default', 'No Visible Label', and 'No Label' stories.
Check SearchWithin tests that test labels. Verify that it matches desired functionality mentioned in #2174.

Label combinations should look something like this:
<SearchWithin label=foo
searchwithin group is labelledby the label
input is labelled by searchwithin group
picker is labelled by searchwithin group + itself + dropdown label

<SearchWithin aria-label=foo
searchwithin group has aria-label foo
input is labelled by searchwithin group
picker is labelled by searchwithin group + itself + dropdown label

<SearchWithin
searchwithin group has aria-label w/default value of  "Search"
input is labelled by searchwithin group
picker is labelled by searchwithin group + itself + dropdown label

🧢 Your Project:
RSP

@reidbarber played around with the code and did this small refactor: https://github.com/adobe/react-spectrum/commit/1a578e0092c71adddd7ab5f94b7c487167b2d180. The group now has an updated aria-labelledby that points to the the label id and itself if an aria-label is provided. The search input uses the same group aria-labelledby or id depending on if there is an external label (not entirely sure if it should only point to the group id at all times instead). The picker button does the same and appends its own id + the span id (perhaps the picker's aria-labelledby it should only be label id + button id + dropdown span id instead of label id + group id + dropdown button id + dropdown span id if label id exists since it will have an extra "search" added in the announcement)
What do you think? I tried to follow what was described here with some tweaks to make sure things announced alright but lemme know if there were prior discussions that altered the approach taken here.


Feature: Support querystring on npm start

Some apps need to be started with querystring parameters. So it would be helpful to specify an optional querystring for npm start.
Suggested approach:
 "scripts": {
    "start": "react-scripts start --query=?foo=bar&baz=qux",
   ....

Thoughts?

Hmm. Why not set up a redirect in src/index.js if this is absolutely required for the app?

Interesting. I hadn't considered that. The only downsides I see:

It's harder to find. Start would be the logical place I'd check first.
It would bubble up to all environments which is typically undesirable. Though this can be mitigated by checking the url for localhost so that redirecting only occurs in local dev.

The use case: App that is normally called from a separate app with required context provided via querystring.
I have the config above working on a fork of create-react-app, but I had to disable the Apple specific alternative to opn in react-dev-utils/openBrowser because it ignores querystrings.

I think this is a bit of an unusual use case, and I don't think we'll be supporting this by default.
Maybe in the future as part of more general "default URL" customization.

I think I'm going to close this unless there's more support for this being configurable. You can already override BROWSER environment variable to disable the default opening behavior (and potentially do something else in a custom script instead):
  "start": "BROWSER=none npm start && node scripts/myOpen.js"

Seems like this use case will be fixed by https://github.com/facebookincubator/create-react-app/pull/1590.


root package.json not found when specifying different src directory

Electron Version: 1.6.5
Electron Packager Version : 8.6.0
Node Version: 6.4.0
NPM Version: 3.10.3
I am using electron-packager with webpack. Essentially building my app with webpack to an output folder called dist and then calling electron-packager. I want to be able to call it like: electron-packager dist
but it always fails saying there is no package.json. Obviously there is no package.json in the dist folder but there is an package.json in the root of the project one folder up.
If I copy my package.json from the root into the dist folder and try again it works fine but barring that it will fail. Is there anyway to do this without copying the package.json. Ideally I would like electron-packager to take the root package.json and the code in the dist folder and produce a electron package.
Project Structure
|-root
     |-dist
          |-app.js
          |-index.html
     |-node_modules
     |-src
         |-<source code>
     |-webpack.js
     |-package.json

electron-packager .         -   works (but copies everything in root level)
electron-package dist  -   fails

The structure you have described can easily be achieved with the current options.
You want to set the "main" value in your package.json file to point at the generated entry point (your DIST folder) then set up the --ignore CLI argument or the ignore option in the API to ignore all files in the original src directory 👍

Hi, my folder structure differs slightly from the one outlined by @igloo15.
electron/main.js represents the entry point to the electron-apps. main.js loads my index.html that in turn includes the bundle.js.
|-root
     |-native
     |-web
          |-public
               |-index.html
               |-bundle.js
     |-electron
         |-package.json
         |-main.js
         |-out
               |-<generated electron app>
     |-src
         |-<source code>
     |-package.json

This works fine when running electron locally.
However with electron-packager, index.htmland bundle.js (in fact the whole web/ folder) are not getting included into the generated app, and are hence not resolvable at runtime:
Not allowed to load local resource: file:///<PROJECT_ROOT>/electron/out/MyApp.io-darwin-x64/MyApp.io.app/Contents/Resources/web/public/index.html
Is there a way to solve this without having to move/duplicate my index and bundle files into the electron folder? Are there some configurations that I'm missing?
Thanks a lot

@MarshallOfSound, I'm having this exact same problem but I can't quite figure out how to implement your suggestion. Would you mind maybe listing out the full CLI command with the folder structure from @igloo15 or mine, which is
|-root
     |-build
          |-main.bundle.js
          |-renderer.bundle.js
          |-index.html
     |-node_modules
     |-app
         |-<source code>
     |-webpack.js
     |-package.json

My package.json contains
"main": "build/main.bundle.js"

I tried running this
electron-packager build --ignore='\.\/app\/*\.*'

but I get the error about not being able to find the package.json file:

npm ERR! enoent ENOENT: no such file or directory, open '/private/var/folders/2k/pgyx4y5s0kxghmdmkbcj5xqw0000gn/T/electron-packager/darwin-x64/slot-compass-darwin-x64/Electron.app/Contents/Resources/app/package.json'

Like @igloo15 said, if I copy the package.json file into the build folder it works.

The app directory that you specify in Electron Packager is assumed to have the package.json at its root. Seems like what you want is to copy package.json into your build directory at the same time you generate your webpack bundles (although I'm not sure why you'd want to use webpack for an Electron app...).

Got it, thanks.


add brandon-harness as CODEOWNER to CCM KB

Brandon is a new Principal Solutions Engineer for the CCM module and works to add and review documents to the CCM KB section. Adding him as codeowner so he has the ability to review documentation.
Description

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

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


Refactor collection of inputs (timestamp, array, range inputs)

The current implementation of the timestamp-field and array-field (issue #1408 in progress ) use a collection of inputs to allow users to fill in separate values (date and time OR multiple array elements). This collection of inputs are all added to the "global" react hook form context. For instance, with a timestamp field with column name timestamp_col, we have the following in react hook form's model:
{
  '0-timestamp_col': '<date>'+'<time>',
  '0-timestamp_col-date': '<date>',
  '0-timestamp_col-time': '<time>',
  ...
}

For every input timestamp input there are 3 inputs in the form model. In the case of array there is the "parent" and N more inputs where N is the number of elements in the array:
{
  '0-array_col': [<input0>, <input1>, ...],
  '0-array_col-0': <input0>,
  ...
  '0-array_col-N': <inputN>,
}

We want to change this so the react hook form model is NOT polluted with extra inputs that won't be sent to the database. A simple solution for this is to great a react hook form context for each timestamp-field and array-field. More info can be found here:
https://stackoverflow.com/questions/60276510/how-to-make-react-hook-form-work-with-multiple-forms-in-one-page
This change should also be done for range inputs.

Moved to worksheet.


Bowser dont open - iOS, iPhone 5 and iPad

Sorry to post this message here, I couldnt find anywhere else to do.
I have an iPhone 5 with iOS 8.1.2 and an iPad with 8.1.0. I have just installed Bowser, and after saying "initializing" it crashes.
Are those devices not compatible?
Is there anything I should do in configurations?
Thank you very much, for any help.

This is because of https://github.com/EricssonResearch/openwebrtc/issues/385 - we are dependent on someone fixing the issues in libffi.

did 0.4 have this problem? I remember testing Bowser on the iphone 5 before 0.5 came out and it did not have a problem. Maybe we need to revert back to a working version until the current issue is fixed?

Closing as this issue is being tracked elsewhere.


Fix parsing of quoted cookie values

I hit this bug in my project where the cookie value was "" - just two quote characters.
On checking the code, I figured that this bug might exist for all quoted cookie values.
The test case I had written for quoted cookie values was failing with this error:
failures:
---- cookies::cookie::tests::parse_simple::_r_foo_bar_ stdout ----
thread 'cookies::cookie::tests::parse_simple::_r_foo_bar_' panicked at 'assertion failed: `(left == right)`
  left: `"ba"`,
 right: `"bar"`', src\cookies\cookie.rs:310:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Previously one extra character was getting stripped from the end.
This commit fixes the index while stripping the end quote.

Thanks for finding and fixing this bug, this could be pretty annoying to run into. I see you also updated the unit tests too! ❤

Thanks for finding and fixing this bug, this could be pretty annoying to run into. I see you also updated the unit tests too! ❤

This is now available in the 1.0.3 release! Sorry about the delay, we were waiting for a third-party dependency to fix a bug introduced by a new syn release published.

This is now available in the 1.0.3 release! Sorry about the delay, we were waiting for a third-party dependency to fix a bug introduced by a new syn release published.


fix, refactor, test, feat: added cluster::thread_edit, fix cluster::thread_members_get, refactor cluster::threads_get_active, add a bunch of tests for threads

⚠ WAITING TO MERGE #697 as this PR depends on it (I couldn't do anything otherwise as I am on Windows kekw)
added cluster::thread_edit
Added cluster::thread_edit, as the only way to edit a thread was to use cluster::channel_edit, however it only takes a dpp::channel as a parameter, losing the extra fields from dpp::thread.
fix cluster::thread_members_get
This function was broken, as the key from the thread_member_map it returns is the thread id, meaning, filling the list of users in the thread would just overwrite the same map element over and over. f9f01c161326352898ffaf5d779cc4e07fd1b37b changes it so the key is now the user_id.
refactor cluster::threads_get_active
Following the changes in f9f01c161326352898ffaf5d779cc4e07fd1b37b, cluster::threads_get_active was refactored as it also depends on thread_member_map in its return type active_threads, in 47369c9c4801174f7755b6e4a01b70ebce56eeb7. Now the structure is a map of active_thread, the latter being a pair-ish of a thread and a std::optional<dpp::thread_member> (has_value() == the bot has joined the thread)
Sync tested, coro tested.
add a bunch of tests for threads
Tests for creating a thread from a message, creating a thread on its own, editing a thread, deleting a thread, events for message creation, reaction, deletion, edition, in a thread.

I believe this is finally ready to be merged, just merged dev into it as well. I was trying to rebase and clean up the commits a bit but it was bonking at 7e2ea124 and then ab7dc94a 😅 oh well


redpanda 22.3.2

Created by https://github.com/mislav/bump-homebrew-formula-action

closing this PR because PR #12 merged


Reverts #5551e12, commit has breaking changes for non-WebKit browsers.

5551e12853bb29de7ba685bea7dcdc8628bc186b introduced a bug to Reveal where page scroll was not taken into account on non-WebKit browsers. This had the effect of launching a modal at the top of a page, even if the user opened it while scrolled to the bottom.
This commit simply reverts the to the last working version and will fix #6154.

Thanks Jon!

Thank you sir!


Moe Sync

This code has been reviewed and submitted internally. Feel free to discuss on the PR and we can submit follow-up changes as necessary.
Commits:
 Suppress warnings in classes that implement equals() without also implementing
hashCode().
The contract for Object.hashCode states that if two objects are equal, then
calling the hashCode() method on each of the two objects must produce the same
result. Implementing equals() but not hashCode() causes broken behaviour when
trying to store the object in a collection.
848dce9584e6cf1560241368f3fcf5562aaa7964

Travis seemed to have missed this PR during Github's partial outage yesterday. Closing and reopening with the hopes that it will run the tests.


lazydocker: init at 0.5

Motivation for this change
Make lazydocker available.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build lazydocker

@GrahamcOfBorg build lazydocker


Missing getter for custom properties on StreamMetadata

The only way to get customProperties seems to be as marshalled Json. Shouldn't there be a GetCustomProperty or GetCustomProperties method on StreamMetadata too?
type StreamMetadata struct {
	maxCount         []uint64
	maxAge           []time.Duration
	truncateBefore   []uint64
	cacheControl     []time.Duration
	acl              []interface{}
	customProperties map[string]interface{}
}

@wiegell Thanks for reporting this.
The patch is available on version v4.1.0

Thanks for the quick resolution!


Is this lib on npm?

I can't find this lib on npm. Do you have any plans on publishing it?

Any updates on this?


Migration failed.

What steps will reproduce the problem?
just a simple migration returns this error
What is the expected result?
What do you get instead?
Migration failed. The rest of the migrations are canceled.
PHP Core Warning 'yii\base\ErrorException' with message 'PHP Startup: Unable to                                                                                load dynamic library 'C:\Program Files (x86)\PHP\v7.0\ext\php_mysql.dll' - The s                                                                                pecified module could not be found.
Additional info

Q
A

Yii version
2.0.10

PHP version
7

Operating system
server 2012 r2 running xampp

This is not a Yii bug but a problem with your PHP setup. The mysql extension seems missing.


⚠ Bofrost.de has degraded performance

In b7245d7, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1343 ms

Resolved: Bofrost.de performance has improved in 8412c1d after 6 minutes.


fixed aws organizations multi-account s3 upload issue

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

It's not related to an open issue. Issue was detected during a prod AWS sec assessment.

We discussed this offline, thanks both!


Add search feature to Azure queue storage

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Problem
I wanted to search messages in my Azure queue storage however there is no search bar in ASE. Could you please add this feature?
Desired Solution
I wanted to search messages in my Azure queue storage however there is no search bar in ASE. Could you please add this feature?
Alternatives and Workarounds
I am currently using search functionality of "storage browser" from Azure portal.
Additional Context
No response

@GaneshMSFT thanks for the feature request! We'll look into doing this, where the search bar will support searching:

Request ID
Message text

Of the first 32 messages in the queue.


HasTable interface need getSelectedTableRecordsCount method

Package
filament/tables
Package Version
v2.6.3
Laravel Version
v8.76.2
Livewire Version
v2.8.2
PHP Version
PHP v8.0.13
Bug description
If i create new component for table package, when implement HasTable interface, my intellisense in vscode alert me that the class component doesn't implement getSelectedTableRecordsCount method ( declared in HasTable interface )

Steps to reproduce
No response
Relevant log output
No response

It's ambiugous, because the InteractsWithTable Trait use the CanSelectRecords that define that method


call to unbound fn error when submitted to storm cluster but run locally fine

When I ran it locally it was ok (sparse run -d) but when it is submitted to STORM cluster, I got
java.lang.RuntimeException: java.lang.IllegalStateException: Attempting to call unbound fn
clojure version is 1.5.1, storm version is 0.9.5, sparse 2.1.3
the error was due to calling "call-to-outside-function" within spout execute, and sometime the function can be 3rd party as well, the code is as follows:
(defn call-to-outside-function \[someArg\] (print "something"))

(defspout kw-spout \["something"\]
  \[conf context collector\]
        (spout
            (nextTuple []
                (Thread/sleep 100)
                (call-to-outside-function "someArgs")
                (emit-spout! collector ("not important"))
                )
            (ack [id])
            ))

Not sure if this is a bug in streamparse or STORM or both or my lack of understanding.

While we certainly support spouts and bolts written in Clojure, we're not actually Clojure experts ourselves.  This question would be better suited to the official Storm mailing list, as it looks like it's simply an issue with your code.