[QUERY] Determine length (count of messages) in subscription

Query/Question
I have a program that is polling a subscription using a message receiver and the receive method to request new messages. Is there a way to monitor the length of the subscription so that a separate application can monitor the message count and see if everything is working.
Why is this not a Bug or a feature Request?
I don't know if the function already exists so I'm not making a feature request yet.
Setup (please complete the following information if applicable):

OS: RHEL 8.x
IDE : IntelliJ
3.5.1

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[X] Query Added
[X] Setup information Added

@hemanttanwar could you please follow up?

@hemanttanwar could you please follow up?

@lordarcy Thank you for trying our library. Appreciate it.
You can use ServiceBusAdministrationClient to get count of messages.
        // Create a administrator client using connection string.
        ServiceBusAdministrationClient client = new ServiceBusAdministrationClientBuilder()
            .connectionString(connectionString)
            .buildClient();

        SubscriptionRuntimeProperties properties = client.getSubscriptionRuntimeProperties("topicName", "subscriptionName");
        System.out.printf("Total message count: [%d].%n", properties.getTotalMessageCount()));

ServiceBusAdministrationClient  : This is normally used CRUD operation on the resources like subscriber/queue.
If you need additional information , please let us know.

@lordarcy Thank you for trying our library. Appreciate it.
You can use ServiceBusAdministrationClient to get count of messages.
        // Create a administrator client using connection string.
        ServiceBusAdministrationClient client = new ServiceBusAdministrationClientBuilder()
            .connectionString(connectionString)
            .buildClient();

        SubscriptionRuntimeProperties properties = client.getSubscriptionRuntimeProperties("topicName", "subscriptionName");
        System.out.printf("Total message count: [%d].%n", properties.getTotalMessageCount()));

ServiceBusAdministrationClient  : This is normally used CRUD operation on the resources like subscriber/queue.
If you need additional information , please let us know.

@lordarcy Closing this issue. If you have further question, you can reopen this or a new issue.


Nest Cam Support

It would be great if there was support for Nest cameras (and the previous Dropcam). It should use the existing "nest" component for authentication to nest.com.

Closing this issue as feature requests should be posted in the forum.


CPU gets high rates almost over 30%

I don't know why the flutter plugin consumes a lot of CPU power and memory.
I've checked all of the processes on my laptop and I found that it's coming from the IDE with flutter.
If I use the flutter code, It starts to get high CPU on Android Studio, VSCode, and IntelliJ IDEA.
However, when I use the Kotlin code only, It looks stable but flutter is not.
The Laptop:
Windows 10 / i7-9750H / 16GB Memory / 64bits

Flutter:
flutter doctor
[√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale en-AU)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 3.6)
[√] IntelliJ IDEA Community Edition (version 2019.3)
[√] Connected device (2 available)

But, it's not happened on my Mac pro.

Hi @youngdeok,
could you provide full flutter doctor -v?
are you running android app?

Yep! It's still happening. The weird thing is the cpu rate is up and down like regular frequency.
It's coming on my laptop. I'd better to check on my desktop pc too.

Here:

flutter doctor -v
[√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale en-AU)
• Flutter version 1.12.13+hotfix.8 at C:\DevKits\flutter
• Framework revision 0b8abb4724 (4 weeks ago), 2020-02-11 11:44:36 -0800
• Engine revision e1e6ced81d
• Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at C:\DevKits\AndroidSdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.3
• ANDROID_HOME = C:\DevKits\AndroidSdk
• Java binary at: C:\DevKits\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
• All Android licenses accepted.
[√] Android Studio (version 3.6)
• Android Studio at C:\DevKits\Android Studio
• Flutter plugin version 44.0.2
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] IntelliJ IDEA Community Edition (version 2019.3)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.3
• Flutter plugin version 44.0.3
• Dart plugin version 193.6494.35
[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)
• No issues found!

Now, I got different results on my desktop.
I've checked all of each process and I finally found it. McAfee LiveSafe is running on my laptop.  If I turn it on again, I can see the same symptom.

I'd better uninstall the Mcafee anti-virus.
Sorry about this. :(
Flutter is awesome!
Thank you!


Feat/add option pretty print

Add option formatter.prettyPrint which tells the JSON formatter to "pretty print" the output. Optional, evaluated to true if equals to the word true, ignoring case, and false otherwise (including if not provided).
+ minor cosmetic changes.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


manifest unknown when running vulnerability scan with trivy

What steps did you take and what happened:
Tried to scan a pod from local minikube cluster. The image was built and deployed locally.
[A clear and concise description of what the bug is, and what commands you ran.]
Vulnerability scanner (Trivy) was not able to scan pod with error - "MANIFEST unknown"
What did you expect to happen:
Successful vulnerability scan
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
$ kubectl starboard scan vulnerabilityreports mypod-cc48d696b-nn7pg
E0125 13:17:21.434830  245449 runnable_job.go:162] Container mypod terminated with Error: 2022-01-25T07:47:05.985Z	FATAL	scan error: unable to initialize a scanner: unable to initialize a docker scanner: 3 errors occurred:
	* unable to inspect the image (index.docker.io/myorg/abc-img:4837): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
	* unable to initialize Podman client: no podman socket found: stat podman/podman.sock: no such file or directory
	* GET https://index.docker.io/v2/myorg/abc-img/manifests/4837: MANIFEST_UNKNOWN: manifest unknown; unknown tag=4837

error: running scan job: warning event received: Job has reached the specified backoff limit (BackoffLimitExceeded)

Environment:

Starboard version (use starboard version):
Starboard Version: {Version:0.13.2 Commit:7a8a51ce332fed834d16c17de5390c97ffac62be Date:2021-12-17T17:35:16Z}

Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T21:04:39Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:53:14Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"linux/amd64"}

OS (macOS 10.15, Windows 10, Ubuntu 19.10 etc):
Ubuntu 20.04.3 LTS

Trivy plugin scans images from remote registry. It cannot scan images cached by container runtime on a cluster node.


Blazor compilation directives in razor file

Is your feature request related to a problem? Please describe.
I have a package that I only include in Debug builds, and therefore some corresponding markup that I want to include in App.razor but only in Debug builds.
Describe the solution you'd like
In the App.Razor file I should be able to do something like this:
#if DEBUG
    @using NetPack.BrowserReload.BlazorClient
    <BrowserReload></BrowserReload>
#endif

Where in my csproj I have a conditional package import:
    <PackageReference Include="NetPack.BrowserReload.BlazorClient" Version="0.3.0-alpha0141" Condition="$(DefineConstants.Contains(DEBUG))" />

The trouble is, since the package isn't imported in Release builds, the @using statement above will cause an error during compilation - unless I can omit it during release compilation. Likewise compilation directives aren't supported in _Imports.razor either - so I can't include the using statement there due to the same reason.
Also, if I omit the @using statement completely, and just use the fully type name of the component:
  <NetPack.BrowserReload.BlazorClient.BrowserReload></NetPack.BrowserReload.BlazorClient.BrowserReload>

The Release build still fails because because obviously that components does not exist in Release build configuration. May I point out that in previous previews ob Blazor this wasn't a problem - because even though no such component existed in a release build, the build completed successfully. However in a more recent preview release of blazor, razor compiler got stricter - now if the markup isn't recognised as a valid HTML or component, then it causes a build error which fails the build - so now this has become a problem. Previoulsy, because the build suceeded, I could work around the problem by using a runtime check to display the component only for debug builds in my markup:
App.razor:
@if (EnvironmentInfo.IsDebug())
{
    < NetPack.BrowserReload.BlazorClient.BrowserReload />
}

where EnvironmentInfo was a class that looked like this:
   public class EnvironmentInfo
    {
        public static bool IsDebug()
        {
#if DEBUG
            Console.WriteLine("DEBUG TRUE");
            return true;
#else
            Console.WriteLine("DEBUG FALSE");
            return false;
#endif
        }
    }

This no longer works, because the build now fails when the razor file is compiled due to not being able to find the component. So I am now stuck for ideas. Could there be a simple resolution I am missing?
Additional context

Actually it seems the old approach still works, even though I now see an error, I can still successfully publish in release mode:


Allow disabling validation models in haMSM plugin

This is maybe a little risky, and allows a bad practice... But the validation models can take a lot of time when you're trying to rapidly test things.

Addressed in 6cf6dc4


the raw/endraw do not seem to be working

If I have a template file hi.sh.kte
#!/bin/bash
@raw
echo "hi ${name}"
@endraw

I create my template engine and render:
TemplateEngine.createPrecompiled(ContentType.Plain)
templateEngine.render("hit.sh.kte")

I run into:
* What went wrong:
Execution failed for task ':precompileJte'.
> Failed to compile template, error at hi.sh.kte:4
                jteOutput.writeContent("\necho \"hi ${name}\"\n")
  jte-classes/gg/jte/generated/precompiled/JteentrypointshGenerated.kt:8:41
  Reason: Unresolved reference: name

I've tried various versions (even the latest) and no luck. What am I missing?

Welcome @podollb and thanks for reporting!
This was fixed in this commit (https://github.com/casid/jte/commit/1d7d63119687674ffacb6ab592f633dfe76d1b92), the problem was, that $ was not escaped in Kotlin strings. It should work with the latest snapshot version. You can try with this Jitpack build: https://jitpack.io/#casid/jte/d0a9b4a00c
I'm planning a new jte version release next week.

I just released version 2.1.2 to maven central 👍


Determine Fiscal Year

Up to us, but needed for 501c3 application. Part 1, Q5

The standard non-calendar-year fiscal-year is July 1–June 30, but the federal government and some local governments use October 1–September 30. But we need to let our own requirements rule, rather than what everyone else is doing. Do we foresee any seasonal events or projects that would become awkward if they were interrupted by the start-stop of a fiscal year? For instance, the Wyoming Community Enrichment Commission that I worked with had to follow the city's fiscal year (July 1), but our concert season was May–September, which was very awkward. (And by awkward, I'm speaking mainly accounting-wise.)

It might make sense if we are slightly offset (earlier) from local governments so we can be in full-swing while they are still planning.

City of GR's budget also begins on July 1.

Completed 501c3 application today and chose the standard non-calendar-year fiscal-year, July 1–June 30.


Bump to the latest stable version of the cosmos-sdk

We want to use the latest stable release of the cosmos-sdk, v0.44.5.

Alternative:
Not sure if it isn’t too early but there is a tagged version of the SDK that uses tendermint 0.35 btw: https://github.com/cosmos/cosmos-sdk/blob/428ae3c15c1729197291e2a3fe77013f255cefb5/go.mod#L50
Might be a good idea to at least explore if using that (or maybe at least the release candidates in between) until 0.46 of the SDK is released.

can close since we've upgraded


how many epoch is enough for single category？

I'm traing your code on category plane,it shows that training needs 10000 epoches,and the model will save if current test loss is lower than before,i want wo know how many epoch is enough for single category in your ex.Thank you very much!!!

I simply leave the training code running, and occasionally check the results by running the "eval.py". If you feel the results are satisfactory, you can stop the training at any time.

I simply leave the training code running, and occasionally check the results by running the "eval.py". If you feel the results are satisfactory, you can stop the training at any time.

thank you very much!
i have trained category bench for about 4000 epoches,and my val set and test set is same.In traing,the val f1 score is about 0.8,but when i run eval.py,the f1 score became about 0.4,i want to know is it normal？
secondly, i see that you claim the result can be imported to cad software for further editing, but there is no export script in your code, did you get the result and input them into cad software by hand? and many cad software only support B-spline curve or bezier curve but not national bezier curve, how did you solve this problem?
i'm sorry for so many questions, i wish you can talk about these if you have time, thanks!!!

I simply leave the training code running, and occasionally check the results by running the "eval.py". If you feel the results are satisfactory, you can stop the training at any time.

thank you very much! i have trained category bench for about 4000 epoches,and my val set and test set is same.In traing,the val f1 score is about 0.8,but when i run eval.py,the f1 score became about 0.4,i want to know is it normal？ secondly, i see that you claim the result can be imported to cad software for further editing, but there is no export script in your code, did you get the result and input them into cad software by hand? and many cad software only support B-spline curve or bezier curve but not national bezier curve, how did you solve this problem? i'm sorry for so many questions, i wish you can talk about these if you have time, thanks!!!

i just see that in eval.py,this word"testing_points = testing_points.to(device)*3",  the "*3" should be removed, it will lead to wrong answer.

This is strange, it should be the same. Can you take a look at the generated mesh? If the mesh looks ok, there might be a bug when printing the numbers.

I Implemented a plugin for Autodesk Fusion360. Its python API supports NURBS, you can take a look at [here] (https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-348710dc-13fe-43a3-af51-63c2f594ce58) on creating a 2D NURBS Sketch, and [here] for creating extrusion from the 2D sketch.

thanks for your reply, the bug is in eval.py,this line "testing_points = testing_points.to(device)*3", the "*3" should be removed, it will lead to wrong answer.

That's a good catch! (I don't know why I added a *3 there.....). If removing that solves your problem, feel free to open a PR. Thanks.

That's a good catch! (I don't know why I added a *3 there.....). If removing that solves your problem, feel free to open a PR. Thanks.

hello,i just follow your guidance to try to create a fusion 360 script,but i found there is no function to add a nurbscurve2d object into sketch(only nurbscurve3d supported by sketchFixedSplines.addByNurbsCurve).could you please talk about how you solve this?  Thanks!

I lost my plugin during a system reinstall... But I managed to find an old script of mine, you can give this a shot.
#Description-

import adsk.core, adsk.fusion, adsk.cam, traceback
from random import random
def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui  = app.userInterface
        ui.messageBox('Hello script')
        global fusion
        fusion = adsk.core.Application.get( )
        design = adsk.fusion.Design.cast( fusion.activeProduct )
        #-- Fusion uses centimeters as native units XD
        #--
        mm = 0.1
        #-- Create New Component
        #--
        rootComp = design.rootComponent
        extrudes = rootComp.features.extrudeFeatures
        sketches = rootComp.sketches

        primitives = []

        all_points = [[[ 4.00304950e+00, -2.00906398e-01],
                    [ 7.60428619e+00,  0.00000000e+00],
                    [ 8.52413470e+00,  8.52413470e+00],
                    [ 4.26206735e+00,  7.09705284e+00]],

                    [[ 4.26206735e+00,  7.09705284e+00],
                    [ 3.47185591e-16,  5.66997099e+00],
                    [-1.34324906e+00,  1.34324906e+00],
                    [-7.67891902e-01,  6.71624530e-01]],

                    [[-7.67891902e-01,  6.71624530e-01],
                    [-1.92534745e-01,  2.35787059e-17],
                    [-6.03478201e+00, -6.03478201e+00],
                    [-3.01739100e+00, -9.76179293e+00]],

                    [[-3.01739100e+00, -9.76179293e+00],
                    [-2.47785307e-15, -1.34888039e+01],
                    [ 4.01812797e-01, -4.01812797e-01],
                    [ 4.00304950e+00, -2.00906398e-01]]]
        primitives.append([all_points, 44.34972*2])

        all_points = [[[ 6.83230123e-01, -1.36102995e-01],
                    [ 1.09425426e+00,  0.00000000e+00],
                    [ 5.25406390e+00,  5.25406390e+00],
                    [ 2.62703195e+00,  6.01300564e+00]],

                    [[ 2.62703195e+00,  6.01300564e+00],
                    [ 4.14662184e-16,  6.77194738e+00],
                    [-2.29902060e-01,  2.29902060e-01],
                    [-7.42584504e+00,  1.14951030e-01]],

                    [[-7.42584504e+00,  1.14951030e-01],
                    [-1.46217880e+01,  1.79065259e-15],
                    [-3.84140775e+00, -3.84140775e+00],
                    [-1.92070387e+00, -3.38228415e+00]],

                    [[-1.92070387e+00, -3.38228415e+00],
                    [-5.36975882e-16, -2.92316055e+00],
                    [ 2.72205990e-01, -2.72205990e-01],
                    [ 6.83230123e-01, -1.36102995e-01]]]
        primitives.append([all_points, 44.34972*2])

        all_points = [[[ 1.32009169e+01, -1.32793298e+00],
                    [ 2.37459679e+01,  0.00000000e+00],
                    [ 3.25622607e+00,  3.25622607e+00],
                    [ 1.62811303e+00,  2.81056297e+00]],

                    [[ 1.62811303e+00,  2.81056297e+00],
                    [ 1.44808353e-16,  2.36489987e+00],
                    [-3.47359254e+00,  3.47359254e+00],
                    [-5.70579875e+00,  1.73679627e+00]],

                    [[-5.70579875e+00,  1.73679627e+00],
                    [-7.93800497e+00,  9.72125238e-16],
                    [-5.49562199e+00, -5.49562199e+00],
                    [-2.74781099e+00, -3.17571897e+00]],

                    [[-2.74781099e+00, -3.17571897e+00],
                    [-1.57210839e-16, -8.55815947e-01],
                    [ 2.65586596e+00, -2.65586596e+00],
                    [ 1.32009169e+01, -1.32793298e+00]]]
        primitives.append([all_points, 43.41156*2])

        all_points = [[[ 1.52724363e+01, -1.06590506e+01],
                    [ 9.22677135e+00,  0.00000000e+00],
                    [ 2.00586698e+01,  2.00586698e+01],
                    [ 1.00293349e+01,  1.72432240e+01]],

                    [[ 1.00293349e+01,  1.72432240e+01],
                    [ 8.83446622e-16,  1.44277782e+01],
                    [-1.52736686e+01,  1.52736686e+01],
                    [-1.46296922e+01,  7.63683429e+00]],

                    [[-1.46296922e+01,  7.63683429e+00],
                    [-1.39857159e+01,  1.71275622e-15],
                    [-1.99091489e+01, -1.99091489e+01],
                    [-9.95457446e+00, -1.62999738e+01]],

                    [[-9.95457446e+00, -1.62999738e+01],
                    [-2.33126191e-15, -1.26907988e+01],
                    [ 2.13181012e+01, -2.13181012e+01],
                    [ 1.52724363e+01, -1.06590506e+01]]]
        primitives.append([all_points, 1.9763523*2])

        all_points = [[[ 1.52724363e+01, -1.06590506e+01],
                    [ 9.22677135e+00,  0.00000000e+00],
                    [ 2.00586698e+01,  2.00586698e+01],
                    [ 1.00293349e+01,  1.72432240e+01]],

                    [[ 1.00293349e+01,  1.72432240e+01],
                    [ 8.83446622e-16,  1.44277782e+01],
                    [-1.52736686e+01,  1.52736686e+01],
                    [-1.46296922e+01,  7.63683429e+00]],

                    [[-1.46296922e+01,  7.63683429e+00],
                    [-1.39857159e+01,  1.71275622e-15],
                    [-1.99091489e+01, -1.99091489e+01],
                    [-9.95457446e+00, -1.62999738e+01]],

                    [[-9.95457446e+00, -1.62999738e+01],
                    [-2.33126191e-15, -1.26907988e+01],
                    [ 2.13181012e+01, -2.13181012e+01],
                    [ 1.52724363e+01, -1.06590506e+01]]]
        primitives.append([all_points, 1.9763523*2])

        for primitive in primitives:
            all_points, extrude_height = primitive
            sketch = sketches.add(rootComp.xZConstructionPlane)
            degree = 3
            knots = [0, 0, 0, 0, 1, 1, 1, 1]
            weights = [1, 1, 1, 1]
            # nc = nurbs.controlPointCount
            splines = sketch.sketchCurves.sketchFixedSplines
            splines.isFixed=False

            for control_points in all_points:
                point1 = adsk.core.Point3D.create (control_points[0][0],control_points[0][1],0)
                point2 = adsk.core.Point3D.create (control_points[1][0],control_points[1][1],0)
                point3 = adsk.core.Point3D.create (control_points[2][0],control_points[2][1],0)
                point4 = adsk.core.Point3D.create (control_points[3][0],control_points[3][1],0)
                points = [point1, point2, point3, point4]
                nurbs = adsk.core.NurbsCurve3D.createRational (points, degree, knots, weights, False)
                fixed_splines = splines.addByNurbsCurve(nurbs)
                fixed_splines.isReference =False
            distance = adsk.core.ValueInput.createByReal(extrude_height)
            extrude1 = extrudes.addSimple(sketch.profiles.item(0), distance, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

thansk a lot,it helps greatly！

I lost my plugin during a system reinstall... But I managed to find an old script of mine, you can give this a shot.
#Description-

import adsk.core, adsk.fusion, adsk.cam, traceback
from random import random
def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui  = app.userInterface
        ui.messageBox('Hello script')
        global fusion
        fusion = adsk.core.Application.get( )
        design = adsk.fusion.Design.cast( fusion.activeProduct )
        #-- Fusion uses centimeters as native units XD
        #--
        mm = 0.1
        #-- Create New Component
        #--
        rootComp = design.rootComponent
        extrudes = rootComp.features.extrudeFeatures
        sketches = rootComp.sketches

        primitives = []

        all_points = [[[ 4.00304950e+00, -2.00906398e-01],
                    [ 7.60428619e+00,  0.00000000e+00],
                    [ 8.52413470e+00,  8.52413470e+00],
                    [ 4.26206735e+00,  7.09705284e+00]],

                    [[ 4.26206735e+00,  7.09705284e+00],
                    [ 3.47185591e-16,  5.66997099e+00],
                    [-1.34324906e+00,  1.34324906e+00],
                    [-7.67891902e-01,  6.71624530e-01]],

                    [[-7.67891902e-01,  6.71624530e-01],
                    [-1.92534745e-01,  2.35787059e-17],
                    [-6.03478201e+00, -6.03478201e+00],
                    [-3.01739100e+00, -9.76179293e+00]],

                    [[-3.01739100e+00, -9.76179293e+00],
                    [-2.47785307e-15, -1.34888039e+01],
                    [ 4.01812797e-01, -4.01812797e-01],
                    [ 4.00304950e+00, -2.00906398e-01]]]
        primitives.append([all_points, 44.34972*2])

        all_points = [[[ 6.83230123e-01, -1.36102995e-01],
                    [ 1.09425426e+00,  0.00000000e+00],
                    [ 5.25406390e+00,  5.25406390e+00],
                    [ 2.62703195e+00,  6.01300564e+00]],

                    [[ 2.62703195e+00,  6.01300564e+00],
                    [ 4.14662184e-16,  6.77194738e+00],
                    [-2.29902060e-01,  2.29902060e-01],
                    [-7.42584504e+00,  1.14951030e-01]],

                    [[-7.42584504e+00,  1.14951030e-01],
                    [-1.46217880e+01,  1.79065259e-15],
                    [-3.84140775e+00, -3.84140775e+00],
                    [-1.92070387e+00, -3.38228415e+00]],

                    [[-1.92070387e+00, -3.38228415e+00],
                    [-5.36975882e-16, -2.92316055e+00],
                    [ 2.72205990e-01, -2.72205990e-01],
                    [ 6.83230123e-01, -1.36102995e-01]]]
        primitives.append([all_points, 44.34972*2])

        all_points = [[[ 1.32009169e+01, -1.32793298e+00],
                    [ 2.37459679e+01,  0.00000000e+00],
                    [ 3.25622607e+00,  3.25622607e+00],
                    [ 1.62811303e+00,  2.81056297e+00]],

                    [[ 1.62811303e+00,  2.81056297e+00],
                    [ 1.44808353e-16,  2.36489987e+00],
                    [-3.47359254e+00,  3.47359254e+00],
                    [-5.70579875e+00,  1.73679627e+00]],

                    [[-5.70579875e+00,  1.73679627e+00],
                    [-7.93800497e+00,  9.72125238e-16],
                    [-5.49562199e+00, -5.49562199e+00],
                    [-2.74781099e+00, -3.17571897e+00]],

                    [[-2.74781099e+00, -3.17571897e+00],
                    [-1.57210839e-16, -8.55815947e-01],
                    [ 2.65586596e+00, -2.65586596e+00],
                    [ 1.32009169e+01, -1.32793298e+00]]]
        primitives.append([all_points, 43.41156*2])

        all_points = [[[ 1.52724363e+01, -1.06590506e+01],
                    [ 9.22677135e+00,  0.00000000e+00],
                    [ 2.00586698e+01,  2.00586698e+01],
                    [ 1.00293349e+01,  1.72432240e+01]],

                    [[ 1.00293349e+01,  1.72432240e+01],
                    [ 8.83446622e-16,  1.44277782e+01],
                    [-1.52736686e+01,  1.52736686e+01],
                    [-1.46296922e+01,  7.63683429e+00]],

                    [[-1.46296922e+01,  7.63683429e+00],
                    [-1.39857159e+01,  1.71275622e-15],
                    [-1.99091489e+01, -1.99091489e+01],
                    [-9.95457446e+00, -1.62999738e+01]],

                    [[-9.95457446e+00, -1.62999738e+01],
                    [-2.33126191e-15, -1.26907988e+01],
                    [ 2.13181012e+01, -2.13181012e+01],
                    [ 1.52724363e+01, -1.06590506e+01]]]
        primitives.append([all_points, 1.9763523*2])

        all_points = [[[ 1.52724363e+01, -1.06590506e+01],
                    [ 9.22677135e+00,  0.00000000e+00],
                    [ 2.00586698e+01,  2.00586698e+01],
                    [ 1.00293349e+01,  1.72432240e+01]],

                    [[ 1.00293349e+01,  1.72432240e+01],
                    [ 8.83446622e-16,  1.44277782e+01],
                    [-1.52736686e+01,  1.52736686e+01],
                    [-1.46296922e+01,  7.63683429e+00]],

                    [[-1.46296922e+01,  7.63683429e+00],
                    [-1.39857159e+01,  1.71275622e-15],
                    [-1.99091489e+01, -1.99091489e+01],
                    [-9.95457446e+00, -1.62999738e+01]],

                    [[-9.95457446e+00, -1.62999738e+01],
                    [-2.33126191e-15, -1.26907988e+01],
                    [ 2.13181012e+01, -2.13181012e+01],
                    [ 1.52724363e+01, -1.06590506e+01]]]
        primitives.append([all_points, 1.9763523*2])

        for primitive in primitives:
            all_points, extrude_height = primitive
            sketch = sketches.add(rootComp.xZConstructionPlane)
            degree = 3
            knots = [0, 0, 0, 0, 1, 1, 1, 1]
            weights = [1, 1, 1, 1]
            # nc = nurbs.controlPointCount
            splines = sketch.sketchCurves.sketchFixedSplines
            splines.isFixed=False

            for control_points in all_points:
                point1 = adsk.core.Point3D.create (control_points[0][0],control_points[0][1],0)
                point2 = adsk.core.Point3D.create (control_points[1][0],control_points[1][1],0)
                point3 = adsk.core.Point3D.create (control_points[2][0],control_points[2][1],0)
                point4 = adsk.core.Point3D.create (control_points[3][0],control_points[3][1],0)
                points = [point1, point2, point3, point4]
                nurbs = adsk.core.NurbsCurve3D.createRational (points, degree, knots, weights, False)
                fixed_splines = splines.addByNurbsCurve(nurbs)
                fixed_splines.isReference =False
            distance = adsk.core.ValueInput.createByReal(extrude_height)
            extrude1 = extrudes.addSimple(sketch.profiles.item(0), distance, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

sorry to bother you again,i have some questions about the rotation and translation.
For every extrusion, it needs a plane,how can I get the right plane of every extrusion?
I see that you rotate and translate test points to the coordinate system of the curve to compute sdf, I wonder if the rotation and translation parameters can be used to create the plane of every extrusion. And I dont really understand how quaternion (rotation params) rotate the points (sorry for my poor math ability).
Please talk about these if you have time,Thank you so much!

Yes, transforming the testing points is equivalent to the inverse of transforming the extrusion plane. You can achieve this by either transforming the sketch plane followed by extrusion, or you can extrude first and then transform the extruded shape.
As for quaternion, it is simply a rotation representation that can be converted into a rotation matrix, axis angle, or Euler angle. Quaternion is used here for two main reasons:  First, it is easier to use as a network output as it does not need to satisfy complicated constraints (e.g. rotation matrix must be an orthogonal matrix with determinate -1). Second, the quaternion is easier to interpolate (you can simply do a linear interpolation between the 4 numbers to get the interpolated rotation). You can find more about rotations and their conversion from here. For using quaternion and rotation interpolation, you can give this report a read.


Unnecessary import of ExtensionCommon in implementation.js

For the experiment APIs, ExtensionCommon is already available in the global scope, and shouldn't need to be imported.

Indeed. Thanks.


Workspace gives zero coupling matrix with '>f8' dtype

The following code yields a mode coupling matrix with all the elements equal to zero:
f1 = nmt.NmtField(np.ones(hp.nside2npix(256)).astype('>f8'), None, spin=0)
b_ = nmt.NmtBin.from_nside_linear(256, 20)
wsp = nmt.NmtWorkspace()
wsp.compute_coupling_matrix(f1, f1, b_,n_iter=0)
wsp.get_coupling_matrix()

Thanks @yanzastro . I believe this is the same issue as #155. Currently working on a solution in #161


Release 2.0.0 hotfix removing the CDN code from server.js and adding a gulp task

There will be a seperate PR to do the CDN Task


Strange path when bootstrapping templating-resources lib

Having made a new installation of Aurelia files we get this strange behavior for just one of the libraries during bootstrap, the<EMAIL_ADDRESS>As the log below shows, please note the extra .js insterted to the folder name when it it tries to load the compose.js file.
DEBUG [aurelia] Loading plugin<EMAIL_ADDRESS>[aurelia] Configured plugin<EMAIL_ADDRESS>DEBUG [aurelia] Loading plugin aurelia-animator-css.
DEBUG [aurelia] Configured plugin aurelia-animator-css.
Unhandled promise rejection Error: XHR error (404 Not Found) loading<EMAIL_ADDRESS>We are using SystemJS v0.18.9.
Other libraries of the framwork are found without any problem.

Make sure you are using the latest release of jspm and make sure your configuration is set up like the nav skeleton.

Thank you for you Swift reply!
By the way how can we get some kind of support license for Aurelia?

We haven't yet published our official support plans. However, we can work something out custom with you. Please email me at rob at durandal dot io and we can discuss the specifics. Thank you!


Testing upgrades

Thought it would be useful to use pytest as the test suite, as it comes with a load of great features which I have also added:

image testing via pytest-mpl: This is really useful for the plotting functionality in shap. Essentially a baseline image is generated the first time which can be checked for accuracy, then every subsequent run of the test is checked against that baseline image.
importorskip: allows tests to be easily skipped when import is missing, and the test will show as such in the report
tmpdir: temp directories are auto created for storing temporary data for tests and neatly cleaned up at the end

This PR also adds test coverage reports, integrated with codecov which can be viewed for example on my fork here: https://codecov.io/gh/lrjball/shap/tree/b05fae9372d67bffda146e04a305c9b55d75b56b/shap
Also, I have fixed a couple of things in the tests such as filenames which weren't being discovered, and random seeds not being set causing certain tests to occasionally fail randomly (specifically the pytorch ones).
This PR also adds some extra tests of various shap plots using the pytest mpl plugin and improves overall test coverage.

This is great. Thanks! Sorry it took a while to review.


Player Fields onGound variable hanging for a bit before beginning to update.

Running into an issue with the Player Fields plugin.

Currently have a test project set up to fire a bullet when the player is in the air, as well as report the status of the "onGound" Bool when start is pressed. As you can see in the attached gif, for the first minute or so, the variable doesn't update, constantly reporting 0 when start is pressed regardless of player status, and fires bullets constantly.
After ~ a minute, it suddenly starts working as expected, the variable updates when checked, and bullets only fire in the air.
On 3.02, on macOS Monterey.

Unlikely it's related to the plugin, following up on https://github.com/chrismaltby/gb-studio/issues/1022


Code workfloConfigure Azure Pipelinesw

This pipeline configuration builds the application and produces a build for the Release configuration.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: kanshukk sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


ONLY_POST_ALLOWED

Hello,
everything worked fine, i did 2 successfull orders
yesterday i noticed pending challenge
have found error in pod logs
Create TXT success. Response body: {
   "charset" : "utf-8",
   "error_code" : "ONLY_POST_ALLOWED",
   "error_params" : {
      "command_name" : "zone/add_txt"
   },
   "error_text" : "Only HTTP method POST allowed",
   "messagestore" : null,
   "result" : "error"
}

i' ve tried curl with POST and simple browse http request from pod with no success
i did some investigation and discovered that zone/add_txt method requies POST method, even so client.go createTXT function use http.GET
anyway after i delete and create my api allowed ip address, i was able to create txt record by simple copy\paste http string from pod to my chrome browser

Same issue.

There is pull request with a fix already exists https://github.com/flant/cert-manager-webhook-regru/pull/17
But you can use my image build  ghcr.io/c0rnota/cluster-issuer-regru:1.1.6

Hello, folks!
Fixed in https://github.com/flant/cert-manager-webhook-regru/releases/tag/v1.2.0


How to run virtual assistant template

i am trying to run virtual assistant template in my local system. so i want to ask how can i do this without hosting it in azure . currently i don't have any key which is mention in appsetting.json file.

i am trying to run virtual assistant template in my local system. so i want to ask how can i do this without hosting it in azure . currently i don't have any key which is mention in appsetting.json file.

If you take a look at either the C# or TypeScript tutorials for creating your first virtual assistant you will find this line:

The Virtual Assistant requires the following Azure dependencies to run correctly. These are created through an ARM (Azure Resource Manager) script (you can modify this to meet your requirements).

Due to these Azure dependencies you cannot run your virtual assistant locally and instead need to deploy your virtual assistant for it to run correctly.

The instructions specific to Virtual Assistant are here.


Let the CI pipeline build / test / publish the code

Add c# / f# script to allow easy generation or cleaning of gircore libraries.


RP-initiated federated logout does not honour user consent.

Describe the issue:
During the RP-initiated logout flow with using the OIDC authenticator, the secondary IS prompts the user for logout consent.
When the user denies the logout consent, the user gets redirected to the landing page of the app. Note that the user was not prompted for logout consent from the primary IS.
The following network trace was observed in the error scenario.

In the error scenario, upon denying logout consent for the federated_IdP, the user gets redirected to the landing page of the app. When the user clicks on login, user is then prompted for authentication meaning the authenticated session has been cleared from the federated_IdP despite denying the logout consent.
How to reproduce:

Configure two identity servers as primary_IdP and federated_IdP.
Configure federated_IdP as a OAuth2/OIDC federated authenticator to primary_IdP.
Add an user to the federated_IdP and configure an app in primary_IdP to use the federated_IdP as the federated authenticator.
Login to app.
Logout from the app.
Deny logout consent prompt from the federated_IdP.

I will work on this

I will work on this

I will look into this issue

Recreate the bug. Setup is as follows.

Client application - saml2-web-app-pickup-manager
Two Wso2 IS with a port offset (Packs are generated using 5.12-m9-SNAPSHOT)

In the above recreate scenario, I have used same hostname (localhost) for both primary and federated IS. And I have tried to recreate the same scenario with different hostname. When the hostnames are different, couldn't be able to recreate the issue. The logout deny flow works fine.

https://user-images.githubusercontent.com/75773531/106728151-321b9b00-6632-11eb-9e9c-7e39ae6000d2.mp4

Error Scenario

IS1 - localhost:9443
IS2 - localhost:9444 (Federated)

https://user-images.githubusercontent.com/75773531/106731275-4f059d80-6635-11eb-8eba-bc346a837d75.mp4

Success Scenario (with different host names)

IS1 - localhost:9443
IS2 - wso2.is:9444 (Federated)

https://user-images.githubusercontent.com/75773531/106731398-70ff2000-6635-11eb-8189-a45d97724d01.mp4

Is this issue need to be fix @mefarazath, @pulasthi7 , @IsuraD, @ayshsandu

Reason behind the issue
When user makes a logout request from client app, primary idp clears the commonAuthId in session cookie for the hostname (eg - localhost) before redirecting to the federated idp logout url. Therefore, whether or not user deny logout consent in federated idp, session is already cleared for the same hostname by primary idp.


How about a vue version ?

Hi,
Thanks for the great work.
How about create a vue version sparklines?

I haven't used Vue.js but maybe it is a good reason to learn it?
Will keep it in mind.

Vue is easier to learn, and it's performance is good, what's more, it's one of the top 20 stars in github.


Can mediapipe-models  be used for free for commercial purposes ?

Can the models in 'https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task'   be used for free for commercial purposes?

Yup! The underlying models are all apache 2.0 licensed. https://storage.googleapis.com/mediapipe-assets/MediaPipe BlazeFace Model Card (Short Range).pdf


Fixed #33728 -- Reordered submit buttons in admin.

This aims to clear up the visual order of the submit row buttons in Django admin forms. I've reordered them for both LTR and RTL languages so that they follow the flow of other form elements.
Before:

After:

@AlexanderFL Thanks :+1: We should switch some margins from left to right e.g. in .submit-row input, .submit-row input.default.
Before:

After:

I believe this addresses the margin for both LTR and RTL languages. However the 'tab' index of the buttons was still not correct, which is what issue 33728 also mentions, so I fixed that with this commit.

@AlexanderFL Thanks :+1: Welcome aboard :boat:

As @knyghty mentions this would be a great place to use Flexbox and logical properties and values so the RTL styles aren’t needed at all, and so the responsive styles are much simpler. Probably for another PR though.

Yes, a separate PR please.

buildbot, test on selenium.


Load needed variant values before first render

Validation and variant are sometimes a bit tricky.
If you have a recipe like this:
package:
  name: foo
  version: ${{ FOO_VERSION }}

with a variants.yaml like so:
FOO_VERSION:
- "0.1.0"
- "0.2.0"

The recipe rendering will fail with something like:
Error:   × Parsing: missing field `version`
    ╭─[7:7]
  6 │     package:
  7 │ ╭─▶   name: clang-win-activation
  8 │ │     version: ${{ CLANG_VERSION }}
  9 │ │
 10 │ ├─▶ build:
    · ╰──── add the field `version` in between here
 11 │       number: 0
    ╰────
  help: the field `version` is required for `package`

Because we don't inject the variant values early enough.
Similarly, the following fails:
requirements:
  run:
    - foo ${{ FOO_VERSION }}.*

With an error of the sort:
Error:   × Parsing: failed to parse match spec: Unable to parse version spec: .*
    ╭─[18:7]
 17 │   run:
 18 │     - foo ${{ FOO_VERSION }}.*
    ·       ──────────────┬─────────────
    ·                     ╰── error parsing `foo .*` as a match spec
 19 │   run_exports:
    ╰────

Would love this for running tests in pixi with interesting custom channels


On change subscription in Editor

Ketcher-React contains member Editor.
According to examples, the Editor should support subscribing to events including onChange.
Version 2.4.2 of ketcher-react Editor contains only
export interface Editor {
    isDitrty: () => boolean;
    setOrigin: () => void;
    struct: (struct?: Struct) => Struct;
}

Please, let me know how I can subscribe on changing in Editor or it is bug ?

Dear @dmoskalenko-datagrok ,
'Editor' interface will be updated in scope of 2.4.2.
Right now to  skip TS errors you  can cast ketcher.editor instance to any before adding subscription:
(ketcher.editor as any).subscribe('change', () => console.log('test message'))
Regards,
Andrei

@AndreiMazol, Thank you, it works


Fixes for the current teamspeak version

Hi, this are the changes I needed to make so it works with the current TeamSpeak version.
The download address changed slightly (and I saw the other open pull request too late so the template issue is fixed in another way).

Thanks, can't believe I missed the last PR I said I'd pull in, going to review everything right now...

Odd -- I see you updated the links to .tar.bz2 files, but I don't see those here: http://dl.4players.de/ts/releases/<IP_ADDRESS>/
I'm also making various other tweaks as needed.

Nix that, I was locking to <IP_ADDRESS> like a dork, they changed it between then and now.

Thanks for the fast fixes!


Rework feed for collection bit

At buy events, we are missing Item name.

Add there as the second col as item name, where name length keeps first six and last six characters.
Change the date to relative time (20 minutes ago). On hover show the exact time. This could be changed for the history component at nft item as well.

I'll take this one


Add more docs

README does its best to explain what you get in concise terms. It would probably be nicer to have a more expressive reference doc which walks through most of the things you could need to do with your generated client.

Generated README also needs to be updated. async methods are documented as:
from <project>_client.async_api.my_tag import get_my_data_model
...
get_my_data_model.asyncio(...)

Where it should (likely be, for the example):
from <project>_client.api.my_tag import get_my_data_model
...
get_my_data_model.asyncio(...)

Thanks for reporting the issue @synchronizing ! It will be fixed with #337

This issue has always been too broad, which is why it's never been completed 😞. I'm going to close it, and we can track any specific docs goals in the future.


refactor: Refactor CalcCbTxMerkleRootQuorums

Picking suggestions from https://github.com/dashpay/dash/pull/4952#issuecomment-1205542353, applying few cleanups and doing some trivial-ish refactoring on top. Also moved few things including IsQuorumRotationEnabled out of the inner loop - should not result in any changes in behaviour, could simply be a tiny bit faster.
~builds on top of #4952~

I messed up (818886a20ef26f1e109388237151970af757ae8e) 🙈 pls re-review


Prepare for GA release

Prepare the attestation SDK for GA.

I noticed that some tests takes long time in playback mode, e.g. Add Policy Certificates failure conditions, is this expected?:
Found configuration in /home/dalmahal/attestation/rush.json
Rush Multi-Project Build Tool 5.40.7 - https://rushjs.io
Node.js version is 14.17.0 (LTS)
Found configuration in /home/dalmahal/attestation/rush.json
Executing: "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace "test/{,!(browser)/**/}/*.spec.ts""
[AAD] Attestation Client
✓ #AttestOpenEnclaveShared (128ms)
✓ #AttestOpenEnclaveAad (49ms)
✓ #AttestOpenEnclaveIsolated
✓ #AttestSgxEnclaveShared
✓ #AttestSgxEnclaveAad
✓ #AttestSgxEnclaveIsolated
✓ #attestTpm (111ms)
AttestationTokenTests
✓ #testUtf8ConversionFunctions
✓ #createRsaSigningKey (4895ms)
✓ #createEcdsSigningKey (406ms)
✓ #createSigningKeyWrongKey (320ms)
✓ #createUnsecuredAttestationToken
✓ #createUnsecuredEmptyAttestationToken
✓ #createEmptySecuredAttestationToken (3132ms)
✓ #createSecuredAttestationToken (3075ms)
In callback, token algorithm: none
In callback, token algorithm: none
✓ #verifyAttestationTokenCallback
✓ #verifyAttestationTokenIssuer
✓ #verifyAttestationTimeouts
PolicyGetSetTests
✓ #GetPolicy SGX - Aad
✓ #GetPolicy SGX - Isolated
✓ #GetPolicy SGX - Shared
✓ Set Policy SGX - AAD Unsecured
✓ Set Policy failure conditions (5803ms)
✓ Reset Policy failure conditions (9385ms)
- Set Policy SGX - AAD Secured (secured APIs cannot match the policy hash because the recorded policy signer won't match the signer in the request)
- Set Policy SGX - Isolated Secured (setPolicy APIs require keys and certificates from the environment, which are not available in playback)
✓ Reset Policy SGX - AAD Unsecured
- Reset Policy SGX - AAD Secured (secured APIs cannot match the policy hash because the recorded policy signer won't match the signer in the request)
- Reset Policy SGX - Isolated Secured (resetPolicy APIs require keys and certificates from the environment, which are not available in playback)
PolicyManagementTests
✓ #getPolicyCertificates - AAD
✓ #getPolicyCertificates - Shared
✓ #getPolicyCertificates - Isolated
✓ Add Policy Certificates failure conditions (8894ms)
✓ Remove Policy failure conditions (2403ms)
- setPolicyCertificates (setPolicyCertificate APIs require keys and certificates from the environment, which are not available in playback)
TokenCertTests
✓ #GetCertificateAAD
✓ #GetCertificatesIsolated
✓ #GetCertificatesShared
✓ #GetMetadataConfigAAD
✓ #GetMetadataConfigIsolated
✓ #GetMetadataConfigShared
36 passing (39s)
5 pending

I noticed that some tests takes long time in playback mode, e.g. Add Policy Certificates failure conditions, is this expected?:
Found configuration in /home/dalmahal/attestation/rush.json
�[1mRush Multi-Project Build Tool 5.40.7�[22m�[36m - https://rushjs.io�[39m
Node.js version is 14.17.0 (LTS)
Found configuration in /home/dalmahal/attestation/rush.json
Executing: "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace "test/{,!(browser)/**/}/*.spec.ts""
[AAD] Attestation Client
✓ #AttestOpenEnclaveShared (128ms)
✓ #AttestOpenEnclaveAad (49ms)
✓ #AttestOpenEnclaveIsolated
✓ #AttestSgxEnclaveShared
✓ #AttestSgxEnclaveAad
✓ #AttestSgxEnclaveIsolated
✓ #attestTpm (111ms)
AttestationTokenTests
✓ #testUtf8ConversionFunctions
✓ #createRsaSigningKey (4895ms)
✓ #createEcdsSigningKey (406ms)
✓ #createSigningKeyWrongKey (320ms)
✓ #createUnsecuredAttestationToken
✓ #createUnsecuredEmptyAttestationToken
✓ #createEmptySecuredAttestationToken (3132ms)
✓ #createSecuredAttestationToken (3075ms)
In callback, token algorithm: none
In callback, token algorithm: none
✓ #verifyAttestationTokenCallback
✓ #verifyAttestationTokenIssuer
✓ #verifyAttestationTimeouts
PolicyGetSetTests
✓ #GetPolicy SGX - Aad
✓ #GetPolicy SGX - Isolated
✓ #GetPolicy SGX - Shared
✓ Set Policy SGX - AAD Unsecured
✓ Set Policy failure conditions (5803ms)
✓ Reset Policy failure conditions (9385ms)

Set Policy SGX - AAD Secured (secured APIs cannot match the policy hash because the recorded policy signer won't match the signer in the request)
Set Policy SGX - Isolated Secured (setPolicy APIs require keys and certificates from the environment, which are not available in playback)
✓ Reset Policy SGX - AAD Unsecured
Reset Policy SGX - AAD Secured (secured APIs cannot match the policy hash because the recorded policy signer won't match the signer in the request)
Reset Policy SGX - Isolated Secured (resetPolicy APIs require keys and certificates from the environment, which are not available in playback)

PolicyManagementTests
✓ #getPolicyCertificates - AAD
✓ #getPolicyCertificates - Shared
✓ #getPolicyCertificates - Isolated
✓ Add Policy Certificates failure conditions (8894ms)
✓ Remove Policy failure conditions (2403ms)

setPolicyCertificates (setPolicyCertificate APIs require keys and certificates from the environment, which are not available in playback)

TokenCertTests
✓ #GetCertificateAAD
✓ #GetCertificatesIsolated
✓ #GetCertificatesShared
✓ #GetMetadataConfigAAD
✓ #GetMetadataConfigIsolated
✓ #GetMetadataConfigShared
36 passing (39s)
5 pending

JSRSASIGN is ridiculously slow generating 2K RSA keys. I'll change it ot generate 1K keys, which should improve performance.


Error parsing Django with unclosed tag inside if statement

Describe the bug
Running curlylint on the following example Django template throws an exception. It appears that having an un-closed tag inside of the if statement causes an issue for curlylint. While probably not a great practice (there are other ways to achieve the same result) it came as a surprise that it wouldn't even parse it.
{% for thing in things %}
	{% if forloop.first %}

	{% endif %}

{{ thing }}

	{% if forloop.last %}

	{% endif %}
{% endfor %}

Which terms did you search for in the documentation and issue tracker?
I looked through all of the open and closed issues.
Environment
Python 3.6.6
curlylint 0.12.0
Steps to reproduce

First, create a template with the above example.
Then, run curlylint pointing to the template created.

Expected behavior
Parse and lint the template without throwing an exception.
Actual behavior
Exception thrown:
  File ".venv/lib/python3.6/site-packages/parsy/__init__.py", line 275, in seq_parser
    result = parser(stream, index).aggregate(result)
  File ".venv/lib/python3.6/site-packages/parsy/__init__.py", line 80, in __call__
    return self.wrapped_fn(stream, index)
  File ".venv/lib/python3.6/site-packages/parsy/__init__.py", line 338, in generated
    next_parser = iterator.send(value)
  File ".venv/lib/python3.6/site-packages/curlylint/parse.py", line 541, in opt_container_impl
    yield P.fail("expected `{% if " + content + " %}`")
TypeError: must be str, not Parser

Reproducible demo
I can fork this repo and add a sample template to the tests directory if that is helpful. Or create a minimal repo demonstrating the issue. Let me know which might be the most useful!

Got the exact same issue, in which the following Jinja template:
{% for article in dates %}

   (...)

   {% if article.date.month != current_month %}
       {% if not loop.first %}

       {% endif %}

   {% endif %}

   (...)

   {% if loop.last %}

   {% endif %}

{% endfor %}

Leads to the following error, in which curlylint stumble upon the
 tag:
❯ curlylint --verbose .
(...)
47:41	Parse error: expected one of '[:a-zA-Z]', 'animate', 'animateMotion', 'animateTransform', 'area', 'base', 'br', 'circle', 'col', 'ellipse', 'embed', 'feBlend', 'feColorMatrix', 'feComposite', 'feConvolveMatrix', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpotLight', 'feTile', 'feTurbulence', 'hr', 'image', 'img', 'input', 'line', 'link', 'meta', 'mpath', 'param', 'path', 'polygon', 'polyline', 'rect', 'script', 'set', 'source', 'stop', 'style', 'track', 'use', 'wbr', '{#', '{%', '{{' at 47:41	parse_error

Oh no! 💥 💔 💥
1 error reported

The full source of the Jinja template I'm trying to validate is available here: https://github.com/kdeldycke/plumage/blob/3f25667919594aadbd29caeaa5465b50185b830d/plumage/templates/archives.html#L48

Hmmm looks like this is not implemented, except in very specific, limited circumstances:
https://github.com/thibaudcolas/curlylint/blob/35a14129cc1a76bd1b0e71e36a3f78b9ab65d608/curlylint/parse.py#L537-L548
And this came over from the original jinja-lint.
Guessing that means not easy to fix as lots of variations of this, which can produce valid HTML, such as:
{% if test %}

{% elsif %}

{% endif %}
...

or even
{% if test >= 0 %}

{% endif %}
...
{% if test < 0 %}

{% endif %}
...

I do wonder if this will ever be possible to lint.
Or if it's best handled with exceptions, using syntax something like below for example:
{% if test >= 0 %}

{# curly_ignore #}
{% endif %}
...
{% if test < 0 %}

{# curly_ignore #}
{% endif %}
...

{# curly_ignore #}

Thank you for the detailed issue report 👌  I have noticed this in the past, but didn’t give it much thought since as @adamghill mentions there were ways to rewrite the templates to avoid this style (although that’s not always a clear-cut option).
As @bazzadp mentions it would require much more complex static analysis than what the parser currently does to determine whether any arbitrary combination of conditionals does end up outputting valid HTML or not, however I think it would be realistic to support some of those patterns. I haven’t had to work on that part of the parser just yet, so I’m not sure what kind of effort would be needed.
I would be very keen to add support for those proposed {# curly_ignore #} comments anyway, as currently it’s really annoying to have to ignore whole files for single linting issues (or curlylint bugs), so this might be the more pragmatic way forward.

In the meantime I would also welcome adding this to the website in a new "Known issues" page, either at the end of the Introduction section or under References, with prominent links to it from the README’s "Usage" section, and perhaps a link right at the end of the "Getting started" page on the site.
I think it would also be good to:

Change the current implementation so an error message displays, instead of the exception / stack trace
@adamghill if you or anyone else is up for it – the parser badly needs more unit tests written for it. If you want to add test cases for your examples they could go next to https://github.com/thibaudcolas/curlylint/blob/main/curlylint/parse_test.py#L324-L333.

Hey @thibaudcolas , thanks for your excellent work and maintainership thus far. I ran into this issue myself, with the simplest reproducible test case being:
{%- if this %}

{%- else %}

{%- endif %}

At the very minimum, how difficult would it be to add support for checking that a
 matches in simple cases like this, where you can statically guarantee that a
 will be output? I.e. would it be practical to add a simple hack like what already exists for identical if statements? My instances of this issue would all be covered by this scenario (although I was fortunately able to rewrite the affected templates to avoid it without too much trouble; if its more for you to support this then I don't mean to impose).

Hey @CAM-Gerlach, thanks for chiming in :) Supporting this simplest case sounds reasonable to me, and is something I will feel comfortable embarking on once I’ve written more tests for the parser. The parser comes almost straight from jinjalint, on which Curlylint is originally based, and is the code I’m the least familiar with.
I’ll try to dive into the parser code again this week to see how much work it would be to fix all of the known parser issues, and at least write tests for those well-known failure cases.

Hi @thibaudcolas. I made a PR #53 for the minimum case described by @CAM-Gerlach. Please have a look and let me know if it's fine. :)


dyld: Library not loaded: @rpath/Realm.framework/Realm

This happened on app execution. What I need to check to solve this problem?
Thanks)

btw - I've added this pod to the PodsDependencies test project

Closing since this doesn't support CocoaPods and I won't be adding support for this, see https://github.com/keith/swift-staticlibs/issues/12 for more details


Use awk for reversing lines since GNU tail does not have -r

tail -r is BSD specific and tac is GNU specific, so instead use awk-based reversing which everyone can do.
Tested on Xubuntu and OS X

Thanks for improving this, @ricmatsui! Since CircleCI somehow doesn't test forks, I confirm that this works. Unless I hear objections from @charlierudolph or @allewun, I'm going to merge this in today. And then we'll make a patch release to make this fix (and a few other Linux fixes that are already in master) available to you and your team.

We can actually reverse the order of the commands with the --reverse option of git log
git log --oneline --reverse "$main_branch_name..$initial_branch_name"

That will remove the need for a reversing the order ourselves.

That's even better! I'll close this then.


Add app server span tags

This PR provides information about span tags the instrumentation adds to SERVER spans for app servers.

Argh, collector broke stuff for us. Ago's PR (https://github.com/signalfx/splunk-otel-java/pull/87) has the fix. Will have to wait until he merges.

Argh, collector broke stuff for us. Ago's PR (https://github.com/signalfx/splunk-otel-java/pull/87) has the fix. Will have to wait until he merges.

@brianashby-sfx Can you please rebase this PR?

@brianashby-sfx Can you please rebase this PR?

@brianashby-sfx please rebase

@brianashby-sfx please rebase


Added link to the restriction of trial accounts

As the 2gb size limit is mentioned here I added a link to the list of all restrictions applying to trial accounts.

Hi @ceedee666,
Thank you for your input.
The topic is specifically for learning about the Dev Space Manager.
We prefer to have the information for working in a Trial account under the respective chapter.
We will not change this for the moment but will be happy to reassess in the future.

Hi @Paolaufer,
but I didn't duplicate the information. Instead I added a link to the section describing the trail accounts limitations. IMHO it would be good to link to this documentation as some of these limitations influence the way the dev space manager works. for example, in the trial account I can only create 2 spaces and I can only start one.
Having the link here would allow people reading the documentation to easily find out about the limitations. Currently, one would need to dig through the navigation tree to find the right document.
Maybe it would be even better to remove the specific mentioning of the 2gb limitations of the trail account and simply mention that different limitations apply to trial accounts and provide the link.
Christian

OK, point well made :)
I'll merge your changes and you will be able to see the link on our next docu release.


Canvas2D Performance Experiments

Experiments to squeeze more performance out of Canvas2D font rendering (in separate commits)

Remove a transparent texture upload we do before each texture load (L2 doesn’t do this at all and I don’t think it’s necessary in the Renderer right now)
Remove some additional options we provide when getting the WebGL context.

One or more of them seem to slow things down a bit and L2 doesn’t use any of them

Group TextRenderer updates in one big queueMicrotask (instead of one for each update)
Give each TextNode its own canvas and upload the canvas directly to the GPU texture. L2 does this.
Eliminate a call to generateMipmap() for every loaded texture. L2 doesn’t generate mipmaps.
Provide a way for textures to be loaded synchronously in addition to asynchronously, and load the text canvas synchronously (L2 does this)
Optimize font loading in the CanvasTextRenderer to use document.fonts.check() (L2 does this)
Use the Lightning2 TextTextureRenderer class in a more compressed manner, pretty close to how L2 uses it.

i.e. Do all of this one after the other when generating a text texture synchronously: Create the canvas, create the Lightning2TextTextureRenderer, calculateRenderInfo, and draw.

These changes combined don't add up to what L2 is currently producing. There is some kind of optimizations happening on the JIT side for L2 that for some reason yet to be known isn't kicking in for L3.

One concerning area of code I'm seeing is the overly complicated and dynamic TrPropSetters.

not everything needs to be a setter; the state is entirely internal,
though it's unintuitive, Object.freeze literally makes code slower (in particular in our old TV browsers).

Essentially, IMHO this is incredibly inefficient:
  set fontSize(value: CoreTextNodeWritableProps['fontSize']) {
    this.textRenderer.set.fontSize(this.trState, value);
  }

While something more straightforward is likely to be much faster:
  set fontSize(value: CoreTextNodeWritableProps['fontSize']) {
    if (this.trState.props.fontSize !== value) {
      this.trState.props.fontSize = value;
      this.textRenderer.invalidate();
    }
  }

Another consideration would be: could there be just one shared canvas for all the renderers? I'm not sure keeping the canvas and context references for the whole life of the text node is useful.

Another consideration would be: could there be just one shared canvas for all the renderers? I'm not sure keeping the canvas and context references for the whole life of the text node is useful.

@elsassph This is how it's currently implemented. I was just trying this out because L2 does it that way (though it doesn't hold onto the references at all).

One concerning area of code I'm seeing is the overly complicated and dynamic TrPropSetters.

The point here is to allow text renderers to decide themselves what property changes require what kind of invalidations. For instance, changing the color prop doesn't need to trigger any kind of layout or texture generation for SDF text but it does require texture generation for Canvas text (though it's actually probably possible to make it not required).
In testing though, the property setters don't appear to be the main bottleneck to Canvas text performance. It's more in the layout and texture generation area. This code is largely pulled verbatim from L2 but it's not getting the same JIT optimizations for some reason.

Ok it may not be the worst problem but the prop setters are a massive over-engineering and memory inefficient:

you have 2 renderers, unlikely to be more,
you can call invalidate('contain') so the renderer can apply special invalidation for a few props.

For deoptimisations, I think it's possible to run Chrome with a certain flag to log those (it might be super verbose to inspect though).


Dlmixcloud is failing

Need to fix the dl mixcloud failing issues.
Proposed solution:
Every X hours, run a github action that runs a script to update a local directory for the audio files for that given branch. Have the musicplayer.html load from those files?

they fixed their end


fix for y velocity persisting after fly toggled off

When fly mode is active and a user begins to travel, a velocity is (potentially) set on the y-axis. When fly mode is de-activated, the velocity calculation ignores the y-axis, causing the velocity to carry over from when the user was in fly mode.
To reproduce:

with fly mode active, move up/down
disable fly mode (via setAttribute or otherwise)
move forwards

Expected Results:

the user y-position does not change while moving forwards once fly mode has been de-activated

Actual Results:

the user's y-position continues along the same line as when fly mode was de-activated, giving a flying effect when fly mode has been disabled

This change explicitly sets y-axis velocity to 0 when not flying, fixing the issue. Fixes #305.

This PR is merged in the community fork https://github.com/c-frame/aframe-extras/issues/5


Allow passing custom tokenizer to load/visit

As discussed in #18.
If this was merged, I could get rid of the monkeypatching hack for json-stream-rs-tokenizer, which would then look like this.

I've released a new version 1.4.0 with this to pypi, and added to the docs:
https://github.com/daggaz/json-stream#custom-tokenizer


Add prometheus metrics (including faucet balance)

This PR adds new Prometheus metrics:

balance
total_requests
successful_requests

It also does:

remove all the console.log and switch to using the logger
log the version at start
bump the server version
⚠ move previous metrics to the new faucet_ namespace (see example below)

The goal was not to rewrite too much code so the following is left for other PRs:

#80
#82

# HELP faucet_errors_total The total amount of errors logged on the faucet backend
# TYPE faucet_errors_total counter
faucet_errors_total 0
# HELP faucet_errors_rpc_timeout The total amount of timeout errors between the faucet backend and the rpc node
# TYPE faucet_errors_rpc_timeout counter
faucet_errors_rpc_timeout 0
# HELP faucet_balance Current balance of the faucet
# TYPE faucet_balance gauge
faucet_balance 8.36929
# HELP faucet_total_requests Total number of requests to the faucet
# TYPE faucet_total_requests gauge
faucet_total_requests 0
# HELP faucet_successful_requests The total number of successful requests to the faucet
# TYPE faucet_successful_requests gauzge
faucet_successful_requests 0

I agree with most comments but those require another round of testing for which I don't have much time now.
So I propose to merge this PR unless we find critical issues, that will allow having some important metrics already.
We can then follow up with https://github.com/paritytech/substrate-matrix-faucet/issues/85

I agree with most comments but those require another round of testing for which I don't have much time now. So I propose to merge this PR unless we find critical issues, that will allow having some important metrics already. We can then follow up with #85

ok


Action can't access github.contributors; works locally

Hi!
Short version: when using the action git-cliff doesn't have access to github.contributors. It works locally.

I'm using the new GitHub integration (great job!). It works great locally, but when using this action (orhun/git-cliff-action@main), I get this in the logs:
+ git-cliff --config=cliff.toml --latest --strip all
 ERROR git_cliff > Template render error:
Variable `github.contributors` not found in context while rendering 'template'

My template uses github.contributors like this:
{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 -%}
  {% raw %}\n{% endraw %}### 👥 New contributors
  {% raw -%}\n{% endraw -%}
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
  🫶 @{{ contributor.username }} made their first contribution
    {%- if contributor.pr_number %} in \
      [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
    {%- endif %}
{% endfor %}
{%- endif %}

I understand the issue could be bypassed by adding an extra if like:
{% if github.contributors %}
{# … the rest of the code above #}
{% endif %}

While no errors would be shown in this case, this would skip the contributors section entirely.
I have:

[X] Set up the [remote.github]
[X] Ran the same command locally; it works fine and grabs the contributor info
[X] Tried both yesterday after the action update and just a few minutes ago (different repos; same error)
[X] Provided the env var GITHUB_TOKEN. Full cd.yml:

name: Continuous Deployment

on:
  push:
    tags:
      - 'v*.*.*'

jobs:
  deploy:
    name: Deploy and release
    runs-on: ubuntu-22.04
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Generate the changelog
        uses: orhun/git-cliff-action@main
        id: git-cliff
        with:
          config: cliff.toml
          args: --latest --strip all
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OUTPUT: CHANGES.md

      - name: Create GitHub release
        run: |
          gh release create ${{ github.ref_name }} \
            --title "Release ${{ github.ref_name }}" \
            --notes "${{ steps.git-cliff.outputs.content }}"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

It's fixed!
Thank you for the promp fix and your amazing job with git-cliff~

Awesome! Thanks for confirming <3


detox init remove package.json if there is invalid son

Description
detox init removes the contents of package.json if it contains invalid JSON.
Steps to Reproduce
Add something invalid to package.json, (e.g. a rogue '//') and run detox init -r jest.  The contents of package.json with be undefined.
Detox, Node, Device, Xcode and macOS Versions

Detox: 14.4.1

Device and verbose Detox logs

$ detox init -r jest
detox[37796] ERROR: [init.js] Failed to create e2e folder, because it already exists at path: /Users/foo/proj/e2e
detox[37796] INFO:  [init.js] Patching package.json at path: /Users/proj/package.json
detox[37796] ERROR: [init.js] Failed to parse package.json due to an error:
/Users/foo/proj/package.json: Unexpected token } in JSON at position 5167
detox[37796] INFO:  [init.js]   json["detox"]["test-runner"] = "jest";

iOS build logs

I'd suggest hard failing on encountering an error (would be good to use process.exit).  Adding PR.


Add back the query classes from 5.3

Guzzle 6 (and most PSR-7 clients) only accept a string as a query, which is not the best interface if you'd like to add and remove values across multiple functions. This PR brings GuzzleHttp\Query from the 5.3 branch back into Guzzle 6. It also brings pack GuzzleHttp\QueryParser, as parse_str is unable to handle a number of characters.
/cc @mtdowling

I think this functionality should be brought back in some way, but this needs to be scaled back quite a bit. The first thing that comes to mind is the collection class and has data trait should not be brought back. If we GAE a mutable query class, it should be the bare minimum (I.e, no need for filter, map, etc).

On Sep 18, 2015, at 6:44 PM, Jonathan Eskew<EMAIL_ADDRESS>wrote:
Guzzle 6 (and most PSR-7 clients) only accept a string as a query, which is not the best interface if you'd like to add and remove values across multiple functions. This PR brings GuzzleHttp\Query from the 5.3 branch back into Guzzle 6. It also brings pack GuzzleHttp\QueryParser, as parse_str is unable to handle a number of characters.
/cc @mtdowling
You can view, comment on, or merge this pull request online at:
https://github.com/guzzle/guzzle/pull/1261
Commit Summary
Add back the query classes from 5.3
File Changes
A src/Collection.php (235)
A src/HasDataTrait.php (46)
A src/Query.php (204)
A src/QueryParser.php (163)
A tests/CollectionTest.php (303)
A tests/QueryParserTest.php (80)
A tests/QueryTest.php (171)
Patch Links:
https://github.com/guzzle/guzzle/pull/1261.patch
https://github.com/guzzle/guzzle/pull/1261.diff
—
Reply to this email directly or view it on GitHub.

True. My initial impulse was just to port the query classes and their ancestors whole cloth from Guzzle 5, but the collection operations aren't really in the spirit of Guzzle 6/PSR-7. The intended use case for GuzzleHttp\Query is that you pass into its constructor an array of a query as you wish it to be sent. The only responsibility of the Query class is to apply the appropriate encoder and aggregator.
Instances are not immutable, but they can only be mutated through ArrayAccess methods. This interface is implemented so that if you do want to evaluate path-style expressions against a query string, you can use JMESPath.

Does this need to be updated to utilize __toString()?
How does this PR address https://github.com/aws/aws-sdk-php/issues/631?

There's a __toString on Query that returns a formatted querystring.
https://github.com/aws/aws-sdk-php/pull/631 is currently blocked by the transformations parse_str performs on certain characters when they appear in a query string. This can result in presigned URLs being signed with a different query string than is actually sent.
A query string parser could be written into the AWS SDK, but it makes more sense as part of Guzzle.

I think my copy paste didn't work. Does this need to be updated to support __toString(): https://github.com/guzzle/guzzle/blob/master/src/Client.php#L347

I think this is a bit large given how much of the logic would be duplicated from Psr7\parse_query and Psr7\build_query. The only advantage the Query class has over those functions is the custom aggregator functionality, but I'm sure that can be handled in a more lightweight way.


Add compatibility with php 8 and move ApiFactory into the correct folder

Related: https://github.com/isotope/core/pull/2510

Thank you @Shadow-Devil
FYI I have removed the changes to the .gitignore files. I think you should add this to your system .gitignore, since you are using PHPStorm 😉


[Bug] 雷达图不显示radiusAxis的轴标签

Version
5.4.2
Link to Minimal Reproduction
https://codesandbox.io/s/x0gmtn?file=/index.js
Steps to Reproduce
雷达图
options:
{
  title: {
    text: 'Basic Radar Chart'
  },
  legend: {
    data: ['Allocated Budget', 'Actual Spending']
  },
  polar: {

  },
  radiusAxis: {
    type: 'value',
    axisLine: {
      show: true
    },
    axisLabel: {
      show: true,
      color: '#000',
      interval: 'auto'
    },
    z: 10000
  },
  angleAxis: {
    axisLine: {
      show: false
    },
  },
  radar: {
    // shape: 'circle',
    indicator: [
      { name: 'Sales', max: 6500 },
      { name: 'Administration', max: 16000 },
      { name: 'Information Technology', max: 30000 },
      { name: 'Customer Support', max: 38000 },
      { name: 'Development', max: 52000 },
      { name: 'Marketing', max: 25000 }
    ]
  },
  series: [
    {
      name: 'Budget vs spending',
      type: 'radar',
      z: 1,
      axisLabel: {
        show: true,
        color: '#000'
      },
      data: [
        {
          value: [4200, 3000, 20000, 35000, 50000, 18000],
          name: 'Allocated Budget'
        },
        {
          value: [5000, 14000, 28000, 26000, 42000, 21000],
          name: 'Actual Spending'
        }
      ]
    }
  ]
};

Current Behavior
径向轴标签不显示

Expected Behavior
径向轴标签显示
Environment
- OS: win11
- Browser: chrome 113.0.5672.127
- Framework: 无

Any additional comments?
No response

I think radar.indicator.name are the axis labels (Sales, Marketing, etc.).
What else do you expect to see, from your example ?

@helgasoft

demo
https://github.com/apache/echarts/issues/18090

radiusAxis definition is "Radial axis of polar coordinate".
Also "Polar coordinate can be used in scatter and line chart" (...and bar charts).
From radar definition: "Radar chart coordinate is different from polar coordinate, in that every axis indicator of the radar chart coordinate is an individual dimension".  So there is no radiusAxis in radar.
NB: please close issue if problem resolved.

So, can the style of displaying only one numerical axis be achieved using echarts?


bump_release: deal with pygit2-0.22/23 changes (fixes #285)

Still the same, i.e.
File "/home/jpopelka/git/atomic-reactor/atomic_reactor/plugins/pre_bump_release.py", line 107, in bump
    remote.push_url = self.push_url
AttributeError: can't set attribute

When I remove the try:except:
and leave only
if self.push_url:
    remote.set_push_url(self.push_url)

I see:
File "/home/jpopelka/git/atomic-reactor/atomic_reactor/plugins/pre_bump_release.py", line 102, in bump
    remote.set_push_url(self.push_url)
File "/home/jpopelka/git/atomic-reactor/tests/plugins/test_bump_release.py", line 120, in set_push_url
    raise AttributeError("no such attribute 'set_push_url'")

I mis-read the documentation. The new set_push_url() method is on the RemoteCollection not the Remote.
Could you try again now?

File "atomic-reactor/atomic_reactor/plugins/pre_bump_release.py", line 110, in bump
    remote.save()
File "/usr/lib64/python2.7/site-packages/pygit2/remote.py", line 165, in save
    err = C.git_remote_save(self._remote)
AttributeError: 'FFILibrary' object has no attribute 'git_remote_save'

OK, understood. The new RemotesCollection.set_push_url() method replaces both the Remote.push_url attribute and the Remote.save() method.
Fixed.

LGTM


feat: read .env file in cli.

Summary:
Briefly describe the changes made in this PR.
Close #1522
/claim #1522
Issue Reference(s):
Fixes #... (Replace "..." with the issue number)
Build & Testing:

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

Checklist:

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

Summary by CodeRabbit

New Features

Enhanced environment variable management in the CLI for improved configuration and setup.

@coderabitai can you resolve conflicts?


Missing price data, skipping update

This error is appearing in the logs roughly every minute and and the Amber entities are made unavailable:
[homeassistant.components.amberelectric] Error fetching amberelectric data: Missing price data, skipping update

https://github.com/amberelectric/public-api/discussions/215

Fixed


added a homepage!

fixes #59
Now, I decided to use the template method, as people may want to use this template more than once. So I provided a new macro and template.
Here is an example:
+++
title= "Welcome to Apollo's Homepage!"
template = "homepage.html"
+++

# apollo

Modern and minimalistic blog theme powered by [Zola](https://getzola.org). See a live preview [here](https://not-matthias.github.io/apollo).

Named after the greek god of knowledge, wisdom and intellect

## Features

- [X] Pagination
- [X] Themes (light, dark, auto)
- [X] Projects page
- [X] Analytics using [GoatCounter](https://www.goatcounter.com/) / [Umami](https://umami.is/)
- [x] Social Links
- [x] MathJax Rendering
- [x] Taxonomies
- [x] Meta Tags For Individual Pages
- [ ] Search
- [ ] Categories

## Installation

1. Download the theme

git submodule add https://github.com/not-matthias/apollo themes/apollo

2. Add `theme = "apollo"` to your `config.toml`
3. Copy the example content

cp -r themes/apollo/content content

## Options
### MathJax

To enable MathJax equation rendering, set the variable `mathjax` to `true` in
the `extra` section of your config.toml. Set `mathjax_dollar_inline_enable` to
`true` to render inline math by surrounding them inside $..$.

```toml
[extra]
mathjax = true
mathjax_dollar_inline_enable = true

Config
Customize <meta/> tags
The following TOML and YAML code will yiled two <meta/> tags, <meta property="og:title" content="the og title"/>, <meta property="og:description" content="the og description"/>.
TOML:
title = "post title"
description = "post desc"
date = "2023-01-01"

[extra]
meta = [
    {property = "og:title", content = "the og title"},
    {property = "og:description", content = "the og description"},
]

YAML:
title: "post title"
description: "post desc"
date: "2023-01-01"
extra:
    meta:
        - property: "og:title"
          content: "the og title"
        - property: "og:description"
          content: "the og description"

If the og:title, the og:description, or the "description" are not set, the page's title and description will be used. That is, the following TOML code generates <meta property="og:title" content="post title"/>, <meta property="og:description" content="post desc"/>, and <meta property="og:description" content="post desc"/> as default values.
title = "post title"
description = "post desc"
date = "2023-01-01"

References
This theme is based on archie-zola.

Maybe we should consider using the readme as the home page. It looks pretty good. I would prefer this as a default.

Maybe we should consider using the readme as the home page. It looks pretty good. I would prefer this as a default.
Yeah, that seems like a good idea. I think it's also a good idea to properly document all the options in that case. That's been on my backlog for a long time, I'll also create an issue for that.

Thanks for the homepage :)


onChange method should pass in event

Is your feature request related to a problem? Please describe.
I'd like to have access to the event variable in the onChange method (and perhaps some other ones too)
I want to stop the propagation of the event when the picker is clicked. Right now, I have my picker situated in an expand accordion, which closes everytime I select a date.
Describe the solution you'd like
Make the event available in 'onChange' method.
Describe alternatives you've considered
Adding stop propagation to the onClick method, but that ends up disabling the calendar

We can’t

Duplicate of #

I have fixed it by adding another container-div with onClick-handler to stop propagation of event.
<div onClick={(event) => event.stopPropagation()}>
  <DatePicker
    variant="inline"
    ...
  </DatePicker>
</div>


Interested in joining the Infracost team?

We are currently hiring on the Infracost team! 🚀
We are looking for a Software Engineer, Senior Software Engineer or Principal Software Engineer to join us. To see the full job descriptions and details on how to apply go to:
https://infracost.io/join-the-team
If you have any questions about the role, or want to chat, please reach out to me at<EMAIL_ADDRESS>

Thanks for the likes! Stay tuned for updates via our newsletter :D


Generate HKL IsNull helper

As per https://github.com/dotnet/winforms/pull/7451#discussion_r926180298 HKL is missing the IsNull helper talked about in https://github.com/microsoft/CsWin32/issues/206

Is this where we make the change?
https://github.com/microsoft/CsWin32/blob/2a9343502baebcf0787ad88a663da02acab55b69/src/Microsoft.Windows.CsWin32/Generator.cs#L3776-L3788

Foundation.HWND doesn't seem to have an IsNull property, Graphics.Gdi.HGDIOBJ does.
Error CS1061 'HWND' does not contain a definition for 'IsNull' and no accessible extension method 'IsNull' accepting a first argument of type 'HWND' could be found (are you missing a using directive or an assembly reference?

@AArnott I think the issue is because Foundation.HWND uses nint and Graphics.Gdi.HGDIOBJ uses IntPtr.
This code only checks IntPtr and UIntPtr.
https://github.com/microsoft/CsWin32/blob/2a9343502baebcf0787ad88a663da02acab55b69/src/Microsoft.Windows.CsWin32/Generator.cs#L3920-L3928
I think this:
if (fieldType is IdentifierNameSyntax { Identifier: { Value: nameof(IntPtr) or nameof(UIntPtr) } })

needs to change to:
if (fieldType is IdentifierNameSyntax { Identifier: { Value: nameof(IntPtr) or nameof(UIntPtr) or nameof(nint) or nameof(nuint) } })

I'll create a PR if you are happy with that.

That's where I suspected the bug to be too. We have had a little churn in whether we generate IntPtr or nint lately. I think though, rather than update the condition check to allow for nint, I'd rather fix the generator to produce IntPtr as it is intended to. I realize in C# 11 it's equivalent, but that's not out yet, and IntPtr does a better job of conveying "this is a pointer-sized opaque value" than nint does.

I played around with it and I think its caused by PreferNativeInt on the generalTypeSettings in Generator:
https://github.com/microsoft/CsWin32/blob/2a9343502baebcf0787ad88a663da02acab55b69/src/Microsoft.Windows.CsWin32/Generator.cs#L386-L393
This causes the output to change:
https://github.com/microsoft/CsWin32/blob/6ea3f448867d9fafb9ae24e04ea5a10b5f483d1d/src/Microsoft.Windows.CsWin32/PrimitiveTypeHandleInfo.cs#L24-L47
So I guess we hardcode it for now and update it once LanguageVersion.CSharp11 is included in Microsoft.CodeAnalysis.CSharp?

Thanks for looking.
We want the general type settings to prefer nint over IntPtr though. It's only in the handle structs that we want to prefer IntPtr. We have code to do this, but it's failing... somewhere.
I wouldn't bother changing it again for C# 11, since if they are equivalent, there's no value in switching from one to the other.

And in C# 11 I still feel like showing the type as IntPtr versus nint carries useful expectations on the meaning of the contents.

While I agree with you, @jnm2, I suspect time will judge differently. When everyone is using C# 11+ and the two are truly aliases of each other, I suspect people will consider them as equivalent as int and Int32. These days we do still split hairs (at least I do) in preferring int but using Int32 when I want to be explicit about its length -- not because I have to, but it can be useful when implementing network protocols. Time will tell how people feel about IntPtr vs. nint at that point. But it certainly can do no harm to continue to use IntPtr here, and it certainly is useful to do so in the hear and now.

This is the code where it decides if a Handle struct is a handle:
https://github.com/microsoft/CsWin32/blob/2a9343502baebcf0787ad88a663da02acab55b69/src/Microsoft.Windows.CsWin32/Generator.cs#L3776-L3788
I think because there is no method for releasing the HKL, there is no hit in MetadataIndex.HandleTypeReleaseMethod. So then its up to the special cases section.
A lot of these types are DECLARE_HANDLE and have the InvalidHandleValues value. Could we use that?
https://github.com/microsoft/win32metadata/blob/5687b3cb4868c3142b98091ee970464f55219406/generation/WinSDK/autoTypes.json#L114-L118
Would IsNull still make sense in that context?

I think this works:
private bool IsHandle(TypeDefinitionHandle typeDefHandle, out string? releaseMethodName)
{
    if (this.MetadataIndex.HandleTypeReleaseMethod.TryGetValue(typeDefHandle, out releaseMethodName))
    {
        return true;
    }
    else if (this.GetInvalidHandleValues(typeDefHandle).Count > 0) {
        return true;
    }

    // Special case handles that do not carry RAIIFree attributes.
    releaseMethodName = null;
    TypeDefinition typeDef = this.Reader.GetTypeDefinition(typeDefHandle);
    return this.Reader.StringComparer.Equals(typeDef.Name, "HGDIOBJ")
        || this.Reader.StringComparer.Equals(typeDef.Name, "HWND");
}

But CreateCommonTypeDefMembers would need to change to again check for invalid values and then generate code which checked for the invalid values instead of default?
https://github.com/microsoft/CsWin32/blob/2a9343502baebcf0787ad88a663da02acab55b69/src/Microsoft.Windows.CsWin32/Generator.cs#L3920-L3928

The typedef structs are (mostly) strongly-typed wrappers for handles.
https://github.com/microsoft/win32metadata/issues/21#issuecomment-812599766

Can you clarify mostly?
My above attempts I believe were wrong. I think DeclareTypeDefStruct needs to always have isHandle=true, as its only called when the metadata has the NativeTypedef attribute. Additionally, the section in CreateCommonTypeDefMembers which adds IsNull checks for IntPtr and UIntPtr, so that covers the "mostly" part as far as I can tell.
If there is a counter example we can add it to the tests and see if we need additional information from the metadata.

@AArnott should the win32metadata repo just explicitly tag each typedef struct which is a handle? Are all the structs with intptr values handles?

Good question. I don't know. Maybe CsWin32's need for a 'handle' designation is flawed, if the information simply isn't in the header files either.

Good question. I don't know. Maybe CsWin32's need for a 'handle' designation is flawed, if the information simply isn't in the header files either.

Can you think of an example of a NativeTypedef struct with an IntPtr which isn't a handle?

No. So far I've coded CsWin32 to consider that all typedef structs with intptr are the same.

I think we can refactor the code where ishandle is called. If you ignore the result, the all nativetypedef structs with intptr are generated with IsNull.

@sotteson1 We are looking at how to distinguish between a NativeTypedef which is a handle and one that just has an IntPtr. It seems like not all NativeTypedefs with IntPtr are handles since some are defined in autotypes with  "ValueType": "DECLARE_HANDLE" and so a new attribute might be required. Am I way off the mark with this?

Found this comment in Winforms, which might help sway us towards wanting to use nint/nuint over IntPtr/UIntPtr.
// It is particularly dangerous to cast to/from IntPtr on 64 bit platforms as casts are checked.
// Doing so leads to hard-to-find overflow exceptions. We've mitigated this historically by trying
// to first cast to long when casting out of IntPtr and first casting to int when casting into an
// IntPtr. That pattern, unfortunately, is difficult to audit and has negative performance implications,
// particularly on 32bit.
//
// Using the new nint/nuint types allows casting to follow with the default project settings, which
// is unchecked. Casting works just like casting between other intrinsic types (short, int, long, etc.).

https://github.com/dotnet/winforms/blob/179df82381b5df175d043c2190306354f8b46cae/src/System.Windows.Forms.Primitives/src/System/Windows/Forms/Message.cs#L39-L50

@elachlan, that comment is interesting and I'd like to learn more. But why post it here on an issue about adding IsNull, which may be closed as Won't Fix, but this casting concern should likely have its own discussion lifetime?

@elachlan, that comment is interesting and I'd like to learn more. But why post it here on an issue about adding IsNull, which may be closed as Won't Fix, but this casting concern should likely have its own discussion lifetime?

Basically this issue is caused by the setting for preferring nint over IntPtr.

Adding this here based on Andrew's question in the PR:

Given how hard it is to get this right, I wonder if it's worth it. Particularly because all this change would do is enable an .IsNull syntax where == default would already do the same. Why is this so important?

I think its less about .IsNull and more about CsWin32 and other Win32Metadata consumers not knowing how to tell if something is a handle or not. An attribute in the metadata would remove that ambiguity. Really .IsNull is just a symptom of the problem and if the ambiguity isn't rectified in the metadata, I imagine there will be other "symptoms".

if the ambiguity isn't rectified in the metadata, I imagine there will be other "symptoms".

I would be content to leave the metadata alone so they can focus on more meaningful changes, until one of these other symptoms shows up with a compelling case for fixing. I don't think IsNull is compelling enough.
@elachlan, if your concern about IntPtr checked casting remains (I suspect it does), can you please file a new issue to track that? Consider that I would like handle typedef's to use IntPtr instead of nint as their field type. At one point this worked, but I don't know whether that still works. So even if we have nint now, we may have IntPtr later unless a discussion (on a new issue) compels me to give it up and use nint to avoid checked cast exceptions.

New issue is at #661

I mean, the majority of the typedefstructs work. So the PR isn't a complete failure. Its just if you want complete coverage of all handles then we would need more info from the metadata.


Fixed #24951 -- Fixed AssertionError in delete queries involving a foreign/primary key.

Probably not the correct fix, but does work.
https://code.djangoproject.com/ticket/24951

@akaariai, any advice on this one?
The query looks like:
DELETE
    FROM "one_to_one_pointer"
    WHERE "one_to_one_pointer"."other_id" IN (
        SELECT U0."other_id" AS Col1
        FROM "one_to_one_pointer" U0
        INNER JOIN "one_to_one_target" U1 ON ( U0."other_id" = U1."id" )
        WHERE U1."name" = %s
    )

.. and self.query.tables is ['one_to_one_pointer', 'one_to_one_target'] at the AssertionError (as opposed to ['one_to_one_pointer'] before 20bab2cf9d02a5c6477d8aac066a635986e0d3f3.

It might be asserting that there is just one active table in the query is the right thing to do. This is doable by checking len([t for t in self.query.tables if self.query.alias_refcount[t] > 0]) == 1.
My unverified guess is that the other_id IN filter creates a join to the other table, and this is then immediately trimmed away. Thus the table gets first reffed, then unreffed. The end result is that it ends up in query.tables with refcount of 0.
BTW it seems the subquery isn't optimal, we could trim the INNER JOIN away and directly select U1.id as that is guaranteed to have the same value as U0.other_id. Not this PR's problem of course...

That does allow the test to pass. We don't currently have a test for the AssertionError. Do you think it's important to add one (now or later)? (maybe it's just meant as a check against bugs in Django itself).

I don't think we need to add a test for the AssertionError. Django shouldn't ever generate a query where multiple tables are active when deleting (instead such cases are handled by subqueries). So, testing this would require some kind of a hack where we work around the normal delete mechanism.
In addition, if the assertion were to be removed the result should be an invalid query (delete from ... join ... doesn't work). So, we will get a test failure in that case, too.


⚠ Bofrost.fr has degraded performance

In 374bf13, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1398 ms

Resolved: Bofrost.fr performance has improved in 6666e44.