Deriving a browser API from WebIDL

A while ago I started to experiment with generating a typed browser API by processing WebIDL definitions from the specifications. Microsoft does something similar for typescript and I figured it would be nice to do the same for GWT/J2CL. The ultimate goal was to get it good enough that I could pitch the idea back to you to see if you would be interested in me contributing it here.
The library is not yet ready for widespread use and still undergoing experimentation but so far I like where it is going. Along the way I started to scrape MDN for documentation to feed into javadocs and will soon ingest the browser compatibility data that drives the MDN site so it becomes easier to run a tool that verifies that an applications supports the browsers you want to support.
Anyhoo, I thought I would give you a heads up to see if it is something that you may be interested in long term. I mentioned it on the gwt gitter channel and a few people seemed interested.
I am hoping to get it into a good enough state that we can cut out suite of applications across to it by the end of the year.
I don't emit closure externs at this stage. I did in the past but was not running any tests to verify they were correct so I stripped the extern generation and will add it back a little later. However I do generate jsinterop annotated classes. An example of what a jsinterop annotated class would like is
https://github.com/react4j/react4j-vchat/blob/master/src/main/java/elemental3/HTMLElement.java
(Sorry for generating to the elemental3 package name - I wasn't intending to step on any toes. This was mostly a spike to pitch internally and was using a name that people were already familiar with.)
The project is at https://github.com/realityforge/webtack and the content of the project README is below the line.
Anyhoo - I was just posting an issue to describe what I am doing and where I am hoping to go. Hopefully I can make it useful enough to pitch it to you guys down the track but feel free to have a poke around and/or comment on it ;)

What is WebTack?
WebTack is a tool designed to fetch WebIDL and supporting artifacts, process the WebIDL and generate source code to support writing web applications.
WebIDL is used by various specifications to communicate the interfaces that are expected to be implemented in web browsers. Many web browsers also use a WebIDL variant to generate code to implement the specification.
The types of source code artifacts that WebTack generates or will generate include:

Closure-compiler externs so that the closure-compiler
can perform type checking and advanced type-based optimizations.
Jsinterop annotated java classes that can be used in GWT or
J2CL based projects.
React4j element factories.

WebIDL published as part of the official specifications are not always perfect representations of the interfaces as implemented by the web browsers. Nor is there a central place that contains the complete WebIDL that a browser is expected to implement. WebTack defines a pipeline for processing WebIDL schemas. The pipeline defines a series of stages. Each stage will either transform a schema, combine multiple schemas or perform an action for the schema. This capability allows WebIDL or process the WebIDL schemas fetched from the specifications and combine them into a consistent document.
WebTack also includes tools to fetch data from other locations and combine the data with the WebIDL in processing stages. The most significant other data source is the documentation that is scraped from the MDN website and used to add basic documentation to the WebIDL elements. In the near future it is expected that the browser compatibility data will be also be scraped so that browser compatibility data for WebIDL elements can be used in the  processing pipeline to influence how artifacts are built. Other data from the web specifications could be combined to  improve the outputs. At the very least, links to the specifications will be added to the WebIDL elements in the future.
WebTack extends the WebIDL syntax to support additional data being added to the WebIDL. This includes syntax to explicitly declare events emitted by interfaces (i.e. there is a new member element that looks like event ProgressEvent load;). It also supports a Javadoc-like syntax for documenting the WebIDL elements.
The WebTack jsinterop action generates source code with a more java-esque feel than is present in elemental2. It also aims to offer affordances that make working with the browser API easier for java developers. A few differences from Elemental2 include:

Javadocs are added for most fields, methods and types if the element is documented on MDN.
Constants in WebIDL are represented as constants in java. This typically results in smaller code size and may open
up additional optimization opportunities.
Fields, methods and parameters are annotated with @Nonnull or @Nullable if the type is a non-primitive, non-void type.
Read-only attributes in WebIDL are implemented as methods rather than mutable fields of properties with setters.
Dictionaries in WebIDL use a "builder" pattern to make construction of these types much easier.
No parameterized types exist in WebTack as WebIDL does not define such constructs.
Event handlers and event listeners are typed according to type of event expected to be delivered and have a void
return type. This simplifies the use of lambdas and method references in java code.
@JsOverlay methods are added for known events emitted by an interface. For example, it is possible to use code such
as e.addBlurListener(this::processBlurEvent) rather than the more verbose e.addEventListener("blur", e -> processBlurEvent((FocusEvent) e)
WebIDL enumerations are annotated with the @MagicConstant annotation when translated to java code. The
Jetbrains/IntelliJ IDE suite will detect this annotation and allow auto-completion of enumeration values or
report errors when incorrect values are supplied.
Several other minor usability improvements, particularly with respect to union types.

The Now
Experiments with WebTack are ongoing but so far the experiments have largely proved successful. Several web apps have been created to explore the feel of using the generated code. This has included experiments with the Web Bluetooth API by creating a browser based Heart Rate Monitor, experiments with speech synthesis using the Web Speech API, experiments with WebRTC by creating a video chat application and several other experiments that are not open source.
The experiments to date, have copied the WebTack generated source into the source tree. To facilitate experiments by third parties, the generated source code for the has been packaged and published to maven central. This artifact can be added as a maven dependency:
<dependency>
  <groupId>org.realityforge.webtack</groupId>
  <artifactId>webtack-elemental3-complete</artifactId>
  <version>0.02</version>
</dependency>

The Future
WebTack is an alpha project that is surprisingly useful as is. It is extremely useful to start using web APIs that are not covered by elemental2 with minimal fuss. The web APIs are also generated with basic javadocs that makes it relatively easy to explore the API locally or follow a link to MDN for more details. The java API is usually equivalent or better than the equivalent in Elemental2 as it tries to follow conventions more comfortable to Java developers.
The outputs are not without limitations. The following limitations that have been discovered while using the outputs of WebTack.
Large Java Packages
WebTacks jsinterop action generates a java type for every element within the input WebIDL schema. These elements are mostly generated within a single java package. If a reasonably complete WebIDL is fed into the action this can produce a single package with 1200+ java classes. This is not the simplest structure to navigate and is not expected to be an efficient compilation module.
An approach that we have used to address this limitation is manually partitioning the schema into required subset needed by the application. This has been surprisingly effective at producing small java packages, at the expense of some manual labour. However, it is expected that this would not scale to larger applications. A better approach maybe to automatically partition the files into different packages based on the originating specification or some other grouping heuristic.
Browser Implementation Differences
Some APIs that applications are browser-specific and thus not included in the specification. Some browsers do not implement the specification exactly. The fix is to apply processor stages to adjust the schema to match the way browsers implement the specification. This is somewhat error prone as it involves detecting the error and applying the appropriate patch. A better solution is to import the browser specific WebIDL source files, detect differences and merge the differences as desired. This should be relatively easy for chrome and gecko based browsers that already have publicly available WebIDL files.
Missing/Incomplete Features
WebTack is missing a handful of features.

Ths closure externs generator action has been removed as it was not being exercised as our test applications are
not using J2CL.
The IterableMember element in WebIDL does not yet result in any java code as no application has required that
feature yet.
Some of the type mappings from WebIDL to java are not mapped in a java-friendly manner. The most obvious example
is how sequences of non-double numeric values or nullable non-double primitives are mapped to java. The numeric
values are mapped to java.lang.Double as that will map to javascript number when compiled. It is unclear on
the best strategy to address this mismatch.
WebTack references several classes from elemental2-promise and elemental2-core libraries. These dependencies
can and should be removed but this would require additional work that has not been done.

Thanks for sharing @realityforge. This is an interesting project.
We also actually started with IDL and due to many IDLs having inconsistent extension it turned out to be quite painful. After that we started looking into d.ts and later finally settled down on Closure externs. @jDramaix could better summarize all the different pro/cons discovered during this process but IIRC essentially matching Closure externs was the lowest maintenance option and ultimately most important target for us since those are what J2CL code was checked against. There are lots of thought put into externs and TypeScript typings so  that is quite valuable to inherit as well.
Comments and ability to use data from MDN is very helpful. We actually always wanted such a feature. It is great to incorporate them into generated APIs.
Following are also actually quite interesting as well. I would like to discuss more about them:

jsinterop action generates source code with a more java-esque feel than is present"

I think we can incorporate some of those ideas. Let me know if there are other stuff not covered in your post.

Constants in WebIDL are represented as constants in java. This typically results in smaller code size and may open
up additional optimization opportunities.

This one is; I'm not sure. Why do they typically result in smaller code size? You will be embedding them to your final output instead of reading them from browser.

Read-only attributes in WebIDL are implemented as methods rather than mutable fields of properties with setters.

setters vs. getters is one of things we get back and forth but I'm not sure generating them inconsistently based on const is good. I would like to hear your take on it.

Dictionaries in WebIDL use a "builder" pattern to make construction of these types much easier.

What kind if builders do you use? Any problems did you hit?
@jDramaix what did we end up settling for with dictionaries, just plain objects?

Event handlers and event listeners are typed according to type of event expected to be delivered and have a void
return type.

Could you explain more how did you diverge from externs here?

@JsOverlay methods are added for known events emitted by an interface.

How do you extract known events?

WebIDL enumerations are annotated with the @MagicConstant

I think this is not good since you miss the type safety here. I wonder why you preferred this over enums?

Several other minor usability improvements, particularly with respect to union types.

Would like to hear more :)

FWIW This library uses the same technique that is used to generate the Typescipt typings. It also started with the set of IDL sources as the typescript tool but it has evolved since then.
I would be interested in why WebIDL was problematic. Once I had a parser in place, extracting the WebIDL from the specifications was relatively easy and IIRC retrieving and parsing the entire gecko WebIDL was fine to. Partially as it is collected in one place.  I looked at chrome and that seemed relatively easy to parse although I did not try and the WebIDL is scattered all over their repository. So I would need to figure out which ones to collect and parse. I don't see anything too arduous involved in parsing the chrome IDLs but it is a bit of grunt work. My ultimate goal is to read both of those WebIDL sources and blend it with the spec sourced WebIDL to get maximum coverage.
The specs do require some massaging at times. Sometimes because spec versions evolved and sometimes because WebIDL can not represent some differences. However I have a pipeline of transforms that make this relatively easy.
I can understand why you would want to stick with existing closure externs as it seems you guys have a lot of code going back years that makes changing those externs difficult. There is a lot of knowledge in the externs but a lot of it is dated. I submitted a few PRs to remove code that no browser had supported in ~8 years IIRC :) There is also some constructs that are just not representable in closure type system present in some specs (i.e. See WebAssembly externs).
The prospect of an automated, browser compliant set of closure externs that had low maintenance costs was what drove me to this project. Ensuring compatibility and a nice API for the WebGPU, WebXR and the GL*  specs seemed like something painful to track ... I am sure this is true i other specs as well but 🤷♂

Constants in WebIDL are represented as constants in java. This typically results in smaller code size and may open
up additional optimization opportunities.

This one is; I'm not sure. Why do they typically result in smaller code size? You will be embedding them to your final output instead of reading them from browser.

It all depends on the specific constants but in most cases the symbol that represents the constant is larger than the underlying constant. And this is the primary way by which code ends up smaller. Then in some specific circumstances other optimizations happen.
Unfortunately jsinterop-generator+constants result in <clinit> being present in sometimes. A limitation wither either gwt or jsinterop-generator depending on who you ask but an issue regardless ;)
For some constant integer values either GWT or javac performs a few more optimizations. i.e. if( WebSocket.CONNECTING == webSocket.readyState ) translates to the spiritual equivalent of if( !webSocket.readyState ). For other integer constants that participate in bit operations (just WebGL API?) these can be baked ahead of time. This is largely code golf but no reason not to do so when it can be automated ;)
For strings, GWT pulls the strings out into a string table and aliases the constant with a var which is usually smaller than the symbol and the string can be reused multiple times. We use brotli to compress the assets and that did not eliminate this advantage compared to using an extern. I haven't tried gzip but brotli is better in almost every test we run so I assume the same is true for it.

jsinterop action generates source code with a more java-esque feel than is present"

I think we can incorporate some of those ideas. Let me know if there are other stuff not covered in your post.

There is a few - I will try to collect and write up somewhere when I get a chance

Read-only attributes in WebIDL are implemented as methods rather than mutable fields of properties with setters.

setters vs. getters is one of things we get back and forth but I'm not sure generating them inconsistently based on const is good. I would like to hear your take on it.

Other developers seemed to like this ... although several also requested I add getters and setters for WebIDL attributes that are currently represented as fields to make it more "java-like" but I have so far resisted such things as I like copy-pasting javascript code and translating ;)

Dictionaries in WebIDL use a "builder" pattern to make construction of these types much easier.

What kind if builders do you use? Any problems did you hit?

The pattern is best understood by looking at RTCReceiverAudioTrackAttachmentStats. The only problem is that GWT does not seem to optimize method chains that return this. Closure seems to have no problem. Although I have not dug into the cause and if it can be improved by changing the code.

Event handlers and event listeners are typed according to type of event expected to be delivered and have a void
return type.

Could you explain more how did you diverge from externs here?

The spec defines the WebIDL for event handler as
[LegacyTreatNonObjectAsNull]
callback EventHandlerNonNull = any ( Event event );

typedef EventHandlerNonNull? EventHandler;

and closure extern defines event handlers on each event handler property. Historically they have been defined sufficiently for use in javascript (i.e. @type {?function(Event)} or @type {?function(!Event)}). For ones I was using, I started to submit changes so the externs started to return void ala
/**
 * An event handler called on open event.
 * @type {?function(!Event): void}
 */
WebSocket.prototype.onopen;

and in some cases adding the "correct" event typing ala
/**
 * An event handler called on close event.
 * @type {?function(!CloseEvent): void}
 */
WebSocket.prototype.onclose;

These patches took a long time to get through at times and some were rejected because it had too great an impact on internal codebases ... or so I believe. Given sufficient time and effort the changes could be applied across the closure externs. I actually considered writing a WebIDL parser back then to help me do this ;)
Event listeners are a bit more a synthetic artifact. For example the WebSocket.prototype.onclose event handler is actually mirrored  by an underlying close event. The is detected by scraping MDN through a chain of actions.

We scan and fetch the WebIDL from the whatwg HTML spec, which defines WebSocket type and download it to whatwg_html
Then we scan the MDN website based on a bunch of heuristics we end up at https://developer.mozilla.org/en-US/docs/Web/API/WebSocket where scrape links to other properties, functions and event pages and download the resulting page set to  https://github.com/realityforge/webtack/tree/master/data/docs/WebSocket
This eventually results in close event data downloaded to https://github.com/realityforge/webtack/blob/master/data/docs/WebSocket/close_event.json
A processing pipeline will pick this data up and will decorate the idl (using a custom event definition syntax) as well as change the type of the event hander property to match the data.
The jsinterop action then reads this idl and will generate the CloseEventListener as well as https://github.com/react4j/react4j-vchat/blob/master/src/main/java/elemental3/WebSocket.java#L296-L328

You could probably use the data I have already scraped along with a small mapping table (as not all closure extern types are named as the underlying browser types) and add the same transform to event handlers, event listeners and add javadocs as well in Elemental2. If you wait a month or two I will hopefully have got off my butt and scraped method parameters and return types too! You may also be able to completely eliminate the integer type listing in elemental2 by reading from the webidl data already fetched and looking at the types in the webidl. It also means you can use more precise types (i.e. double, float, int, short rather than just integer or double)

WebIDL enumerations are annotated with the @MagicConstant

I think this is not good since you miss the type safety here. I wonder why you preferred this over enums?

I originally went down this path but we are still on GWT :( I wanted a zero cost abstraction whereas enums in GWT result in all values unable to be DCEd. I presume @JsEnum in J2CL eliminates this issue but I haven't experimented and it is likely that when we get to J2Cl we will re-asses this part.
@MagicConstant gives an okay safety in intellij in that you get big red wiggly lines and compile errors if you use the wrong one but it also allows you to use browser specific values that I thought may be required ... although in our experiments we have yet to require any non-standard enum values.

I just had a poke around and it looks like replacing the current enumeration strategy with a "real" java enumeration annotated with @JsEnum is reasonably trivial (and results in much simpler code in webtack). This could probably be supported in tandem without too much effort.

It should also be noted that there is a handful of scenarios that closure externs can represent typing not available in WebIDL that you end up having to special case. The most obvious case being MessagePort.postMessage() where the transfer list should be types that have the extended property [Transferable] attached but custom code is required when translating to java or closure externs.

So let me jump into this conversation.
First thanks for sharing our work with us @realityforge

We also actually started with IDL and due to many IDLs having inconsistent extension it turned out to be quite painful. After that we started looking into d.ts and later finally settled down on Closure externs. @jDramaix could better summarize all the different pro/cons discovered during this process

When I started the project 5 years ago, I used the WebIdl road. I had the prototype working using WebIdl from firefox and Chrome but we were not really happy with the generated api and decided to go with externs files. I don't remember exactly all the problems we reached with WebIdl but the main ones were:

api desynchronization with extern files provided by closure compiler. This is a big issue for j2cl apps and requires that you generate your own extern files and uses them instead of using the standard ones. This is not working for apps that uses a mix of j2cl and closure code.
Typing is less expressive in WebIdl. You don't have type parameters (generics) for example (except for a few core type like promise, sequence...)
no WebIdl for javascript core api. elemental2-core and elemental2-promise cannot be generated from WebIdl as there is no WebIdl for that.

@jDramaix what did we end up settling for with dictionaries, just plain objects?
Dictionaries are java interface in Elemental2. We have a static factory method on each dictionary interfaces in order to instantiate an empty instance and then you can use setters. We can add builder pattern if needed: we had a discussion about that in https://github.com/google/elemental2/issues/6

In general, I think the improvements you mentioned can be added to Elemental2 instead of creating a new library. We can use WebIdl and any other sources of information for creating metadata files used by jsinterop generator for generating better code. I created the initial version of Integer-entities files by parsing WebIdl files for example.

api desynchronization with extern files provided by closure compiler. This is a big issue for j2cl apps and requires that you generate your own extern files and uses them instead of using the standard ones. This is not working for apps that uses a mix of j2cl and closure code.

Still problematic if you live in that world.

Typing is less expressive in WebIdl. You don't have type parameters (generics) for example (except for a few core type like promise, sequence...)

Typing is different between WebIDL and closure externs. There are several constructs that the closure typing system is unable to represent adequately that are present in WebIDL and thus web APIs. WebIDL is primarily about representing a browser API and thus I haven't seen many problems generating a browser API layer from it. There is occasionally a construct I would like to see generated that is not representable in either WebIDL or closure-externs but is representable in more expressive system like Typescript (HTMLCanvaseElement.getContext(...) being an obvious example) but nothing that I have wanted that closure-externs can represent that is not available in WebIDL.
FWIW a different perspective: When the closure externs introduced some of the parameterised types into core (and thus elemental2 classes stopped being able to compile with linting enabled) was when we got off the Elemental2 train. We didn't find that it offered many benefits to java developers but YMMV.

no WebIdl for javascript core api. elemental2-core and elemental2-promise cannot be generated from WebIdl as there is no WebIdl for that.

Still an issue. However the code currently part of elemental2-(core|promise) is not always the easiest to work with as is. I have experimented with defining some types in WebIDL and generating from that but even that has not produced great code. For this I am looking at a combination of WebIDL and manually written code. The hope is that with some hand hackery, working with types like JsArray will not be too onerous.

In general, I think the improvements you mentioned can be added to Elemental2 instead of creating a new library. We can use WebIdl and any other sources of information for creating metadata files used by jsinterop generator for generating better code. I created the initial version of Integer-entities files by parsing WebIdl files for example.

Given enough effort it could be possible.
Once we have got all the data assembled I will send another ping ;)

Keep in mind that typings are opinionated. There are coercions done with the API so many APIs would get any type (and I expect WebIDL to reflect that) however extern will limit that.
For the record, I am expecting externs to be eventually replaced by TypeScript typings but I will not hold my breath for it.


Pretraining resume error on XLSR Model wav2vec2

🐛 Bug
When I try to resume the training on XLSR it does get resumes from 19th epoch onwards as it is shown below:

But when after the epoch I try to save the model, I get this error:

I have seen this is only with the case of XLSR.
If I set reset-dataloader to True in the config, the training gets restarted from epoch 1 instead of 19, the loss and other things remain the same, however the learning rate gets impacted and starts from a very high value.

Did you change any of the parameters mentioned in the error msg? Like nr of GPUs or the train/valid material?


It is not clear how challenging works with multiple authentication schemes.

When I apply
[Authorize(Policies.ManagesProducts, AuthenticationSchemes = "Bearer,Cookies")]

Unauthenticated user gets redirected to login page.
However, when I change the order of schemes
[Authorize(Policies.ManagesProducts, AuthenticationSchemes = "Cookies,Bearer")]

Browser just gets:
> HTTP401: DENIED - The requested resource requires user authentication.
So in what order are challenges applied?

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

ID: ee71441f-471a-89cd-0ef4-9b32b5dd85cf
Version Independent ID: 0096c365-2f4e-5d21-89a0-c4f10fcb0ed9
Content: Authorize with a specific scheme in ASP.NET Core
Content Source: aspnetcore/security/authorization/limitingidentitybyscheme.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Hi @voroninp I opened an issue similar to your, maybe you can find the discussion there useful to better understand your point. Take a look here

@EnricoMassoneDeltatre  Thanks, very helpful.

@EnricoMassoneDeltatre Thanks, very helpful.

You are welcome.

@EnricoMassoneDeltatre , do I get it write that ForwardDefaultSelector does not provide the authentication phase, so I have to detect it myself? I would like to dynamically forward only challenge.

Hi @voroninp could you please explain what you would like to achieve ?
I'm not sure that I fully understood your question. Do you want a mean to only forward the authentication challenge but not, saying, the authentication itself ?

@EnricoMassoneDeltatre exactly, try as it is, and if not authenticated redirect to another scheme for challenge.

I think it is possible.
If you a look at this documentation you can find the following example:
public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
       .AddCookie(options => options.ForwardChallenge = "Google")
       .AddGoogle(options => { });
}

In this scenario you are saying that the default scheme for authentication is cookie.
Now let's suppose you decorate the action method HomeController.Index with the Authorize attribute. This is the flow you will get when you call /home/index:

the authentication middleware receives the incoming http request and asks the default authentication scheme to authenticate the principal. This means that a proper cookie is searched. After this step a principal is associated with the request (it will be the anonymous user if the cookie is missing)
if and only if the request principal is the anonymous user (that is, the request is not authenticated) the cookie scheme is challenged for authentication. Based on the configuration provided the authentication challenge is forwarded to the Google authentication scheme, so the challenge is ultimately handled by Google authentication.

Yes, but then it is unconditional, not dynamic as with ForwardDefaultSelector.
I have a UI and API parts of my service. And for UI I allow both bearer and cookies, but want to challenge with cookies auth, if user is not authenticated. For API part I want only bearer auth.
In other words I would like to have ForwardChallengeSelector =)

I'm not a hundred percent sure about it, but I think that it's not possible. Basically the problem is that you don't have a ForwardChallengeSelector on the options object.
I think that in your case a good approach should be the following:

set the cookie as the default authentication
set a ForwardDefaultSelector on the cookie authentication which should decide whether or not forwarding everything to the bearer scheme. You need a criteria to decide whether or not the incoming request is an api request. Usually the routes for api calls starts with /api, you can use that condition in order to decide if the call is for an API endpoint. In the casi of an API call all the authentication logic is delegated to the bearer scheme. Otherwise you can assume that the call is for a UI endpoint and you can avoid to forward (this is achieved by returning null from the function)

Doing so you will lose the ability to call the UI endpoint by only using a bearer token, basically you are asking your UI users to always send a cookie along with the request. Is this really an issue for you ?

@EnricoMassoneDeltatre No, not an issue at all because to make browser always send a bearer token user needs to have an installed extension which sets the Authorize header appropriately. Otherwise cookies is the only option.

@EnricoMassoneDeltatre No, not an issue at all because to make browser always send a bearer token user needs to have an installed extension which sets the Authorize header appropriately. Otherwise cookies is the only option.

I agree with you, I would implement the solution explained above if I were in you.
Maybe you can ask for a clarification to the asp.net core guys if you want to be completely sure that this is the only viable solution.

@EnricoMassoneDeltatre Btw, maybe you know the answer to this issue as well?

I need to allow my test environment API's accessed by using different policies. Normal users to use a B2C based SignIn policy, and the automated tests under DevOps pipeline uses ROPC based sign in policy. So, both the tokens are issued by B2C but with different policies.
But even if the token is issued by ROPC policy, it is going to default SignIn policy based validations. Any idea how to make the token validation flow goes to respective authentication scheme based on policy?
Code is as like below.
services.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer("ROPC", jwtOptions =>
{
jwtOptions.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
// Accept only those tokens where the audience of the token is equal to the client ID of this application
ValidAudience = Configuration["AppSettings:AAD:ClientId"],
AuthenticationType = Configuration["AppSettings:AAD:ROPCSignInPolicyId"],
};
jwtOptions.Authority = $"https://{Configuration["AppSettings:AAD:Tenant"]}/{Configuration["AppSettings:AAD:B2CDirectoryName"]}.onmicrosoft.com/B2C_1_ROPC_SignIn/v2.0/";
jwtOptions.Audience = Configuration["AppSettings:AAD:ClientId"];
})
.AddJwtBearer(jwtOptions =>
{
jwtOptions.Authority = $"https://login.microsoftonline.com/tfp/{Configuration["AppSettings:AAD:Tenant"]}/{Configuration["AppSettings:AAD:SignInPolicyId"]}/";
jwtOptions.Audience = Configuration["AppSettings:AAD:ClientId"];
                jwtOptions.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
                {
                    ValidIssuer = $"https://login.microsoftonline.com/tfp/{Configuration["AppSettings:AAD:Tenant"]}/v2.0/",
                    ValidateAudience = true,
                    ValidateLifetime = false,
                    ValidateTokenReplay = true,
                    ValidateIssuer = false,
                    ValidateIssuerSigningKey = true,
                };
                jwtOptions.Events = new JwtBearerEvents
                {
                    OnAuthenticationFailed = DefaultAuthenticationFailed,
                    OnTokenValidated = DefaultOnTokenValidated
                };
            });

services.AddAuthorization(options =>
{
var defaultAuthorizationPolicyBuilder = new AuthorizationPolicyBuilder("ROPC",
JwtBearerDefaults.AuthenticationScheme);
defaultAuthorizationPolicyBuilder =
defaultAuthorizationPolicyBuilder.RequireAuthenticatedUser();
options.DefaultPolicy = defaultAuthorizationPolicyBuilder.Build();
});

Moved to Master issue for: Authorize with a specific scheme #16190


checkpoint

Can one of the admins verify this patch?

Closing, will submit separate PRs for __all__ and docs


ssl certificate signed with weak hash algorithm

I use RocketMQ  4.8.0 in docker, with a port 9876, but there is a security problem —— "ssl certificate signed with weak hash algorithm"，how can I resolve it ?

The signature algorithm used in the SSL certificate does not meet the IETF requirements. Therefore, you need to re-create the SSL certificate, ensure that the signature algorithm and key length of the SSL certificate meet the IETF requirements, and replace the SSL certificate of the affected software based on the affected software.


User is not resolved in Cockpit / Admin on stages (dev, test, ...)

Observed:

LHMObjectId is shown

Expected:

First name, last name, email address

The Problem is that on SSO-Dev for non of us the above mentioned attributes are set.
I set them for me and now it works without a problem.
So not a bug more like misconfiguration on SSO-Dev as on the other SSOs the attributes are filled automatically.


Loadbalancer with Java client API

Right now, with Loadbalancers, we get the cookies when we open a transaction and we send it for every request in that transaction in order to establish stickiness on the server for multi statement transactions. This gives a good explanation about the client support for load balancers.
If the load balancer refreshes the cookies in the middle of a transaction, we would still be sending the old ones which we got when we opened the transactions. So, we need to be able to update the transaction cookies if the load balancer changes in the middle.
We should also think about any security aspects with this change.
Also, we should make sure we support all the recent load balancers which Amazon has introduced such as the ELB and the ALB.

It looks like the current approach of capturing the initial values of cookies should work for ALB per
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#sticky-sessions
Keeping this issue open until that's confirmed.


SAML: replace first number with random alphabet if request ID starts with a number

Description
This PR fixes #5548

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 2986

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3727)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35587 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6165-t3727-kvm-centos7.zip
Smoke tests completed. 77 look OK, 2 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_add_primary_storage_disabled_host
Error
0.75
test_primary_storage.py

test_01_primary_storage_nfs
Error
0.13
test_primary_storage.py

ContextSuite context=TestStorageTags>:setup
Error
0.22
test_primary_storage.py

test_03_deploy_and_scale_kubernetes_cluster
Failure
32.09
test_kubernetes_clusters.py

test_07_deploy_kubernetes_ha_cluster
Failure
51.34
test_kubernetes_clusters.py

test_08_upgrade_kubernetes_ha_cluster
Failure
31.99
test_kubernetes_clusters.py

test_09_delete_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

ContextSuite context=TestKubernetesCluster>:teardown
Error
76.89
test_kubernetes_clusters.py

@blueorangutan test

@rohityadavcloud a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3750)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31981 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6165-t3750-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

That looks great. Thank-you for implementing the fix, @weizhouapache.


Editor: Undo/redo

wonder if I could set up assignState in the editor store to maintain copies?

promising: https://github.com/omnidan/redux-undo

the only action that should be un/redoable is TOGGLE_NOTE
need a way to reset history when a new song is loaded

https://github.com/omnidan/redux-recycle ?


Improve performance by removing animation

What are your thoughts on removing the enter animations. Because when I ran a performance analysis, the problem of “Largest Contentful Paint element was so big. This code creates this issue.
 <motion.main
      variants={variants}
      initial="hidden"
      animate="enter"
      transition={{ type: 'linear' }}
    >
      {children}
    </motion.main>
  )

If you change the code for:
<motion.main
      variants={variants}
      initial="visible"
      animate="enter"
      transition={{ type: 'linear' }}
    >
      {children}
    </motion.main>

I fixed the performance issue, but I removed an animation. Do you think that is good coice ?

Yes I think it could be a good choice. I like the animation, but the issue is too big so we can improve on that!

Removed


Create server socket

We should create a server socket, that will accept all incoming connections, fork a thread and try parsing all incoming bytes to packets (it's ok to just print all incoming packets to screen). If a parse error occurs, the socket must be closed.

Done in #29


The Golem quest guide step "talk to Curator Haig Halen" does not work

When I tried doing The Golem, I got stuck at the abovementioned step. I only got 3 dialogue options and no options related to the quest. I googled what could be the problem and it seems that you need to at least enter the Uzer ruins once before you can get the correct dialogue option from the Curator.

Hey, thanks for raising, this should hopefully be fixed now with https://github.com/Zoinkwiz/quest-helper/commit/8235492cc89a926e33e8f65a882b3a0d6a636fb9.


[Program]: Write a Kotlin program to find the adjoint of a matrix

Description
Write a Kotlin program to find the adjoint of a matrix
The adjoint of a square matrix A is the transpose of the matrix of cofactors of A. The adjoint of a matrix A is denoted as A*.
Input  :
1 2 3
4 5 6
7 8 9

Output :
[[-3, 6, -3], [6, -12, 6], [-3, 6, -3]]

How to contribute

Save the solution in program/program/find-the-adjoint-of-a-matrix/program/FindTheAdjointOfAMatrix.kt file

Hi. I added the Kotlin program for this problem.
Please let me know if I should edit any part of my code.
Thanks.


Re-enable a test requiring an optimized stdlib to ensure we pattern match.

rdar://84780237

@swift-ci smoke test

@swift-ci please test macOS platform

Do we want to ensure the behaviour of debug code as well, or are we not expecting move-only to work with debug builds?

@etcwilde the issue is that the _move builtin itself isn't being optimized enough. So the problem isn't an issue as long as we don't use the builtin in the stdlib since all over code should use a release stdlib. That may need to change with time though.

This seems to be failing consistently on the builders now? https://ci-external.swift.org/job/oss-swift-windows-x86_64-vs2019/7621/console

Yeah, this probably should have been re-tested before merging.

Seems to be failing on Linux as well: https://ci.swift.org/job/swift-PR-Linux-smoke-test/32054/console


Disable virtual threads by default on generated Spring app

Removed spring.threads.virtual.enabled property from SpringBootCoreModuleFactory and SpringBootCoreModuleFactoryTest.
Fixes #10474

@Harsh4902 : congratulations for your first contribution on jhipster-lite!

@murdos Thank you, looking forward to do more contributions.


Not able to pull docker images on windows 2019 server

https://stackoverflow.com/questions/54083194/docker-pull-failing-on-windows-failed-to-register-layer-strconv-parseint-parsi

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

ID: 44a44120-01fd-11ca-9d51-21ac35609f11
Version Independent ID: 75a53123-64be-1caf-fd67-7e7bef3b0aa0
Content: Windows Containers on Windows Server
Content Source: virtualization/windowscontainers/quick-start/quick-start-windows-server.md
Service: windows-containers
Product: windows-containers
GitHub Login: @cwilhit

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


Add mastodon icon

I added a mastodon icon.  Because of the federated nature, you have to specify the "network" attribute to "mastodon".

Please make mastodon 🐘 icon available soon!

@ken-salterdiazsolutions this was released in v6 of react-social-icons
CC @tguichaoua


Feature request: allow making releases from certain branches only.

Use case.
I've just mistakenly made a release from the wrong branch. After the tag was pushed to GitHub, our automated release machinery released the new version on GitHub and PyPI.
It would be great to have some safeguard mechanism to prevent this from happening.
Proposed solution.
It would be great to have an allowed branch pattern. Something like this:
    [bumpver]
    ...
    allowed_branch_pattern = "main"  # or similar
    ...

I would accept a PR for this. Preferably using comma separation and glob syntax.
[bumpver]
...
allowed_branches = "master,main,release-*"


Re-expose the bottom-most doLookup behavior

Long ago we intentionally exposed this so other tools (Ahem, Paul's
stuff) can use this interface. Well, when Zakir and I refactored
miekg for Iterative lookups, we broke this. This once again
exposes the bottom most logic via DoLookupWorker (not a member).
(It also fixes a nameserver bug on an error branch.)

This tries to restore what was added in https://github.com/zmap/zdns/pull/81 and subsequently lost in https://github.com/zmap/zdns/pull/94


Script tag helper is looking the wrong directory

Problem
Script tags are unable to be loaded. It looks like it's trying to find them in the templates directory?
Replication steps
I have the following in amy collection.liquid file:
{{ 'template.product.js' | asset_url | script_tag }}
I get the following error:
Module build failed: ModuleNotFoundError: Module not found: Error: Can't resolve './template.product.js' in '/Users/ryan/Documents/matchabar/src/templates'

@rmfarrell please see https://github.com/Shopify/slate/issues/409
You shoudn't need to reference template.product.js directly, it gets added in the automatically generated script-tags.liquid snippet.


Teams notifications: opening Viva URL works / works not alternating

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
Windows
What browser(s) / client(s) have you tested

[X] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details
[ Windows ] Operating System
[ 10.22 ] Node version
[ 3.9.1 ] Gulp version
Describe the bug / error
Expected or Desired Behavior
Clicking on a notification in Teams, opens the Viva (SharePoint) URL. Clicking on another notification, opens also the Viva URL.
The url to open is a Viva site, set in the TeamworkActivityTopic.WebUrl
Observed Behavior
Clicking on a notification works. Clicking on another notifications fails. This alternates exactly. Both URLs are working.
When it fails, we see a request to: https://tenant.sharepoint.com/_layouts/15/preload.aspx?portalsCache=true&env=TeamsWebView and the initiator is registerBeforeUnloadHandler:

Steps to reproduce
Create 2 or 3 Teams notifications with a WebUrl like this:
string tabUrl` = $"https://graph.microsoft.com/v1.0/users/{subscribedUser.UserId}/teamwork/installedApps/{subscribedUser.AppId}";
string encodedContext = Uri.EscapeDataString("{"subEntityId": "" + _model.Url + ""}");
var notification = new TeamworkActivityTopic
{
Source = TeamworkActivityTopicSource.EntityUrl,
Value = tabUrl,
WebUrl = $"https://teams.microsoft.com/l/entity/{appid}/{tabId}?context={encodedContext}"
};`
The WebUrl is a reference to a static tab in Teams.
In the Teams manifest of our app, Viva is opened.
Url of Viva: https://tenant.sharepoint.com/_layouts/15/teamslogon.aspx?spfx=true&dest=https://tenant.sharepoint.com/sites/home?app=portals",
When clicking on the notification in Teams, and it doesn't work, we see a javascript call to registerBeforeUnloadHandler which does a _navigateToPreload. When this happens, the browser navigates to https://tenant.sharepoint.com/_layouts/15/preload.aspx?portalsCache=true&env=TeamsWebView and then it stops and nothing is displayed. When clicking on another notification, It works and navigates to the correct URL. This keeps alternating.
If we leave app=portals off the URL, it also keeps working!
Expected behavior
Clicking on a notification in Teams, opens the Viva (SharePoint) URL.
Clicking on another notification, opens also the Viva URL.
The url to open is a Viva site, set in the TeamworkActivityTopic.WebUrl

I can confirm there is something wrong with the preload.aspx. We are also seeing issues with it.
It can be reproduced very easy if you create a teams personal app with two tabs. One pointing to the VIVA url (?app=portals) and one tab pointing to any spfx component (something like this: https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=https://{teamSiteDomain}/_layouts/15/teamshostedapp.aspx%3Fteams%26personal%26componentId=COMPONENTID%26forceLocale={locale} )
Navigating between those two tabs will end with the same result. It stops with a spinning circle and nothing happens anymore.

Thanks for the heads up.  Forwarding the thread.

Hello, thanks for reposting the issue and the information. A fww questions:

Can we get a video of the notification scenario>
Where does this particular code: string _tabUrl` = $"https://graph.microsoft.com/v1.0/users/{subscribedUser.UserId}/teamwork/installedApps/{subscribedUser.AppId}";
string encodedContext = Uri.EscapeDataString("{"subEntityId": "" + _model.Url + ""}");

var notification = new TeamworkActivityTopic
{
Source = TeamworkActivityTopicSource.EntityUrl,
Value = tabUrl,
WebUrl = $"https://teams.microsoft.com/l/entity/{appid}/{tabId}?context={encodedContext}"
};`_
need to be executed from?
3. When you are on a viva tab and a notification comes in, does the page load in the same webview ( same tab) or does the team actually navigate to a different tab (since it seems the notification is pointing to a deepLink of a tab'

I asked to create a video on our side from our dev team.
This is the particular code to create a notification in Teams trough Graph with C#. For example in an Azure Function. This way we create just simple Teams notifications with the deeplink in it.
It navigates to the same webview, same tab, as we have only 1 tab defined in this application. So appid/tabid are always the same.

We created a video with the error occurring:
https://www.youtube.com/watch?v=KteyL-mdagM

@Renevdo Is this still repro'ing for you?


Update README.md

WHAT
A brief description of the pull request:
HOW
Steps to test or reproduce:

Closing this as after consulting @lapthorn - was only used for test purposes, hence the 'test' in the README.md


downgrading the hyperion version from 7 to 6

Dear developers! Can I downgrade hyperion from 7 to 6 while on a hyperbian image? Is this even possible? Thank you for your work! You guys are amazing!

Download the Alpha 6 .deb file here and install it with dpkg.
I hope it helps.

Download the Alpha 6 .deb file here and install it with dpkg.
I hope it helps.

Thank you so much for your response! Unfortunately, I'm not very good at this. I had enough strength to install the image, I'm afraid I don't know how to proceed, what dpkg is, and what version I need to download.

Download the Alpha 6 .deb file here and install it with dpkg.
I hope it helps.

Thank you so much for your response! Unfortunately, I'm not very good at this. I had enough strength to install the image, I'm afraid I don't know how to proceed, what dpkg is, and what version I need to download.
Maybe there is some script for downgrading the version?

Download the Alpha 6 .deb file here and install it with dpkg.
I hope it helps.

Thank you so much for your response! Unfortunately, I'm not very good at this. I had enough strength to install the image, I'm afraid I don't know how to proceed, what dpkg is, and what version I need to download.
Maybe there is some script for downgrading the version?

Yes, of course! Ssh and sftp.

Read a little! I need to run sudo dpkg-i hyperion.deb by downloading it? I don't understand just where to move the downloaded hyperion.deb file?

You install hyperion with dpkg -i ...
Just imagine the deb file is a setup file under windows.

You install hyperion with dpkg -i ...
Just imagine the deb file is a setup file under windows.

I was installing a hyperbian image... Just recorded it on the card and set up wifi and ssh according to the instructions.

I'll make you an alpha 6 build. So far there doesn't seem to be a user-friendly solution

I'll make you an alpha 6 build. So far there doesn't seem to be a user-friendly solution

Thank you very much! This is just great!

I'll make you an alpha 6 build. So far there doesn't seem to be a user-friendly solution

I'm sorry, friend! Where and when can I download it?

I'm still in the process of creating the release. Please be patient

I'm still in the process of creating the release. Please be patient

Oh! I apologize again for bothering you! May luck be on your side. Always!

Unfortunately I have to disappoint you. Alpha 6 does not run on Hyperbian. Since this is based on Raspbian OS (Debian Buster).
https://prnt.sc/ug8s6s
The implementation for the newly introduced BCM devices are unfortunately only available from Alpha 7.
https://prnt.sc/ug8sba
I'm trying to compile a current version for you. Another question, why did you want to switch from Alpha 7 to Alpha 6?

Unfortunately I have to disappoint you. Alpha 6 does not run on Hyperbian. Since this is based on Raspbian OS (Debian Buster).
https://prnt.sc/ug8s6s
The implementation for the newly introduced BCM devices are unfortunately only available from Alpha 7.
https://prnt.sc/ug8sba
I'm trying to compile a current version for you. Another question, why did you want to switch from Alpha 7 to Alpha 6?

Thank you for your efforts anyway! I wanted to switch to alpha 6 because static colors don't work on 7. Instead, only the flickering of LEDs in all colors. But the repetition of colors from the TV picture works fine.

Ready to install? 😃
https://github.com/Paulchen-Panther/HyperBian/releases

Ready to install? 😃
https://github.com/Paulchen-Panther/HyperBian/releases

You did it after all! I am very happy! Thanks! Unfortunately I'm at work now! I will definitely install it tomorrow!!! Have a nice day!

NP. Lass dir Zeit. 😄

Ready to install? 😃
https://github.com/Paulchen-Panther/HyperBian/releases

My friend! I installed your image and it works perfectly for me! 🥳My gratitude knows no bounds!!! 🙏🏻🤝Only one question remains, is this still beta 7? Or 6? In my settings, it is displayed as beta 7...

It ist Alpha 7. Current git master.
Can we close this issue with this?

It ist Alpha 7. Current git master.
Can we close this issue with this?

I understand! Thank you again!!! Yes, of course! I'm closing...


?| Operator does not exist

I'm trying to use the ?| operator on PostgreSQL 9.0.4 on Mac OS X (after running rails g hstore:setup
and I get this error:
ActiveRecord::StatementInvalid: PGError: ERROR:  operator does not exist: hstore ?| text[]

This is the query that I'm trying to run:
Video.where("tags ?| ARRAY['lonely', 'abc']")

The generated SQL is
SELECT "videos".* FROM "videos" WHERE (tags ?| ARRAY['lonely', 'abc'])

TIA!

This problem is already fixed for PostgreSQL 9.1. But for 9.0 you would have to re-execute the hstore.sql that comes with PostgreSQL in your database. The problem is that the hstore:setup template contains the 8.4 or 9.1 version (using CREATE EXTENSION).

Great, thanks!


bug: explicit usage of Duplex

because otherwise, we get syntax error messages when we try to import bigquery in another project
Fixes #299 (it's a good idea to open an issue first for discussion)

[ ] Tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

The npm run lint command has errors but not explicitly in the part I've modified:
❯ npm run lint

><EMAIL_ADDRESS>lint /Users/bchhun/projects/nodejs-bigquery
> gts check && eslint samples/

/Users/bchhun/projects/nodejs-bigquery/samples/datasets.js
  21:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  41:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  64:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require

/Users/bchhun/projects/nodejs-bigquery/samples/queries.js
  22:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  66:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  97:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require

/Users/bchhun/projects/nodejs-bigquery/samples/quickstart.js
  20:28  error  "@google-cloud/bigquery" is not found  node/no-missing-require

/Users/bchhun/projects/nodejs-bigquery/samples/system-test/datasets.test.js
  18:28  error  "@google-cloud/bigquery" is not found  node/no-missing-require

/Users/bchhun/projects/nodejs-bigquery/samples/system-test/tables.test.js
  23:28  error  "@google-cloud/bigquery" is not found  node/no-missing-require

/Users/bchhun/projects/nodejs-bigquery/samples/tables.js
   21:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
   49:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
   74:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
   96:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  128:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  161:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  193:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  242:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  291:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  358:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  417:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  472:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  526:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  588:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  649:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  704:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  765:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require
  805:30  error  "@google-cloud/bigquery" is not found  node/no-missing-require

✖ 27 problems (27 errors, 0 warnings)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>lint: `gts check && eslint samples/`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/bchhun/.npm/_logs/2018-12-10T22_40_17_760Z-debug.log

I signed it!


 Examples of this is entering a grass path, leaving a carpet, entering a staircase, and slabs but only when close.

Thanks for reporting this bug, I'll look into it 🙂


HMR not working in Nuxt + Tauri v2 setup for Android

Environment

Operating System: Darwin
Node Version:     v22.3.0
Nuxt Version:     3.12.4
CLI Version:      3.12.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      compatibilityDate, ssr, devServer, srcDir, vite
Runtime Modules:  -
Build Modules:    -

Reproduction
https://github.com/m2io/nuxt3-tauri
Describe the bug
Description
I would like to mention in advance that I am not sure if this Issue is more related to Nuxt or Tauri but:
When using Nuxt in a Tauri v2 project, Hot Module Replacement (HMR) is not functioning on Android, while it works fine on desktop. This issue appears to be specific to the Nuxt setup, as the same configuration with Vite + Vue in Tauri v2 works correctly on Android.
Steps to Reproduce

Configure for Android development (https://v2.tauri.app/start/prerequisites/#android)
Clone reproduction
pnpm install
Run the project on an Android emulator - pnpm tauri android dev
Attempt to make changes that should trigger HMR

Expected Behavior
Changes should be reflected in the Android emulator
Actual Behavior
HMR does not work on Android. Changes are not reflected, or require closing and opening the App again.
Attempted Solutions

Tried various Vite and server configurations in nuxt.config.ts
Attempted to use the same configuration that works for a Vite + Vue setup in Tauri v2
Tried adding NUXI_DISABLE_VITE_HMR=true, but this resulted in constant reloads and state loss

(Possibly) Related Issues

https://github.com/nuxt/nuxt/issues/25909
https://github.com/nuxt/nuxt/issues/25335

Additional Context
The HMR functionality works as expected on desktop environments. The issue seems to be specific to the Android setup with Nuxt and Tauri v2.
The only thing I've noticed while I'm writing this issue: The builder when running pnpm tauri info on the Nuxt setup is Webpack, while on the Vite + Vue setup it correctly states Vite.
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:1420/
- framework: Vue.js (Nuxt)
- bundler: Webpack
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:1420/
- framework: Vue.js
- bundler: Vite
Additional context
No response
Logs
No response

Update: I identified the issue and there is a workaround available
I've found that this issue is already known and discussed:

Similar problem reported: https://github.com/nuxt/nuxt/issues/27558
Probable cause: https://github.com/nuxt/cli/pull/184

As described in the linked Nuxt issue, there's a workaround available. You can set the server config in the vite:extendConfig hook:
hooks: {
  'vite:extendConfig': (config) => {
    config.server.port = 3000
  },
},

Given that this should be fixed in the next release of nuxt/cli (as per https://github.com/nuxt/nuxt/issues/27558#issuecomment-2254471601), I'm closing this issue.


Big model size with training continuation

I am using XGBoost 1.1.0 and I want to apply a XGBoostRegressor on a large dataset.

If I train all data in once:

xgb_full = xgb.train(hyperparameters,
                     dtrain,
                     num_boost_round=1000,
                     evals=[(dtrain, 'train')],
                     verbose_eval=True)

model=xgb_full.save_model('model_1.model')

In this case the size of model is 38 MB and I can use this it easily to predict new data.

If I split the same data into 100 parts and use xgb_model parameters to train continuously:

batch_size = 50
start = 50
xgb_partial = None
for i in range(100):
    xgb_partial = xgb.train(hyperparameters,
                            dtrain[i*start:i*start+batch_size],
                            num_boost_round=1000,
                            evals=[(dtrain[start:start+batch_size], 'train')],
                            verbose_eval=True,
                            xgb_model=xgb_partial)

    model=xgb_partial.save_model('model_1.model')

In this case, the saving model size at each iteration increase and at the end the size is 1,214,000 MB in my case.
Is it normal or something is not setup properly? Is it a manageable way to regularly update the same model with new data without having a huge size of the model at the end of the training period?

The model size increases because you are adding 1000 trees in each step, leading to 100000 trees. "Training continuation" means that you are adding additional trees on top of the trees already fit.

a manageable way to regularly update the same model with new data ...

I'm afraid this is not what's happening.


Documentation Correction

The following statement under the "User roles and signing in" heading is not longer accurate:
"For example, to manage configuration settings for Azure AD, a user must be both a Global Administrator in Azure AD and an Owner on an Azure subscription."
Azure AD configuration can be managed without needing to be an Owner on any Azure subscription.

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

ID: bf1a1d2f-6f7f-e7e3-2c3e-e658e7179877
Version Independent ID: 77f0313f-4513-2434-3ac6-dea428f57f40
Content: Azure AD directory roles you can manage in PIM
Content Source: articles/active-directory/privileged-identity-management/pim-roles.md
Service: active-directory
GitHub Login: @rolyon
Microsoft Alias: rolyon

@DanielBirmingham  Thank you reaching out. We are investigating this and would update soon.


streaming baseline has error on ubuntu 22.04

When running the cmd:
python3 run.py --dataset msturing-10M-clustered --algorithm diskann --neurips23track streaming --runbook_path neurips23/streaming/delete_runbook.yaml
This error continuously pops out after several iterations:
...
...
2023-08-10 01:08:16,415 - annb.31d58d2d344a - INFO - ^[[34mStep 54 took 3.0553574562072754s.^[[0m
2023-08-10 01:08:16,621 - annb.31d58d2d344a - INFO - ^[[34m#active pts 4539934 #unprocessed deletes 1500000^[[0m
2023-08-10 01:09:59,611 - annb.31d58d2d344a - ERROR - Container.wait for container 31d58d2d344a failed with exception
2023-08-10 01:09:59,611 - annb.31d58d2d344a - ERROR - Invoked with ['--dataset', 'msturing-10M-clustered', '--algorithm', 'diskann', '--module', 'neurips23.streaming.diskann.diskann-str', '--constructor', 'diskann', '--runs', '5', '--count', '10', '--neurips23track', 'streaming', '--runbook_path', 'neurips23/streaming/delete_runbook.yaml', '["euclidean", {"R": 64, "L": 50, "insert_threads": 16, "consolidate_threads": 16}]', '[{"Ls": 100, "T": 16}]']
Traceback (most recent call last):
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 710, in _error_catcher
yield
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 1077, in read_chunked
self._update_chunk_length()
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 1005, in _update_chunk_length
line = self._fp.fp.readline()  # type: ignore[union-attr]
File "/usr/lib/python3.10/socket.py", line 705, in readinto
return self._sock.recv_into(b)
TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/models.py", line 816, in generate
yield from self.raw.stream(chunk_size, decode_content=True)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 937, in stream
yield from self.read_chunked(amt, decode_content=decode_content)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 1065, in read_chunked
with self._error_catcher():
File "/usr/lib/python3.10/contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/urllib3/response.py", line 715, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.") from e  # type: ignore[arg-type]
urllib3.exceptions.ReadTimeoutError: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/impanyu/big-ann-benchmarks/benchmark/runner.py", line 318, in run_docker
return_value = container.wait(timeout=timeout)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/docker/models/containers.py", line 514, in wait
return self.client.api.wait(self.id, **kwargs)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/docker/api/container.py", line 1338, in wait
res = self._post(url, timeout=timeout, params=params)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/docker/utils/decorators.py", line 46, in inner
return f(self, *args, **kwargs)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/docker/api/client.py", line 233, in _post
return self.post(url, **self._set_request_timeout(kwargs))
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/sessions.py", line 637, in post
return self.request("POST", url, data=data, json=json, **kwargs)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/sessions.py", line 747, in send
r.content
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/models.py", line 899, in content
self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
File "/home/impanyu/big-ann-benchmarks/ann/lib/python3.10/site-packages/requests/models.py", line 822, in generate
raise ConnectionError(e)
requests.exceptions.ConnectionError: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out.
103,1         99%

I change the timeout from 30mins to 60mins in runner.py, now it works for my virtual machine.

@harsha-simhadri  Is the 30 minute timeout maybe too restrictive for this task?

@impanyu  which virtual machine did you run this on? how long did it take?

closing for now, can reopen if problem persists


lockfile doesn't seem to work

Describe the bug
the pw.lock file doesn't seem to work, because it gets regenerated automatically when a new version of a dependency is available, which defeats the purpose
To Reproduce

have a dependency specified to a version older than the latest release:# pyproject.toml
[tool.pyprojectx]
pdm = "pdm>=2.12.2"

and a lockfile where it's pinned to that outdated version:# pw.lock
[pdm]
requirements = ["CacheControl==0.13.1", "Pygments==2.17.2", "blinker==1.7.0", "certifi==2023.11.17", "charset-normalizer==3.3.2", "dep-logic==0.0.4", "distlib==0.3.8", "filelock==3.13.1", "findpython==0.4.1", "idna==3.6", "installer==0.7.0", "markdown-it-py==3.0.0", "mdurl==0.1.2", "msgpack==1.0.7", "packaging==23.2", "pdm==2.12.2", "platformdirs==4.1.0", "pyproject_hooks==1.0.0", "python-dotenv==1.0.1", "requests-toolbelt==1.0.0", "requests==2.31.0", "resolvelib==1.0.1", "rich==13.7.0", "shellingham==1.5.4", "tomlkit==0.12.3", "truststore==0.8.0", "unearth==0.14.0", "urllib3==2.1.0", "virtualenv==20.25.0"]
hash = "51e180b34ec54ec0103a5b9e087eaf00"

run ./pw pdm --version

Expected behavior
the version from the lockfile is installed if it's not already, then it prints PDM, version 2.12.2
Actual behavior
the latest version within the range is downloaded, and the lockfile is updated automatically to match. it then prints PDM, version 2.12.3
Desktop (please complete the following information):

Python  version: 3.12
OS: windows 10

Additional context
there probably needs to be a separate command to update the lockfile, like what pdm and poetry does (pdm install to install dependencies from the lockfile and pdm update to update the lockfile with the latest versions)

When changing the requirement spec pdm = "pdm>=2.12.2", the hash changes and then the lock file is regenerated (more or less like npm install regenerates package-lock.json).
The caveat here is, that if you want to keep the existing locked dependencies, you will need to manually updated the hash in the lock file (by partially committing the new lock file in git).
If you did not change the requirement spec, it's a bug that I need to investigate further.

If you did not change the requirement spec, it's a bug that I need to investigate further.

i don't think it was, but i'll re-open this issue if i notice otherwise


Tasks that combine the remediation of multiple rules should be refactored

Currently there are tasks that remediate multiple rules at the same time. This should not be the case.
Example:
- name: "V-38497 High  The system must not have accounts configured with blank or null passwords\n
        \tV-38658 Medium  The system must prohibit the reuse of passwords within twenty-four iterations\n
        \tV-38574 Medium  The system must use a FIPS 140-2 approved cryptographic hashing algorithm for generating account password hashes (system-auth)\n
        \tV-38482 Low     The system must require passwords to contain at least one numeric character\n
        \tV-38571 Low     The system must require passwords to contain at least one lowercase alphabetic character\n
        \tV-38572 Low     The system must require at least four characters be changed between the old and new passwords during a password change"
  lineinfile: >
    dest={{ item.dest }}
    regexp={{ item.rx }}
    line="{{ item.ln }}"
    backrefs=yes
    follow=yes owner=root group=root mode=0644
  with_items:
    - { rx: "'^(password\\s+requisite\\s+pam_cracklib.so\\s)(.*)$'", ln: "\\1{{rhel6stig_pam_cracklib_params}}", dest: '/etc/pam.d/system-auth' }
    - { rx: "'^(password\\s+requisite\\s+pam_cracklib.so\\s)(.*)$'", ln: "\\1{{rhel6stig_pam_cracklib_params}}", dest: '/etc/pam.d/password-auth' }
    - { rx: "'^(password\\s+sufficient\\s+pam_unix.so\\s)(.*)$'", ln: "\\1{{rhel6stig_pam_unix_params}}", dest: '/etc/pam.d/system-auth' }
    - { rx: "'^(password\\s+sufficient\\s+pam_unix.so\\s)(.*)$'", ln: "\\1{{rhel6stig_pam_unix_params}}", dest: '/etc/pam.d/password-auth' }
    - { rx: "'^(auth\\s+sufficient\\s+pam_unix.so)(.*)$'", ln: "auth        sufficient    {{rhel6stig_pam_auth_sufficient}}", dest: '/etc/pam.d/system-auth' }
    - { rx: "'^(auth\\s+sufficient\\s+pam_unix.so)(.*)$'", ln: "auth        sufficient    {{rhel6stig_pam_auth_sufficient}}", dest: '/etc/pam.d/password-auth' }
  tags: [ 'cat1' , 'cat2' , 'V-38497' , 'V-38658' , 'V-38574' , 'V-38482' , 'V-38571' , 'V-38572' , 'passwords' , 'accounts' ]

This makes it impossible to remediate any of 'V-38497' , 'V-38658' , 'V-38574' , 'V-38482' , 'V-38571' , 'V-38572'  on an individual level, hitting one would hit them all. Also, combining varying severity levels is less than ideal as it limits how specific a user can harden a system.

This was something I wrestled with: granularity vs. efficiency. It appears granularity is more important.
One of the unpleasant ramifications of this is that a template that contains setting remediating CAT I and CAT II findings is very elegant. In order to allow granularity, the template file must be replaced with several lineinfile tasks, introducing complexity.
I wonder if a better way to solve this would be multiple template files: one for the CAT I stuff, another for the CAT II stuff... Anyway, my general rule is three lineinfile tasks on the same file means I move to a template. I'm open to better ways to handling the need for granularity.

Actually, that's a great point and idea, I do like the idea of a template per severity. The change on the task/main.yml would mean it would have to hit the severities in reverse order (or place the logic elsewhere).
Another idea (or addition) would be to place the logic in the template itself. Something along the lines of
{% if rhel6stig_cat2 == true %}, etc.

I think I like the idea of using Jinja logic the best. It means we'll have the same template task in multiple playbooks when only one task would suffice, but that's a degree of redundancy I can live with. Much better than lots of lineinfile tasks.

This issue was addressed in the major refactoring of tasks. We may do more work in the future to move some things into templates since we've decided to have a bool for each finding ID, but I think the largest part of this issues has been addressed.


disable udp by default

There is a issue by binidng udp port as default.
ref: https://blog.cloudflare.com/memcrashed-major-amplification-attacks-from-port-11211/
Arcus also will be affected.
and this is the same patch with original memcached https://github.com/memcached/memcached/commit/dbb7a8af90054bf4ef51f5814ef7ceb17d83d974
I tested after applying this patch, Binding udp port is disabled.

I missed testcases, I will fix it ASAP

@jhpark816
I checked it.
Please merge this PR

@charsyam
Thank you for your sincere contribution.


Disable autoComplete on the Search field(input field) or make it controllable

Hello,
I genuinely dislike autoComplete features in annoying places. Therefore I would ask if u could make it permanently off or atleast programmable via props. The only place I noticed it was in the Search field(input field).
I can also look into it and mby make a pull request.
Thx for this component/library👍🏼

May I ask why this is a problem?

Hello - I've got the same problem: it would be nice to have it controllable, because when the autocomplete pop's up, arrow keys are consumed by browser's autocomplete instead of jumping in the list; this breaks the whole usability of command component: (its czech, but the idea is there)

Because autocomplete is not possible turn off by any simple way (like using CSS or so), thus a flag would be reaaaaaly nice.
At least: you can give control to your users, not force them to use your opinion.


vue 结合 bootstrap-table  使用了jquery  不能像angular那样使用scope.apply 告知jquery dom发生了变化  从而试jquery可以重新渲染dom

What problem does this feature solve?
解决了使用jquery时  不能动态的更新dom的问题
代码
'$store.state.socket.priceArray': function (val) {
val.forEach((item, index) => {
this.$set(this.data, index, item)
})
$('.table').bootstrapTable({
columns: this.columns,
data: this.data
});
}

What does the proposed API look like?
期望能加一个想angular那样的scope.apply

This problem has been solved in bootstring-table but still wants to provide jquery refreshing dom

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server, gitter or StackOverflow.

But this is a requirement problem and vue doesn't have a way to refresh the dom for jquery @posva

The problem is not related directly to Vue but rather to how to integrate third party libraries with Vue. There're a lot of resources on how to integrate jquery with vue. And in any case, it's a usage question, so please, use the proper channels (forum or chat) for it) 🙂


[TE] detection - abort long-running detection task on interrupt

ThirdEye currently does not allow interruption of detection tasks running across multiple dimension combinations (potentially millions). This causes the controller to appear unresponsive to systems and monitoring tools outside the VM. This PR makes the detection task runner aware of interrupts to abort ongoing tasks and shut down gracefully.

this is merely a quick fix. The wider issue has to be addressed holistically with a new execution pipeline, such as the one @cyenjung is working on


Add @aiken-lang/aiken as a dev dependency

Ran into this error while running npm run build during Mina work:
✖  nx run @paima/inverse-whirlpool:build
   ><EMAIL_ADDRESS>build
   > aiken build && aiken check -D

   sh: line 1: aiken: command not found

To solve, add the @aiken-lang/aiken package as a devDependency of the Cardano contracts.
However, running npm run build after this does lead to a diff:
 packages/cardano-contracts/inverse-whirlpool/aiken.lock  |  4 ++--
 packages/cardano-contracts/inverse-whirlpool/plutus.json | 16 ++++++++--------

aiken-build.txt
And I don't know enough about Aiken to say how much of a problem this is.

Oh I didn't know they published Aiken as an npm package as well. I just had it installed through aikenup instead
The modifications of aiken.lock and plutus.json are because I compiled them with aiken v1.0.29-alpha+16fb02e and you probably used some different alpha build

My npx aiken --version also says aiken v1.0.29-alpha+16fb02e, although I do have the x86_64-unknown-linux-gnu version.
$ file<EMAIL_ADDRESS><EMAIL_ADDRESS>ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=98ab660d5ab1d7dfc25eff70a01c346f9f607d3c, for GNU/Linux 3.2.0, with debug_info, not stripped

If plutus.json is a compile output, maybe it should be gitignored?
aiken.lock is a little odder - if it's like a package manager lockfile it should be included, but why then is it edited by every build?

Ideally there would be a way to keep both files, but I talked to the Aiken team and they recommend ignoring them both for now. Worst case, if projects depend on these files, we can use the implicitDependencies in nx to get these files generated.


SimplifyCFG: fix a bug in switch_enum -> select_enum conversion

This bug is > 3 years old. Looks like we didn't hit this SIL code pattern so far.
https://bugs.swift.org/browse/SR-11263
rdar://problem/54312894

@swift-ci test and merge


Print command helm exec commands in line

This is an attempt to log helm exec output as the helm exec command is running. It only prints if the --debug flag is set.
I'd like to completely remove runner.Output() but it's used here:
https://github.com/roboll/helmfile/blob/cd427d9714924ed8fa21fc96a779a87c5b76de3c/pkg/tmpl/context_funcs.go#L101
Hoping someone can help with that.

@AClarkie Code LGTM.
But do you have any specific reason not to change the original Output to print immediate debug logs like this?
I mean, if the only difference between Output and OutputInLine is ability to stream debug logs, I think I'm okay with just enhancing Output for that.

The original plan was to edit Output but it's being used on the following line:
https://github.com/roboll/helmfile/blob/cd427d9714924ed8fa21fc96a779a87c5b76de3c/pkg/tmpl/context_funcs.go#L101
And I wanted to clarify it's usage there and get a suggestion on how I should update it, is that something you can help with?

Hey @mumoshu - any thoughts on my question?

@AClarkie As long as helmexec.Output keeps returning either some captured stdout or an error object, that's okay. I think that's the only contact between helmfile/pkg/tmpl/context_funcs.go and the helmexec.Output func.
And in my understanding, your OutputInLine works exactly like that, except it is able to stream stdout/err via debug logs. Am I correct?

@AClarkie As long as helmexec.Output keeps returning either some captured stdout or an error object, that's okay. I think that's the only contact between helmfile/pkg/tmpl/context_funcs.go and the helmexec.Output func.
And in my understanding, your OutputInLine works exactly like that, except it is able to stream stdout/err via debug logs. Am I correct?

Yep that's correct

@AClarkie Yeah I'm willing to revisit/merge this once I've finished stabilizing Helmfile v0.125.x!

@AClarkie So I'll try to merge OutputInLine you've added to the existing Output today, based on our discussion above, and will merge this regardless of the result soon. Stay tuned!

@AClarkie I reread your code and understood OutputInLIne to be almost equivalent to Output functionality-wise, except it writes to debug log.
In the last commit that I've pushed to your branch, I used MultiWriter in Output to also write to the debug log, so that we don't need to create a brand-new function.
I also added a prefix with an "execution ID" to every debug log message that is emitted, so that it becomes easier to deduce which log is from which command. It's not perfect at all. It should probably log the exact command being executed with the same prefix for correlation. But I defer it to another PR.
WDYT?
I'll merge this soon so that we can start testing it. But please feel free to submit another PR or send any feedback!

I am getting segfaults, and I believe they are due to this PR.
goroutine 66 [running]:
go.uber.org/zap.(*SugaredLogger).log(0x0, 0xff, 0x15ff253, 0x4, 0xc0005d3620, 0x2, 0x2, 0x0, 0x0, 0x0)
	/home/circleci/workspace/helmfile/vendor/go.uber.org/zap/sugar.go:221 +0x192
go.uber.org/zap.(*SugaredLogger).Debugf(...)
	/home/circleci/workspace/helmfile/vendor/go.uber.org/zap/sugar.go:133
github.com/roboll/helmfile/pkg/helmexec.(*logWriter).Write(0xc0000bf600, 0xc000288000, 0x5e, 0x8000, 0x5e, 0x0, 0x0)
	/home/circleci/workspace/helmfile/pkg/helmexec/log.go:25 +0x16c
io.(*multiWriter).Write(0xc0000bf620, 0xc000288000, 0x5e, 0x8000, 0x5e, 0x0, 0x0)
	/usr/local/go/src/io/multi.go:60 +0x87
io.copyBuffer(0x1b66740, 0xc0000bf620, 0x1b66c00, 0xc00016c050, 0xc000288000, 0x8000, 0x8000, 0x0, 0xc0005d37a8, 0x405b6f)
	/usr/local/go/src/io/io.go:407 +0x1fb
io.Copy(...)
	/usr/local/go/src/io/io.go:364
os/exec.(*Cmd).writerDescriptor.func1(0x165c698, 0xc0005d37c8)
	/usr/local/go/src/os/exec/exec.go:311 +0x63
os/exec.(*Cmd).Start.func1(0xc000033760, 0xc0000bf6a0)
	/usr/local/go/src/os/exec/exec.go:441 +0x27
created by os/exec.(*Cmd).Start
	/usr/local/go/src/os/exec/exec.go:440 +0x632

logWriter.log is nil: https://github.com/roboll/helmfile/blob/cd0ecc52638bbfbae93f148a5a0cdb2ad544dab8/pkg/helmexec/log.go#L25
Which I believe is due to a nil ShellRunner.Logger: https://github.com/roboll/helmfile/pull/1354/files#diff-0c6caf47bdc81e026dc633312456c1fdR40

This PR seems to assume the invariant App.Logger (used to initialize ShellRunner.Logger)  is non nil, however I could quickly find anything in the code that seems to enforce that: conf.Logger() might be nil, and App.Init does not do anything about this possibility.

@juniorz Hey! Thanks for reporting. I think you're correct. But how can I reproduce your issue? I was thinking about why the e2e test have passed if it always panic.

@juniorz Do you have any hooks in your helmfile.yaml? Then it's going to be fixed in #1445.

Thank you!


Fix CI.

> error: the host system is unable to execute binaries from the target
>   because the host dynamic linker is '/lib/ld-musl-x86_64.so.1',
>   while the target dynamic linker is '/lib/ld-musl-x86_64.so.1'.
>   consider setting the dynamic linker or enabling skip_foreign_checks in the Run step

Right.


UI fails to render Workflows with inline subworkflow definition

In #1651, the ability to use inline definitions for subworkflows has been introduced. However, UI tries to fetch the workflow definition for subworkflow task, ignoring the inline definition, causing the workflow to be failed to render.
Update UI logic to ignore fetching subworkflow definition, when inline definition is used.

@kishorebanala created PR #1989 to fix this issue.

No longer an issue with the new UI as we don't 'expand' subworkflows and inject them in their parent graph visualization any more.


Low-level exceptions leaking from Response.iter_content()

Up through v2.6.0, Response.iter_content()would catch all expected exceptions coming from self.raw.stream(), and wrap them in instances of various subclasses of RequestException.
In v2.6.1, urllib3 was updated to 1.10.3, which has issue https://github.com/shazow/urllib3/issues/673 that causes self.raw.stream() to raise low-level httplib.HTTPExceptions, particularly httplib.IncompleteRead. Because of this, as of v2.6.1 of requests, Response.iter_content() leaks these low-level of exceptions, instead of catching them and wrapping them in RequestException instances.
Issue https://github.com/shazow/urllib3/issues/673 has been fixed in master, but hasn't been released yet.
To fix this, requests could catch httplib.HTTPException along with urllib3.exceptions.ProtocolError, converting both into ChunkedEncodingError. Or requests can upgrade to the newest version of urllib3 when it is released.

Requests will upgrade to the newest version of urllib3 when it is released. =)
Thanks for the report!


textfield component's label position

textfield component's label position changed to right automatically. And there is no props to align them to left.
Is there any way to align labels to left.

@sachindongare029 Use the customization AP

textfield component's label position changed to right automatically.

What did you mean by this?

@oliviertassinari  I haven't changed any style but when I started app in morning. The alignment of labels changed.
Please refer attached screenshot...

@sachindongare029 If you have a minimal isolated reproduction with the latest version (v5.0.0-alpha.30) please open a new issue. I would expect this issue to have already been fixed.


Lease Time

What feature do you want to see added?
The lockable resources shall have a lease time. If it is used e.g. for a license, that license would be blocked during the execution of the job + the lease time. If that additional time is not considered in the lockable resources, the license cannot be checked out in another node than the one before.
Upstream changes
No response
Are you interested in contributing this feature?
No response

I am not sure, what you mean. Can you provide more description,  wished scenario (code)
What you exactly mean with " license cannot be checked"? What should happen? Skip the execution of the scope.  Or lockt the resource for ? How long? Who and where shall decide the additional lease time.


ButtonLink component is shown in the Figma library but not available in the SDK

Describe the bug
There is a ButtonLink component shown in the Figma files that is not available in the SDK. When I try to import ButtonLink from the SDK I receive the error @stripe/ui-extension-sdk/ui' has no exported member 'ButtonLink'.
To Reproduce
Steps to reproduce the behavior:

Try to import ButtonLink from @stripe/ui-extension-sdk/ui into a view
See the error

Expected behavior
It looks to me like this is an intended component (see screenshot from Figma) so it should be exposed to be imported. Or if it is no longer on the roadmap it should be removed from Figma.
Screenshots

Desktop (please complete the following information):

iOS <IP_ADDRESS>
Chrome 100.0

The component now is called link. You can find the doc here. https://stripe.com/docs/stripe-apps/components/link
We will update the Figma library to match the name.


Missing Data

@bmlklwx . @hongtaowu67
I would like to run your source code, however, The data is missing. WOuld it be possible to share the data used in your experiments?
Thanks

The demo data is in here.
Complete outlier and noise data is here
The original data can be accessed through the official repo.

The demo data is in here.
Complete outlier and noise data is here
The original data can be accessed through the official repo.

hi @somdats, thx for your interest. The demo data is in here. Complete outlier and noise data is here The original data can be accessed through the official repo.

Thanks a lot


io File objects in VAPID constructor

I want to use your library in an environment where there actually is no file system. This means that I can not pass in a path string nor a temp file path like you do in the test_get_authorization_header test. It would be very nice if I could pass in my own file objects from io.BytesIO and io.StringIO into the VAPID constructor from vapid.py. This pull request adds this possibility.
It is a backwards compatible change. You can still pass in a string file path and that still just works. I use isinstance for this.
I also added a test for this change: test_BytesIO_keys_get_authorization_header. The other test you already had still pass after my changes.

Hi, thanks for adding, initially I didn't even think about it


Bug dark mode in About

Describe the bug
Bug in dark mode when clicking on the about, it changes to light mode
Expected behavior
Dark mode should be kept when selecting the about

I would like to work on this issue under Hacktoberfest 2022


Remove Tox

Tox was useful initially, but now that we are doing our build  matrices on CI, we don't need it anymore.
Items:

[x] move coverage into makefile
[x] make the CI call the makefile coverage
[x] build docs through makefile as well
[x] check_manifest in make test

closed by #882


Bad label position for small last pie slice

G2 Version: 4.0.8
Platform: Any
Mini Showcase:

CodePen Link: https://codesandbox.io/s/silent-lake-htoz7?file=/src/index.ts

The line goes to the right (correctly) but the label appears on the left (colliding with the other label).

same with #2347, we will solve it in this week.

Sorry for posting a duplicate - didn't see the other one when looking for existing issues. Thanks!


Add auto document generation support

Purpose

Auto document generation support for, Functions, structs, enum and transformer

Goals

By analyzing the node signature, documentation is auto-generated

Approach
Use the code action and workspace command execution pattern

A feature request, we can update an existing documentation block when we add a new param, struct field etc.


Develop DefaultProjectTemplate

Description
Develop a project template to use as a project for the MVP
Acceptance criteria

Implement a checkpoint system
Ideate and implement funding strategy and money management for checkpoints
Ideate and implement funding strategy and money management for project funding
Test contract

We will split this one into smaller tasks


fix: sort the list of TTS voices and reformat the names

Pull Request Checklist
#5939
Before submitting, make sure you've checked the following:

[x] Target branch: Please verify that the pull request targets the dev branch.
[x] Description: Provide a concise description of the changes made in this pull request.
[x] Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
[x] Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
[x] Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
[x] Testing: Have you written and run sufficient tests for validating the changes?
[x] Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
[x] Prefix: To cleary categorize this pull request, prefix the pull request title, using one of the following:

BREAKING CHANGE: Significant changes that may affect compatibility
build: Changes that affect the build system or external dependencies
ci: Changes to our continuous integration processes or workflows
chore: Refactor, cleanup, or other non-functional code changes
docs: Documentation update or addition
feat: Introduces a new feature or enhancement to the codebase
fix: Bug fix or error correction
i18n: Internationalization or localization changes
perf: Performance improvement
refactor: Code restructuring for better maintainability, readability, or scalability
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
test: Adding missing tests or correcting existing tests
WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry
Description

To make it easier to find a specific language/voice, sort the list of voices in the Admin Panel/Audio/TTS Voices drop-down using the user's language. Replace '+' with ', ' in the names returned from the built in speech synthesis to improve readability.

Changed

🔊 Sort list of available TTS voices: Enhanced administrator experience by sorting the list of voices according to the user's language and replaced the '+' sign with ', ' in the voice names returned from the built in speech synthesis.

Thanks!


Support ElasticSearch 7.0.0

Support ElasticSearch 7.0.0
This is feature request.

Hello, super useful project. Also wandering about this - main problem I have is with the fact in 7.0.0 they changed hits/total to be JSON object.

@jiomanRO
Hello, I created feature request only)

I also hope to support ES7.0 as soon as possible.

Sadly I don't think this project is being maintained anymore. I'm going to switch to the official java client

Yesterday I did some simple tests and found that Jest is still usable, but we have to parse the response body ourselves. To be precise, every interface we use needs to be tested and adjusted a little to be safe to use~
So, I will continue to use Jest

hello , es7.x remove type ,so you should do not add the type  if you use jest-client, like this:
String s = "{\n" +                 "  \"query\": {\n" +                 "    \"match_all\": {}\n" +                 "  }\n" +                 "}";         Search index = new Search.Builder(s)                 .addIndex("index")                    .build();
and I tried ,It worked.


[Fast Dependency Scanner] Ensure Swift modules don't depend on self.

When resolving direct dependencies for a given Swift module, we go over all Clang module dependencies and add, as additional dependencies, their Swift overlays. We find overlays by querying ASTContext::getModuleDependencies with the Clang module's name. If the Clang module in question is a dependency of a Swift module with the same name, we will end up adding the Swift module as its own dependence.
e.g.

Swift A depends on Clang A

Add Clang A to dependencies of Swift A

Look for overlays of Clang A, by name, and find Swift A

Add Swift A to dependencies of Swift A

From what I can tell, the logic upstream is sound, and getModuleDependencies is doing the right thing, so this change is simply restricting what gets added when we are resolving direct dependencies and looking for overlays.
Resolves rdar://problem/63731428

@swift-ci test

Build failed
Swift Test OS X Platform
Git Sha - 14051e0d5b5bee5da52a0d911147d04a758a579c

Build failed
Swift Test Linux Platform
Git Sha - 14051e0d5b5bee5da52a0d911147d04a758a579c

@swift-ci test

@swift-ci test

Build failed
Swift Test Linux Platform
Git Sha - 14051e0d5b5bee5da52a0d911147d04a758a579c

Build failed
Swift Test OS X Platform
Git Sha - 14051e0d5b5bee5da52a0d911147d04a758a579c


⚠ HawkeUno has degraded performance

In da53975, HawkeUno ($UNO) experienced degraded performance:

HTTP code: 403
Response time: 2245 ms

Resolved: HawkeUno performance has improved in ad7c733 after 7 minutes.