[macOS] Update template icons to Big Sur style

Updates the AppIcon assets in the macOS app template to meet Apple's
icon guidelines as of macOS Big Sur.
Ref: https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/
Issue: https://github.com/flutter/flutter/issues/103371
Pre-launch Checklist

[X] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[X] I read the Tree Hygiene wiki page, which explains my responsibilities.
[X] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[X] I signed the CLA.
[X] I listed at least one issue that this PR fixes in the description above.
[X] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[X] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Yep -- ended up asking @christopherfujino because I swore we'd created a better solution but couldn't find any reference to it on the wiki. I sent out https://github.com/flutter/packages/pull/1930 and will update this patch to a pubspec change and icon removal once that lands.

Re: icon size, this was my basis for comparison:

I guess there's just no real consistency. 🤷🏻

@stuartmorgan https://github.com/flutter/packages/pull/1930 has landed and was published as flutter_template_images 4.1.0. I've updated this patch to:

Roll to latest packages
Truncate and rename the existing images to end in .img.tmpl
Update the template manifest to point to the asset_size.png.img.tmpl assets

test-exempt: rolling dependencies

Do we know why charcode is moving around in some pubspecs?

I ran a full flutter upgrade packages, since IIRC we're generally encouraged not to manually update single packages but rather rely on the tool. It looks like charcode was removed as a transitive dependency; got a presubmit error asking me to remove it from the allowlist, which I did as part of this change. Updated the PR/commit description to account for this.

I wonder if there's an "achievement unlocked" badge you can get for being broken by a recent parameter deprecation in a package that you wrote a decade ago (package:coverage) causing breakage in code that you wrote somewhere else a half-decade ago (coverage in the flutter tool).
No good deed goes unpunished...

Alright the roll (without the updated flutter_template_images pin) has been extracted to https://github.com/flutter/flutter/pull/103771 and landed. I've rebased this on top of that such that this is just the remaining icon roll.


Tidy code comments

There is a lot of commented out code saying something is broken: e.g. https://github.com/WMD-group/PyTASER/blob/953968c3f0044e79644744415b33647dc7b2dae3/plotter.py#L115 If these are no longer needed then you can remove the comments. If something is still broken then please can you fix it!

Done. The comments from before are still on old so we can work on them later.


(Discord RPC) Catch SEHException on Dispose

Discord will call CloseHandle on an already closed named pipe "discord-ipc-0" handle if Discord client was closed before we call Destroy.
Only affects debug mode.

Speaking about Discord RPC, I was working on disabling Idle status, but it fell out due to the RPC not initializing back the RPC activity (it needs a 2nd change to actually change it) despite the dispose method already dispose the RPC history, can you take a look at that?
This is the commit that currently disables that feature https://github.com/CollapseLauncher/Collapse/commit/f4b130dc255ba8f78e31da3efb11828324b77515

Speaking about Discord RPC, I was working on disabling Idle status, but it fell out due to the RPC not initializing back the RPC activity (it needs a 2nd change to actually change it) despite the dispose method already dispose the RPC history, can you take a look at that?
This is the commit that currently disables that feature f4b130d

will look into it tomorrow

Alrighty thank you, will merge this one for now as neon is starting to finalize his work for HSR repair~
Thank you for your work <3


fix: fix the broken URLs links to /bot-qr-code.png

Links to the picture file chatie.io has expired.
I fix it with wechaty.github.io equivalence instead.
I'm submitting a...
[x] Bug Fix
[ ] Feature
[ ] Other (Refactoring, Added tests, Documentation, ...)

Checklist

[x] Commit Messages follow the Conventional Commits pattern

A feature commit message is prefixed "feat:"
A bugfix commit message is prefixed "fix:"

[ ] Tests for the changes have been added

Description
I search and substitute all the URLs to their correct ones.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Good catch! Thanks for the fix!


UnitsNet types are not Windows Runtime Component Compatible

I would like to use UnitsNet in a large Windows IoT Core Devices project I manage called Microsoft.IoT.Devices. However, when I attempt to use the types defined in UnitsNet as return values in my library I get the following error:

Severity  Code    Description Project File    Line    Suppression State
Error WME1032 Method 'Microsoft.IoT.DeviceCore.Sensors.ITemperatureReading.Temperature.get()' returns 'UnitsNet.Temperature', which is not a valid Windows Runtime type.  Methods exposed to Windows Runtime must return only Windows Runtime types.  Microsoft.IoT.DeviceCore    C:\Users\jbienz\Code\Microsoft\IoTDevices\Lib\Microsoft.IoT.DeviceCore\Sensors\Temperature\TemperatureReading.cs    23  Active

This is due to the type restrictions on WinRT components.
Obviously UnitsNet was written as a Class Library and not a WinRT component. And obviously refactoring the library into a WinRT component may require that some features be left off. However, I still feel this would be incredibly valuable to have, especially in the IoT space.
If you would like to discuss this more please feel free to reach out to me. com dot microsoft at jbienz, or via github.

Hi, thanks for reaching out.
I'm not familiar with developing towards WinRT, but from this SO answer I understand that UWP C# apps can interact with Units.NET just fine, but the CLR must project the managed types to Windows Runtime types when consumed by Windows Runtime Components.
I read your link and see there are some constraints to the types used. Below are some initial thoughts, please correct me if I am wrong.

The fields, parameters, and return values of all the public types and members in your component must be Windows Runtime types.

So basically, stick to Int32, Double, DateTimeOffset and a small set of .NET types. We should be near this, I think.

Public structures can't have any members other than public fields, and those fields must be value types or strings.

All unit types are public struct today, and they have both properties and methods. I assume this must be refactored to class instead? Should be doable.

Public classes must be sealed

Not a problem.

A public class or interface cannot:

Be generic.

I believe we are good here.

Implement an interface that is not a Windows Runtime interface. (However, you can create your own Windows Runtime interfaces and implement them.)

We use very few interfaces today, I think we are good here.

Derive from types that are not in the Windows Runtime, such as System.Exception and System.EventArgs.

We have a few exception types, but other than that we should be good.
I'll try to set up an UWP app with a Windows Runtime Component and reproduce the behavior you describe, and try to get a better picture of what refactoring is required to be compatible. If it is feasible, then I'd be happy to put in some effort to get there. The strategy might involve modifying the code generator scripts to output both two sets of source code; .NET and WinRT.
I'll get back to you when I know a bit more, likely by tomorrow or the day after.

Thank you so much for getting back so quickly anjdreas. You are very very much on the right track in your thinking above. Honestly, here's the easiest way to see what would need to be changed:

Open your class library project in Visual Studio 2015
Right-click on the project and open Properties
On the Library tab (first tab), change the 'Output type' dropdown from 'Class Library' to 'Windows Runtime Component'
Close Properties
Rebuild the project

The compiler will tell you each and every item that isn't compatible and actually gives fairly helpful links and messages about making the conversion.
The main value in performing this work is that it allows your library to be projected natively into any language supported by the Windows Runtime. Therefore your library can be used not only by C# and VB, but also by C++ and JavaScript. This is possible through the magic of language projection, but language projection comes at the cost of the restrictions mentioned in that link.
In addition to your library being able to be used by those languages, it also allows your library to be used as part of other libraries that target those languages. In my case, my library is about making it easy to access sensors and devices on Windows IoT Core. I could have chosen to implement my library as a Class Library instead of a Windows Runtime Component, but I know that a lot of IoT developers use C++ and I know that a lot of students find it interesting that they can write full fledged apps on IoT devices using JavaScript. If I wrote my library as a Class Library, it couldn't be used by those folks. Porting to a Runtime Component also allows your library to be used in those languages on new devices like XBOX One and HoloLens.
To get me by in the meantime, I've added a Temperature class to my own library that's based very much on your implementation and I gave you credit in the source. My implementation is nowhere near as robust as yours but it's a start and if your library ends up being Runtime Component compatible I'd like to yank out my implementation and just take a dependency on UnitsNet. (Thank you for publishing your code under a very non-restrictive license, BTW. I wouldn't have been able to do that otherwise.)
As you investigate making the move to a Runtime Component you may or may not find features of your library that won't work under the Runtime Component restrictions. If everything moves over easily, AWESOME. Then it's just about changing the way the library is compiled and changing the binary that NuGet deploys for UWP apps. However, if you find features that have to be removed I recommend using conditional compile statement and creating a new NuGet package called something like UnitsNet.UWP (Universal Windows Platform). You may want to do this anyway, for example, if you want to keep your core types as structs instead of classes on non-UWP platforms.
If you have any questions about this process whatsoever please don't hesitate to reach out. I've already endured the pain - err, I mean, enjoyed the learning exercise - of porting several Class Libraries to Windows Runtime Components. I'm more than happy to share knowledge or help with translation.
Thank you again for such a quick response and for looking into it!
Jared

I think this should be doable. I got a working prototype with a Windows Runtime Component where I copied in Temperature and its dependencies, and modified them until they compiled.
Branch here: https://github.com/anjdreas/UnitsNet/commits/uwp
The features we lose are:

Operator overloading
Immutable structs (immutable classes insteads, no biggie)
IComparable and IEquatable interfaces
CultureInfo, I used the CultureInfo.Name string instead. Thoughts?
UnitsNetException and derived exceptions. These are now internal and will be wrapped during the projection to whatever makes sense to the running platform. I set HRESULT as recommended.

I'll take a look at this tomorrow again, getting late here now. It's possible we can do with some conditional compile statements, but there were enough changes to get this prototype working that I'm worried it will be a bit of a mess to keep both variants in the same files. We will see.
Either way, conditional compile or separate code for WinRT and .NET, I think I should be able to pull this off over a couple of evenings.
Thank you for your assistance and input, it is much appreciated.

I'd love to help if you need it. I would never try to tell anyone how to maintain their own library, but I would love to see this done with conditional compile statements. The main reason is all too often I've seen wonderful libraries like yours get forked for one odd reason or another and the forks tend to fall behind when new features get added to the main branch. You appear to be super active on your project, which is amazing, and I'd hate to see the UWP fork fall behind.
If it would help for me to jump in and do some of the work, I'm happy to contribute some time. You could just put everything in the UWP fork and we could divide the work and keep plugging away until we get something workable that we can merge back into the main branch.
Let me know what you think after you've had some time to tinker with it. You've created an awesome library.

Thanks, I will probably pick you up on that offer. I propose I scramble together an initial draft with modifying generator scripts and using conditional compile statements, then you can review that and we take it from there.
To be clear, my intention was never to fork this out in such a way that it would fall behind. It will be part of the main library and main repo, hopefully even the same nuget, but seeing we are already generating most of the code using powershell scripts it may or may not be better to simply generate a second set of source code targeted at WinRT - purely as an alternative to conditional compile statements.
Just a heads up, we are awaiting a newborn anytime today or in the next few days, so I may be unavailable at least a couple of days when that happens.

First and foremost, congratulations!!! I'm quite familiar with that time of life, so no worries at all and enjoy it!
I also didn't realize how much code is being generated. If that's the case, conditional compiles aren't nearly as important for keeping things in sync. I'll totally defer to you on which approach you think makes the most sense, and I'll help however I can.
The only part I think we need to be careful with is putting it all in the same NuGet package. At least at the moment I'm not thinking that's a good idea. To your point above, this change does require dropping some valuable features from the library like operator overloads and custom exceptions. If we crate a new NuGet package (something like UnitsNet.WindowsRuntime) then Windows 10 developers who write their apps in C# and VB still have the option to use the more fully featured version of your library. However if we add the Uap10.0 folder to your existing NuGet package, that folder will have a higher precedence over all other versions in your package in Windows 10 apps. And that will force the usage of the Runtime Component version on Windows 10, even if the more fully featured version could be used. I don't think we want to force this change when it's still completely valid to use the Portable / Net40 version in Windows 10 apps that are written with C#  and VB.
What do you think?

Nice to see more people interested in the library.
While I have no intermediate use for this feature I like libraries supporting as many platforms as possible (and I do have some small Windows IoT projects on the side). Hopefully most of the functionality could be kept.
As @anjdreas has suggested I would suggest to generate another set of code for WinRT but I would also suggest to completely share the "handwritten" code and if necessary use conditional statements in these files. That way we'll get the best of both worlds...

So I'm back and all is well with the new family member.
I took a stab at this and there is now a WIP nuget out based on uwp branch.
Rambling thoughts
Code refactoring went pretty much as expected. I did stick with conditional compile statements, and I think I'm fine with how it turned out. I mostly wound up internal-izing methods with generic params or incompatible param types, and added some alternative public members that now are available in both main lib and uap lib.
I first attempted a single nuget with just a new uap10.0 target, but as you pointed out @jbienzms, the test app pulled in the uap target instead of the full .NET lib, and for c# apps that is probably not what you want. So I added a new UnitsNet.Uap nuget for the sole purpose of exposing a stripped down Units.NET library to those developing Javascript or C++ UWP apps, or developing their own WinRT Components to be consumed by any platform.
I must say, I did struggle a bit with the new nuget system. Apparently packages.config files are on the way out, replaced by project.json files. However, only PCL, UWP and ASP.Net Core can use this at the moment, so the .NET 3.5 project gave me all sorts of trouble. I didn't find any open source project to use as reference, so I rolled my own the best I could. I'm sure it can use some improvements, but basically I let the old projects stay on packages.config files, and only the new Uap project has its own personal UnitsNet.Uap.project.json file.
Request for comments

Should nuget and project be named UnitsNet.Uap or UnitsNet.Uwp? To my knowledge they refer to the exact same thing, but UWP is the most recent naming. Nuget still uses uap and uap10.0, which adds to the confusion.
How can we best ensure main lib and uwp lib are synchronized? Currently I need to edit both .nuspec files before releasing, which is a minor nuisance.
Is description/summary in UnitsNet.Uap.nuspec ok?
Should we add a new solution file for UWP?
Building the solution became a lot slower when it's also building the UWP test app and/or UWP lib. Apparently this is a known issue with UWP, probably related to the projection stuff.
I assume users will get errors when opening the solution without having X and Y plugins installed. At least I had to install some stuff to get started.
With multiple solutions it's hard to ensure you are not breaking anything when editing shared code. However, the main contribution is adding new units and that is purely JSON + generated code. Also, the build server will help catch this on PRs.

@anjdreas Great work!

I would go with Uap if NuGet uses it. Branding is much more likely to change than tags in config files.
Could you set one and let a build script add the other? Seems like much work for a small problem though. Something similar to this could be used.
Seems fine, Can't say I've spent much time reading NuGet package description though.
I've seen many other projects with solutions on the form ProjectName.All.sln, ProjectName.Silverlight.sln etc. This seems quite established.

i. I didn't notice a difference in build speed at all. Restoring packages takes 5-10 seconds and building 1-2. Probably very dependent on computer. Intellisense gets really confused with the #defines though.
ii. This is a very good argument for multiple solutions.
iii. Since developers not using Windows 10 can't compile the UWP apps anyway (Windows 10 and VS2015 listed as requirement here) adding multiple solutions makes it less awkward for them at least. The build server still has to do the actual verification that the code compiles.

Thanks, I'll split into a separate solution then.
@jbienzms Have you had time to look over this yet? I still don't know if it actually works in an JS and C++ app.

Well shoot, I was replying to the e-mail bot last week and apparently it didn't actually post my replies here. Let me first start by posting those messages that didn't make it:
Monday, March 14th @ 3:28 PM

Driving right now so can't do a full reply, but I recommend against UWP and instead suggest UnitsNet.WRC or UnitsNet.RuntimeComponent. Because UWP will confuse Win10 devs Into thinking that’s the one they should use.
I also recommend saying something at the very beginning of the NuGet package description that it is a slimmed down version for compatibility with all UWP languages and runtime components. And that developers targeting ONLY C# or VB are still recommend to use the other package.
I will respond more soon. Awesome work and congratulations on the new addition to the family!!!

Monday, March 14th @ 3:34 PM

P.S. If you disagree and want to use UWP, that’s ok too. Just be really clear in the description. Don't use UAP. Yes, NuGet still uses it but they shouldn’t. They keep it in there for legacy compatibility. Technically UAP is Universal App Platform and UWP is Universal Windows Platform. Technically UAP was Windows 8.0 & 8.1, where UWP is Windows 10 and later.

Now, on to your more recent questions:

Building the solution became a lot slower when it's also building the UWP test app and/or UWP lib. Apparently this is a known issue with UWP, probably related to the projection stuff.

Actually, this is probably due to everything getting compiled for .Net Native. There's an awesome article on what .Net Native is and what it means for your apps and libraries here. Though technically this shouldn't be happening for your library, just for any test applications or harnasses that use the library. Libraries can still be distributed as Any CPU, though UWP applications must always be compiled to a CPU target (x86, ARM, etc.)

Should we add a new solution file for UWP?

I would say probably yes. Mainly because some of your developers may not have the latest Visual Studio and may not have the tools for Windows Store development installed. In those cases they will see errors. Since you've done all the hard work to do conditional compiling where it makes sense, obviously those two solutions can share the same files. The only downside to this approach is that a community contributor could fix a bug or add a feature in a pull request that compiles in the NET solution but doesn't compile in the UWP solution. Meaning, as you accept pull requests you'll want to do your own compile against both solutions to make sure they work or refactor them.

Have you had time to look over this yet? I still don't know if it actually works in an JS and C++ app.

If it compiles and can be referenced from another UWP component, it should work in all languages. The issues you've already dealt with (like default overloads, etc.) are what allow the code projection to work. We could build some WinJS test harnasses, but honestly I think that's not necessary.
I'm a bit under water coming back from being out of the office last week but let me do a mini code review real quick.
Vector3.cs
Yup, that looks good. Though I think you can still support parameterized constructors on a struct as long as you include a default empty constructor.
UnitsNetException.cs
Yup, it's probably easiest to just make it internal. It can still be thrown even though it's internal.
UnitClasses/Temperature.g.cs
Looks correct. Unfortunately the DefaultOverload attribute doesn't work on constructors. This could be refactored to take a number and a units of measure enum and combine them all into one but that would change the signature of your existing library and you already have the static From method that does the same thing so I don't think that refactoring would make sense.
Conditionally compiling out the nullable types is all correct. Unfortunately.
I see that a lot of your conditional compile statements are there because of changing the access modifier (changing public to internal). I wish there was a shorthand for this but I don't see one. There is no such thing as creating an alias for an access modifier.
For all of the ToString methods you might consider using a type alias at the top of the class. For example:
#if UWP
using Culture = System.String;
#else
using Culture = CultureInfo;
#endif

Then you could write a single method body like this:
public string ToString(TemperatureUnit unit, Culture culture)
Of course you would still have to use conditionally compiled code within the body because the code paths are pretty different, but at least there would only be one method body instead of duplicating the whole blocks of code just to change the signature. The one thing this doesn't account for though is your use of [CanBeNull] when Culture is a string. That appears to be a ReSharper thing so I don't know if that's important.
Please let me know if there's a particular piece of code you'd like me to review. So far it looks great. And when you have a theoretical NuGet package published let me know that too and I'll reference it in my IoT library to see how it works out. When you're ready to go live, I can push an update on my library to start taking a dependency on yours.
Thanks for all the hard work man! I'm super impressed!!!

1. Nuget name: UnitsNet.Uwp
I did a quick search on packages on nuget.org:
Search for winrt returned 706 packages
Search for uwp returned 352 packages
Search for uap returned 64 packages
Search for RuntimeComponent returned 9 packages
Search for wrc returned 0 packages
Search for tag:uwp returned 294 packages. These are the first ones with any relevant term in their ID.
SQLite.Core.UAP
Sqlite-Winrt.uwp
DotBlog.MvvmTools.AutoINPC.UWP
HAPUWP
GHIElectronics.UWP.GadgeteerCore
LumiaImagingSDK.UWP
LumiaImagingSDK.Javascript
UwpDesktop
Bazam.Uwp
WeatherNet.uwp
Common.Logging.WinRT
UWPDataTrigger
By browsing a bit, very few recent packages seem to follow the winrt naming. UAP has few packages and the two last terms even fewer, which makes UWP my favorite.
I wish the nuget team made a clear guidance on this, as the variation in package namings are way out there.
2. Modified nuget description
I modified the description/summary to be even more clear about being a stripped down version. Does this work?
<title>Units.NET - Windows Runtime Component</title>
<description>Stripped down version for Windows Runtime Components in UWP apps, in order to be compatible with JavaScript and C++ UWP apps. For a C# UWP app, consider the full library instead.</description>
<summary>Stripped down version for Windows Runtime Components in UWP apps.</summary>

3. Added solution UnitsNet.Uwp.sln
Moved UWP projects out of main solution.
4. No UWP specific tests
I do note we have no tests explicitly for UWP, but I'm not sure if it's worth a lot of effort. The shared code is quite tested and I don't see a lot of potential for bugs in the conditional compile statements, knock on wood, so unless you have anything in particular in mind I vote we leave it without tests for now.
5. Building UWP nuget with AnyCPU
You did mention this, but I just wanted to make sure that AnyCPU is the way to go?
I've seen nugets named like MyLib.Uwp-arm and MyLib.Uwp-x64. What purpose does that serve?
6. Type alias Culture for string/IFormatProvider params
Thanks for the tip, that was clever and saved me a lot of duplicate code.
7. Nuget is out
https://www.nuget.org/packages/UnitsNet.Uwp/3.30.0-alpha2
8. Test on a JS or C++ UWP app
It would be really good if you could test the nuget on a JS or C++ app to make sure it works as advertised, but if you are confident about that part working then I'm fine with that.
9. PR is ready to merge
https://github.com/anjdreas/UnitsNet/pull/152
I'd like some feedback on this last work and the numbered sections, before merging in the PR.

I did a quick search on packages on nuget.org

Don't forget that all of those naming conventions were valid at different times. WinRT was Windows 8.0, UAP was Windows 8.1 and Windows Phone 8.1 and UWP is Windows 10 and Windows Mobile 10. Just looking at the total number of packages that use a particular suffix is not going to tell you which suffix is the right suffix for your project.

which makes UWP my favorite

You absolutely can use the UWP suffix if you want. Just be aware that when a Windows 10 developer searches NuGet for packages they will see one entry for UnitsNet and one entry for UnitsNet.UWP. Windows 10 developers have sort of been "trained" that when they see UWP they see "that's the package for me". In your case, though, that's actually probably NOT the package they want the majority of the time. The only time a developer wants the this version of the package is if they're writing a Windows Runtime Component to target all possible languages. The average UWP developer is building an app, not a library. So the average UWP developer is likely to pick the wrong package if they see this one listed as "UWP". That's specifically why I'm recommending using a suffix that is uncommon. We don't want the average developer to select this version. Your main version offers many more features and is compatible with most UWP apps. We want them to pick your main version by default.
Again, if you feel strongly about using the UWP suffix, please consider making sure the very first line of the package description starts with something like "Most UWP developers should NOT use this version and instead use the NuGet package called UnitsNet. This version of UnitsNet is compiled as a Runtime Component to support all UWP languages and other runtime components. It has reduced functionality compared to the main UnitsNet package."

I modified the description/summary [...] Does this work?

Yes. Though "stripped down" does sound kinda bad now that I read it back (I know I suggested something like that previously). That's why I suggested the text above. But whatever you choose, you're on the right track. The primary concern is letting them know that if they're picking this version over the other one they should be doing it for a specific reason.

so unless you have anything in particular in mind I vote we leave it without tests for now

Nope, I'm fine with that. Your other version is well tested and this version is mostly just hiding some things. You could possibly write some unit tests for string conversion because that path is different, if you wanted to, but all your other test cases seem well covered.

Nuget is out

Excellent. Let me know if any of my notes above change your mind or if you decide to stick with the UWP suffix. When you've settled on the final naming convention for the package I'll update my library to consume it.

Test on a JS or C++ UWP app

I can do that when we have the final package naming convention nailed down. I'll build a sample app off of that package out of NuGet.

I'd like some feedback on this last work

Sure. Anything in particular? Looking at the Temperature class I see that a couple overloads of ParseUnit use CultureInfo explicitly (either (CultureInfo)null or new CultureUnfo(cultureName)). I just wanted to make sure that was the right approach now that you're using the alias trick to switch between CultureInfo and string. It looks like the main implementation of ParseUnit takes an IFormatProvider. Honestly I haven't done anything much with cultured string parsing so this may be the exact right way of doing it. I'm just pointing it out mainly as a note for you to to double check that's still the right way with the alias. It very well may be.
Let me know if there are any other areas or things you'd like me to review specifically. I'm more than happy to help.

Whoops, I missed one:

Building UWP nuget with AnyCPU

Yes. Your NuGet library should be built as Any CPU. Only applications and C++ libraries must be processor compiled. What actually happens with your code (believe it or not) is it gets merged into the application binary at compile time using the same processor architecture that the application is targeting. Fascinating stuff. That link I provided above on .Net Native explains in more detail if you're interested.

Thanks for the detailed feedback.
1. Nuget naming
Your point is well taken and I agree it might be good to distance the nuget from the UWP naming. I then propose UnitsNet.WindowsRuntimeComponent.
2. Nuget description
Assuming we go with the naming in point 1, here is something in-between our two suggestions:
    <title>Units.NET - Windows Runtime Component</title>
    <description>For C#/VB Universal Windows code (UWP), use UnitsNet. This is a Windows Runtime Component with reduced functionality to support all UWP languages (JavaScript and C++) and other runtime components.</description>
    <summary>For C#/VB Universal Windows code (UWP), use UnitsNet.</summary>

3. Type aliasing
Thanks for pointing that out, I did double check those overloads and found a couple ones that could be improved to use Culture alias more. The main exceptions are ParseUnit() methods and UnitSystem constructor methods, which complicated things by being public and also used internally. That is why the (IFormatProvider)null needs to be there.
4. Tests
These are definitely needed. I created a JS UWP app to test this thing and right off the bat I'm hitting bugs due to ToString() parameter being string instead of CultureInfo. I've added some of the existing tests that did not require any modifications, mainly Parse() and ToString(). These are also the ones with the most conditional compile statements in them, so that was good to add.
5. Can't install nuget on JS app
I got to wrap up for today, but I hit a wall trying to add the nuget to the JS app. Adding the project reference works well, but not the nuget. Not sure what I'm doing wrong. Any ideas? I've pushed the latest bits to the branch. Also here is the latest nuget:
https://www.nuget.org/packages/UnitsNet.WindowsRuntimeComponent
I'm leaving for easter holidays for a couple of days, so I will probably not be very active before Saturday or so.

Nuget description

Beautiful! Only a very minor suggestion: instead of (JavaScript and C++) perhaps (including JavaScript and C++)? When I read it I just felt it was saying only those languages were supported. Who knows if other languages will be supported in the future and of course C# and VB are already other options today.

Type aliasing

Understood. Thank you for re-checking just to be safe.

Tests - right off the bat I'm hitting bugs due to ToString() parameter being string instead of CultureInfo

Uh oh. That's honestly kind of unexpected. Can you share what your test code is, what the expected result was and the actual result? I'll see if I can explain why, make suggestions or dig into it more.

Can't install nuget on JS app

First and foremost, make sure you've selected a CPU architecture from the solution dropdown. I've noticed NuGet can get wonky if the application project type is set to Any CPU. , can you verify that you did Blank App Universal and not Blank App Universal 8.1?
With x86 selected, when I try to reference your NuGet package I get the following error in the Error window:
Could not install package 'UnitsNet.WindowsRuntimeComponent 3.30.0-alpha3'. You are trying to install this package into a project that targets 'Windows,Version=v0.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
I believe the problem is somewhere in your .nuspec file. For example, it's worth noting that your .nuspec lists the following dependencies:
<dependencies>
	<group targetFramework=".NETPortable0.0-sl4+wp71+win8" />
	<group targetFramework=".NETPortable0.0-net40+win8+wp8+sl5" />
	<group targetFramework=".NETPortable0.0-net45+win8+wp8" />
	<group targetFramework="WindowsPhone8.0" />
	<group targetFramework="Windows8.0" />
	<group targetFramework="Windows8.1" />
	<group targetFramework="Unsupported0.0" />
	<group targetFramework=".NETPortable0.0-win81+wpa81" />
</dependencies>

My Runtime Component package the only other dependencies listed are other Runtime Component packages I depend on:
<dependencies>
	<dependency id="Microsoft.IoT.DeviceCore" version="1.0.3" />
	<dependency id="Microsoft.IoT.DeviceHelpers" version="1.0.3" />
</dependencies>

I don't have any group or targetFramework elements, but I could be doing it wrong. At the very least I think you at least need to add a targetFramework for uap10.0 to your dependency list.
Here's a good article on NuGet 3.1 and UWP support:
http://blog.nuget.org/20150729/Introducing-nuget-uwp.html
That's where I found that targetFramework string.
The only other difference between our nuspec files is you have a language tag and I don't. But I doubt that matters.

including JavaScript and C++
Agreed.

Can you share what your test code is, what the expected result was and the actual result?

The bug in this case was trivial and my bad, but it was only triggered in the UWP code path and underlined the importance of having tests for both code paths in general. The tests I added should cover ToString and ParseUnit to some extent, but conversions and things like no decimal type are still untested in UWP code paths. My point is just that I proved myself wrong in assuming it was fairly safe to not test the UWP code, and it's probably worth adding a few more tests towards UWP code paths to improve coverage.

I believe the problem is somewhere in your .nuspec file. For example, it's worth noting that your .nuspec lists the following dependencies:

This section was actually just an experiment, based on the GoogleAnalyticsSDK nuget that worked. It did not help. Originally I did not have any dependencies at all, which I believe it's correct for this lib.

With x86 selected, when I try to reference your NuGet package I get the following error in the Error window:

Yes this is the error I got as well. Haven't had time to research it yet,  but I will read your link. Hopefully this is just a matter of tweaking the nuspec.

I think I got it all working now. I removed the <dependencies> section and restarted Visual Studio. Pretty sure I didn't touch anything else, and I'm also pretty sure I tested the exact same .nuspec structure earlier. Maybe I was stuck with some old nuget cache, not sure. Tried cleaning that too.
Anyway, there are now two UWP test apps; C# and JavaScript.
Both can successfully install the nuget and they demonstrate some simple conversions and ToString() calls to output the results to a label. I tried adding a C++ app too, but got some errors trying to create the project.
I've edited the .nuspec as discussed, so I think this is getting ready to merge and publish to stable nuget now. Thoughts?
https://www.nuget.org/packages/UnitsNet.WindowsRuntimeComponent/3.30.0-alpha4
https://github.com/anjdreas/UnitsNet/commits/uwp
Notes:
When installing nuget in JS app, you have to manually set <SpecificVersion> from True to False in the .jsproj file. You will get a build warning and a runtime exception that it can't find the UnitsNet type if you do not change this. I see the exact same behavior with the GoogleAnalyticsSDK nuget, so I currently assume this is a bug in the nuget package manager extension. I could not find an issue on this though, so I created an issue here.

I honestly think having to set SpecificVersion isn't right... Especially since you have to manually edit the .jsproj file. I tried adding my own WRC component to a WinJS file and I had a different problem. I got no error or warning symbol, but mine never showed up as a reference! I'm still looking into it. And I see you've got some traction on your issue. That's awesome. Let me know if it goes stale.

Just an update, according to discussion in https://github.com/NuGet/Home/issues/2406 the JavaScript team is aware of the problem and working on a fix.
They also point out a workaround using project.json instead of packages.config, as detailed here.

Yes, I've been having lots and lots of discussions with them behind the scenes. Seems to be an issue with NuGet and the way WinJS projects use packages.config instead of project.json. I think we're fine to go ahead with publishing our updates. I don't think there's anything we can do on our end to help or work around it.
I have this scheduled on my end to take a dependency on your library probably early next week. This week I have a commitment due for a video on the Maker Show and I also received my HoloLens on Friday so I've been busy with creating some communities around that.
It looks like the WindowsRuntimeComponent version of UnitsNet is still pre-release on NuGet. When you get that updated to a non-beta release could you let me know? I will set some time aside early next week to get my library updated and depending on it.
Thanks!

Alright, I should be able to merge into master and release a stable nuget this week. A bit hectic with moving to a new house these days, but I don't think this part should take me long.

@jbienzms  #152 now merged, and 3.33.0 stable nuget released.

Sounds good @anjdreas. I have to be in Austin for HoloLens on Monday and Tuesday, and I have to finish that IoT video up this Friday and next Wednsday. My goal is to have my library live with UnitsNet by end of next week. Sorry for the delay on my end. I'll post back here when it's done.

No problem, thanks for the update.

Just following up on this, did you get a chance to test the nuget in your app?

I did not get to it last week but I did get to it today. :) I have not pushed an update to the NuGet package out yet but I have pushed an update to source control. You can check it out here:
https://github.com/jbienzms/iot-devices
The reason I haven't pushed a NuGet package yet is because I just published this video about the library on Channel 9 today as part of The Maker Show:
Breaking out of the Loop
https://channel9.msdn.com/Shows/themakershow/13
If you get a chance, let me know what you think of the video.
Since I don't have my Raspberry Pi with me I don't have the ability to test my changes and I don't want to push a package update without doing that testing. Especially with that video going live. I should have a chance to do some tests on Wednesday and should hopefully be comfortable pushing a package update then.
I have a related question about a new unit of measure. I'll post that in another thread though to not confuse this one.

Cool video, I actually learned a couple of new things such as DispatcherTimer and got a bit more familiar with the IoT library, which I haven't explored yet, so thanks!
If you want some constructive criticism, here are a couple of first impressions:

I liked the Ratio value behavior, I have only dabbled with embedded and this was one of the minor nuisances. Units.NET might help out here, as it has a Ratio type to convert to Percentage, DecimalFraction etc. But I suppose it is a big lib to include for something that trivial.
To me it was a bit too much history about Visual Basic and modern design tools with animated storyboards, but I understand this can be new and interesting to others.
Comparison of Timer vs DispatcherTimer vs Task vs Device library was good stuff
At first I thought the final implementation demo was a lot of code just to read off some measurements, such as the few lines of code in the first implementation, but I can appreciate the gain of reducing CPU use and not hogging the UI thread without having to code the Tasks myself.
I did not understand the purpose of AdcProviderManager and the controller
ObservableEvent seems interesting, have you considered using Rx? It has a lot of interesting stuff like Throttle(), and choosing what task scheduler to run on, such as the processing on thread pool and updating UI components on the UI thread.

We can continue this conversation elsewhere if you want.
As for testing Units.NET, no rush. I'm just checking in and interested to see how it works out.

@jbienzms Just curious if you got around to test the nuget in the app?
It still seems to be a bug with having to set SpecificVersion to False for UWP apps using packages.config, even with VS2015 Update 3.

Yes, I did get around to testing the NuGet. And as you report, it works very well for C# projects but is still having problems in JavaScript apps. Really there's nothing we can do about that. The VS team is aware of the issue and has a bug open for it.
I have incorporated UnitsNet into my project and that is how it is committed to source control. Sadly, I still have not gotten around to releasing an updated NuGet package. It's on the TODO list.
From your end, you can certainly consider this issue closed. I don't think there's anything else you can do on your end to make the process easier. Thank you again for your hard work and for supporting WinMD with your library!

Very cool, thanks for the update!

Just wanted to follow up with you @anjdreas and let you know that I FINALLY published an update to the NuGet package that includes the dependency. As of NuGet package 1.0.8, UnitsNet is referenced by the Microsoft.IoT.Devices library. I'm so very sorry that it took so long to get pushed up to NuGet. Other responsibilities had me pulled in different directions. Having said that, I'm super excited to see the Windows Runtime version has been downloaded over 900 times! Glad to see my library wasn't the only code to benefit from this work.
Thank you again for your support, and keep up the great work on an excellent library!

Thanks for letting us know. I'm glad to hear this piece of code is useful to you and that you are referencing it in the IoT nuget! Would you mind adding a short snippet for our README section?

Sure @anjdreas. Here you go:
Microsoft.IoT.Devices extends Windows IoT Core and makes it easier to support devices like sensors and displays. It provides event-driven access for many digital and analog devices and even provides specialized wrappers for devices like joystick, rotary encoder and graphics display.
http://aka.ms/iotdevices (home page including docs)
http://www.nuget.org/packages/Microsoft.IoT.Devices (NuGet package)

Thanks, can I link to your github username or would you prefer not to?
Also, is it OK for me to add the microsoft logo as the other entries have?

Feel free to link to: http://aka.ms/iotdevices
As for the Microsoft logo, I'm not sure about that. It was built on MS time but it was a personal project of passion, not something I was "assigned" to do. I wish I had a logo for the project. I'd gladly let you use that.

That makes sense, thanks. I'll add your text and your links.


pom.xml:80-85: Enable the execution of the xmir-to-phi...

The puzzle 488-9f6378f7 from #488 has to be resolved:
https://github.com/objectionary/jeo-maven-plugin/blob/74d5bea46e26db2cda0e29fd1d0d41597addf341/src/it/custom-transformations/pom.xml#L80-L85
The puzzle was created by @rultor on 13-Mar-24.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

It seems, that most of the problems were solved, we can try to solve this issue.

@0pdd 🐞 Awesome bug report! You've earned +8 points for your keen eye. Your contributions are invaluable in enhancing our project's quality. Keep an eye out for anything that seems off and don't hesitate to report it. Your current balance is +8. Happy bug hunting! 🔍

@0pdd 🐞 Awesome bug report! You've earned +8 points for your keen eye. Your contributions are invalu...

I see you're talking to me, but I can't reply since I'm not a chat bot.

@0pdd 🐞 Awesome bug report! You've earned +8 points for your keen eye. Your contributions are invalu...

I see you're talking to me, but I can't reply since I'm not a chat bot.


Filtering on many to many

Hello! First issue here!
I was wondering how I can use this library to filter on many to many relationships, didn't find an example in the docs. Is it even possible to do this with the current API? Or do I need to define a custom join strategy that takes in the through table model and join clause perhaps?

The library is not intended to completely replace sqlalchemy, but rather to simplify standard queries.
The correct approach would be to figure out how to do this in pure sql, and then try to simplify the query using the library.
MtM filtering can be unobvious and should be considered separately in each case.
Example:
We have: company table, city table and company_city mtm table
Write query that: Get all cities of company by company_id/company_name

Denormalise data to one array field and filter by it.
Using subquery IN

class CityFilterSet(BaseFilterSet):
    id = Filter(city_table.c.id)
    name = Filter(city_table.c.name)
    company_id = MethodFilter(method="filter_by_company_id")
    company_name = MethodFilter(method="filter_by_company_name")

    @staticmethod
    def filter_by_company_id(query: Select, value: uuid.UUID | None) -> Select:
        if value:
            subquery = select(company_city_table.c.city_id).where(
                company_city_table.c.company_id == value
            )
            return query.where(city_table.c.id.in_(subquery))
        return query

    @staticmethod
    def filter_by_company_name(query: Select, value: uuid.UUID | None) -> Select:
        if value:
            subquery = (
                select(company_city_table.c.city_id)
                .join(company_table, company_table.c.id == company_city_table.c.company_id)
                .where(company_table.c.name == value)
            )
            return query.where(city_table.c.id.in_(subquery))
        return query

query = select(City)
filter_set = CityFilterSet(query)
query = filter_set.filter_query({"company_id": value})

select *
from city
where city_id in (select city_id from company_city where company_id == :value);

We can not filter by several fields of subquery in different filters (company_id + company_name) because this will generate multiple subqueries, which is inefficient.
This approach could be used if there are not so many rows in the subquery.

Use two queries and join/(subquery IN) them

select *
from city
join (select distinct company_city.city_id
from company_city
join company on company_city.company_id = company.id
where company.name = 'some_company_name'  -- many company filters here
) city_subquery on city_subquery.city_id = city.id;

select *
from city
where city_id in (select distinct company_city.city_id
from company_city
join company on company_city.company_id = company.id
where company.name = 'some_company_name' -- many company filters here
)

We can do this with two filtersets CompanyFilterSet and CityFilterSet. Build two different queries and then join them by selecting distinct ids in many to many.
city_query = ...  # build query using CityFilterSet

if company_params:
    company_query = ...  # build query using CopmanyFilterSet
    company_city_query = select(distinct(company_city.c.id)).join(
        company_query, company_query.c.id == company_city.c.company_id
    )
    city_query = city_query.join(
        company_city_query, company_city_query.c.city_id == city_query.c.id
    )

Thanks for suggestion with MultiJoinStrategy, let's take a closer look at how the filtering will be done
When we have the query:
SELECT project

we receive a list of projects.
However, when we use the query:
SELECT project
JOIN company_city ON company_city.project_id = project.id
JOIN city ON company_city.city_id = city.id
WHERE city.count_people > 10

we no longer get a list of projects, but rather a list of company_city.
Filtering via a many-to-many relationship through a join will require grouping or using DISTINCT. Therefore, filtering in the way described is not directly feasible.

Or even better, adding a submodule that provides Pydantic filtersets that plug into FastAPI and Starlette directly?
How do you see this refinement, what do you see missing in the current functionality?
Now to make everything work, we need to make:

one dto to describe what queries parameters we expect QueryParamsSchemaDto
one dto to describe the filtering scheme FilterSchemaDto
Declare a filterset
Write a query in the database and put a filterset on it

The code is layered and universal for any frameworks
Here is an example:
https://sqlalchemy-filterset.github.io/sqlalchemy-filterset/examples/fastapi/
In fact, you can make a generic repository and specify basic queries (get, list, create, update) in it using filtersets
But such things are specific for each team, so we didn't put it into the general functionality. Perhaps we should make an example of such implementation and add it to the documentation.

Yeah indeed your approach is more general.
Here is what I did. I still think a lot of the work I did can be implemented here, as I build on top of the sqlalchem-filterset design.
But I chose to have a single Pydantic model be the filterset + input schema (to skip the extra step you have here).
https://github.com/RamiAwar/pydantic-sqlalchemy-filterset
I'm not sure it's a great idea to integrate the pydantic part, but the work I did on joins can be nice to add. Also, more examples are useful (many to manys and such).

Hi @RamiAwar!
Could you please give us more details about MultiJoinStrategy.
How do you handle deduplication?
Do you use distinct or sqlaclchemy unique() or maybe something else?

Hey @Mrreadiness ! I don't handle it in the filtersets actually. I think this is the user's responsibility.
For me the filterset must only modify the 'query' (sqlalchemy select or whatever).
The query execution should be handled by the users of the filtersets. So they're responsible to call .unique() in all places if their filterset includes joins at all.

@RamiAwar I've found, that we can chain RelationJoinStrategy, check it out.
I also discovered some join-deduplication issues, but it's not connected to many-to-many logic.
This solution is limited by inner joins (as RelationJoinStrategy). From a "regular point of view", I don't see how outer join can be used, feels counterintuitive.
I guess we can also implement something with a similar interface for variants 2 and 3 from this comment.
But I'm still doubting what is worth adding and what is not. Many-to-many filtering is a complicated thing, and every time I face it - ended up with a specific query-tuning solution.
@RamiAwar Do you have some common patterns of many to many filtering in your project?
@ymezencev Your thoughts?

My 2 cents: Idk about the technical feasibility of what I'm about to say, but it shouldn't be the barrier.
I think we should keep the api as close to SQLAlchemy as possible. The less we deviate, the more this library will likely be the best out there. No one wants to learn another api and DSL, they will prefer building their own makeshift solution and use sqlalchemy which they know and love.
What does this mean practically?
API should support .outerjoin(...) and .innerjoin(...), with an optional onclause and chaining (and other stuff sqlalchemy supports if we want but this is the minimum).

I think we should keep the api as close to SQLAlchemy as possible

Yeah, I agree.
Maybe something like this would be closer to the target:
class JoinChainStrategy(BaseStrategy, ABC):
    def __init__(
        self,
        *chain: RelationJoinStrategy,
    ) -> None:
        self.chain = chain

    def filter(self, query: Select, expression: Any) -> Select:
        for el in self.chain:
            query = el.apply_join(query)
        return query.where(expression)

About outerjoin-s. We had been thinking about it and had not found usage for it in the context of filters. Anyway, adding them is not a big deal, just inherit  RelationJoinStrategy and override _build_join. (If you have examples with outer joins from real live - I'm ready to consider adding to lib)
Required onclause made on purpose. I think it is a good example of Explicit is better than implicit, plus it's easier to handle the deduplication of joins.
The goal in general is not to wrap the sqlalchemy with support of all functionality, it's about simplification of building filters (a.k. most common scenarios of filters)

Yeah I actually use outer joins in my work all the time. I'll try to find an example, but they are definitely needed. Sometimes with optional filters you just gotta outer join, inner would filter out results you want.
Why do you care much about the join type though? Did you see what I did here?
https://github.com/RamiAwar/pydantic-sqlalchemy-filterset/blob/main/pydantic_sqlalchemy_filterset/strategies.py

In the context of the filterset library, the primary goal of the JoinRelationStrategy is to add joins only when a filter value is provided, keeping the query simple and efficient when no filters are applied:
-- Simple query without unnecessary joins
SELECT A.*
FROM A;

When a filter value is provided, the necessary join is dynamically added to fetch the filtered results efficiently:
-- Adding a join only when a filter value is specified
SELECT A.*
FROM A
JOIN B ON A.b_id = B.id
WHERE B.some_value = 'desired_value';

This strategy avoids performance degradation by not including joins that aren't needed. Including unnecessary joins can complicate and slow down the query.
Using an outer join, such as a LEFT JOIN, when planning to filter out null values can be counterintuitive and inefficient. Since we filter out rows where the join condition results in null anyway, it's simpler and more efficient to use a regular join:
-- Regular join to filter out rows with null values
SELECT A.*
FROM A
JOIN B ON A.b_id = B.id
WHERE B.some_value = 'desired_value';

If the requirement is to find rows in A that do not have corresponding entries in B, we should use a query specifically designed for that purpose:
-- Finding rows in A without corresponding entries in B
SELECT A.*
FROM A
WHERE A.b_id IS NULL;

In summary, an outer join does not properly align with the concept of a join that can be optionally applied for filtering purposes.

I can give you a generic example that's very common:
Let's say you have Blog and Tags.
Many to many relationship, so you'll create a jump table: BlogTag.
Relationship is optional however. Some blogs don't have any tags!
Sometimes you're searching across multiple fields (ex. Blog search) and you want to search blog titles + tags. That's a perfect use case for a filterset.
http://myblog.com?q=fastapi&category=technical
Here q searches across title + tags, and since tags are optional we need to join them with an outer join when filtering.
Category on the other hand is straightforward, let's say we have a Category model and we just use an inner join on it (1-1).

@RamiAwar You convinced me. With this improvement RelationOuterJoinStrategy will also be added.
Current prototype.
However, I faced this bug. I don't think that we should add JoinChainStrategy before fixing it, because the fix may change API of Strategis (BTW open to discussion).

That's why I didn't implement join dedupe 😛 Didn't want to deal with this stuff..
Side comment: I don't love the naming, it's complicated.
JoinChainStrategy and RelationOuterJoinStrategy and ...
Would be much more readable to have:
MultiJoinStrategy and OuterJoinStrategy
Users don't need to know anything about the fact that we're chaining, this is a dev detail for us.
'Relation' is kind of implicit, you're never joining on 'non-relations'.

Hi @RamiAwar!
I guess pr on the final stage. What do you think? Does it meet your needs?

MultiJoinStrategy was added at 2.3.0.
@RamiAwar Thank you for your help!

Nice work! @Mrreadiness 🙂


Move all negative numbers to beginning and positive to end in C++

💥 Proposal
(A clear and concise description of what the proposal is.)
Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes

/assign


How to install packages?

It's currently possible to install packages in the terminal with pip through:
 /opt/conda/bin/python -m pip install {package}
Or with conda through:
conda install -c conda-forge xgboost
I don't believe that this actually installs these packages on the workers, however, which would lead to problems if they were used in the processor class.
If there is a way to get them onto the workers as well, then it should be added to the documentation.

@mat-adamec I believe we have a temporary fix for this?

The fix is in the documentation here.


Refactor some code.

Extracted the editor JS code from the HTML file.
Also, fixed the indentation to be according to the JS indentation.
The indentation and styling inside the compiler.js was not modified.
There is no much documentation about the project. So I can't help more than that. Also, I think that all the compiler code should be inside an object (or ideally, inside classes, so it does not pollute the global scope).

Feel free to close this PR if you are not accepting PRs or if something is wrong.

Thanks ciberman, fell free to ask to my email!!

Great. I have sent an email with some questions


[flutter_svg] The

Imported from https://github.com/dnfield/flutter_svg/issues/105
Original report by @ScrivNetwork on Jan 24, 2019
Need implement

Comment by @alarkirikal on Oct 14, 2021
How have peopl handled this with SvgPicture.network(...) cases?

Comment by @edex96 on Jan 4, 2022
@alarkirikal
If your svg links are externally sourced and no way to edit them you can edit the parser to skip the

Wait, did Flutter get native SVG support? Or why was this issue imported here?


Ambiguous fields in token program sdk

Issue

Lets make this consistent. Should be called token_account or account.

https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/burn.rs#L20
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/burn_checked.rs#L19
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/close_account.rs#L16
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/freeze_account.rs#L16
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/initialize_account.rs#L17
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/initialize_account_2.rs#L21
https://github.com/febo/pinocchio/blob/f0eac8f192840c7e96b0890be4ec0a0d8823cfc3/programs/token/src/instructions/initialize_account_3.rs#L20

I, personally, vote for account. This name should prevent misunderstandings  because this is used in the original solana-program-library

I, personally, vote for account. This name should prevent misunderstandings because this is used in the original solana-program-library

Agree.


Fix propagation of headers with grpc server errors

Current implementation does not propagate headers if grpc error is returned.
This PR fixes ordering of header forwarding in handler.go such that it carries headers even if there was an error.
Relevant unit tests added for unary and streaming calls.

God, I did the same thing

@e421083458 feel free to use my fork


Depth value interpolated at edges

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu18.04

Kernel Version (Linux Only)
5.4.0

Platform
PC

SDK Version
2.36

Language
python

Segment
Robot

Issue Description
Hi, I just got a new L515 sensor and quickly tested it with some table-top objects. The overall depth quality seems good. But the depth value at the object edges seems to be interpolated and gives me "tails" of objects. I would rather get a zero instead of those interpolated values. I'm just wondering if this is normal and if there is a way to resolve this issue (perhaps by tuning some parameters/filters?). Attached is a sample point cloud from two viewpoints. Thanks.

Hi @shiyoung77
We have quite a bit of documentation about tuning and understanding the L515 camera technology.  Here are links:
https://support.intelrealsense.com/hc/en-us/articles/360051646094-Intel-RealSense-LiDAR-Camera-L515-User-Guide
https://www.intelrealsense.com/optimizing-the-lidar-camera-l515-range/
https://dev.intelrealsense.com/docs/projection-texture-mapping-and-occlusion-with-intel-realsense-depth-cameras

I also noticed the same problem with L515.
I read all the documents related to L515 and I didn't find any think related to this problem.
I tired to change all the available control parameters, but the edges still have this problem.
I think Instead of making the edges interpolated like that it should give empty gab here.
This issue will introduce a lot of problems for some applications such as volume measurement.
Are there any direct instructions to solve this?

Hi @RealSenseSupport @dorodnic
is there any answer to my question?

Hi @tarekmuallim
I understand what you mean.  One stream I would suggest to look at is the confidence stream.  That is one of the features added here on the L515 that can provide further information as to the confidence of the system in providing depth value for that pixel.  Changing camera perspective/moving the camera to a different position also can give a better understanding of the edges.  There isn't a way to zero out depth data for any given region or pixel.
FYI - Upgraded to the latest SDK and latest FW on L515 camera.

Hi @RealSenseSupport
Thank you for the support.
I tried to check the confidence map as you suggest.
It looks that this edges give a very high confidence despite being wrong edges!
it sill connect the edges with the background and give this points a high confidence.
This picture demonstrate the case:
I just put two boxes above each other in the view.

Here is the the result point cloud.

You can see the wrong edges
Her with confidence map texture

you can see the the edges have high confidence level!
Now if I change the confidence threshold to maximum "3"  I get this:

I still get the wrong edge with max confidence level.

Hi @tarekmuallim
It looks like you're trying to do some type of box measurement usage, is that correct?  Or you're just using the box on top of box as an example?  I only say this cause we have box measurement with our DIM Weight Software (https://www.intelrealsense.com/dimensional-weight-software/).
This edge detection example is something that is difficult for a TOF based device.  At times the confidence stream would be useful in this situation but also the IR stream can be used to help determine edges as well.  The IR and Depth are calibrated together, so there is no difference between the two.

Hi @RealSenseSupport
Thanks for your replay.
What I want to say in my example, that it looks like  the confidence map is some how non relative, because it gives high confidence for false edges. and I suppose it should give low confidence for this edges.
Regarding Intel Realsense DIM Weight Software, I would like to try it if there is Linux version available.
Yes we are trying to build a Dimensioning System. we already manged to build one using Realsense D415.
You can check our system: EasyCube we are now finalizing the system design.
We are now testing L515 for longer range applications.
Anyway, I am testing some filtering techniques to improve the scene which we got from  L515.
this the original scene.

and this what we got after filtering.

Thanks again.

Hi @tarekmuallim,
Do you mind sharing the filtering techniques you are using? The results seem to be very good.

Hi @tarekmuallim
Yes your filtering techniques seem really good based on the images provided.  I cannot provide a timeline as to when we may have Linux version of DIM Weight SW, right now we only have Windows version.  Monitor our DIM Weight SW site (https://www.intelrealsense.com/dimensional-weight-software/) for any updates.
*If we don’t hear from you in 7 days, this issue will be closed.

And I notice some noises on depth after align to color map.[#7541 ] I guess the noises showed in depth map maybe caused by "tails" of objects (mentioned above).  Am I right ? And how can I solve it? thanks @dorodnic @RealSenseSupport @shiyoung77 @tarekmuallim

Hi @wangsff
There can always be some part of "tails" from objects when you're talking about capturing boxes or objects at various angles with the depth cameras.  Not sure if you've tried the DWS itself for box measurements but I'd suggest giving it a try and seeing if works in your usage.
*If we don’t hear from you in 7 days, this issue will be closed.


LST in CMSSW

Zeroth version of a class, called LST, which can be called by CMSSW producer and run the full algorithm.
The input expected by the class is all the info we are getting from the tracking NTuple but per event, i.e. no preloading. The output that it spits out are the TC pT, η, φ, length and hit indices, to be consumed by downstream producers in the CMSSW configuration and create CMSSW track candidates.
The methods in the LST class are simplified versions of the functions that we run in the standalone scripts. For the class to run within CMSSW, some of these functions needed to be copied and possibly rewrittten, since they need to be included in libsdl. Starting from the needs of this PR, there is an addition to the Hits.cuh functions and a simplification of some other functions there.
Right now, the LST geometry is set up in each event within CMSSW. This is suboptimal and is expected to be fixed in the near future. However, I envision this development to go in a next PR.
Related CMSSW PR: SegmentLinking/cmssw#2
Related slides: https://cernbox.cern.ch/index.php/s/t7M0BfsyiEVN7eu

Merging this...


Test: Issue Report minimum description length

refs https://github.com/microsoft/vscode/issues/207831

[x] anyOS @bpasero
[x] anyOS @luabud

Complexity: 1
Create Issue

Background
For native issue reporting, we expect descriptions that are helpful and useful when triaging. This ensures that we don't get spam or lazy issue reports.
Steps

From the command palette, Help: Report Issue...
Fill out the  form on any source or extension.
Try submitting with short amounts of text in the description (less than 10 characters)
Try again with more text in the description.

Things to verify

that you get an error preventing you from submitting.
that when submitting an empty description, there is a different error
that when reaching the correct length of description, the error disappears.

Worked great!


[android] Use PwoMetadata in the ListView adapter

Instead of keeping a list of device addresses, we hang onto a list of
PwoMetadata objects to simplify things a little.

LGTM. Looking at you Travis...


'/app/pyouroboros/hooks' does not exists

I get this error when trying to deploy using the docker compose file.
This is on DSM 7, docker 20.10.

It is trying to find that folder on your server
You can create the folder on your server or, if you do not want to use the hooks feature, you can remove the last line of the Docker Compose file

ah yes, that was obvious, I misread it and thought a folder was missing in the container...


importSBML no longer working in current MATLAB version

This was https://github.com/AMICI-dev/AMICI/issues/1875.
In MATLAB Version: <IP_ADDRESS>3465 (R2020a) Update 8 and libSBML 5.19.0. AMICI importSBML fails with error
Error using sym>convertChar (line 1546)
Character vectors and strings in the first argument can only specify a variable or number. To evaluate character
vectors and strings representing symbolic expressions, use 'str2sym'.
As a result, genSSI can no longer import SBML models.
This is related to AMICI issue https://github.com/AMICI-dev/AMICI/issues/234, which was fixed 5 years ago. https://github.com/AMICI-dev/AMICI/issues/234
It is also related (and documented) in the new libSBML issue 274. https://github.com/sbmlteam/libsbml/issues/274
This can be reproduced by running genSSI runExample('BIOMD0000000003').
A straightforward fix to this is described in https://github.com/sbmlteam/libsbml/issues/274.

In GenSSI, analysing the two models BIOMD0000000003 and MIOMD0000000010 now works in MATLAB R2020a after changing 3 lines in<EMAIL_ADDRESS>How can we make sure that this is tested where necessary?

Hi Tom, you can simply make a pull request here. We don't have any tests specifically for the importer as we used to test this directly in AMICI. Unfortunately, I don't think this will fix issues in amici since https://github.com/AMICI-dev/AMICI/blob/57a7b11cc2fb301cf838daefd966830c522643a8/matlab/%40optsym/optsym.m also broke with the R2018a update.

I created a pull request called Issue #2.

Hello Fabian, I see that you approved the pull request. What is the next step, and who needs to take it?

That fixes the problem in importSBML detected while testing https://github.com/genssi-developer/GenSSI/issues/19.


Why is it min API 15 and not 14?

I see the fab dependency, which is 14. In the code I haven't found any dependency...

There are no devices running API Level 14. Hence, I set it to be 15.

Lol good to know :)


persp-maybe-kill-buffer is too slow

I had to comment out persp-maybe-kill-buffer use in kill-buffer-query-functions. See  https://github.com/nex3/perspective-el/commit/3e4efaba598bb01834bbc4fbeb3e1d7b48579624.
persp-maybe-kill-buffer is pretty slow since it does a lot of traversing across perspectives and buffers.
This is possibly related to the problem in #167. Because I removed some expected behavior, tests are now failing.
@mehw: Could you please look into fixing this? Thanks!

I think there needs to be a much faster mechanism for checking which perspectives a buffer is in. Maybe each buffer should keep track of it in a buffer-local variable, which will make the lookup in persp-maybe-kill-buffer much faster.

I think there needs to be a much faster mechanism for checking which perspectives a buffer is in. Maybe each buffer should keep track of it in a buffer-local variable, which will make the lookup in persp-maybe-kill-buffer much faster.

Thank you for the suggestions @gcv, I'm starting debugging to focus the problem... I'll report back to you ASAP ;)

Hi @gcv, after nights of debugging I can't manage to trigger the mentioned bug... maybe @deejayem, @ibytao, and @dpassen can give some context. I would like to design some regression tests...
I see there was a discussion about the recursive minibuffer in #163... I tried (setq enable-recursive-minibuffers t) and also (savehist-mode) with (setq savehist-autosave-interval 1) but nothing...
How should I setup Emacs 27.2 to reproduce the bug #167? I'm on Gentoo GNU/Linux, by the way.
What sequence of commands should I execute?
Thank you all. In the meantime, I'll keep trying ;)

Thanks for looking into it. Don’t worry about that bug specifically. Commit https://github.com/nex3/perspective-el/commit/6e87eeb6160345390406a82af0db61782bfb9913 in master worked around it.
I commented out persp-maybe-kill-buffer because of how frequently it gets called. It made basic Magit use feel very sluggish. When I put a breakpoint in it and start Magit or Helm, persp-maybe-kill-buffer gets hit a lot because those packages create and destroy tons of temporary buffers. I run with a lot of perspectives and buffers, so the traversals in that function take a while. Feels like there’s an O(n^2) thing going on.
Maybe just adding a simple heuristic would be enough. Like assuming every buffer name that starts with a space (“hidden” buffer) can automatically be killed because none of them belong to a perspective. Not sure.
I still really like the intent behind persp-maybe-kill-buffer — it’s just a fairly intrusive thing to have to run all the time, and so we need to make it really fast.
Feel free to look at my Emacs configuration (27.2, Mac) for inspiration: https://github.com/gcv/dotfiles/tree/master/emacs

@mehw: I put in a hack to allow killing temporary buffers (which we should not care about) without the expensive check. See 672d02dde0c2f8c951e3032e21050e1375a2692e
Then I reenabled the check, but hid it behind a feature flag, and turned it off by default: 248b4e96400b64cbaf8a431c437e6424a7665624 — tests are now passing again.
I'll try running the code with persp-feature-flag-prevent-killing-last-buffer-in-perspective set to t for a while and see if I run into trouble. Please do the same. If everything looks good, I'll turn it on by default.

@gcv: Thank you. I'll take a look this week-end. I'm sorry for answering you only now... crazy weeks ;)

@gcv: Hi, I managed to speed up the processing further... I'm currently perfecting the code. Expect a PR soon ;)

I think there needs to be a much faster mechanism for checking which perspectives a buffer is in. Maybe each buffer should keep track of it in a buffer-local variable, which will make the lookup in persp-maybe-kill-buffer much faster.

Benchmarks reveal that the processing could be sped up going bare metal, beyond the utility functions, accessing directly the data.

I put in a hack to allow killing temporary buffers (which we should not care about) without the expensive check. See 672d02d.

It's working on temporary buffers killed directly with kill-buffer. Smart solution ;)


create a bioconda package

Has to be on bioconda, not conda-forge, because cyvcf2 is on bioconda.

https://github.com/bioconda/bioconda-recipes/pull/35924


Synonym request: Vitreous body

MP:0002699 abnormal vitreous body morphology (and all relevant children) synonyms for vitreous body:
vitreous humor
vitreous humour
vitreous chamber

These terms are not sysnonymous. See UBERON hierarchy below:


merge from konsum-frontend-svelte

package.json

chore(deps): add ^1.0.0-next.39 remove ^1.0.0-next.36 (devDependencies.@sveltejs/vite-plugin-svelte)
chore(deps): add ^4.1.0 remove ^4.0.1 (devDependencies.ava)
chore(deps): add ^8.0.2 remove ^7.25.8 (devDependencies.npm-pkgbuild)
chore(deps): add ^1.18.4 remove ^1.18.3 (devDependencies.testcafe)
chore(deps): add ^2.8.6 remove ^2.8.2 (devDependencies.vite)
chore(package): (release.plugins)

.github/workflows/codeql_analysis.yml

chore: add actions/setup-node@v3 (jobs.analyze.steps.uses)

.github/workflows/browser_ci.yml

chore: add actions/setup-node@v3 (jobs.test.steps.uses)
chore: add actions/upload-artifact@v3 (jobs.test.steps.uses)
chore: add actions/setup-node@v3 (jobs.release.steps.uses)

:tada: This PR is included in version 1.31.13 :tada:
The release is available on:

v1.31.13
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix year field widths

Add explicit width classes to date fields to support the 2.0 release of GOV.UK Frontend

You can preview this change here:
Built with commit 05620fdfa7e5e596b5c84e4f125825a5d9f78de3
https://deploy-preview-533--govuk-design-system-preview.netlify.com


OctopOS Prime Penta Series-3

Make an animation of Solid Snake becoming OctopOS Prime.

I working on penta animaton for this week. I made Solid Snake x OP animaton

ALSO DONE MA'AM


[WIP] Fixes bad escaping of String values in generated migration code…

…to address issue #198

Closing since this is not actively being worked on.


require is not defined

styles.css :
@import<EMAIL_ADDRESS>
And
import { Annotorious } from '@recogito/annotorious'
import './styles.css'
The lines causing the error message: require is not defined  :
var anno = Annotorious.init({
  image: 'my-image'
})

Can you say a little bit about your setup, build process, bundler used etc.? Anything here that might apply to your case?
https://bobbyhadz.com/blog/javascript-referenceerror-require-is-not-defined

Not sure if this is causing the problem but you are initializing in the wrong way. See
https://recogito.github.io/annotorious/getting-started/
"Using npm" section.

For React, also see here: https://recogito.github.io/guides/annotorious-in-react/

Taking the code from Using NPM :

I get Cannot read property 'nodeType' of null :

Are you using this on React now? Or another environment? If React, please follow the React guide. The error message means you're not handing an image to Annotorious.

Now it seems fine Thank you for your kind help


Fix wrong maven dep name in test deployment pom

What is the goal of this PR?
To fix the dependency artifact name being incorrect in test/deployment/pom.xml

What happened was that I edited the pom.xml after having run test deployment locally (which seds in the commit sha as the snapshot version), then reset the file.


"Date" type in text behavior does not work correctly

Typing a value into one part of the date often resets values in other parts.
To reproduce:

Open the settings view of a component with a field with a text behavior that has type set to date.
Click the month part and type a number.
Click or tab to the day part and type a number.
Click or tab to the year part and type a number. You will see month and day values disappear.

Whenever the other parts are reset, this console warning appears: The specified value "0001-08-01T12:00" does not conform to the required format, "yyyy-MM-dd".
On: Desktop Chrome 54.0.2840.98

Hmm. Can you reproduce this in the date field in the publish pane, or just in a component form? On Chrome, there isn't much date formatting going on (since it uses the native datepicker)

@nelsonpecora Just in a component form.

@nelsonpecora I can reproduce this - both in settings and inline. It's only happening for date types, not datetime, so the publish pane isn't affected. Doesn't seem to happen with Firefox or Safari, but both force you to use a datepicker, which is removed from Chrome. Date input types outside of kiln work fine.

Let's make sure we test agains this before releasing v1.0

I think this may have been fixed by https://github.com/nymag/clay-kiln/pull/793 since I cannot repro it in new kiln


Proposal: Lock Down Public Network Access for Cognitive Services Account

Proposal: Lock Down Public Network Access for Cognitive Services Account
Current Resource Configuration:
resource account 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
  name: name
  location: location
  tags: union(tags, { 'azd-service-name': name })
  kind: kind
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${managedIdentity.id}': {}
    }
  }
  properties: {
    customSubDomainName: name
  }
  sku: sku
}

Relevant Code Snippet:
From the AI Hub Gateway Solution Accelerator:
resource symbolicname 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
  name: 'string'
  location: 'string'
  // other properties
  properties: {
    // implicitly enabled by not setting publicNetworkAccess to 'Disabled'
  }
}

Proposal:
To enhance security, I propose locking down the public network access (i.e., public endpoint) so that communication can exclusively flow through API Management.
Required Changes:

Set publicNetworkAccess to Disabled
Configure DNS and network settings appropriately

Benefits / Rationale:
Many customers prefer to minimize their public infrastructure footprint for security reasons. Implementing this change will help meet this requirement.
Documentation Reference:
For more details, refer to the Microsoft Documentation.
Could this be considered for implementation? Many customers would appreciate this added security feature.

@aymenfurter Thanks for your feedback.
It is very important indeed and currently being implemented and will be published with the next update of the gateway.

(Work in progress) https://github.com/aymenfurter/ai-hub-gateway-solution-accelerator/commit/62c42bc7140ed773e7cc3e9fdf7590d30534f154


Delete confirmation always shown twice

Describe the issue
When deleting a VM on macOS (from the right click menu), the Do you want to delete this VM and all its data? alert shows up again after one of the options is clicked. If the Delete button is clicked on the first alert, the VM is deleted. Then, if Delete is clicked again on the second alert this results in another alert telling you that the VM could not be deleted.
Configuration

UTM Version: latest
OS Version: latest
Intel or Apple Silicon? Intel

Unfortunately this is a SwiftUI bug.

I've worked around the issue by moving the VMConfirmActionModifier to the ContentView. There might be a better solution, but this one works.

Huh, found another SwiftUI bug. I'm getting crashes on iPadOS 14.5b2 related to UITableView if I swipe to delete a VM.
*** Assertion failure in -[_TtC7SwiftUIP33_BFB370BA5F1BADDC9D83021565761A4925UpdateCoalescingTableView _Bug_Detected_In_Client_Of_UITableView_Invalid_Number_Of_Rows_In_Section:], UITableView.m:2471
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (13) must be equal to the number of rows contained in that section before the update (13), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'

This still happens in v2.2.4 from the Mac App Store. Hopefully SwiftUI gets fixed by Xcode 13/next macOS SDK coming soon…


Update DistributionInfo.json

Updated Kali Linux's distribution info for this blob.

@benhillis  since Pierre is OOF can you merge this if it looks good?

LGTM. Thanks Craig !

@benhillis and @OneBlue I verified that this works on a virtual machine with this exact distribution file. Before and after version strings:
After:
Debian: 11 bullseye
Kali: 2022.3
Before:
Debian: 9 stretch
Kali:2019.2


PB-579: Fix pre-release tagging issue (duplicate tag)

We could end up on a tag already exists with pre-release tag. The issue occurred when a minor pre-release tag was created followed by a patch pre-release tag, then the next pre-release tag was the same as the last patch. For example such tag history would have led to an issue

v1.11.1-beta.1
v1.12.0-beta.1
v1.11.0
v1.10.0
....

In this case the the next pre-release tag would have been v1.11.1-beta.1 instead of v1.12.0-beta.2
The issue was that pre-release bumping logic was not done correctly as the tags are sorted by semver and not how they are added. In the first place above creating a v1.11.1-beta.1 after v1.12.0-beta.1 was already not correct and should not have happened. This was du to the fact that the first pre-release tag was done using the default bump type of minor and that the second pre-release tag was created with a #patch in a commit message which should have resulted to v1.12.1-beta.1 or v1.12.0-beta.2 and not v1.11.1-beta.1.
Now if a pre-release tag already exist we bump it (ignoring the bump type) unless the bump type is higher as the previous pre-release. This should add a more consistent way of tagging.

I could verify using test-semver-workflow, were I could reproduce the issue described in PB-579 (https://github.com/geoadmin/test-semver-workflow/actions/runs/9395507429/job/25879762317) that it solved the duplicate tag issue described in PB-579.


Fix missing invoking buffered brpc closure

Root cause
For #2929
exchange_source_operator has multiple instances, with one part of them receiving data normally, and the other part is short-circuited in advance. We need to make sure that closure buffered correctly and closure will be executed in any case.
See the original code here. If the channel of driver_sequence is short-circuited, the chunk is dropped, but closure is still saved, which may overwrite the previous buffered closure and finally leading the loss of the previous buffered closure.
        for (auto& item : chunks) {
            // This chunks may contains different driver_sequence
            if (item.driver_sequence >= 0 &&
                _short_circuit_driver_sequences.find(item.driver_sequence) != _short_circuit_driver_sequences.end()) {
                continue;
            }
            _chunk_queue.emplace_back(std::move(item));
        }
        if (!chunks.empty() && done != nullptr && _recvr->exceeds_limit(total_chunk_bytes)) {
            _chunk_queue.back().closure = *done;
            *done = nullptr;
        }

create a issue and link this pr to the issue

We need to make sure that closure buffered correctly and closure will be executed in any case. What's the meaning of this sentence?

We need to make sure that closure buffered correctly and closure will be executed in any case. What's the meaning of this sentence?

I rearranged the description


Has this been tested on Laravel 6.0?

I recently updated to Laravel 6.0 and my image upload is no longer working. I'm wondering if I missed updating something on my end or if this is even updated for 6.0.

Hi, this project does not need to be updated for Laravel 6 (or 7 now). What problem are you experiencing? Could you provide more details?

Got it figured out. It’s actually an issue in the Microsoft/azure-storage-common code documentation. It says to set the proxy via the Laravel environment settings. But their code is using the flakey method of getenv(“HTTP_PROXY”) – which according to help docs doesn’t consistently work. There is a work around of using the $options array to send in the proxy, which is how I got it working (but this wasn’t in their documentation).
Thanks for getting back to me.
Cheers,
Wendy
From: Frank de Jonge<EMAIL_ADDRESS>Sent: Tuesday, March 17, 2020 11:53 AM
To: thephpleague/flysystem-azure-blob-storage<EMAIL_ADDRESS>Cc: Kopala, Wendy<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [thephpleague/flysystem-azure-blob-storage] Has this been tested on Laravel 6.0? (#17)
Hi, this project does not need to be updated for Laravel 6 (or 7 now). What problem are you experiencing? Could you provide more details?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/thephpleague/flysystem-azure-blob-storage/issues/17#issuecomment-600181130, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABIG6FMFJH2A4JLSBAA5VOLRH6TGFANCNFSM4KDI5QOA.
Disclaimer***
The preceding e-mail message (including any attachments) contains information
that may be confidential, be protected by the attorney-client
or other applicable privileges, or constitute non-public information. It
is intended to be conveyed only to the designated recipient(s). If you are
not an intended recipient of this message, please notify the sender by
replying to this message and then delete it from your system. Use,
dissemination, distribution, or reproduction of this message by unintended
recipients is not authorized and may be unlawful.

Thanks for the reply. I take it this issue can then be closed. Is that correct?


Finish implementing json serialisation

It'd be nice if it worked... :)
https://github.com/pleonasm/bloom-filter/blob/master/src/Pleo/BloomFilter/BloomFilter.php#L113-L116

Very true! It's a bit awkward to serialize the data without having some indication of the amount (and type) of hash functions that were also used in the initial creation of the bloom filter.
But... on thinking of it a bit more I might have a solution. I know I haven't touched this in a while but I have some time this week and maybe I'll take a crack at it since someone is interested :) .

Closed by b8d98b0 .


Reduce APK size by ABI splitting

Currently the APK contains binaries for all architectures. I believe we can reduce the size by providing separate APKs for each architecture.
https://github.com/mapbox/mapbox-gl-native/wiki/Strategies-to-reduce-Android-APK-size
https://developer.android.com/google/play/publishing/multiple-apks.html
The largest portion of the APK is spent by mapbox. app-release-unsigned.apk is unzipped into 46MB, with 35MB of /lib (containing mapbox's binaries for six ABIs) in it.

... or maybe we shouldn't? https://developer.android.com/google/play/publishing/multiple-apks.html also says

You should generally use multiple APKs to support different device configurations only when your APK is too large (greater than 100MB)


[url_launcher] canLaunch always return false on Android 11 using app with targetSdkVersion 30

Steps to Reproduce

Compile url_launcher example app using targetSdkVersion 30.
Run on device, or emulator, using Android 11.

Expected results: canLaunch works as expected.
Actual results: canLaunch always returns false due to new restrictions in Android 11.
Pointed out in https://github.com/flutter/flutter/issues/63727#issuecomment-690070820

Android 11 is released, and it's good practise to keep targetSdkVersion up to date, so this might become an issue if devs aren't aware of the issue. While there isn't a real solution, the best workaround should be to use try/catch instead of making use of the canLaunch function (IMO).

This is the same issue, https://github.com/flutter/flutter/issues/63727, we won't need a new issue to explain the cause of the problem. I will edit duplicate to better address the issue

code sample
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () async => _launchURL(),
      ),
    );
  }

  _launchURL() async {
    const url = 'https://flutter.dev';

    print("canLaunch ${await canLaunch(url)}");
    // if (await canLaunch(url)) {
    //   await launch(url);
    // } else {
    //   throw 'Could not launch $url';
    // }
  }
}

I/flutter ( 7863): canLaunch false
I/flutter ( 7863): canLaunch false

flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.137, on Microsoft Windows [Version 10.0.19041.450], locale en-US)
    • Flutter version 1.22.0-10.0.pre.137 at C:\Code\flutter_master
    • Framework revision 37e2013774 (3 hours ago), 2020-09-11 04:05:02 -0400
    • Engine revision bdaac368f8
    • Dart version 2.10.0 (build 2.10.0-115.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.7.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.7.30413.136
    • Windows 10 SDK version 10.0.18362.0

[✓] Android Studio (version 4.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.49.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.14.1

[✓] Connected device (4 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows       • windows-x64    • Microsoft Windows [Version 10.0.19041.450]
    • Web Server (web)            • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 85.0.4183.102

• No issues found!

If you just simply try launch(url) rather than canLaunch(url) then it's working fine for me.
Try this:
void _launchURL() async {
const url = 'https://pub.dev/packages/url_launcher';
await launch(url);
}

As written in the library doc here, you have to set up your app for both iOS and Android. And specifically, for Android:

Starting from API 30 Android requires package visibility configuration in your AndroidManifest.xml otherwise canLaunch will return false. A  element must be added to your manifest as a child of the root element.

And the  element that have to be added to your manifest:
`

`
Pay attention: I've first tried to add only the first intent written above because it was the relevant one for me. But I still received false from the canLaunch function until I added all the lines.


separate cli from utils

ideally, the cli and the library that will be used by the actions should be in 2 different packages

helix-deploy contains the cli for building the universal zip
helix-universal (TBD) contains:

adapters for each target platform
instrumentation for espagon for each target platform
instrumentation for setting up logging
( implementation of Request, Response and Context )

the template/index.js in helix-deploy would then only import the adapters from the library.

actually, I'm not sure anymore if epsagon, status and logging should be part of this library. they should just work with the adapters :-)

Status and logging would need refactoring to support the new function signature. For epsagon, I'm not sure.

@trieloff I think we should now separate the 2:

Create a new library helix-universal that contains all the adapter code.
we can also re-export Request and Response or add it as required peer dependency.
add the helix-universal as required peer dependency also to helix-deploy, so that services are forced to import them.

this has the advantage, that the services can then properly add the library as dependency (as opposed to a dev dependency).