Retry request if client meets errors

Refer to https://github.com/engula/engula/pull/781#discussion_r903699925.
If EngulaClient's requests fail for metadata outdated, we may find a way to retry.
However, currently our router state is built only if receive watch events, while HBase client would active request latest metadata (router state). @zojw do you have more input in this issue? Otherwise we can do no more than barely retry several times and hope that the state updated.

Otherwise we can do no more than barely retry several times and hope that the state updated.

I think the router can add a watch function, when each request needs to be retried, call the watch and wait for the timeout or the expected metadata update.

@w41ter It seems we should add a timeout mechanism first 😆
I like your proposal but the issue is that if we wait for retrying current request, shall we proceed other incoming requests? Basically a client should hold a property that every request is handled sequentially.

@tisonkun The assumption of this approach is that the client does not need to guarantee that requests are handled sequentially. 😆
Is there any case that the client needs to handle requests sequentially? My previous understanding is that most systems do not require client guarantees the request order (if there is an ordering requirement, a mechanism like gRPC's stream will be used).

@tisonkun The assumption of this approach is that the client does not need to guarantee that requests are handled sequentially. 😆
Is there any case that the client needs to handle requests sequentially? My previous understanding is that most systems do not require client guarantees the request order (if there is an ordering requirement, a mechanism like gRPC's stream will be used).

I think tison's questions: req1 meet epochNotMatch, at the same time req2 for same group should aware the failure of req1 and wait  epoch catch up the server

@w41ter that sounds reasonable. If a user depends on sequential guarantee, they can write code like:
let v = co.get(k).await?; // (1)
co.put(k f(v))await?; // (2)

... which (2) is always executed after (1) returned (transparent retries).
The put method can be:
pub async fn put(k, v) -> ... {
    while let res = put_inner(k, v) {
        if need_retry(res) {
            // register watcher in router and await
         } else {
           return ...;
         }
    }
}

does req2 should aware the failure of req1 and wait epoch catch up the server?

No. It's over "smart". We should keep independent requests independently.


No delete for workflow

Hi,
why there is no delete for workflow def? i could see for task but not for workflow in metadata management. if i want to delete the definition from metadata, how can i do so?
Note : using 1.7 version of conductor.

@amoolya19 we haven't exposed delete yet.  This is something we will address in 1.8

Hello @v1r3n,
Thanks for the information. You are talking about 1.8, is there any information available regarding the roadmap/versions somewhere? This page https://github.com/Netflix/conductor/wiki/Conductor-Roadmap does not mention the soft delete for instance.
Have a nice day!

Until is not addressed here is a small workaround:
Make sure the server container is running then:
docker cp <CONTAINER_NAME>:/app/config/config-local.properties .
Edit the config file and change the loadSamples key to false.
You have to restart the container but not recreate from image. Use docker commit to create a new image with this small change.


Broken links for Example and Test Data Page

There are a couple of broken links on the example and test data  page. The ESRI Shapefile and DEM data set links produce page errors.

Yeah, those links continue to break...the data resources the ref continue to get moved. I think we should delete that page entirely probably because of this.
You can find some curated datasets here, https://visit-dav.github.io/largedata/datarchives.html
But, we need to expand and probably taxonomize that (or some facsimile) to include our whole test suite data, minimally, plus any others we can publicly host or reference.

@griffin28 I've made an attempt to improve the broken links. The new links work but won't take you to exactly the datasets used to produce the images they are associated with.
Companies hosting the data have changed what datasets they host over time. Its concievable 2000 data is too old to be of interest to host now.

Thanks @markcmiller86 !


Duplicate Comments

Everytime I reload the PR or open a file again, another copy of a comment is added to each comment thread giving many duplicates.

Extension version: 0.11.1
VSCode Version: 1.38.0
OS:Ubuntu 16.04
Github Enterprise: 1.17.3
Steps to Reproduce:

1.Click on file in sidebar to bring up diff.
2.Close diff
3. Open diff again

Thanks for reporting this, taking a look into this now. This is a duplicate of https://github.com/microsoft/vscode-pull-request-github/issues/1337 so let's track the problem there.


Missing phone number in Essentials

Describe the bug
Some of the results only show the telephone icon but not the phone number. This may happen if a certain result doesn't have a phone number.
To Reproduce
Steps to reproduce the behavior:

Click on  'Essentials'
In my area, clicking on the 'Lab' tag reproduce the issue.

Expected behavior
No telephone icon when the phone number is not available.
Screenshots

Desktop:

OS: Windows
Browser: Chrome
Version: 83

Can i work on this issue?

I want to claim this issue once it's status is changed to available.


Coverage: Abstract contract coverage

There is no coverage for abstract contracts because they do not have bytecode or source maps of their own.
This requires a big-ish rewrite of some of the logic that finds coverage items and anchors

Yes, any project with an abstract contract will fail currently

I'm in the same boat as @frimoldi  as far as I can see.

Your test contract inherits from an abstract contract, so the analysed code uses an abstract contract and thus breaks

Not quite. I was able to run forge coverage by getting rid of the /scripts contract.
Seems like abstract contracts on tests are ok?

Might be unrelated to this then; abstract contracts are definitely not supported as they should be right now. For example, if you have an abstract contract in your actual code base, in the worst case it will prevent you from using forge coverage, and in the best case it will just not generate any coverage info at all for the contract
If you had posted the original error message w/ some additional context I could give you more insight but it's hard to do without :/


Attempt to respect dispatch type additions from middlewares

Connected to #211

So redux-thunk has typings (need to be installed using @types for now since they are in unreleased commits).  They do something interesting to allow typed raw redux to dispatch functions: they export an overloaded type for the Dispatch function type:
https://github.com/gaearon/redux-thunk/blob/master/index.d.ts#L8
Since ng2-redux wraps redux, we don't automatically benefit from this. Unless of course we use Redux's Dispatch type as the type argument for NgRedux.dispatch instead of a custom one.

@e-schultz this appears to fix #211: thoughts?


Bryan

Jennifer and I each forked your master branch; she's working on tests, I have prelim code for Passport module implementation. We didn't merge our branches (out of slight confusion!) so this is just the code from me. Would love advice on best practice to merge our separate branches.

Can you describe your pull request in the title? What feature is this pull request for?


SWIFT-1041 Implement support for setup and teardown code via an extension to Application

This just adds the setup and cleanup methods.

@0xTim I can't seem to request a code review from you but I just invited you to have "read" permission for this repo which might enable that? In any case, this is the PR I mentioned 🙂

@0xTim I can't seem to request a code review from you but I just invited you to have "read" permission for this repo which might enable that? In any case, this is the PR I mentioned 🙂

Mostly looks good to me! Couple of tweaks I'd suggest:

Definitely add an extension for accessing the MongoDB client via Request - you can then ensure that any MongoDB requests are made on the right event loop to avoid having to hop back onto the request event loop
The Vapor idiom would be to have something like application.mongoClient.configuration for configuring the client rather than a separate function on application. Effectively that namespaces it to the view of the end-user but that's definitely a stylistic change to match the rest of the ecosystem rather than anything necessary

Mostly looks good to me! Couple of tweaks I'd suggest:

Definitely add an extension for accessing the MongoDB client via Request - you can then ensure that any MongoDB requests are made on the right event loop to avoid having to hop back onto the request event loop
The Vapor idiom would be to have something like application.mongoClient.configuration for configuring the client rather than a separate function on application. Effectively that namespaces it to the view of the end-user but that's definitely a stylistic change to match the rest of the ecosystem rather than anything necessary

oh hmm. I don't seem to actually be able to push to Nataly's branch. she was doing a rotation on our team and started this work but I'm picking up the rest. let me see if I can figure this out....

oh hmm. I don't seem to actually be able to push to Nataly's branch. she was doing a rotation on our team and started this work but I'm picking up the rest. let me see if I can figure this out....

nvm, figured it out 🙂

nvm, figured it out 🙂

@0xTim thanks! re Nimble not in particular, we just like the style of writing expectations so we switched to it in the driver way back and have stuck with it since 🙂 you can add custom matcher functions, so it's been really convenient there to support some more complex assertions we often make.

@0xTim thanks! re Nimble not in particular, we just like the style of writing expectations so we switched to it in the driver way back and have stuck with it since 🙂 you can add custom matcher functions, so it's been really convenient there to support some more complex assertions we often make.


Add Supervisor shutdown options

The original issue that I was facing was that supervisors never actually killed their child processes, thus leading to a memory/process leak when my system was running for about a week.
This pull request implements the two strategies that erlang's supervisor employees, timeout and brutal kill.
The root cause of why actors never exit with erlang:exit(pid, normal) is still unknown.

Update:  I discovered that using erlang:exit(Pid, normal) from an external process does not stop the process.
I've updated my PR to use erlang:exit(Pid, shutdown).  This successfully stops the actors and everything looks perfect.
I've also discovered if your actor traps exits, then you'll have to match on the following in your actor to shut it down, otherwise, it will timeout -> brutal kill.
 Down(ExitMessage(_supervisor_pid, Abnormal("Shutdown"))) -> {
      actor.Stop(Abnormal("shutdown"))
  }


msal-angular 1.0, Google IdP - ClientAuthError: Token renewal operation failed due to timeout when user is signed in with multiple accounts

"msal": "^1.3.2",
"@angular/common": "~10.0.3",
I set up Google as an external IdP and when user is logged in with multiple Google accounts in a browser then I get this error when trying to issue a request to my web API:

ClientAuthError: Token renewal operation failed due to timeout.

Here's the demo basically - https://themoscow.video/demo/en/concerts. First, try to sign in with some Google services using multiple accounts (so the next time you sign in Google will present an account selection screen). Then go to this page, register and when you're logged in you should see the error in the console.
The code for the interceptor:
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor(private msalSvc: MsalAuthService) {}

  intercept(
    req: HttpRequest<any>,
    next: HttpHandler
  ): Observable<HttpEvent<any>> {
    if (this.msalSvc) {
      return this.msalSvc.getGuestAccessToken().pipe(
        map((token) => {
          if (token) {
            const tokenValue = "Bearer " + token.accessToken;
            return req.clone({ setHeaders: { Authorization: tokenValue } });
          }
          return req;
        }),
        mergeMap((request) => next.handle(request)),
        catchError((error) => {
          console.error("error in the interceptor");
          console.dir(error);

          return throwError(error); // "Error occurred while preparing request to the server"
        })
      );
    } else {
      throw Error("Auth Service is undefined: NO auth header!");
    }
  }
}

@alvipeo Unfortunately, this a known issue that we have flagged with the B2C team. We will be tracking its progress in issue #1934, and will close this issue.

I faced the same issue. I solved this (for v1.3) by passing in login_hint to to Google idp, like so:

Then in my outputClaims in the same TechnicalProfile, I used a separate claim preferred_username with PartnerClaimType as email and then passed that claim out in the token from the relying party policy as well.
Then I passed that claim in to the loginHint parameter like so in msal.js
this.msalInstance.acquireTokenSilent({
    scopes: appConfig.msal.scopes,
    loginHint: preferred_username
})

Hi!
I opened a ticket for Azure AD B2C team, they're working on it.


Opni should collect audit logs

Today rancher-logging collects both Rancher and Kubernetes audit logs.  Opni should also do this.

Implemented in https://github.com/rancher/opni/pull/1666

Implemented in https://github.com/rancher/opni/pull/1666


Support for shouldShowRequestRationale

I was wondering if we can add support for shouldShowRequestRationale as mentioned in the recommend flow of permissions by Google
Infact, I was trying to do the same, but I am not too sure about the implementation

@ForceGT I believe that we should acquire this information from the UI layer itself. i.e. from activity/fragment/composable itself

I agree on that, and that is probably where my confusion is
How do we get an Activity from a Composable?, as far as I know, each app starts with a ComponentActivity but down inside you don't really know if the Context can give you an Activity instance

For that, you can create a utility for getting Activity in compose, like this ⬇
fun Context.findActivity(): Activity {
    var context = this
    while (context is ContextWrapper) {
        if (context is Activity) return context
        context = context.baseContext
    }
    throw IllegalStateException("Unable to retrieve Activity from the current context")
}

Closing this issue, since it's not required. Feel free to discuss though.


AXCIOMA model progressive deployment additions

Issue and tracking information
Developer's time Estimated effort to fix (hours): 163.5
Developer's Actual time spent on fix (hours)
Issue reporter to provide a detailed description of the issue in the space below
In the AXCIOMA model both  and  definitions should be in the descriptor files for non-local client or server ports that are defined on components, even if they are not connected to anything (like a non-deployed “surrogate” component) in the deployed assembly.  Also, if non-local, then there should also be a reference to the client or server connector component  in the  container process definition that contains the parent component executor, even if there is no  in the same CDP to connect to it automatically at startup.  This allows for dynamic connectivity later on.

Fixed by PR #51

I have noticed a few more issues here. The first one being that a progressive connections for a Facet should not have a second connection (The one with the external reference).  External references are only ever available for facets. Second, the name in the external reference for a receptacle is not being populated correctly. It should be the string value used in the "nl.remedy.it.DnCX11.RegisterNaming" property for the component that has the facet that the receptacle is connecting to. I have attached 5 CDP files to help show the difference. The first, ClientServer.cdp.txt, is the example as a whole. The next two, EchoServer_comp.cdp.txt and SourceClient_comp.cdp.txt are the results outputted by CX. Lastly, EchoServer_comp.cdp.working.txt and SourceClient_comp.cdp.working.txt are examples of CDP files allowing progressive deployment to work.
ClientServer.cdp.txt
EchoServer_comp.cdp.txt
EchoServer_comp.cdp.working.txt
SourceClient_comp.cdp.txt
SourceClient_comp.cdp.working.txt

Please attach the model for which the cdp files are being generated. You can put everything in a zip file and upload it here.

Attaching zip with the model file.
progressive.zip

Second, the name in the external reference for a receptacle is not being populated correctly. It should be the string value used in the "nl.remedy.it.DnCX11.RegisterNaming" property for the component that has the facet that the receptacle is connecting to.

Components in the attached model do not have any value for the "nl.remedy.it.DnCX11.RegisterNaming" property. But, in your “SourceClient_comp.cdp.working.txt” file, location for the external reference has the following value (this seems incorrect following the requirement mentioned above):
corbaname:rir:/NameService#echoServer_comp_echoConnectFacet
Whereas the “SourceClient_comp.cdp.txt” has the following value (which seems correct following the requirement mentioned above as the ‘RegisterNaming’ property value is empty)
corbaname:rir:/NameService#echoServer_comp
Could you please confirm if the latter one is actually the working version?

Sorry, The only  DnCX11.RegisterNaming value in the EchoServer_comp file (echoServer_comp_echoConnectFacet) is the one that we need the location value to point to in the SourceClient_comp file: corbaname:rir:/NameService#echoServer_comp_echoConnectFacet
This is how the middleware knows how to find the Component/entity that provides the facet that the connection is looking for.
Since the entity "ClientServer_asm.echoServer_comp.echoConnectFacet"  is the entity that has the facet that we are trying to connect to, we need to use the RegisterNaming that is associated with it

Thank you for the clarification. PR #62 is created for addressing the issues.


User suggestion: Week horizontal line

A user suggested that the line of the full ours should be bolder than the half our lines.
@MalteBartels What do you think of this? Is it worth changig it or will be drop this kind of view component in further versions?

Done


TBB uses @rpath on macOS

Describe the bug
The TBB library has @rpath set in the dylibs and/or install names of dylibs are wrong (not absolute paths).
This causes issues when linking against TBB, I think. I'm not sure, but the packages I have been working with always had the entire path specified. Maybe this is related to #91773, though.
To Reproduce
Steps to reproduce the behavior:

install TBB on macOS: nix-env -i tbb-2019_U9
cd into install directory, for example: cd /nix/store/1g22i3bj0fdm9x5d9fjnfaganr1bq270-tbb-2019_U9
show dependencies/install name of dylibs: otool -L lib/*.dylib

Expected behavior
I think that the dylibs should be installed with an absolute path as install name, i.e. /nix/store/…, etc, to make linking against TBB possible.
Screenshots
 lib % pwd
/nix/store/cakh7lwipbml8b5i1sy9ispms3p9dmkg-tbb-2019_U9/lib
 lib % otool -L *
libtbb.dylib:
	@rpath/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
	/nix/store/nb9givrwj0m1jbjf65x4g4i6y1n7pjf0-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
	/nix/store/cssjpd1zzddj6md9n4wgxngyv50ha3wj-libc++-7.1.0/lib/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
libtbbmalloc.dylib:
	@rpath/libtbbmalloc.dylib (compatibility version 0.0.0, current version 0.0.0)
	/nix/store/nb9givrwj0m1jbjf65x4g4i6y1n7pjf0-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
libtbbmalloc_proxy.dylib:
	@rpath/libtbbmalloc_proxy.dylib (compatibility version 0.0.0, current version 0.0.0)
	/nix/store/nb9givrwj0m1jbjf65x4g4i6y1n7pjf0-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
	@rpath/libtbbmalloc.dylib (compatibility version 0.0.0, current version 0.0.0)
	/nix/store/cssjpd1zzddj6md9n4wgxngyv50ha3wj-libc++-7.1.0/lib/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0)

Additional context
I'm trying to make opencascade (OCE) compile/work on Darwin/macOS, to have it as alternative to opencascade (OCT) on macOS for KiCaD
Notify maintainers

@thoughtpolice
@DIzFer
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
% nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-darwin"`
 - host os: `Darwin 19.5.0, macOS 10.15.5`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.3.7`
 - channels(hannesweisbach): `""`
 - channels(root): `"nixpkgs-20.09pre239930.b4aa1309779"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Does adding fixDarwinDylibNames to nativeBuildInputs of TBB fix this?

Thanks! It seems to do the trick: the dylibs now have an absolute path.
Let me try building/installing OCE/KiCad with that change and if that works I'll make a PR.

Ok, I can confirm that this fixes my issue and results in a working version of KiCad using OCE with TBB for me.


Notification enabled before secured

Describe the bug
See notify_connected in subsys/bluetooth/host/conn.c.
When all callbacks are executed gatt is notified. It seems OK except that it leads to data exchange before security is established (we get information about service's notification).
I seen it while trying to move the code where we sent data for the first time in the app. Can be worked around but maybe should be fixed some other way.
To Reproduce
N/A
Expected behavior
I expected no exchange before security is set.
Impact
?
Screenshots or console output
N/A
Environment (please complete the following information):
master
Additional context
N/A

So what data is being exchanged? If there are notifications/indications that don't require security that should be fine, or there is something else going on?

@pdunaj can you please add more information here?

Hi @Vudentz , when the bug was discovered our app was starting to send HID data when callback informing about notifications being enabled was delivered. This callback can be delivered however before security is established. We added a check for security and now data is sent only when both notification and security are enabled.
Since notification enabled callback is delivered before security is established I was wondering if this is a correct behavior. Theoretically somebody could push the information about notification enabling before security is done and there will be no way of validating that I think. Then device will try to send data to central that did not enable notifications.

Hi, it seems that the problem is inside service that we use as it sets BT_GATT_PERM_READ (instead of BT_GATT_PERM_READ_ENCRYPT) for this notification. This is not configurable. HID service is in NCS and problem was already mentioned to @kapi-no .
The same thing is present in DIS and BAS in Zephyr. They define characteristics with PERM_READ with no option to configure it.

BTW - thanks @joerchan for pointing the problem.

@Vudentz @joerchan
We now discussed this with Joakim and went back to the discussions we had when we implemented this in the SoftDevice.
The GAP spec says:
<IP_ADDRESS> Handling of GATT indications and notifications

A client “requests” a server to send indications and notifications by
appropriately configuring the server via a Client Characteristic Configuration
Descriptor. Since the configuration is persistent across a disconnection and
reconnection, security requirements must be checked against the configuration
upon a reconnection before sending indications or notifications. When a server
reconnects to a client to send an indication or notification for which security is
required, the server shall initiate or request encryption with the client prior to
sending an indication or notification. If the client does not have an LTK
indicating that the client has lost the bond, enabling encryption will fail.

Note in particular the sentence security requirements must be checked against the configuration upon a reconnection before sending indications or notifications.
Back when we implemented this internally we decided that trying to notify or indicate a characteristic whose CCC's write security permissions were higher than the current security level of the connection should fail, so the corresponding notify()/indicate() functions return ERR_FORBIDDEN.
In the case of Zephyr we have two choices in my opinion:

Return an error when the application calls bt_gatt_notify() or bt_gatt_indicate() with the current connection security level lower than the write security permissions of the CCC.
Trigger the security procedure automatically whenever the application calls bt_gatt_notify() or bt_gatt_indicate() with the current connection security level lower than the write security permissions of the CCC.


Option to isolute cache between matrix builds

For some cases it would be useful to isolate the cache between matrix builds. This is currently possible via when:, but one has to repeat a lot, especially when the matrix is big.

Since the separate matrix build cache adds an extra nested folder, please clear your cache beforehand. You can now also do this by adding [CLEAR CACHE] in your commit message.

You can now also do this by adding [CLEAR CACHE] in your commit message.

Wohhoo awesome! Thanks :)

Is the cache now isolated by default? Because most of the time (e. g. caching .git/), I don't want that.

Yes, the cache is now isolated by default (per matrix job). Caching common stuff (like .git/) will still work, the only thing is that .git/ is cached per job separately.

Okay I can live with that. But for very large caches and huge matrices, some people might miss the old behavior.

I agree, and I've thought about making it configurable. I'm struggling to figure out a way to cleanly specify which caches to share, and which not to share though. I'm open to ideas about this.
Either way, we'll figure it out soon and implement it.


Sound Error

Hi,
We are playing on a dedicated server and just updated to the latest version 1.0.2. After playing for a while I logged off near my fission reactor and have not been able to load into the server since. The whole game crashes trying to connect to the server. The crash report is below. It claims there is a sound reporting null from the fission reactor controller as far as I can tell.
I am the only one experiencing this issue so I am not sure if it can be reproduced.
https://pastebin.com/GPCRzqYf

Please tryout latest build


Add cross_navigation_config schema

as a draft PR related to https://github.com/snowplow/iglu-central/pull/1327

Cherry picked to R152


Issues with Tweeds' config screens

This happens with Tweed's ModMenu entry only when a world is open.
When the user clicks to select the entry in ModMenu the config opens instantly and cannot be closed easily.
I don't know why this happens but I would suspect that this happens because I provide both the screen as direct mod screen but also through the library-provider. As such I would claim that this is a fault on ModMenu's end.

See Siphalor/tweed-api#8
Edit:
An easy way to reproduce is to download the latest Mouse Wheelie release for MC 1.16.1.
Then enter a world escape and open the mod menu.
Click on the entry for Tweed (might have to toggle view libraries first) and enjoy the trap that you're in then.
Like Madis noted the only way to have a chance to exit is to hold escape :)

Why would your screen be reopened? Mod Menu only ever does that when you click the button.

I did some debugging:
When rendering a config screen you call ModMenu#hasConfigScreenFactory.
Inside of this function, for whatever reason, you call the create of the screen handler.
Tweed's default create function has side effects. In fact if the player is in a world it will return a wait screen and send a packet to the server requesting the server configuration. When that packet arrives Tweed will open the configuration screen on it's own.
I never thought anything bad about that because it's totally undocumented that the create handler can randomly get called.
There are two ways out of this:

Get rid of calls to create when it's not meant to create a screen.
Document that the create function shouldn't have any side effects. And then I'm gonna have to hack something together to get Tweed working the way it should.

Well, I need to be able to create a screen in order to tell if it exists and if button should be enabled or not. Hmm. IMO you shouldn't be opening a screen just based on data being sent. Could the data be cached somewhere and only accessed when the screen opens naturally?

It probably could.
I would then need to to extend vanilla's NoticeScreen that I'm currently using and build some stuff around it.
Can't you just define that all mods that don't declare screen factories for other mods will have to provide a config screen?
Also a bit unrelated: Currently a config library can't provide a config screen for itself using the id-to-screen-factory map. It always needs to override the other, normal method as well.

I think this was resolved on Tweed's end

I think this was resolved on Tweed's end


azfile: Update azcore and azidentity versions

[x] The purpose of this PR is explained in this or a referenced issue.
[x] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[x] Tests are included and/or updated for code changes.
[x] Updates to CHANGELOG.md are included.
[x] MIT license headers are included in each file.

/azp run go - azfile


Adding github username for Aya Salama

Adding GitHub username for Aya Salama, Task 1 Mentoring Project

Thanks @Aya-S, great job.
Do you mind in a separate PR, to add at the end of the README file a section Things we learned (use any name you want for the title), and if you already learned something, add bullet points briefly explaining.
Thanks!

@datapythonista  there seems to be a merge conflict. should I fix it via the "Resolve conflicts" button above or through the command line via another PR?

I think for now it's better if you make it locally, you understand better the process. But up to you.

Do you mind adding the things we learned section in a separate PR? Thanks

Hi @datapythonista I'm not sure why were the changes automatically linked to this PR. when I tried to open a new PR I was lead to this older one because the new commits were already " automatically" linked here. was it because it was still open? or maybe because of the merge conflict?

There is something quite tricky going on, that's why I was forcing this error to happen. :)
A PR is nothing else than a fancy web page for a branch published in your remote branch. Doesn't really matter if they are open or close for this.
The problem here, is that when you create a new branch (e.g. git checkout -b new_branch), the branch is created from the active branch at that time. If that is always an unmodified master that is the same as the latest version of the original repository master, then everything works as you'd expect. But if you modify master (adding your username), and then you create a branch for it, your new branch will contain those changes with your username. Same if you create a branch from another branch.
The moral of the story is that if you want to work on independent changes, you need to always keep your master branch clean (without your own changes), updated, and always fork from master.
Does this make sense?

@datapythonista  yup, makes sense.
will do some cleaning up and create a new branch from a clean master as things go unnecessarily messy already. I will actually refork and start clean and take care not to do edits on the local master branch.

Aya, I had the same issue, you can do a pull request from upstream
(pandas-sprints/pandas-mentoring) to your local as well. And you can
approve it and it will update your master/branch whichever you wanted to
update. Please check this as well.
On Wed, 31 Jul, 2019, 7:21 PM Aya Salama<EMAIL_ADDRESS>wrote:

@datapythonista https://github.com/datapythonista yup, makes sense.
will do some cleaning up and create a new branch from a clean master as
things go unnecessarily messy already. I will actually refork and start
clean and take care not to do edits on the local master branch.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/python-sprints/pandas-mentoring/pull/50?email_source=notifications&email_token=AK6A2Z726G3KMYWSAQYKWUTQCGKFVA5CNFSM4IH3WLBKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3HKALQ#issuecomment-516857902,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AK6A2Z6QKP76UH3N7PJS7M3QCGKFVANCNFSM4IH3WLBA
.


Fix backfill when dataset only has one cache entry

fixes #2274

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (9d157f3) 91.30% compared to head (385a2ac) 87.24%.
Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2375      +/-   ##
==========================================
- Coverage   91.30%   87.24%   -4.06%
==========================================
  Files         256      113     -143
  Lines       15513     4321   -11192
==========================================
- Hits        14164     3770   -10394
+ Misses       1349      551     -798

Flag
Coverage Δ

jobs_cache_maintenance
94.40% <ø> (ø)

jobs_mongodb_migration
86.11% <ø> (ø)

libs_libcommon
?

services_admin
87.92% <ø> (ø)

services_api
86.01% <ø> (ø)

services_rows
82.95% <ø> (ø)

services_search
80.95% <ø> (ø)

services_sse-api
94.19% <ø> (ø)

services_worker
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Let's examine the list of datasets with the bug.
iNeil77/paired-single-code-2'
Deleted (or private?) https://huggingface.co/datasets/iNeil77/paired-single-code-2
But it has not been deleted
Maybe a concurrency issue between:

the job that was running to create the cache entry
the webhook that deleted the cache entries and the job entries
When we remove a dataset, we delete, in order: the jobs, then the cache entries, then the assets and cached assets.
Note that we don't delete the job locks... should we? maybe it's related?

Remaining
leyanpan/sat-solver
Leogrin/real-toxicity-prompts_first_5K
ayymen/Weblate-Translations
CyberHarem/miyu_edelfelt_fgo
Recag/Rp_CommonC_241
Recag/Rp_CommonC_151
CyberHarem/golden_hind_azurlane
cutterd/gelgen_tar_29
Recag/Rp_CommonC_539_1
lchakkei/OpenOrca-Traditional-Chinese-ChatML-Format-TwoPercent
jarvisx17/Medical-ASR-EN
Treza12/Cancer-Dataset
yn01/test_20240124_01
Recag/Rp_CommonC_412_1
x_stance
nekoknights/catchthesedeals
kenhktsui/open-toolformer-retrieval-multi-neg-result-new-kw
iNeil77/paired-single-code-2

I replicated https://huggingface.co/datasets/kenhktsui/open-toolformer-retrieval-multi-neg-result-new-kw, run set_revision on it, and effectively, the DatasetBackfillPlan contains 0 tasks, ie: it will not create the missing cache entries!

In fact, we have two bugs:

at some point, a cache entry is created, but all the jobs are deleted
in the backfill cron job, the dataset is "updated", but the jobs for the missing cache entries are not recreated as they should

The bug 2. is reproduced in https://github.com/huggingface/datasets-server/pull/2375/commits/8d979ae228d6f46e386492ea681128a7013ff973. Let's try to fix it.

OK. I think it's OK: we do a real backfill on all the steps, in the backfill cron job. Beware, it might be too long, maybe we could parallelize. Let's do it in another PR.


River starts indexing and appending after elasticsearch restart

We use EC2 instances to host elasticsearch which we stop every night and start in the morning. When the instance starts, it triggers a river build and starts appending to already existing indices resulting in duplicate data.
How can we stop this from happening?
(If the solution is to delete the river settings after the index has been built then it does not help us as it is not possible to know when the river build has been completed.)

The only method with rivers to stop is to delete a river.
The next version of JDBC plugin will no longer use river API.

Thanks jprante.
I've deleted the river using curl and it works. But the _state is not reset after I deleted the river. How do I reset the state using curl?
curl -s -XGET "host:port/_river/jdbc/my_river/_state?pretty"

This is a known bug :( Please use another river name, this should work.

:(
That's going to be a problem for me. I can't change the river name. Is there no raw elasticsearch curl command with json that that I can PUT or POST to reset the fields of state?

I will try to fix the bug in the next few days.

I have released JDBC plugin <IP_ADDRESS> / <IP_ADDRESS> with a fix that clears the cluster state when a river is removed.


Change language prior to giving consent to legal information

Will the user be able to change the language during the first initial set-up? Maybe the user set the phone to German to learn it but would need the legal information, she is prompted with, in another language to understand the details.

Internal Tracking ID: EXPOSUREAPP-2170

@jucktnich
Thanks for the hint. I've moved it to the Android repo.

Corona-Warn-App Open Source Team


Formatter: parenthesize_long_type_hints preview style

Implement Black's parenthesize_long_type_hints as a preview style in Ruff.
def foo(
    i: int,
    x: Loooooooooooooooooooooooong
    | Looooooooooooooooong
    | Looooooooooooooooooooong
    | Looooooong,
    *,
    s: str,
) -> None:
    pass

# Formats now to

def foo(
    i: int,
    x: (
        Loooooooooooooooooooooooong
        | Looooooooooooooooong
        | Looooooooooooooooooooong
        | Looooooong
    ),
    *,
    s: str,
) -> None:
    pass

This seems to be similar to what Ruff used to have but we reverted in https://github.com/astral-sh/ruff/pull/8233. We should investigate why Black isn't breaking the list on the left for
tags: List[str] = [],  # noqa: B006 - ignored by automatic migration, but should be fixed

Which people found ugly. Maybe it's because of https://github.com/astral-sh/ruff/issues/6975?

heya, author of the PRs that added the feature in black. Lemme know if you encounter anything weird or wonder something about my implementation choices.

We've implemented the changes for parenthesizing type hints in annotated assignments but are holding off on implementing the proposed layout for type hints in parameters. See https://github.com/psf/black/issues/4123 for the rational.


Assessment Dashboard does not load

Dashboard is broken, Tutors cannot assess submissions anymore if they assessed (saved/submitted) at least one.
Sentry Issue
https://sentry.io/organizations/ls1intum/issues/2103235573/?end=2020-12-23T11:30:40&project=1440029&query=is:unresolved&sort=freq&start=2020-12-23T09:00:40&utc=true
Screenshot

Cause

I linked and merged some sentry issues here. Have a look at those as well, seems to be a problem at multiple places.

Thanks for the detailed report @MaisiKoleni
@SimonEntholzer @nicolasruscher we should always avoid using null in the client code and instead use undefined.
When it comes to checks for undefined, please always use != and == instead of !== and ===.
And try to avoid the use of the force operator ! to avoid compile errors / warnings. There is a good reason for those compile errors / warnings, in particular if variable values can be undefined.
This is also part of our client coding guidelines. If it is not really clear there, we should update those as well.

Should be fixed now. It is currently deployed to production. Please check if it works.
In case you'll find additional or related issues, feel free to reopen this issue.


it is not automatically  open api

very hard to impl open api in go lang but in python fastapi is very fast
here all thing occured in coomment it is chip

what is the question?
how can we help ?


use CRAN version of gert once available

This doesn't seem a high priority to me, the docker images should all have command line git installed so you can just rely on that for the limited git actions you need.

yup, I'm just using gert for now, but will probably just migrate to system() or processx to call git as you suggested.
gert also seems a bit too limited anyway.
I am writing the "business" logic of the programmatic commits in R, not bash.

gert doesn't work anyway because
── 1. Error: can be detected (@test-prog_com.R#4)  ─────────────────────────────
libgit2 error in git_signature_default: config value 'user.name' was not found (7)

libgit2 is only required for gert, so it's not worth it to get this to work.


Usability Review & Feedback

Foreword

First of all, thanks for providing this great web app!
Below you will find a compact review and some feedback, most of it pretty self-explanatory.
If you'd like to follow up on any of these concretely, feel free to make standalone issues from them.
And in those issues feel free to ping me via an at-mention for further input or review if desired.

Very modern ASCII Art paradigms — Great!

Elements as vector objects which remain editable/move-able (as opposed to destructive editing)
Infinite canvas - On export it is as large as it needs to be to fit all content
Local Storage + Nice URLS to local storage - Wow! Nicely done!

Wide variety of export options

Various Comment Types to conveniently paste it into the markup/environment of your choice

Great usability

Panel in 3 sizes: Closed (as floating action button) > Normal Tool Panel >  Tool Panel with Help
Dialogs remember the last choices (e.g. Comment Types in Export dialog)
Holding down alt showing shortcuts near tools
Letter input changes Freeform character. Does that only when Freeform tool is selected to not be in conflict with other tools/modes/shortcuts.

Minor flaws

Side panel should have inner scroll: With many files or with help open on small screens it is cut off.
File renaming dialog: ESC bound to "Cancel", ENTER should be bound to primary action (Create / Rename).

Bugs

Undo (⌘ Z) / Redo (⇧ ⌘ Z) works on Mac in Google Chrome but not in Safari

Usability Improvements

Tool shortcuts

ALT 1-6 as shortcuts for the tools is not a good mnemonic.
Should better be letters corresponding to the tools, idealy compliant with conventions of design apps. I propose the following:
alt-R Rectangle - Rectangle is the generic form, square the special form, achieve 1:1 aspect ratio with shift-key down
alt-O Oval - Again the name of the generic form, a circle the special form, plus the letter "O" has the shape of an oval too as an additional mnemonic.
alt-V is the standard in design apps for the selection tool, V has a pointer/arrow-like shape.
alt-F Freefrom
alt-A Arrow
alt-L Line
alt-T Text

Pan & Zoom

Uses outdated interaction scheme from 1990ies design apps and desktop publishing apps: SPACE to pan, scrollwheel to zoom.
On devices with multitouch-trackpads, standard since ca 2010, this would be the more contemporary UX: Two-finger scrolling (on X and Y axis) + pinch-gesture for zooming in/out (Z axis).

Missing features
More geometrical shapes than just boxes

#43
#71
#229

Improvements for existing tools

#43
Free form tool gets function Use custom character

Scrollbars would be more intuitive; why the current fashion is to hide them altogether?


plotting raw value tries to GROUP BY

i'm trying to plot a single value without aggregation

and the datasource is being queried like that:
{"stmt":"SELECT count(*) FROM \"mruepp\".\"missionj\" WHERE timestamp >= ? AND timestamp <= ? AND payload['fieldname'] = 'Weight PCR_Line01' GROUP BY , payload['value']","args":[1479547509769,1479569109770]}

but it should be:
{"stmt":"SELECT payload['value'] FROM \"mruepp\".\"missionj\" WHERE timestamp >= ? AND timestamp <= ? AND payload['fieldname'] = 'Weight PCR_Line01'","args":[1479547509769,1479569109770]}

ok, could debug this further - problem occurs if the Group By Time Interval is set to Auto

It's because we invoke SELECT count(*) query first to determine amount of points to return and select proper Group By Time Interval. See #11. Can you show second query (after SELECT count(*))?

it seems like there is a new problem. auto does now a query crate can't handle anymore.

what do mean by show second query?

hm, it worked now. there seems to be some edge case.

can't reproduce it anymore.

is this still an issue for you @jodok?

yes, still an issue. is there a way i can help to debug?

@alexanderzobnin we narrowed it down to having no alias set.


Information is lost during URDF -> SDFormat conversion

This is a meta ticket to capture the types of information that are currently lost during the URDF->SDFormat conversion

https://github.com/ignitionrobotics/sdformat/issues/199
https://github.com/ignitionrobotics/sdformat/issues/183
https://github.com/ignitionrobotics/sdformat/issues/58
By default, links connected by a fixed joint are lumped together.

See also #1007


[Emoji Picker] Duplicate Norway Flag

Extension
https://www.raycast.com/changelog/1-29-0
Description
The Norway flag appears twice when searching for it.

Steps To Reproduce
Open built-in Emoji Picker.
Current Behaviour
The Norway flag appears twice in search results.
Expected Behaviour
The Norway flag appears once in search results.

Thanks a bunch for flagging and tagging, I'll have a look with the team 😊


CAMEL-19754: remove code checking for older Java versions

The failure is caused by a flaky. It should be good to merge.


[WIP] Rustc 1.24.0

Motivation for this change
Does probably not build yet.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

I think we will need to start installing cargo that is compiled with the rustc. Cargo does not ship anymore a Cargo.lock file, the file can only be found in the rustc repo.

This was already done before by @bennofs in https://github.com/NixOS/nixpkgs/pull/34505

Ohh, perfect :)

@Mic92 could you also re-enable the following tests? https://github.com/Mic92/nixpkgs/blob/82904b81d3540eb04edd8e26df516718112c9e6a/pkgs/development/compilers/rust/rustc.nix#L101

There are some test failures for aarch64:
https://dl.thalheim.io/EooT4f1a-0RRi1mBx9Vevg/rustc-1.24-failing-tests.log
I have not yet looked into them.

This will un-break the build of pretty much every large rust package. Looking forward to the merge!

I can't debug run-make on aarch64 without a machine where I have root access to get into the sandbox.

@Mic92 couldn't you create a aarch64 qemu vm to debug the problem?


Azure: Support authentication using user-assigned managed identity

Adds support for user-assigned managed identity.
When using the user_assigned_id the change does not require setting msi_resource it defaults to https://<storage account name>.<endpoint> unless the config explicitly sets the msi_resource.
Tested against Azure.

[x] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes

Verification

@bwplotka Hoping this can get on the 0.23 release treain :)


corner case delay_instruction() during asm_thread_fork wrappers can clobber other thread's stack

For example, a particular P2 which will go unnamed had the following (ALSO buggy) thread fork implementation.
If you put a DR PP on the line marked XXX,
when we go to delay the instruction, delay_instruction will choose %esp-8 for its instruction buffer, BUT THAT ESP IS SHARED WITH THE PARENT THREAD, and the other thread's stack will get clobbered.
010009e1 <thread_fork>:
 10009e1:       cd 52                   int    $0x52
 10009e3:       85 c0                   test   %eax,%eax
 10009e5:       75 0a                   jne    10009f1 <thread_fork_end>
 10009e7:       8b 4c 24 04             mov    0x4(%esp),%ecx // XXX
 10009eb:       8b 14 24                mov    (%esp),%edx
 10009ee:       89 cc                   mov    %ecx,%esp
 10009f0:       52                      push   %edx

A bug in the student thread fork implementation is not mandatory to expose the landslide bug.
If instead of reading from 0x4(%esp), we loaded from esp into ebp or whatever before the int instruction, and from there loaded from some shared address (that was otherwise synchronized to be safe), a DR PP could be placed and esp would still mirror the parent thread's esp.

Right now I'm going to switch the attempt order of _end vs esp-8. But a real solution should never use esp-8, at least not when testing userspace. There should be a config.landslide option to specify the name of a designated safe global buffer that you can annotate (in my case, by hacking the p2 basecode). And _end would be used if that annotation is missing, and if _end is page aligned, it simply asserts instead of trying esp.

(couldn't get GUEST_IMG_END for kernel space delay instruction to work in pathos, don't know why)


add parameter verification

Add parameter verification

#3597

Coverage decreased (-0.004%) to 56.145% when pulling 535c77c789fdbdb92ebfeb13b37ce6c50a2cd669 on zhaohai1299002788:add_parameter_verification into ecb061ae425f76ad28a597293b98f374ceba14ec on apache:develop.

Codecov Report

Merging #3656 (535c77c) into develop (4d49551) will increase coverage by 1.03%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             develop    #3656      +/-   ##
=============================================
+ Coverage      48.71%   49.74%   +1.03%
- Complexity      4638     4734      +96
=============================================
  Files            555      555
  Lines          36733    36804      +71
  Branches        4836     4855      +19
=============================================
+ Hits           17893    18309     +416
+ Misses         16596    16198     -398
- Partials        2244     2297      +53

Impacted Files
Coverage Δ

...r/rebalance/AllocateMessageQueueByMachineRoom.java
0.00% <0.00%> (ø)

...pache/rocketmq/store/stats/BrokerStatsManager.java
71.87% <0.00%> (-7.98%)
:arrow_down:

...ketmq/client/impl/consumer/PullMessageService.java
71.11% <0.00%> (-4.45%)
:arrow_down:

...cketmq/remoting/protocol/RocketMQSerializable.java
86.45% <0.00%> (-3.76%)
:arrow_down:

...org/apache/rocketmq/common/message/MessageExt.java
66.66% <0.00%> (-1.57%)
:arrow_down:

...mq/client/impl/consumer/RebalanceLitePullImpl.java
48.52% <0.00%> (-1.48%)
:arrow_down:

...mq/client/consumer/store/LocalFileOffsetStore.java
56.31% <0.00%> (-0.56%)
:arrow_down:

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
67.99% <0.00%> (-0.52%)
:arrow_down:

...n/java/org/apache/rocketmq/store/ha/HAService.java
71.61% <0.00%> (-0.34%)
:arrow_down:

.../java/org/apache/rocketmq/common/BrokerConfig.java
32.92% <0.00%> (-0.31%)
:arrow_down:

... and 47 more

Continue to review full report at Codecov.

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


Deploy on npm

@tjwebb can you update travis config file to allow npm deployment ? And also accept https://github.com/trailsjs/trailpack-bookshelf/pull/6  please
Thanks.

@tjwebb little here please, can you update travisCI to deploy on npm.
Also can you give me rights to manage this repo ?
Thanks

@tjwebb just missing the travis secure key for deploying it on npm :)
Thanks

Sorry it took me a couple hours to get to this. Should be set now.


type_caster::from_cpp: use ref->self_py

type_caster<ref>::from_cpp missed an optimization so far: if no copy shall be made and intrusive_base::self_py returns a valid pointer, then return it directly and spare the time to lookup the instance map.

Can this be tested on the Python end? (e.g. with a ... is.. assertion)

(never mind my earlier comment, I had completely misunderstood the context)

Thanks!


Rabin karp algorithm  in c [gssoc21]

💥 Proposal
Rabin-Karp is  pattern searching algorithm to find the pattern in a more efficient way,
finds the hash value. When the hash value is matched, then only it tries to check each character
To give a clear idea lets have inputs and outputs
Input: str[] = "abcdefghji"
word[] = "abc"
Output: Pattern is at position 1
Have you read the Contributing Guidelines on Pull Requests?
yes

/assign

@kavyasree-123 Someone is already working in this issue in C here #4052. Kindly check before opening an issue.


Can't xdebug in php storm

I can't xdebug in php storm. I run port listening and check a pair of breakpoints - one is on the first line of entry point file. App is stopped On the very first breakpoint, but when I proceed to the next breakpoint or next code line I don't get anything, breakpoints pointer dissapears.
Any suggestions how to solve it?

Hi @Dirst
this sounds very much like an issue that the IDE has no understanding about the files on the server and in the IDE. In order for the IDE to be able to stop at any specific breakpoints it needs to understand which files are running in the PHP and how they match to the IDE. Usually this is described in the File Mapping, see: https://stackoverflow.com/questions/18315741/phpstorm-debugger-not-stopping-at-certain-breakpoints which explains it further and how to resolve it.
More things around this:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206334759-XDebug-stops-at-first-line-but-ignores-some-breakpoints-in-other-files
https://jasonrikard.com/148/xdebug-breakpoints-not-working-mamp-phpstorm/

closing due to inactivitiy - feel free to get in touch with us under http://amazeeio.rocket.chat


RDS upscale or downscale type

Hi,
i have a multiple rds server.
i want to change up or down instance type of my servers..
nigth : down instance type db.m5.large
morning : up instance type db.m5.2xlarge
rds start or stop are ok but no update or scale
in schedule part i call period like this<EMAIL_ADDRESS>a idea ?
thank.
cH.

+1

Hi @trotroyanas,
Sorry for the delay in the response.
We've added your feature request to the backlog for upcoming versions of this solution.

Very nice feature. Is the project open for external pull requests? I would be happy to contribute especially if there is a minimum guideline on how to implement this feature.

Yes, we're open to pull requests!
Just make sure to read the CONTRIBUTING and CODE_OF_CONDUCT files you wish to contribute.

+1

@trotroyanas the functionality that you describe can be achieved with Operations Conductor: https://github.com/awslabs/operations-conductor

@maykays & @trotroyanas Is this functionality available in the aws-instance-scheduler itself now?
Please confirm it.


enhance version information

Proposed changes

use git describe to determine the version based on tag
check that the resulting version identifier is compatible with semver 2.0

Thanks for the review Oscar!


Use ThunderX2 Neon Kernels for ARMV8 Target

Currently the generic ARMV8 target is using C implementations for many routines. Replace them with the neon implementations for ThunderX2. These neon versions are up to 6x faster for particular routines.

Am I misreading the diff, or does this now make CORTEX A57 an "inferior" target compared to generic V8 ?

So there is no fundamental limitation in A57 hardware that would keep it from using the newer code ? Would it make sense to retire A57 (at least in the cpuid_arm64 autodetection code), or are the performance differences between "old" optimized A57 assembly and "new" THUNDERX2T99 code expected to be negligible ?

There is no limitation in A57 hardware to use the THUNDERX2T99 code. And the difference in performance between CORTEXA57 and THUNDERX2 targets on a A57 machine should be negligible.
It doesn't make sense to retire CortexA57. There are subtle differences between different ARM64 cores' microarchitectures which makes it necessary to keep separate targets.
And thanks for merging.

Thanks a lot for this information. Just trying to learn more about the platform.

Coming late, but I did have a look at the code and I'm intrigued by some of the choices.
First, Cortex-A57 is a generic core design that implementations can diverge. So, choosing specific cache sizes for it makes no sense. If those values are required for specific optimisations in OpenBLAS (ex. strip mining), then the most conservative (or common?) values should be used by default, and applications/libraries like lscpu should be used to enquire about the actual values.
Second, VFP/NEON are mandatory for all ARMv8, so those defines, if relevant, should be present in all ARMv8 cases in [1]. VFP2/3/4 are an ARMv7 thing, so irrelevant to ARMv8. NEON was the ARMv7 name, now called "AdvSIMD" in ARMv8 and both are mandatory. So, a simple "#define ARMV8" would mean both FP and SIMD available by definition.
If I may propose an implementation, I think regardless of what the core is, "ARMV8" should always be defined, so that you can easily just check for "ARMv8" for generic features like FP and vector instruction support. We only need the switch for specific cores when setting cache sizes/associativity and DTB details. I'd recommend against checking for core names, or the code will end up as a long string of random names that will not be relevant in a few years (we have enough of them in compilers already).
Third, the compilation flags on ARMV8 vs A57 [2] are redundant. Compilers default to "march=armv8" on AArch64 and both FP and SIMD extensions are mandatory. I'm assuming you don't use CRC nor CRYPTO. The only flag you really need is "mtune".
Lastly, this is more of a question of me trying to add compilation flags comparing GCC and LLVM. For the two compilers to have comparable output (we use this for benchmarks), these are the flags that we pass:

GCC: -O3 -ffast-math -funroll-loops (LLVM does this by default)
LLVM: -O3 -ffast-math -ffp-contract=on (GCC does this by default)

So, I imagine fast-math would be contentious, but the other two (unroll, fp-contract) are harmless (mathematically speaking) and tend to improve code-generation and vectorisation.
Hope this helps. Thanks!
--renato
[1] https://github.com/xianyi/OpenBLAS/blob/develop/cpuid_arm64.c#L200
[2] https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.arm64

Hi Renato,
Thanks for the detailed review.
The primary idea of the PR is to make the the default ARMv8 target use the neon kernels to improve performance. This would, regardless of the fixed blocking sizes chosen, improve the performance (I would be surprised if this is proven wrong) on all machines which were running the base C kernels previously.
The #defines for cache sizes and the defines like VFPv2/v3/v4 has no effect on the performance on ARmv8 targets. In fact I dont think they are used anywhere (or has any effect) in the ARMv8 code. These defines crept into ARMV8 code in the initial days as it was adopted initially from the ARMv7 code.
In fact, there is a lot of cleanup required in the ARMV8 code in addition to the excellent suggestions you have proposed. If we have people interested to work on these changes, I think they can be made on top of this commit and #1829 as these just aims at improving the ARMV8 performance staying within the limitations of the current code structure.
Thanks
Ashwin

I agree these are on top to the two existing PRs.
I'll try to submit a few clean up PRs in the following days.


OQS provider submodule in feature/quic-server branch failing tests

The oqsprovider external tests are failing on the feature/quic-server branch. See here for an example.
The problem appears to be that the submodule commit level is at a point where the x25519_kyber512 group isn't recognized by openssl s_client during testing, causing the test to fail (specifically resulting in the cloudflaire server sending a handshake alert about it).
Fix appears to be updating the submodule to the commit level held in the master branch, and porting the test/reciepies/95-test-oqsprovider_data/* files to the quic-server feature branch

We simply need to rebase the quic-server branch.

The quic-server branch was rebased.


iceberg.catalog.warehouse can override from connector config?

i am trying to use reset URL for ADLS and  multiple storage container from connector config but  i am unable to override the CATALOG_WAREHOUSE env from iceberg-rest.
"iceberg.catalog.warehouse"<EMAIL_ADDRESS>is not taking any action change from connector config and aways going with default from the rest.
could you please help on this configuration ?
"iceberg.catalog.io-impl": "org.apache.iceberg.azure.adlsv2.ADLSFileIO" works fine from connector config

Hello, I am experiencing a similar issue, but with the S3 implementation instead of Azure. My connector configuration includes the following:
connector.class=io.tabular.iceberg.connect.IcebergSinkConnector
transforms.DeriveEventDate.format=yyyy-MM-dd
iceberg.tables.evolve-schema-enabled=true
tasks.max=1
iceberg.tables.schema-override.event_date.type=Date
transforms=ExtractField,CopyId,DeriveEventDate
transforms.DeriveEventDate.type=org.apache.kafka.connect.transforms.TimestampConverter$Value
iceberg.catalog.client.region=us-east-1
transforms.CopyId.type=io.tabular.iceberg.connect.transforms.CopyValue
iceberg.tables.auto-create-enabled=true
iceberg.control.commit.timeout-ms=1480000
transforms.CopyId.source.field=datetime
iceberg.tables=schema.some_topic
transforms.DeriveEventDate.target.type=Date
transforms.DeriveEventDate.input.format=UNIX_MS
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter=org.apache.kafka.connect.storage.StringConverter
transforms.DeriveEventDate.field=event_date
iceberg.tables.default-partition-by=event_date
topics=some_topic
transforms.ExtractField.field=event
iceberg.catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO
iceberg.control.commit.interval-ms=120000
iceberg.catalog.uri=thrift://some-hive-connection:9083
value.converter.schemas.enable=false
transforms.CopyId.target.field=event_date
iceberg.catalog.warehouse=s3a://datalake-streaming/
iceberg.catalog.type=hive
iceberg.catalog.s3.path-style-access=true
transforms.ExtractField.type=org.apache.kafka.connect.transforms.ExtractField$Value

Despite specifying iceberg.catalog.warehouse=s3a://datalake-streaming/, it doesn't seem to override the default S3 bucket, and the configuration is still taking the default value from the Hive service.
Has anyone found a solution to this problem, or is there something we might be missing?

+1


added more available options in Product

This extends Product model by adding:

cash_enabled
shared
pricing_details

and equivalent cash_enabled?, shared? methods.

@sishen Hey, can you have a look and check if this can be merged?

Thanks @AnkurGel


Deprecation warning under Ember 3.6.0-beta.4

DEPRECATION: You attempted to listen to the "willTransition" event which is deprecated. Please inject the router service and listen to the "routeWillChange" event. [deprecation id: deprecate-router-events] See https://emberjs.com/deprecations/v3.x#toc_deprecate-router-events for more details.

Also hitting this with 3.7.0...

Same here ... but this straight up breaks my ember application which is at 3.10.1.

@mixonic @bantic do you know who has admin access here? If you can give me permissions, I can start merging some of these PRs and getting things fixed up here.

@rwwagner90 have you had any luck so far? I still get this with Ember 3.21. @mixonic ? @bantic ?

@rwwagner90 have you had any luck so far? I still get this with Ember 3.21. @mixonic ? @bantic ?

@Unkrass this repo is abandoned. We should probably fork and release an alternative.

@Unkrass this repo is abandoned. We should probably fork and release an alternative.

@rwwagner90 are you willing and able to fork it?

@rwwagner90 are you willing and able to fork it?

@rwwagner90 @mixonic any news on this?

@Unkrass I think we should just fork it to adopted-ember-addons, since there seems to be no interest in transferring it, which is extremely unfortunate.


Fix raw bidi text

Closes #3689
Uses a ShowSet rule to set the lang for raw blocks to English by default, since essentially all non-esoteric languages are in English. Can obviously be easily overridden by the end-user.
Modified my fix from #3532 to use directional embeddings instead of isolates in order to allow multiple consecutive RTL/LTR sections (which is what happens with syntax highlighted text) to combine.

Thanks!


PrismaClientInitializationError: Can't reach database server when deploying on Coolify

Bug description
I'm encountering a PrismaClientInitializationError when trying to connect to a Supabase database from a Next.js application deployed on Coolify. The same application works perfectly when deployed on Vercel, suggesting that the issue is specific to the Coolify deployment environment.
Error Message :
PrismaClientInitializationError: Can't reach database server at aws-0-eu-central-1.pooler.supabase.com:6543
How to reproduce
Clone the minimal reproduction repository: https://github.com/Misterbra/Supabase-Coolify-Connection-Issue-Reproduction
Set up the necessary environment variables for Supabase connection
Deploy the application on Coolify
Attempt to access any route that triggers a database query
Expected behavior
The application should successfully connect to the Supabase database and execute queries.
Prisma information
The application fails to connect to the database, throwing a PrismaClientInitializationError.
Environment & setup
Environment :
Next.js
Prisma
Node.js
Deployment platform: Coolify
Database: Supabase (PostgreSQL)
Prisma Version
"prisma": "^5.17.0"

Hi @Misterbra, have you already tried connecting to the same database via the native pg driver from your Coolify environment? If not, can you please try running a generic query like SELECT 1 via pg, and report back with the results? I'm asking because this sounds like a misconfiguration rather than a Prisma issue. Thanks!

@jkomyno  Thanks for your feedback, it turns out that the problem comes from the fact that I have a special character (or several) in my password for the supabase database. So really, something I would never have suspected. Thank you for taking the time to give me feedback.

The problem comes from the fact that I have a special character (or several) in my password for the supabase database.


Update IPEntity_AppServiceHTTPLogs.yaml

Fix entity mapping
Fixes #
Proposed Changes

Moved into new PR as there are conflicts with master - #3800


Ability to tell HtmlWebpackPlugin to use separate WebApp webpack plugins

I currently have two separate HtmlWebpackPlugin configurations, that generates two similar but different index.html files (one for each theme, and in the future could be more). Is it possible to configure WebApp WebPack plugin so I can also have two instances, each one tied to one of the HtmlWebPack plugins?
The idea is basically to generate different favicons for different index.html's as each one has it's own theme and css.

I had some ideas:

Define a 'key' config in HtmlWebpackPlugin, that you can later on use to filter/use in your plugin.
Add an 'appliesTo' filter function that is run against all available HtmlWebpackPlugins, and then it is applied to all that matches that filter. Could be implemented by using Lodash filter function (https://lodash.com/docs/4.17.10#filter)

Adding arbitrary stuff to other plugins' config is bad practice. With that respect the second option seems better, but that would likely shift to the end user the responsibility of adding arbitrary keys in html-webpack-plugin.

@brunocodutra that would be OK. A user could use "title" for example to filter things out or other properties up to them

True, it's certainly the better of the two options. Would you be interested
in sending a PR for that?

I was trying to, but got lost in the webpack plugin world... It would take me considerable time to start figuring out, specially since now the whole plugin process has been "redone", it's hard to find out a good source of truth for all of it.

@luislobo sorry for the delay, I've been away for the past weeks.
This is the line you're looking for, there you have access to htmlPluginData.plugin.options which you can pass on to the predicate that decides wether to inject meta tags.
Your proposal essentially extends the current behavior, which means you can simply default the custom predicate to htmlPluginOptions => htmlPluginOptions.inject && htmlPluginOptions.favicons !== false in case it's not set by the user, thus keeping it backwards compatible, does that make sense?

@brunocodutra No problem about the delay, each one does this at their own pace :)
About what you mention, I knew about that behavior, but the problem/proposal here is a way to tell, in one single webpack config, that has two (or more) htmlPlugins, a webApp plugin to each one of them, so that there is a "relationship" between htmlPlugin1 (for example backend UI) and webApp1 (the backend webApp resources and config), and htmlPlugin2 with webApp2. In our case, it's the same app, but they belong to two different verticals, thus, they have different CSS+icon pack.

@luislobo I was 100% sure I had answered, but alas I must have forgotten to send it.
What I was trying to say is that the behavior you describe may be implemented by extending the current logic that decides whether to inject html or not.
Essentially you could replace
const htmlPluginDataInject  = htmlPluginData.plugin.options.inject && htmlPluginData.plugin.options.favicons !== false;
if ( htmlPluginDataInject || this.options.inject === 'force') {
    // ...
}

by something like
const appliesToHtmlPlugin  = this.options.appliesTo(htmlPluginData.plugin);
if (appliesToHtmlPlugin) {
    // ...
}

where appliesTo is a user provided predicate that, given a specific instance of HtmlWebpackPlugin, decides whether to inject tags or not, for example
plugins: [
    new HtmlWebpackPlugin({
        template: './src/index.html',
    }),
    new WebappWebpackPlugin({
        logo: './src/logo.svg',
        appliesTo: htmlPlugin => htmlPlugin.options.template === './src/index.html',
    }),
],

If not set, appliesTo could default to the current behavior
htmlPlugin => htmlPlugin.options.inject && htmlPlugin.options.inject.favicons !== false

Does that work for your use case?

A step further could even be to overload the already existing inject option, which besides a boolean or the string 'force', could also take the predicate described above.

I'm totally fine with any of these approaches :)


CAMEL-10516 - Remove unused import

Thanks for the PR it has been merged. Do you mind closing this?

PR merged with https://github.com/apache/camel/commit/d2a2fffa761c6e9acae16a0fc5a85aaed184d4ba


fix(#1409): Filtering by metadata with value list

fix #1409
This PR fixes query results when filtering list type value in metadata

Just some comments related to the UI design and the user experience.
With changes included here, now the way that list values are shown is a bit different:

VS

What should be the better way to show the list of values for a metadata field in the record detail @Amelie-V @dvsrepo @leiyre? For my part, not comfortable with both of them (the old and the new one), but we should find a trade-off for this PR and plan a robust solution for another different PR.
The main cause that makes me doubt the current design is result filtering by a list of values in the global filter. The previous filter generates the following global filter status:

3 values are active in the global metadata filter, but just one click was applied. This could introduce a misunderstanding to users if it's not clear that the selected value is really a list of values.
The bug
Another thing related to previous behavior is that, when we select the filter from record details, the selected filter does not remain active once the filter is applied. Because of the list of values.

Selecting a value from the metadata list values in the global filter makes the record filter active. Is the expected behavior @Amelie-V? If not, what should be the expected result?


feat(lint): add arrow-body-style rule as warning

Motivation
A bit opinionated, but I would like to propose the usage of the lint rule arrow-body-style when needed.
In this same PR, we fix the issues pointed out by the new rule.

Ah wait, then we can force the {return..} with the same rule. My idea is to have one of the two and not a mix.

Sounds good to me, thanks!


adds pure versions of svg factory methods

This is necessary in a few places in the pxt-arduino target where we want to construct SVG elements but not append them to any parent yet. This is a more functional approach.

Hi @Darzu, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;


Refs #27795 -- Removed force_bytes() usage in db/models/sql/query.py.

SELECT entries should be strings or coercable to a string.

You meant force_text in the commit/PR message.

Indeed I did! Thanks for catching. Fixed in the latest revision.


Move from Travis CI to GitHub Actions CI

cc: @ablaom @tlienart

Codecov Report

Merging #15 (148791b) into master (d3774d7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #15   +/-   ##
=======================================
  Coverage   88.83%   88.83%
=======================================
  Files           5        5
  Lines         224      224
=======================================
  Hits          199      199
  Misses         25       25

Continue to review full report at Codecov.

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

@ablaom @tlienart This is ready to merge.


jax.custom_jvp promotes tangent-of-integer to integer (not float0)

Description
import jax

@jax.custom_jvp
def f(x, y):
    return x + y

@f.defjvp
def f_jvp(primals, tangents):
    _, ty = tangents
    assert ty.dtype != jax.numpy.int32

jax.jvp(lambda x: f(x, 1), (1.,), (1.,))

This will fail the assert statement.
I came across this when calling jax.jvp(some_other_fn, ...) inside the defjvp rule. This was complaining that an integer was given an integer tangent.
What jax/jaxlib version are you using?
JAX 0.4.10, jaxlib 0.4.10
Which accelerator(s) are you using?
No response
Additional system info
No response
NVIDIA GPU info
No response

Thanks for raising this. IIRC we did this intentionally at first when we introduced float0, I think because pre-existing custom_jvp code didn't know about float0. But as you point out it's currently inconsistent with jax.jvp itself, so we should make these coherent somehow...
cc @LenaMartens @froystig


Distributing SYCL Applications with AdaptiveCpp (Windows)

Hello,
I've been working on a SYCL-based application using AdaptiveCpp, and I've run into challenges when distributing the compiled application. While the app runs perfectly on my development machine, it fails to initialize the CUDA backend on other systems, unless they have a full AdaptiveCpp installation. This requirement is a significant barrier to entry for end-users.
Specifics:
I've compiled my app with --acpp-targets="cuda:sm_75"
The application works fine on my machine.
Distributing the app with only hipSYCL-rt.dll and cudart64_12.dll is insufficient.
Paths to the AdaptiveCpp folder appear to be hardcoded in hipSYCL-rt.dll. If I rename AdaptiveCPP folder then the app stops to work on my machine too.
Questions:
Is there a way to make AdaptiveCpp look for its backend DLLs in the application's folder, or specify the path programmatically?
Are there options for static linking?
Are there any best practices or recommended approaches for distributing AdaptiveCpp-dependent applications in a user-friendly manner?
I'd appreciate any guidance or advice on how to distribute an AdaptiveCpp-dependent application more easily. Thank you!

Is there a way to make AdaptiveCpp look for its backend DLLs in the application's folder, or specify the path programmatically?

It should already do something like this, and it seems there is also a dedicated code path for Windows:
https://github.com/AdaptiveCpp/AdaptiveCpp/blob/3952b468c9da89edad9dff953cdcab0a3c3bf78c/src/runtime/backend_loader.cpp#L158
The idea is that it should first try to find out where libhipSYCL-rt / libacpp-rt is located, and look for backend plugins relative to that path. If that fails, it should look in the installation directory that got hardcoded.
I don't know though why it doesn't seem to work in your case.
Overall, the deployment model of AdaptiveCpp, and SYCL in general, is poorly understood at the moment. It's not clear yet where in the stack between drivers and application the line should be drawn between components that should be provided by the system, and components that are provided by the application.
Runtime backends are plugins, so static linking, even if it worked, would defeat that design purpose. In fact, it would make deployment more difficult because if e.g. some backend dependency is unavailable (e.g. CUDA is not found), the entire application will fail instead of the current behavior where it can just skip that backend in this case.
For your use case, I think we should try to gain an understanding of why the logic I have linked fails.
In addition to hipSYCL-rt.dll, you will also need to ship backend plugins. Another issue might be that currently acpp links acpp-rt / hipSYCL-rt with rpath. I think currently this can only be changed inside acpp at the moment.

Happy to hear it's working with CUDA on windows for you!
Re the path issue, it might be the logic here is the wrong way around:
https://github.com/AdaptiveCpp/AdaptiveCpp/blob/3952b468c9da89edad9dff953cdcab0a3c3bf78c/src/runtime/CMakeLists.txt#L65
AFAIK MinGW prepends lib, VS doesn't. That would screw up the whole dynamic path lookup..
Re rpath: that's not a thing on Windows :)

Thank you @illuhad and @fodinabor,
it works with CUDA indeed, and works exceptionally good- ~5% faster than CUDA itself in my tests (and 2x faster than oneAPI from github @ CUDA, but probably there is something wrong), so thank you for your amazing work. It works only with simple parallelism though, as I mentioned there: https://github.com/AdaptiveCpp/AdaptiveCpp/issues/1175
Regarding the problem. So, generally I should recreate the AdaptiveCpp's bin folder structure inside the directory where my .exe is contained? So, to place hipSYCL directory with backends there? Well, I tried this, as well copying these libraries right to the directory where .exe is located, but all this doesn't work. And, indeed, can the problem with finding libraries be because on Windows libraries generally don't have lib prefix? I tried to add a copies of dlls (both of runtime and backends) with lib prefix, but this still doesn't help.

Thank you @fodinabor, I've tried this, but compiled files now don't work at all, silently terminating. I tried both: copying acpp-rt.dll and hipSCL directory to the same folder as the exe file, and adding AdaptiveCpp/bin folder to PATH environment variable. I'll try to debug the execution in debugger, but not sure if I will be successfull (I still have some problems when building AdaptiveCpp using Cmake in Visual Studio, and even just outside Visual Studio, I'll experiment more and probably will create a corresponding issue; so far only using command line with acpp script is the only working way).

The visual studio generator with CMake is 100% unsupported. What should work though, is using Ninja as build system (it can also be optionally installed via VS Installer). I tend to use VS Code on Windows too, though, as it's CMake infra is a bit more flexible than VS's.
Is there any output when setting set HIPSYCL_DEBUG_LEVEL=3?
Also, what was the (git) version of the "working" version and what LLVM version are you using?

Thank you for suggestions!
Well, Visual Studio allows to use Ninja as a build generator in cmake projects since 16.5 version. But I still have problems in both Visual Studio or just console. For example, I am trying to configure examples project, shipped with AdaptiveCpp. I use this line:
cmake .. -G Ninja -DAdaptiveCpp_DIR="C:/AdaptiveCpp/lib/cmake/AdaptiveCpp" -DACPP_TARGETS="cuda:sm_86"
but cmake incorrectly determines the compiler:
-- The C compiler identification is MSVC 19.37.32822.0
-- The CXX compiler identification is MSVC 19.37.32822.0

However, I just have added -DACPP_TARGETS="cuda:sm_86" -DCMAKE_C_COMPILER="C:/llvm/bin/clang.exe" (clang because acpp can't pass cmake's C tests), and cmake configured the project, although still can't compile it because of these errors like lld-link: error: could not open 'libboost_fiber-clangw16-mt-gd-x64-1_83.lib': no such file or directory that I mentioned in another issue (nbody uses ND-kernels, I suppose?).
Regarding the issue, I use Clang 16.0.6.
The version of working AdaptiveCPP is:
Commit Hash: fa87f83dd95871d2cc42802841c78804f7b6a292
Branch: develop

I've tried to compile a debug version of my test program and set HIPSYCL_DEBUG_LEVEL=3 (this is environment variable, yes?), but there is still no any output. So I'll opened it with VS debugger and dound that it stops with the exception

Exception thrown at 0x00007FF6410655CC in Blur.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

 in file `mutex.cpp` from the standard library on these lines:

if (target == nullptr) { // no target --> plain wait (i.e. infinite timeout)
if (mtx->thread_id != static_cast(GetCurrentThreadId())) {
mtx->_get_cs()->lock(); // exception is thrown on this line!
}

This is the call stack, in case if this can be useful:

Blur.exe!mtx_do_lock(_Mtx_internal_imp_t * mtx, const _timespec64 * target) Line 100	C++
Blur.exe!std::_Mutex_base::lock() Line 76	C++
Blur.exe!std::lock_guardstd::mutex::lock_guard(std::mutex & _Mtx) Line 493	C++
Blur.exe!hipsycl::rt::kernel_cache::register_kernel<lambda at blur.cpp:75:39'>() Line 235	C++  	Blur.exe!hipsycl::rt::detail::kernel_registrator<lambda at blur.cpp:75:39'>::kernel_registrator() Line 456	C++
Blur.exe!hipsycl::rt::detail::static_kernel_registration<lambda at blur.cpp:75:39'>::dynamic initializer for 'init'() Line 0	C++
Blur.exe!_initterm(void()() * first, void()() * last) Line 16	C++
[External Code]

Hmm..
So a few things from my debugging session:

yes the CMake indeed was broken -> #1227 fixes this.

with that PR it seems to work to have a) acpp-rt.dll in %PATH% and b) acpp-rt.dll in the same directory as the exe. I also copied along: the hipSYCL folder containing the backend dlls as well as acpp-common.dll.

re the boost issue: I couldn't reproduce this.. I ran Boost 1.83.0's bootstrap.sh with set CC=clang-cl and set CXX=clang-cl and then built using .\b2 toolset=clang-win address-model=64 variant=release --build-type=complete stage --with-fiber --with-context --with-test. In boost_1_83_0\stage\lib this then gives me boost_fiber-clangw16-mt-x64-1_83.dll and boost_fiber-clangw16-mt-x64-1_83.lib - but I built everything with RelWithDebInfo and did not test Release or Debug build types. Maybe add -DCMAKE_BUILD_TYPE=RelWithDebInfo or alternatively build boost for variant=release,debug? (the gd in the missing lib name indicates that it's looking for the debug version..)

I used a freshly built LLVM 16.0.6 (current release/16.x branch) and AdaptiveCpp state of #1227 (compared against current develop).

I built LLVM with: cmake ../llvm -G Ninja -DCMAKE_INSTALL_PREFIX=<prefix>\llvm_install16 -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DCMAKE_BUILD_TYPE=RelWithDebInfo with CC=cl and CXX=cl.
AdaptiveCpp was built with: cmake .. -G Ninja -DCMAKE_C_COMPILER=clang.exe -DCMAKE_CXX_COMPILER=clang++.exe -DBOOST_ROOT=<prefix>/boost_1_83_0 -DLLVM_DIR=<prefix>/llvm_install16/lib/cmake/llvm -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=<prefix>/AdaptiveCpp/build/install -DWITH_SSCP_COMPILER=OFF -DWITH_OPENCL_BACKEND=OFF -DWITH_LEVEL_ZERO_BACKEND=OFF -DCUDAToolkit_LIBRARY_ROOT="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2"
I just built the shipped along tests using: cmake .. -G Ninja -DAdaptiveCpp_DIR=<prefix>/AdaptiveCpp/build/install/lib/cmake/AdaptiveCpp/ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBOOST_ROOT=<prefix>/boost_1_83_0 -DACPP_TARGETS="omp;cuda:sm_61" with clang as CC/CXX

With all that being said, I was not able to have sycl_tests.exe pass all tests - it crashes due to freeing a nullptr in buffers_over_usm_pointers. Also, queue_profiling and single_kernel_single_scalar_reduction<char> also fail. Definitely better than I remember - seems LLVM 16 is an upgrade on Windows for CUDA over 14&15.

Thank you. This works (except when programs are compiled with acpp script)
Now in details. I've cloned this branch again with the latest commit and rebuilt AdaptiveCpp using commands you provided. However, this haven't solved all my problems.

Interesting that after I built boost using your command (adding also debug build along with release), cmake couldn't configure AdaptiveCpp build, stopping with the error like in this issue: https://github.com/AdaptiveCpp/AdaptiveCpp/issues/1112

When I ran cmake command with -DBoost_DEBUG=ON option added, I got this output:
-- Found Boost 1.83.0 at C:/Libraries/boost_1_83/lib/cmake/Boost-1.83.0
--   Requested configuration: QUIET COMPONENTS context;fiber
-- BoostConfig: find_package(boost_headers 1.83.0 EXACT CONFIG  QUIET HINTS C:/Libraries/boost_1_83/lib/cmake)
-- Found boost_headers 1.83.0 at C:/Libraries/boost_1_83/lib/cmake/boost_headers-1.83.0
-- BoostConfig: find_package(boost_context 1.83.0 EXACT CONFIG  QUIET HINTS C:/Libraries/boost_1_83/lib/cmake)
-- Found boost_context 1.83.0 at C:/Libraries/boost_1_83/lib/cmake/boost_context-1.83.0
-- Boost toolset is clangw16 (Clang 16.0.6)
-- Scanning C:/Libraries/boost_1_83/lib/cmake/boost_context-1.83.0/libboost_context-variant*.cmake
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_context-1.83.0/libboost_context-variant-clangw16-mt-s-x64-1_83-static.cmake
--   [ ] libboost_context-clangw16-mt-s-x64-1_83.lib
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_context-1.83.0/libboost_context-variant-clangw16-mt-x64-1_83-shared.cmake
--   [ ] boost_context-clangw16-mt-x64-1_83.lib
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_context-1.83.0/libboost_context-variant-clangw16-mt-x64-1_83-static.cmake
--   [x] libboost_context-clangw16-mt-x64-1_83.lib
-- Adding boost_context dependencies: headers
-- BoostConfig: find_package(boost_fiber 1.83.0 EXACT CONFIG  QUIET HINTS C:/Libraries/boost_1_83/lib/cmake)
-- Found boost_fiber 1.83.0 at C:/Libraries/boost_1_83/lib/cmake/boost_fiber-1.83.0
-- Boost toolset is clangw16 (Clang 16.0.6)
-- Scanning C:/Libraries/boost_1_83/lib/cmake/boost_fiber-1.83.0/libboost_fiber-variant*.cmake
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_fiber-1.83.0/libboost_fiber-variant-clangw16-mt-s-x64-1_83-static.cmake
--   [ ] libboost_fiber-clangw16-mt-s-x64-1_83.lib
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_fiber-1.83.0/libboost_fiber-variant-clangw16-mt-x64-1_83-shared.cmake
--   [ ] boost_fiber-clangw16-mt-x64-1_83.lib
--   Including C:/Libraries/boost_1_83/lib/cmake/boost_fiber-1.83.0/libboost_fiber-variant-clangw16-mt-x64-1_83-static.cmake
--   [x] libboost_fiber-clangw16-mt-x64-1_83.lib
-- Adding boost_fiber dependencies: atomic;context;filesystem;headers
-- Could NOT find Boost: missing: fiber (found C:/Libraries/boost_1_83/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found version "1.83.0"))
CMake Error at CMakeLists.txt:87 (message):
  Please provide the path to the root directory of the boost installation
  using the -DBOOST_ROOT option

so, it finds context and fiber, but can't find atomic, filesystem and headers which it calls "dependencies". So I rebuilt boost with added --with-atomic --with-filesystem --with-headers, and this solved the problem, cmake configured the project.

When compiling any cpp file using acpp python script like this: python acpp program.cpp -o program.exe --acpp-targets="cuda:sm_86", it still stops with error that libboost_fiber-clangw16-s-x64-1_83.lib is missing, like I described there: https://github.com/AdaptiveCpp/AdaptiveCpp/issues/1175 Using workaround with renaming libboost_fiber-clangw16-mt-s-x64-1_83.lib to requested filename (and the same trick with context, it compiles.

Still, programs, compiled using acpp script, don't work, and silently crash (like I reported yesterday). And they worked with my older AdaptiveCpp build.

But when I compile cmake projects, all works! There is no problems with missing boost libraries, and no problems with silent crashes. Also now I can finally rename AdaptiveCpp installation and put runtime and backends dlls to the .exe directory - and it correctly loads them!

Hm. It works when I rename AdaptiveCpp installation, but stops to work when I rename LLVM. It looks like it wants some libraries from where too.

Ah, found! It also requires libomp.dll file from llvm/bin folder. It is needed to be in the directory of .exe file.

Closing the issue as it was solved.


Migrate to (std::)futures 0.3 and tokio 0.2

https://github.com/rust-lang/rust/pull/63209#issuecomment-523113079
https://tokio.rs/blog/2019-08-alphas/

https://github.com/sfackler/rust-postgres/tree/std-futures/tokio-postgres

Could we also change the interface a bit to the direction of how r2d2 works, could it be possible now with std::future, async/await and Pin?
So we could be able to use it in a more synchronous-looking manner:
impl AsyncConnector for Asynchronous {
    fn run(&self, query: Arc<String>) -> FutureObj<'static, crate::Result<serde_json::Value>> {
	let fut = async move {
            let mut client = self.pool.get().await?;
            let stmt = client.prepare(query.as_str()).await?;
            let rows = client.query(&stmt, &[]).collect().await?;

            Ok(rows.into_json()?)
        };

        FutureObj::new(Box::new(fut))
    }
}

Hi @khuey I was wondering if you ever got a chance to check out tokio-postgres's futures branch and if it could work with bb8.

I've got an initial attempt in #37 that's most of the way there.

tokio-postgres v0.5.0-alpha.1 which uses std::futures::Future and async/await syntax is out.

async/await syntax stabilized in 1.39

This is done.


Error after starting up

matterbridge-zigbee2mqtt version: Update v.2.1.19 to v.2.2.1 (Note: Updating doesn't seem to work, even after restarting MatterBridge, no errors, just it doesn't update).
MatterBridge version: v.1.5.10
Here's my error logs:
nfo - [19:32:20.206] [PluginManager]: Enabled plugin matterbridge-zigbee2mqtt
info - [19:32:20.209] [PluginManager]: Loading plugin matterbridge-zigbee2mqtt type DynamicPlatform
info - [19:32:20.213] [Matterbridge zigbee2mqtt plugin]: Initializing platform: matterbridge-zigbee2mqtt v
info - [19:32:20.213] [Matterbridge zigbee2mqtt plugin]: Loaded zigbee2mqtt parameters from /root/.matterbridge/matterbridge-zigbee2mqtt.config.json:
info - [19:32:20.214] [Matterbridge zigbee2mqtt plugin]: Connecting to MQTT broker: mqtt://mosquitto.mqtt.svc.cluster.local.:1883
info - [19:32:20.219] [Matterbridge zigbee2mqtt plugin]: MQTT broker at mosquitto.mqtt.svc.cluster.local.:1883 connected
info - [19:32:20.220] [Matterbridge zigbee2mqtt plugin]: MQTT broker at mosquitto.mqtt.svc.cluster.local.:1883 subscribed to: zigbee2mqtt/#
notice - [19:32:20.220] [PluginManager]: Loaded plugin matterbridge-zigbee2mqtt type DynamicPlatform (entrypoint /usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/index.js)
info - [19:32:20.220] [PluginManager]: Starting plugin matterbridge-zigbee2mqtt type DynamicPlatform
info - [19:32:20.221] [Matterbridge zigbee2mqtt plugin]: Starting zigbee2mqtt dynamic platform v2.2.1: The plugin has been enabled
info - [19:32:20.260] [Matterbridge zigbee2mqtt plugin]: zigbee2MQTT is online
error - [19:32:30.722] [Matterbridge zigbee2mqtt plugin]: The plugin did not receive zigbee2mqtt bridge info. Check if zigbee2mqtt is running and connected to the MQTT broker.
error - [19:32:30.722] [Matterbridge zigbee2mqtt plugin]: The plugin did not receive zigbee2mqtt bridge devices/groups. Check if zigbee2mqtt is running and connected to the MQTT broker.
error - [19:32:30.723] [PluginManager]: Failed to start plugin matterbridge-zigbee2mqtt: Error: The plugin did not receive zigbee2mqtt bridge state or info or devices/groups. Check if zigbee2mqtt is running and connected to the MQTT broker.
error - [19:32:30.723] [PluginManager]: Plugin matterbridge-zigbee2mqtt not started

Here's my config file:
{
  "host": "mosquitto.mqtt.svc.cluster.local.",
  "port": 1883,
  "protocolVersion": 5,
  "blackList": [],
  "whiteList": [],
  "switchList": [],
  "lightList": [],
  "outletList": [],
  "featureBlackList": [],
  "postfixHostname": true,
  "debug": false,
  "unregisterOnShutdown": false,
  "name": "matterbridge-zigbee2mqtt",
  "type": "DynamicPlatform",
  "username": "matterbridge",
  "password": "************",
  "topic": "zigbee2mqtt",
  "deviceFeatureBlackList": {}
}

I've confirmed that my credentials with by connecting to Mosquitto with MQTT Explorer with these credentials.

Hi,
this "mosquitto.mqtt.svc.cluster.local.",
cannot be a valid host.
Check it.

It's a valid host. I'm running this inside my Kubernetes cluster and that's the service FQDN for Mosquitto.
I'm seeing some logs come through:
notice - [19:38:56.542] [Matterbridge]: Package matterbridge-zigbee2mqtt installed correctly
info - [19:38:56.542] [Matterbridge]: Plugin matterbridge-zigbee2mqtt installed. Full restart required.
info - [19:38:56.544] [PluginManager]: Plugin matterbridge-zigbee2mqtt already registered
info - [19:40:44.655] [Matterbridge zigbee2mqtt plugin]: zigbee2MQTT sent 6 devices
info - [19:40:44.657] [Matterbridge zigbee2mqtt plugin]: zigbee2MQTT sent device_announce device: ************* ieee_address: ***********
notice - [20:32:55.052] [Matterbridge]: The plugin matterbridge-zigbee2mqtt is out of date. Current version: 2.1.19. Latest version: 2.2.1.

Even though it's saying the plugin is in error state and not started:

It seems that the update is successful...
Try to restart with the debug on file and send me the log please.

I encountered a problem similar to the error messages in the original issue report. It turned out that the username and password were set to empty strings by default, which messed things up with my EMQX broker since authentication is turned off. Because of that, a user with the username '' couldn't connect.
I fixed it by changing the defaults to undefined and putting together a pull request (#81) to resolve the issue.


Remove index level boosting

Relates: elastic/elasticsearch#51703
Index level boosting existed in the mapping was not being used at query
time. This removes all boosting in anticipation of the full removal.

Green CI!


_ENABLED vars can end up bring strings and failing strict checks

I spent a while trying to set this up and ended up realizing that I was caught on some strict bool checks for the enabled settings in StackdriverExceptionHandler
        if (config('stackdriver.enabled') === false || config('stackdriver.error_reporting.enabled') === false) {
            return;
        }

I resolve this for me for now by casting these to cool in my settings file.
       'enabled' => (bool)env('STACKDRIVER_ERROR_REPORTING_ENABLED', true),
I want to make a PR to make sure no one else falls over this issue but would like to know if I should go for casting the settings to bool or switching to non strict comparisons when the config is checked.

This is very weird. Laravel should cast env settings correctly. See:
https://github.com/laravel/framework/blob/2e4d634b913e8c747721b830f2e7b03e0bf30b3e/src/Illuminate/Support/Env.php#L79-L108.
This seems like an environmental issue and not related to this package.


🐛 Parser cannot properly distinguish between parenthesised expressions and multiple arguments.

Consider these two expressions:
f (g x)
f g x

In the first expression, we can say f is a function called with a single argument; the result of evaluating (g x). In JavaScript that would be f(g(x)). In the second expression, f is a function with two arguments; g and x. In JavaScript that would be f(g, x).
Obviously these two expressions are different, but attempting to parse them produces the same AST.
> parse "f (g x)"
Ok (Application (Variable (Local "f")) (Application (Variable (Local "g")) (Variable (Local "x"))))
    : Result (List Parser.DeadEnd) Cherry.AST.Expression.Expression

> parse "f g x"
Ok (Application (Variable (Local "f")) (Application (Variable (Local "g")) (Variable (Local "x"))))
    : Result (List Parser.DeadEnd) Cherry.AST.Expression.Expression

This has been fixed since the restructure. The Application constructor now takes a list of expressions as its second argument:
> import Cherry.Stage.Parse exposing (parseExpression)

> parseExpression "f (g x)"
Ok (Application (Identifier (Local "f")) [Application (Identifier (Local "g")) [Identifier (Local "x")]])
    : Result (List Parser.DeadEnd) Cherry.Data.AST.Expression

> parseExpression "f g x"
Ok (Application (Identifier (Local "f")) [Identifier (Local "g"),Identifier (Local "x")])
    : Result (List Parser.DeadEnd) Cherry.Data.AST.Expression