Issue #1857 : Fix bcc field hidden in drafts

Please ensure that your pull request meets the following requirements - thanks !

Follows our existing codestyle.
Does not break any unit tests.
Contains a reference to the issue that it fixes.

thanks!


Can it be used in SwiftUI ?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Hi, are there a SwiftUI example of using FlagPhoneNumber?

Hi,
I've created a sample file "UIViewRepresentable" to use in SwiftUI.
struct FPNTextFieldViewHandler: UIViewRepresentable {
func makeUIView(context: Context) -> FPNTextField {
    let textField = FPNTextField()
    textField.delegate = context.coordinator
    textField.hasPhoneNumberExample = true
    return textField
}

func updateUIView(_ uiView: FPNTextField, context: Context) {

}

func makeCoordinator() -> Coordinator {
    Coordinator(self)
}

class Coordinator: NSObject, UITextFieldDelegate {
    var parent: FPNTextFieldViewHandler

    init(_ textField: FPNTextFieldViewHandler) {
        self.parent = textField
    }

}

}
extension FPNTextFieldViewHandler.Coordinator : FPNTextFieldDelegate{
func fpnDidSelectCountry(name: String, dialCode: String, code: String) {
print(name, dialCode, code)
}
func fpnDidValidatePhoneNumber(textField: FPNTextField, isValid: Bool) {
    textField.rightViewMode = .always
    textField.keyboardType = .numberPad
}

func fpnDisplayCountryList() {

}

}

@mudassarahmad09 Thanks so much for posting your SwiftUI compatible wrapper. I am struggling with figuring out how I can extract the text from the FPNTextFieldViewHandler.
What I would like to do is extract an E164 formatted number from the field but I cannot figure out where to put this logic and how I can call it. I have come to the conclusion I will likely have to modify the source code for FPNTextField but this is much more difficult than I imagined.
Do you have any insight on extracting the phone number for usage in the parent swiftUI view that is initializing FPNTextFieldViewHandler()?
Thanks in advance!

I modified the code above from @mudassarahmad09 to enable updating an "@State" variable in the view where PhoneNumberInput() is initialized.
import SwiftUI
import UIKit
import FlagPhoneNumber

struct PhoneNumberInput: View {
     @Binding var formattedPhoneNumber : String

    var body: some View {
        FPNTextFieldViewHandler(formattedPhoneNumber: self.$formattedPhoneNumber)
    }
}

struct PhoneNumberInput_Previews: PreviewProvider {
    @State static var value = ""

    static var previews: some View {
        PhoneNumberInput(formattedPhoneNumber: $value)
    }
}

struct FPNTextFieldViewHandler: UIViewRepresentable {
    @Binding var formattedPhoneNumber : String

    let textField = FPNTextField()

    func makeUIView(context: Context) -> FPNTextField {
        textField.delegate = context.coordinator
        textField.hasPhoneNumberExample = true
        return textField
    }

    func updateUIView(_ uiView: FPNTextField, context: Context) {
    }

    func makeCoordinator() -> Coordinator {
        Coordinator(self, formattedPhoneNumber: $formattedPhoneNumber)
    }

    class Coordinator: NSObject, UITextFieldDelegate {
        @Binding var formattedPhoneNumber : String

        var parent: FPNTextFieldViewHandler

        init(_ textField: FPNTextFieldViewHandler, formattedPhoneNumber: Binding<String>) {
            self.parent = textField
            self._formattedPhoneNumber = formattedPhoneNumber
        }
    }
}

extension FPNTextFieldViewHandler.Coordinator : FPNTextFieldDelegate{
    func fpnDidSelectCountry(name: String, dialCode: String, code: String) {
        print(name, dialCode, code)
    }

    func fpnDidValidatePhoneNumber(textField: FPNTextField, isValid: Bool) {
        print("Phone number is valid: \(isValid)")
        if isValid {
            self.formattedPhoneNumber = textField.getFormattedPhoneNumber(format: FPNFormat.E164) ?? ""
        } else {
            self.formattedPhoneNumber = ""
        }
        textField.rightViewMode = .always
        textField.keyboardType = .phonePad
    }

    func fpnDisplayCountryList() {

    }
}

What about setPhone number?

is working fpnDisplayCountryList() in SwiftUI? In my case is never being called.

Did you find any solution do present countries list?

is working fpnDisplayCountryList() in SwiftUI? In my case is never being called.

Did you find any solution do present countries list?

Sure, I did. I have created my own custom component for SwiftUI: https://github.com/oskarko/FlagPhoneNumberUI


Skip files from output

Describe the feature you'd like to request
To disable some folders/files in output.
For example, one package I have (NextJS app) can sometimes have a big cache folder in .next. I would love to skip the cache folder while still caching .next.
Describe the solution you'd like
Either something like:
"skip": [".next/cache"]
Or by using some RegEx voodoo in outputs.
Describe alternatives you've considered
Disabling cache in NextJS.
https://github.com/vercel/next.js/issues/37608

You should be able to specify with ! now. I think that should cover your case!
{
  "outputs": [".next", "!.next/cache"]
}


feat: show Unknown resource kinds in navigator

This PR...
Changes

show unknown resource kinds in the navigator

Fixes

How to test it

Screenshots

Checklist

[x] tested locally
[ ] added new dependencies
[ ] updated the docs
[ ] added a test

@catalinhoha does this put all unknown in one section/subsection? or create subsections for each unknown resource kind?

@catalinhoha does this put all unknown in one section/subsection? or create subsections for each unknown resource kind?

it creates a new Unknown Resources section under the K8s Resources section which groups all resources by the kind


BittorrentSync 1.4: changed mirror

Changed the location of the mirror, because bittorrent.com doesn't host these versions anymore.

What is yeasoft.net? Are they related to bittorrent inc?

It's unrelated to bittorrentsync.com, the only mirror/archive I could find. They provice packages for BittorrentSync on Debian, see: http://www.yeasoft.com/site/projects:btsync-deb
From the website of yeasoft.com:

Currently it's not a company. During the last 30 years sometimes it was - and perhaps this may happen again. Nowadays it's simply a domain, operated by two guys with strong IT interests, useful for sending and receiving mail, hosting the IT infrastructure and giving a common name for some public activities.
A place for experiments, a home in the vastness of the network and a place where you can find some published projects or some bits of knowledge worth of being published.

@nathan-gs hrm, okay, so bittorrent inc aren't interested in people using their software or what?
Anyway, please squash when you're ready to merge.

Oh, I see this is an old version of btsync ...

Pushed a version bump at 6d2625a940eeff9a14e8c39d3d799bf69f78b97c, which appears to make this unnecessary.


add support of pyannote segmentation 3.0 (experience sharing)

Hi, if anyone like me is working on the feat/diart-spk branch and  want to add support of pyannote segmentation 3.0. Here is what I have done.
You only need to make some changes in diariazation.py. Segmentaiton 3.0 output activation of seven classes, instead of three (for details please refer to the paper) . What's more the activation values are those before a softmax transformation. So I have simply added a softmax transformation and take only the activations of three speakers, ignoring the other four labels. In this way, it is almost the same to the old version of segmentation. But be aware that this will miss overlapping speech segments.

Hey @ywangwxd, just FYI you can use the Powerset class from pyannote.audio to do this without sacrificing overlapping speech. In particular, take a look at the method called to_multilabel()

Thank you, this is the benefit for my sharing. Someone else may tell me a better solution:-)

Hey @ywangwxd, just FYI you can use the Powerset class from pyannote.audio to do this without sacrificing overlapping speech. In particular, take a look at the method called to_multilabel()

After a more detailed look, I have switched to making change on models.py instead of the upper level diariazation.py. Here is the screenshot of the diff. I have referred to those codes in version 0.9.1.


Can't find any spans... keep getting "Unexpected end of JSON input"

Here is the error messaging I'm seeing... For context I'm using the jaegertracing/all-in-one docker image locally...
There was an error querying for traces:
Unexpected end of JSON input

I've seen that when the UI is loaded via the browser's cache but the query service itself can't be reached. Could you try reloading bypassing the cache (Ctrl+Shift+R would usually do it)? If you can't reach the UI anymore, you might have missed exposing the container port to your host port (like, -p 16686:16686).
If you do get the UI loaded but still see the same error message, then it would be useful to get into the developer console, copy the curl command, run on the command line and report back the output. I would also ask what's the exact command used to start the Docker container (like, docker run --rm -it -p 16686:16686 jaegertracing/all-in-one)

yea.... All I did was copy the docker jaeger-all-in-one run command:
docker run -d -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp \
  -p5778:5778 -p16686:16686 -p14268:14268 -p9411:9411 jaegertracing/all-in-one:latest

I'm using the node.js client.
I've tried refreshing no dice.

I've tried refreshing no dice.

Does that mean that you still see the error, or does that mean you don't get the UI loaded at all? Would you please try in an incognito window, just to make sure?
In any case, I cannot reproduce what you are experiencing. I started Jaeger with your exact docker command and ran your exact curl command, which returns:
{"data":[],"total":0,"limit":0,"offset":0,"errors":null}

The JSON above is the appropriate response for this scenario. If you don't send any traces to the server with your nodejs client, do you see the same empty response, or do you see a JSON like I have?

@jpkrohling It means I'm still getting the error. I've tried hard refresh.

I can show you docker logs if that helps?

It seems to be when I have multiple span types within a trace.
Nothing unusual looking in logs:
{"level":"info","ts":1505995964.8162143,"caller":"tchannel/bulider.go:89","msg":"Enabling service discovery","service":"jaeger-collector"}
{"level":"info","ts":1505995964.8165386,"caller":"peerlistmgr/peer_list_mgr.go:111","msg":"Registering active peer","peer":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505995964.8177192,"caller":"standalone/main.go:111","msg":"Starting agent"}
{"level":"info","ts":1505995964.818583,"caller":"standalone/main.go:150","msg":"Starting jaeger-collector TChannel server","port":14267}
{"level":"info","ts":1505995964.8186705,"caller":"standalone/main.go:160","msg":"Starting jaeger-collector HTTP server","http-port":14268}
{"level":"info","ts":1505995964.8192267,"caller":"standalone/main.go:178","msg":"Listening for Zipkin HTTP traffic","zipkin.http-port":9411}
{"level":"info","ts":1505995964.821657,"caller":"standalone/main.go:228","msg":"Starting jaeger-query HTTP server","port":16686}
{"level":"info","ts":1505995965.8176525,"caller":"peerlistmgr/peer_list_mgr.go:159","msg":"Not enough connected peers","connected":0,"required":1}
{"level":"info","ts":1505995965.8180492,"caller":"peerlistmgr/peer_list_mgr.go:166","msg":"Trying to connect to peer","host:port":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505995965.819574,"caller":"peerlistmgr/peer_list_mgr.go:176","msg":"Connected to peer","host:port":"[::]:14267"}
{"level":"info","ts":1505998204.3477128,"caller":"tchannel/bulider.go:89","msg":"Enabling service discovery","service":"jaeger-collector"}
{"level":"info","ts":1505998204.3478334,"caller":"peerlistmgr/peer_list_mgr.go:111","msg":"Registering active peer","peer":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505998204.3486717,"caller":"standalone/main.go:111","msg":"Starting agent"}
{"level":"info","ts":1505998204.3495948,"caller":"standalone/main.go:150","msg":"Starting jaeger-collector TChannel server","port":14267}
{"level":"info","ts":1505998204.34974,"caller":"standalone/main.go:160","msg":"Starting jaeger-collector HTTP server","http-port":14268}
{"level":"info","ts":1505998204.3499165,"caller":"standalone/main.go:178","msg":"Listening for Zipkin HTTP traffic","zipkin.http-port":9411}
{"level":"info","ts":1505998204.3515298,"caller":"standalone/main.go:228","msg":"Starting jaeger-query HTTP server","port":16686}
{"level":"info","ts":1505998205.349482,"caller":"peerlistmgr/peer_list_mgr.go:159","msg":"Not enough connected peers","connected":0,"required":1}
{"level":"info","ts":1505998205.3497262,"caller":"peerlistmgr/peer_list_mgr.go:166","msg":"Trying to connect to peer","host:port":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505998205.3513584,"caller":"peerlistmgr/peer_list_mgr.go:176","msg":"Connected to peer","host:port":"[::]:14267"}
{"level":"info","ts":1505998214.6816676,"caller":"tchannel/bulider.go:89","msg":"Enabling service discovery","service":"jaeger-collector"}
{"level":"info","ts":1505998214.6818602,"caller":"peerlistmgr/peer_list_mgr.go:111","msg":"Registering active peer","peer":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505998214.6826618,"caller":"standalone/main.go:111","msg":"Starting agent"}
{"level":"info","ts":1505998214.6835291,"caller":"standalone/main.go:150","msg":"Starting jaeger-collector TChannel server","port":14267}
{"level":"info","ts":1505998214.6836135,"caller":"standalone/main.go:160","msg":"Starting jaeger-collector HTTP server","http-port":14268}
{"level":"info","ts":1505998214.6838784,"caller":"standalone/main.go:178","msg":"Listening for Zipkin HTTP traffic","zipkin.http-port":9411}
{"level":"info","ts":1505998214.6855378,"caller":"standalone/main.go:228","msg":"Starting jaeger-query HTTP server","port":16686}
{"level":"info","ts":1505998215.6830575,"caller":"peerlistmgr/peer_list_mgr.go:159","msg":"Not enough connected peers","connected":0,"required":1}
{"level":"info","ts":1505998215.6831539,"caller":"peerlistmgr/peer_list_mgr.go:166","msg":"Trying to connect to peer","host:port":"<IP_ADDRESS>:14267"}
{"level":"info","ts":1505998215.6844003,"caller":"peerlistmgr/peer_list_mgr.go:176","msg":"Connected to peer","host:port":"[::]:14267"}

In many cases the UI shows a misleading error message.
Seems like for an erred HTTP response with no body, the error message should show the status code and a message along the lines of "An unknown error has occurred." Not exactly super helpful, but better than trying and failing to parse JSON data that isn't there and showing an error message about the failed JSON.parse(...) call.
I've created jaegertracing/jaeger-ui#127 to address the misleading error messages.

I'm closing this, as this was addressed by jaegertracing/jaeger-ui#127

I'm still seeing this issue on Jaeger 1.16 for some scenarios.

@belabartha are you able to reproduce it consistently?

@jpkrohling yes. We have missing data probably, but I'd still expect to have a direction where to fix it. We're using Moleculer framework for our microservices, and using Jaeger for APM.

@belabartha are you able to pin-point it to the request that returns the broken results? An example of the response would also be useful.

@jpkrohling not yet. I'm trying to get to it; It's buried deeply into about 5th level of spans in a span of 16.

For now I have this: jaeger.js - line 42:

response.url is: http://localhost:16686/api/traces?end=1582300681327000&limit=2
...and there I get: {"data":null,"total":0,"limit":0,"offset":0,"errors":[{"code":400,"msg":"parameter 'service' is required"}]}.
I still don't know what is that param. Continuing.

In the first screenshot at this issue, you can see the service field in the left-hand side form, first field. Have you selected a service there? If not, the "Find Traces" button should be disabled.

Yep, service is populated in the left-had side form. Most of the Operations display a properly, but I have a few that don't.

In case I add the service (&service=whatever) to the response URL I posted about 3 posts ago, I get: {"data":[],"total":0,"limit":0,"offset":0,"errors":null}. That seems to be way better.

Yep, service is populated in the left-had side form. Most of the Operations display a properly, but I have a few that don't.

If you have the field populated, the "Find Traces" button enabled, and still get a request being made without the service parameter, then there's definitely a bug in there...

Hello, also seeing this issue here.
What happens is that the UI receive a 200 status code with no JSON body from the server part.
The strange thing is that it seems caused by some particular spans.
When querying for spans other than these particular spans, the UI displays them gracefully.
Even if some spans are corrupted, shouldn't the server part at least return the valid ones to the UI?

Are you able to consistently reproduce it, @gautaz? If you can build a reproducer that can be used by us, we can try to take a look. Also, this seems to be somewhat different than the original report, so, I'd ask you to open a new issue.

@jpkrohling See #2541.
Thanks for your quick answer :-).


project: document and improve .attach

Codecov Report

Merging #9 (0947031) into main (6fe5fbf) will increase coverage by 0.06%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   99.44%   99.51%   +0.06%
==========================================
  Files          22       22
  Lines        1971     2450     +479
==========================================
+ Hits         1960     2438     +478
- Misses         11       12       +1

Impacted Files
Coverage Δ

...es/Feedbacks/StateMachine/StaticIdentifiable.swift
100.00% <ø> (ø)

Sources/Feedbacks/StateMachine/Transition.swift
100.00% <ø> (ø)

Sources/Feedbacks/StateMachine/Transitions.swift
100.00% <ø> (ø)

...Feedbacks/StateMachine/TransitionsDefinition.swift
100.00% <ø> (ø)

Sources/Feedbacks/System/InitialState.swift
100.00% <ø> (ø)

Sources/Feedbacks/System/UISystem.swift
100.00% <ø> (ø)

...backsTests/System/DispatchQueue+CurrentLabel.swift
100.00% <ø> (ø)

...ests/FeedbacksTests/System/InitialStateTests.swift
100.00% <ø> (ø)

.../FeedbacksTests/System/UISystem+BindingTests.swift
100.00% <ø> (ø)

Tests/FeedbacksTests/System/UISystemTests.swift
95.79% <ø> (ø)

... and 7 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #9 (0947031) into main (6fe5fbf) will increase coverage by 0.06%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   99.44%   99.51%   +0.06%
==========================================
  Files          22       22
  Lines        1971     2450     +479
==========================================
+ Hits         1960     2438     +478
- Misses         11       12       +1

Impacted Files
Coverage Δ

...es/Feedbacks/StateMachine/StaticIdentifiable.swift
100.00% <ø> (ø)

Sources/Feedbacks/StateMachine/Transition.swift
100.00% <ø> (ø)

Sources/Feedbacks/StateMachine/Transitions.swift
100.00% <ø> (ø)

...Feedbacks/StateMachine/TransitionsDefinition.swift
100.00% <ø> (ø)

Sources/Feedbacks/System/InitialState.swift
100.00% <ø> (ø)

Sources/Feedbacks/System/UISystem.swift
100.00% <ø> (ø)

...backsTests/System/DispatchQueue+CurrentLabel.swift
100.00% <ø> (ø)

...ests/FeedbacksTests/System/InitialStateTests.swift
100.00% <ø> (ø)

.../FeedbacksTests/System/UISystem+BindingTests.swift
100.00% <ø> (ø)

Tests/FeedbacksTests/System/UISystemTests.swift
95.79% <ø> (ø)

... and 7 more

Continue to review full report at Codecov.

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


Enable to_date (via gettimestamp and casting timestamp to date) for non-UTC time zones

Fixes #9927.
This enables to_date for non-UTC time zones. to_date(str, fmt) is actually an alias for cast(gettimestamp(str, fmt) as date).  So enable casting timestamp to date, and enable non-UTC time zones for gettimestamp (which basically the parent of the same algorithm used in unix_timestamp).

build

build

Some performance testing results:
    NUM ROWS     GPU (ms)     CPU (ms)              SPEEDUP
        1000          177          250   1.4124293785310735
        2500           38           37   0.9736842105263158
        5000           40           39                0.975
       10000           44           37   0.8409090909090909
       20000           45           27                  0.6
       50000           53           71   1.3396226415094339
      100000           85          168   1.9764705882352942
      250000          134          267    1.992537313432836
      500000          176          463   2.6306818181818183
     1000000          293          955     3.25938566552901

In this case, I generated a parquet file with a single column a of a randomly generated date strings in the yyyy-MM-dd format in the valid ANSI range (0001-01-01 to 9999-12-31).  I then read that parquet file and ran to_date(a, 'yyyy-MM-dd') on that column with a CPU and GPU run. I used sparkmeasure to measure the elapsed time of the queries.  Before running the test I also ran a query using from_utc_timestamp to load the timezone database since it's still lazy loaded at this point, and that would skew the performance data here.

build

Some performance testing results:
    NUM ROWS     GPU (ms)     CPU (ms)              SPEEDUP
        1000          177          250   1.4124293785310735
        2500           38           37   0.9736842105263158
        5000           40           39                0.975
       10000           44           37   0.8409090909090909
       20000           45           27                  0.6
       50000           53           71   1.3396226415094339
      100000           85          168   1.9764705882352942
      250000          134          267    1.992537313432836
      500000          176          463   2.6306818181818183
     1000000          293          955     3.25938566552901

In this case, I set the session timezone to Iran and generated a parquet file with a single column a of a randomly generated date strings in the yyyy-MM-dd format in the valid ANSI range (0001-01-01 to 9999-12-31). I then read that parquet file and ran to_date(a, 'yyyy-MM-dd') on that column with a CPU and GPU run. I used sparkmeasure to measure the elapsed time of the queries. Before running the test I also ran a query using from_utc_timestamp to load the timezone database since it's still lazy loaded at this point, and that would skew the performance data here.

Do we have some ideas why row num = 20000, we had some lower perf acceleration? Will this perf result vary across different measurements?

Do we have some ideas why row num = 20000, we had some lower perf acceleration? Will this perf result vary across different measurements?

That is way too little data to be a good benchmark.  20,000 rows is < 300k of data. I don't know how many row groups there are, but the overhead of launching kernels is likely most of the time being spent here.  I would much rather see a test like.
spark.range(0, 400000000L, 1, 12).selectExpr("date_from_unix_date(id % 700000) as d").selectExpr("d", "CAST(d as STRING) as ds").write.mode("overwrite").parquet("./target/TMP")

then we can try and isolate just the to_date as much as possible with
spark.time(spark.read.parquet("./target/TMP").selectExpr("to_date(ds, 'yyyy-MM-dd') as date").selectExpr("MAX(date)", "MIN(date)").show())

and
spark.time(spark.read.parquet("./target/TMP").selectExpr("d as date").selectExpr("MAX(date)", "MIN(date)").show())

For UTC on the GPU I get
to_date => 1459, 1478, 1393, 1420, 1393 - median 1420
just min/max => 811, 831, 783, 753, 764 - median 753 or about 667 ms for just the to_date which is not too far off from the approximate 1s optime I see on the GPU for that ProjectExec.
For the CPU I get
to_date => 30273, 29722, 29750, 29645, 29612 - median 29722
just min/max => 673, 570, 536, 529, 541 - median 536 or about 29700 ms for just the to_date.
Or we could just compare UTC runs agains Iran runs for GPU and separately for CPU to give us an idea of the overhead that Iran adds to the operation.

Using the approach suggested by @revans2, I generated the parquet file using
spark.range(0, num_rows, 1, 12).selectExpr("date_from_unix_date(id % 700000) as d").selectExpr("d", "CAST(d as STRING) as ds").write.mode("overwrite").parquet(tmpfile)

and then measured the difference between the total time of min(date), max(date) and the total_time to_date and min/max.
Resuilts:
    NUM ROWS     GPU (ms)     CPU (ms)              SPEEDUP
   100000000          143        14866<PHONE_NUMBER>5804196
   200000000          448        28896                 64.5
   400000000          883        58499    66.25028312570781
   800000000         1483       115150    77.64666217127444

Moving this to draft, looks like there is an issue in casting timestamp to date that is causing off by 1 issues when making it timezone aware.

We can use this class to test perf:
https://github.com/NVIDIA/spark-rapids/blob/branch-24.02/tests/src/test/scala/com/nvidia/spark/rapids/timezone/TimeZonePerfSuite.scala
Add a new case in this suite.

Updated results after casting timestamp to date fix for non-UTC timezones. The timezone tested was Iran:
    NUM ROWS     GPU (ms)     CPU (ms)              SPEEDUP
   100000000          195        14563    74.68205128205128
   200000000          456        27386    60.05701754385965
   400000000          847        52842    62.38724911452184
   800000000         1581       107031    67.69829222011386

build

build

premerge failure due to some issue with Gpu Time Zone database and unit tests, filed https://github.com/NVIDIA/spark-rapids/issues/10129 to track.

This is blocked until https://github.com/NVIDIA/spark-rapids-jni/pull/1670 is merged

Also fixes #10006

build

build

build


Exception on creating the schedule - Unable to add lock instance for lock TriggerAccess on NON_CLUSTERED

"Quartz.JobPersistenceException: Unable to add lock instance for lock TriggerAccess on NON_CLUSTERED\n ---> System.Exception: Unable to add lock instance for lock TriggerAccess on NON_CLUSTERED\n at Quartz.Spi.MongoDbJobStore.LockManager.AddLock(LockInstance lockInstance).
This exception is not consistent.

Hi, thanks for reporting, do you have more details? Current behaviour vs the expected one?
Thanks!

Hi, Thanks for the reply, had figured out the issue and fixed.
Current Implementation: The AcquireLock method is designed to return a LockInstance object upon successful lock acquisition. If the attempt fails, the method retries every second. During this process, an entry with a 30-second TTL is created in the lock repository (MongoDB/CosmosDB), and a corresponding entry is added to a concurrent dictionary, keyed by Access Type and Instance ID. The lock is intended to be released upon disposal of the LockInstance object, removing entries from both the lock repository and the concurrent dictionary.
RCA (Root Cause Analysis): If an operation exceeds the 30-second threshold due to network latency or high load, the TTL mechanism will remove the database entry. This allows another instance—or potentially the same instance—to proceed with the pending operation (e.g., Schedule CRUD or Job Trigger). This new operation might successfully create a database record but fail to update the concurrent dictionary if an entry with the same key already exists, leading to operation failure.
Please let me know, so i can send the PR for review.


Updating DefaultModelBinding feature to checking cache entries before using conversion feature

The default model binding feature is not checking the binding cache before engaging the conversion feature to generate the parameter values. This means, if a middleware is setting a different value for an input binding item, that value is not respected for the parameters.  I some have missed this change in the original PR.

/check-enforcer evaluate


Standardize two emission array sizing

Fix this line to avoid copy problems by forcing the local and global arrays to always have the same size, as in the PMF_SIZE define here (https://github.com/evolvedmicrobe/cafe-quality/commit/1f916d75f17b6c61017f0c37bfafc35c88657989#diff-6768078e549d1d2a1c1bdbcd5f64b295):
memcpy(MatchIqvPmf,  matchIqvPmf,  sizeof(MatchIqvPmf));

The code has been refactored enough that this issue no longer exists.


About the cache FAQ

Hi very congratulations for all your excellent work... im starting to use data in all this modern js world in a nice moment... and i was looking into vuex then vuex orm, then i found you, then i found magnetar... what you suggest to a production thing, magnetar as it is today, or stick with easy firestore at moment?
ah yes the topic.... i seen your SO post about the pricing, but i´ve also seen another one
https://www.javaer101.com/fr/article/35020648.html
im really confuse...
THANKS FOR EVERYTHING!!!!

@VanderSP thanks a lot for finding me!
Magnetar is almost production ready. I am working out the last kinks and minor issues. Also still plan to improve the docs.
I myself already use it in my own production apps, because when I do find a bug I can immediately fix it here myself. : )
about costs
Currently using magnetar has these price benefits:

it's easy to keep your local data cached through the session, so every document is only read once in a session from firestore
in the future I plan to add a "localStorage" plugin that will cache documents for you, so you can even decide to not do new reads if the last cache is only x hours/days old. This will enable even more cost reductions but this will depend on when you decide to execute read commands.

just remember, calling fetch or stream will always pass the request to firestore SDK and thus you will be charged. So the idea is you try to call fetch or stream as little as possible.
I also think however, firestore is so cheap that these things generally don't matter too much, unless you are already making a lot of money and have a lot of users.
about magnetar vs vuex
so I built vuex-easy-firestore before, but I got to a point where I don't like Vuex any more.
Magnetar uses code similar to Vuex so it's a replacement for Vuex. You don't need Vuex because magnetar, just like Vuex enables Vue reactivity properly on your cached data.
Personally, the reason I don't like Vuex is:

too cumbersome, too much setup you need
no auto completion in your code editor because of weird "calling actions via string" system
no type safety
not typescript compatible unless you use 3rd party plugins/wrappers on top of Vuex

Magnetar is super easy, written in typescript, and way better auto completion for any action you can use.
Magnetar does not have the concept of "getters" so you'll need to only use computed properties of your Vue components.
I'm still thinking about what I wanna do about this. We can talk about it if you want, I think it might be better to just do it in your Vue components.
Also, magnetar is already compatible with Vue 2 and Vue 3 via separate plugins, so no worries there either.
I'd say give it a try and definitely let me know what you think! I plan to do some more marketing to get more users soon.

Nice to read your reply!!!
So with this new reactivity, it works even better with Blitzar? i didn´t tried easy firsetore with blitzar yet... but im thinking in give a try in magnetar/blitzar (hey there´s a bunch of gh projects called magnetar lol)
I´ve got a obscure feeling about the fs cache, because they explain in the docs
https://firebase.google.com/docs/firestore/manage-data/enable-offline
in a way that leads to understand that it would not be priced, however your conversation with van puff is strange when dealing with repetition or queries... while in another s.o. conversation they say that isn´t... sorry insisting about this confusion!

I just want to add that this cache topic makes me more confused when i think about consistency, how exactly u know later that something has changed? :S this is very trippy

I think the answer to this is just "you don't know"
as long as you only read from cache, there's no way to know if it's been updated on the server or not
if you wanna know that you gotta pay a read, that's basically the tradeoff : P


Copy-paste issue with native edit-context

Enable the setting editor.experimentalEditContextEnabled which enabled the native edit context adoption
Copy some code which is more than 3 lines long
Paste the code.
The code that is pasted does not correspond to the code that is copied 🐛

https://github.com/user-attachments/assets/d0b23d04-7dff-4ee2-8658-62c9f33d11da

After some investigation, I have noticed the following curious points. In the following, please note that to fix the long-press-E chromium issue, we essentially always write the screen reader content.

When screen reader is toggled off:

When we read the copied text from the the electron clipboard in order to paste, it is incorrect
When we remove the logic that sets the document selection for the screen reader content, the pasted text is correct

When screen reader is toggled on:
Text that is read from electron clipboard is always correct

In fact interestingly when we revert the changes we have made for the long-press E issue, then this copy-paste issue no longer occurs! Since the long-press E issue is not important, and copy pasting is much more important, I believe that we should revert that fix.
From this I believe this could be an electron/chromium bug.
cc @hediet @deepak1556

I have made the following PR to revert the long press E fix : https://github.com/microsoft/vscode/pull/228494.
This fixed copy-pasting too.


src/delete_function.py

Description
Added logging to all db instance (not cluster) lambdas
Added logging to slack and email notification lambdas

Relevant Issues : #9
Relevant PRs : None
Type of change :

[ ] New feature
[ ] Bug fix for existing feature
[x ] Code quality improvement
[ ] Addition or Improvement of tests
[ ] Addition or Improvement of documentation

@zuliatowoade add appropriate description in the PR title and also fix the conflicts

@zuliatowoade Are we having any plans on addressing the comments here . The PR has been open for sometime and we would want to get some closure on this.

@stationeros Apologies on the delay. I will have this completed this weekend and send it over for review.

@zuliatowoade the comments seem to be marked resolved but i do not see the changes reflecting in the code. any ETA on when these will be correctly addressed? also, do fix the branch conflicts.

@namitad Apologies, I was waiting on your reply for one of my comments on your review before committing my local changes.  I see that you have replied and I have made the necessary changes.


overlay property is missing

I'm not able to set this kind of overlay by this plugin. please guide me.

This function was removed temporarily. Sorry :(


Big delay between when market is created and sign to approve orders box appears

About a 1 minute delay (no idea what is going on during this time)

@bthaile -- Could this be related to the fact that currently due to caching on Kovan the responses to txn are slower than necessary?

I looked at this a bit. Took ~10-15 sec for me on Kovan. This is due to the delayed block updates form the provider. On mainnet this won't be such an issue since if the caching is the same cadence we'll get a new block about the same time as the tx confirmation.


feat(console): add make:middleware command

This PR check a TODO on #759
It add the make:middleware command which have different available types :

http
console
event-bus
command-bus

Please tell me if I forgot one ?
Also, could you review the Stubs that I provide, not sure if they fit properly to the common use cases.
I started from the docs examples.

Hey @brendt There still some issue with tests as we discussed in Discord, so I think we must wait this to be updated on main before review this one

@brendt Ready to review 🎉


[Proposal] extend TimePickerEntryMode with dialOnly, inputOnly

Use case
I found out that, material timePicker only  has two enums - TimePickerEntryMode {dial, input} in comparision to datePicker that has four of them - DatePickerEntryMode { calendar, input, calendarOnly,inputOnly}. In keyboardless apps, dialOnly is essential.
Proposal
Extend TimePickerEntryMode with dialOnly and inputOnly enums so that both pickers could have the same behavior.

Hi @hikachi, Thanks for filing the issue. Labeling this issue as  proposal to add inputOnly and dialOnly enums to TimePickerEntryMode

minimal code sample
import 'package:flutter/material.dart';
import 'package:test_app/app.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: MyHomePage());
  }
}

import 'package:flutter/material.dart';

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  Future<void> _incrementCounter() async {
    TimeOfDay? picked = await showTimePicker(
      context: context,
      initialTime: TimeOfDay.now(),
      initialEntryMode: TimePickerEntryMode.dial,
      builder: (BuildContext context, Widget? child) {
        return MediaQuery(
          data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true),
          child: child!,
        );
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Material(
      child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              child: const Text("Button 1"),
              onPressed: _incrementCounter,
            ),
          ],
        ),
      ),
    );
  }
}

This is a reasonable proposal. If someone wants to take a stab this, we would certainly welcome a PR. You can look at #76343 for an example of how we added a similar feature to Date Picker.

Hi!
Is this problem not solved yet?
please tell me..

@mqkotoo  unfortunately no, But pull requests are welcome :)


Enhancement: Set the sensor class to MONETARY

Is your feature request related to a problem? Please describe.
Currently, the sensors are 'simple' floating point values. This has the effect of:

Preventing Hass from understanding it's a monetary thing, meaning it can't be autodiscovered by other entities looking for this kind of sensor
Not displaying with a currency symbol in dashboards
Displaying with 15 decimal places

Describe the solution you'd like
It'd be grand if the integration created the sensor entities as SensorDeviceClass.MONETARY. This would fix all of the above issues.
Describe alternatives you've considered

Manually setting the display precision (solves 3, not 1/2)
Creating a template sensor to mutate the values created by the integration (solves all problems, tedious, miserable and manual to execute)

Additional context
The ha_hildebrand_glow_idh_mqtt integration has some prior art for this:
https://github.com/megakid/ha_hildebrand_glow_ihd_mqtt/blob/main/custom_components/hildebrand_glow_ihd_mqtt/sensor.py#L153-L161
This integration:
Rendering of the other integration I mentioned:

Thanks for the great idea. It's done  in newest release: https://github.com/martinarva/dynamic_energy_cost/releases/tag/v0.3.0

Updated, data all migrated over nicely. One issue: currency detection seems to have given up:

I haven't looked into how you've implemented the new sensor class (and it's been a hot minute since I last played around with hass addons), but I wonder: Is it possible to directly pull the currency from the 'source' cost/unit sensor? It may be that you're already doing that, but if not, it would probably resolve any potential 'weird' locale issues (eg. system currency = $, energy billed in £)

I think I know what went. I'll check it in the evening.

Star, thank you! No rush: fortunately this isn't mission critical info, and at least it's not actually doing a currency conversion :D

Actually it should take the unit of measurement from the price_sensor
    def get_currency(self):
        """Extract the currency from the unit of measurement of the price sensor."""
        price_entity = self.hass.states.get(self._price_sensor_id)
        if price_entity and price_entity.attributes.get('unit_of_measurement'):
            currency = price_entity.attributes['unit_of_measurement'].split('/')[0].strip()
            _LOGGER.debug(f"Extracted currency '{currency}' from unit of measurement '{price_entity.attributes['unit_of_measurement']}'.")
            return currency
        else:
            _LOGGER.warning(f"Unit of measurement not available or invalid for sensor {self._price_sensor_id}, defaulting to 'EUR'.")
        return 'EUR'  # Default to EUR if not found

Please turn debug logs on and see if it gets the currency

Eeenteresting.
So, I just enabled debug logs, reloaded the integration and the currency has updated:
core-1  | 2024-05-09 11:43:45.682 DEBUG (MainThread) [custom_components.dynamic_energy_cost.energy_based_sensors] Extracted currency 'GBP' from unit of measurement 'GBP/kWh'.

Unsure why it didn't work properly the first time around. I wonder if your integration started up before esphome, so the sensor currency hadn't properly been initialised? It'd make sense, as it would likely have defaulted to EUR in that case.
To your edit: yeah, using a kWh sensor (esphome energy monitor component on a sonoff POW iirc)

I wonder if your integration started up before mqtt / my energy supplier integration, so the sensor currency hadn't properly been initialised? It'd make sense, as it would likely have defaulted to EUR in that case.

yes, this could be the case


Backfill MAJOR.MINOR Rustup channel manifests with a script this time

This is a replacement for #949
Now that https://github.com/rust-lang/rust/pull/76107 has been merged,
new releases will also write their manifests to channel-rust-1.x.toml as
well as channel-rust-1.x.y.toml to enable rustup install 1.48 to get
the latest patch release in a minor release series.
This commit adds an idempotent script to copy manifests and their
signatures for the last patch release in every minor release series to
the corresponding minor manifest files so that past minor versions will
work with the rustup functionality too.
This script should only need to be run once, but should be safe to run
more than once.
It starts at 1.8 because we don't have manifests for 1.0-1.7, and it ends
with 1.47 because 1.48 will be the first stable release to write out the
1.x channel manifest.
r? @pietroalbini <3

Ran the script locally! Thanks!

Actually, ugh, the manifest were uploaded, but rustup doesn't like installing them:
pietro@january: ~/tmp$ rustup toolchain install 1.47
error: invalid toolchain name: '1.47'. Toolchain numbers tend to have three parts, e.g. 1.47.0

I think @kinnison had indicated as such initially? It seems like that'll need a rustup release.
cc @XAMPPRocky as well since I think this might need to get dropped from relnotes for now in that case, I sort of doubt we'll have a rustup release in the next 3ish weeks

I don't know off the top of my head if anyone has even filed an issue for supporting these channel files, but while I am hoping to get a release out soon I cannot guarantee to be done in 3 weeks, so it's probably best if we hold off announcing this for now.

o.O I totally missed the traffic here... thank you @pietroalbini for merging this and running it!
The issue for supporting these channel files is https://github.com/rust-lang/rustup/issues/794 -- please don't announce until that is fixed and a new version of rustup is released! I was PURPOSEFULLY not doing the rustup part yet, so that we can have at least one release where the new channel files are being written by the release process (which will be 1.48). We can even wait for a point release to happen if we want to be really conservative about releasing this functionality.


Add line of crash to new summary

The new summary uses the line of the test function itself, but the line containing the crash would be more useful often (to jump directly to it).
I think this could still get parsed from crashrepr, no?
I think both line numbers could be displayed in the summary similar to https://github.com/fschulze/pytest-pdb/pull/3/files#diff-30e02d59448c958f16700f2683820a2cR28.

What is crashrepr? Google has almost nothing about this.

Sorry, I've meant reprcrash.
https://github.com/pytest-dev/pytest/blob/db24a3b0fb6803c67718852958de4008dcf69319/_pytest/terminal.py#L448-L455
Used in pytest-sugar here: https://github.com/Frozenball/pytest-sugar/blob/4cf631063ee154b1c7c8bafc52514bf393fb9c68/pytest_sugar.py#L533

I have personally noticed that location of the actual crash is often meaningless (e.g. inside some third party library when invalid argument is passed)

IIRC it should be from the actual test always?!
Otherwise it would be possible to get to it somehow probably.
See https://github.com/fschulze/pytest-pdb/pull/3.

@Frozenball
Assuming that the crash line is from the test, do you agree that it would be more useful?
The use case is quickly going to the failed assertion etc in the test, which is currently not possible, even if you have setup your editor to handle test IDs (test_foo.py::test_func), because pytest-sugar also does not use those in the summary.
I'd be happy to look into this, but would like to know first if it would be considered.

To be clear, currently it looks like this:
 tests/test_foo.py ✓✓✓✓✓✓✓✓

――――― test_foo_bar ――――――
tests/test_foo.py:985: in test_foo_bar
    assert m.call_count == 1
E   assert 2 == 1
E    +  …
------ Captured stderr setup ------
…

 tests/test_foo.py ⨯✓✓✓s✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓

――――――― test_foo_baz ―――――
tests/test_foo.py:1064: in test_foo_baz
    …
E   Exception: something_bad

 tests/test_foo.py ⨯✓✓✓✓                                                                                100% ██████████
======== short test summary info =======
FAIL tests/test_foo.py::test_foo_bar
FAIL tests/test_foo.py::test_foo_baz

Results (7.96s):
      32 passed
       2 failed
         - tests/test_foo.py:969 test_foo_bar
         - tests/test_foo.py:998 test_foo_baz
       1 skipped

Since I am using -ra I get the test IDs in the short test summary info, which allows to quickly go to the test itself already (although it requires magic in your editor).
I think -ra would not be necessary at all, and pytest-sugar could display the results as:
Results (7.96s):
      32 passed
       2 failed
         - tests/test_foo.py:985 test_foo::test_foo_bar
         - tests/test_foo.py:1064 test_foo::test_foo_baz
       1 skipped

I.e. it would use the actual line, and also display the full test ID.

Sounds good.
On Wed, Aug 29, 2018, 17:59 Daniel Hahler<EMAIL_ADDRESS>wrote:

@Frozenball https://github.com/Frozenball
Assuming that the crash line is from the test, do you agree that it would
be more useful?
The use case is quickly going to the failed assertion etc in the test,
which is currently not possible, even if you have setup your editor to
handle test IDs (test_foo.py::test_func), because pytest-sugar also does
not use those in the summary.
I'd be happy to look into this, but would like to know first if it would
be considered.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Frozenball/pytest-sugar/issues/125#issuecomment-416984901,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADQMjI5C7284KfLObRLfjz4ocJ4_vsVks5uVqxigaJpZM4OOiPs
.

Yes, that's what I would like to achieve/see also.

btw: I can highly recomment https://github.com/fschulze/pytest-pdb, which adds a gt command that allows to go the test from within pdb and more.


Post metadata doesn't leave space between author's name and "sections"

@danth I can't tell if its just your website or coricamu doing that. The highlighting on mine makes it hard to see.

I think this is caused by the CSS on my website and not Coricamu itself.


[bug]: unloads model checkpoint after each item then reloads it

Is there an existing issue for this problem?

[X] I have searched the existing issues

Operating system
Linux
GPU vendor
Nvidia (CUDA)
GPU model
3079
GPU VRAM
8GB
Version number
v4.2.2post1
Browser
chrome
Python dependencies
No response
What happened
im successfully using a SDXL model checkpoint. it generates the image. but then immediately unloads the model from gpu.? why? how can i stop this? even if the next 5 images in the queue require the same model it unloads it after one generation and then i have to wait 2 min for it to load again.
What you expected to happen
i would expect it to keep the model loaded for a while or until i switch models. especially if the queue has open items for this model
How to reproduce the problem
No response
Additional context
No response
Discord username
No response

Please share your invokeai.yaml config

im using docker
# Copyright (c) 2023 Eugene Brodsky https://github.com/ebr

version: '3.8'

x-invokeai: &invokeai
    image: "local/invokeai:latest"
    build:
      context: ..
      dockerfile: docker/Dockerfile

    # Create a .env file in the same directory as this docker-compose.yml file
    # and populate it with environment variables. See .env.sample
    env_file:
      - .env

    # variables without a default will automatically inherit from the host environment
    environment:
      # if set, CONTAINER_INVOKEAI_ROOT will override the Invoke runtime directory location *inside* the container
      - INVOKEAI_ROOT=${CONTAINER_INVOKEAI_ROOT:-/invokeai}
      - HF_HOME
    ports:
      - "${INVOKEAI_PORT:-9090}:${INVOKEAI_PORT:-9090}"
    volumes:
      - type: bind
        source: ${HOST_INVOKEAI_ROOT:-${INVOKEAI_ROOT:-~/invokeai}}
        target: ${CONTAINER_INVOKEAI_ROOT:-/invokeai}
        bind:
          create_host_path: true
      - ${HF_HOME:-~/.cache/huggingface}:${HF_HOME:-/invokeai/.cache/huggingface}
    tty: true
    stdin_open: true

services:
  invokeai-nvidia:
    <<: *invokeai
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

  invokeai-cpu:
    <<: *invokeai
    profiles:
      - cpu

  invokeai-rocm:
    <<: *invokeai
    devices:
      - /dev/kfd:/dev/kfd
      - /dev/dri:/dev/dri
    profiles:
      - rocm

.env
INVOKEAI_ROOT=~/invokeai
INVOKEAI_PORT=9090
GPU_DRIVER=nvidia #| rocm

Sorry for the late reply. Ok, thanks for the config info.
2 minutes is an extremely long time to load a model. I feel like there is more to this story, like maybe the model is being stored on network-attached storage.
I'd suggest to bump the RAM cache to something that can hold the whole model. Say, 16 GB if you have 32GB memory.
INVOKEAI_RAM=16.0

There's a lazy_offload setting that defers unloading model from VRAM until VRAM is needed. However, this is enabled by default, so I don't think that's the issue.

now it unloads the model for 1 second and reloads it in 1 second. (why? who knows?)
but its blazing fast. i guess we can call this solved/closed
thanks!


TypeError:undefined is not object(evaluating 'React.PropTypes.func')

My dependencies:
"dependencies": {
"@react-native-community/viewpager": "^2.0.1",
"prop-types": "^15.7.2",
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-gesture-handler": "^1.5.0",
"react-native-paper": "^3.1.1",
"react-native-swiper": "^1.5.14",
"react-native-tab-navigator": "^0.3.4",
"react-native-vector-icons": "^6.6.0",
"react-native-viewpager": "^0.2.13",
"react-navigation": "^4.0.10",
"react-navigation-material-bottom-tabs": "^2.1.5",
"react-navigation-tabs": "^2.5.6"
},
Integrated use framework prompt error, error content:
TypeError:undefined is not object(evaluating 'React.PropTypes.func')

D:\RN_Project\node_modules\react-native-viewpager\DefaultViewPageIndicator.js:51:30
I found in DefaultViewPageIndicator.js :
var DefaultViewPageIndicator = React.createClass({
propTypes: {
goToPage: React.PropTypes.func,
activePage: React.PropTypes.number,
pageCount: React.PropTypes.number
},
Is this a problem? How to solve.

Are you sure, that you did not make a mistake ? I think this is another lib, because our project does not contain DefaultViewPageIndicator
I close this due above reason.


Invalid JSON primitive error when running Invoke-Scuba -ProductNames exo

🐛 Summary
When you run the command Invoke-SCuBA -ProductNames exo, the script returns the error, "Invalid JSON primitive error."
To reproduce
Steps to reproduce the behavior:

Use PowerShell version 5
Run the command Invoke-SCuBA -ProductNames exo

Expected behavior
The module should have completed successfully and opened the HTML report.
Any helpful log output or screenshots

The following files are in the report directory after the script exits.

It appears that the aad report is being written to ./ScubaGear-0.2.0/baselinename instead of ./ScubaGear-0.2.0/PowerShell/baselinename.

The problem appears to be with data found in ProviderSettingsExport.json. In my example, the problem is with the "conditional_access_policies". That line of code does not validate as proper JSON. Below is the relevant content:
"conditional_access_policies": ,
	"authorization_policies": {
		"AllowEmailVerifiedUsersToJoinOrganization": true,
		"AllowInvitesFrom": "adminsAndGuestInviters",
		"AllowUserConsentForRiskyApps": null,
		"AllowedToSignUpEmailBasedSubscriptions": true,
		"AllowedToUseSspr": true,
		"BlockMsolPowerShell": false,
		"DefaultUserRoleOverrides": null,
		"DefaultUserRolePermissions": {
			"AllowedToCreateApps": true,
			"AllowedToCreateSecurityGroups": true,
			"AllowedToReadBitlockerKeysForOwnedDevice": true,
			"AllowedToReadOtherUsers": true
		},
		"DeletedDateTime": null,
		"Description": "Used to manage authorization related settings across the company.",
		"DisplayName": "Authorization Policy",
		"EnabledPreviewFeatures": [

		],
		"GuestUserRoleId": "2af84b1e-32c8-42b7-82bc-daa82404023b",
		"Id": "authorizationPolicy",
		"PermissionGrantPolicyIdsAssignedToDefaultUserRole": [
			"ManagePermissionGrantsForSelf.microsoft-user-default-legacy"
		],
		"AdditionalProperties": {

		}
	},
	"admin_consent_policies": {
		"Id": null,
		"IsEnabled": false,
		"NotifyReviewers": false,
		"RemindersEnabled": false,
		"RequestDurationInDays": 0,
		"Reviewers": [

		],
		"Version": 0,
		"AdditionalProperties": {
<EMAIL_ADDRESS>"https://graph.microsoft.com/beta/$metadata#policies/adminConsentRequestPolicy/$entity"
		}
	},

I submitted a fix in https://github.com/cisagov/ScubaGear/pull/136.

Thanks for bringing this to our attention and for your PR. Could you confirm which version of the code you're using? This seems very similar to a previous issue (#19) which was fixed by https://github.com/cisagov/ScubaGear/pull/100. The fix has been merged into main, though it hasn't made it to the next release yet.

Thank you, @adhilto. Yes, you are correct. This appears to be a duplicate of issue #19. I used release 0.2.0 instead of pulling the newest version. Thank you for reviewing this.


Fix for python3

Notebook: How to Do Things with Words, or Statistical Natural Language Processing in Python
https://github.com/norvig/pytudes/issues/34

We should replace memo with lru_cache for Python 3, and fix the map icalls.


Run constrained for exclusion with jpeg

https://github.com/conda-forge/conda-forge.github.io/issues/673
Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin please rerender

I believe that this one is probably the first one to be merged in the move jpeg->libjpeg-tubo. right?

Yes.  The jpeg maintainers already merged theirs. I have a standing PR to backfill the missing constraint too.

The list of all PRs is at the bottom of the cross referenced thread.

Some PRs are waiting down the line. Let's merge this one.


Added a line break between assertions and operation in from(Page s…

Added a line break in AppPages (#7032)

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @DamnClin , Kindly let me know if any other changes needs to be done for this issue.

Thanks and congrats for your 1st contribution !

@pascalgrimaud  Thanks a lot. Looking forward to many more contributions.


Update USAGE.md

Corrected some spelling errors.
Describe your changes
Please explain the purpose and scope of your contribution.
Related GitHub issues and pull requests

Ref: #

Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[ ] Don't forget to link PR to issue if you are solving one.

Step 0.3: The geopackage to connect to is called "TempAqua.gpkg" not "TempAqua_Qfield.gpkg", please correct this
Step 0.4: Can you specify whether a new file name should be created here and if this new file/project should go into the SAME qgis folder or a new empty folder? It's clear from the video but not from the text.


Hugo server gets "confused"

(or maybe I get confused)
I am setting up a multilingual site and specifying config files when I run hugo server, but, if I do not cd to the repository, hugo server gets confused even specifying --config. My version:
Hugo Static Site Generator v0.14-DEV BuildDate: 2015-05-20T07:50:17+09:00
Given a structure like:
me@mine:~/repo/esolia
⇒  tree -L 2
...
├── config_en.toml
├── config_ja.toml
├── content
│   ├── en
│   └── ja
├── layouts
│   ├── en
│   ├── index.html
│   ├── ja
│   └── partials
└── static
  ...

... where I have en and ja language folders in content and layouts, when I am in ~ and not in the repo, and I run functions in my .zshrc:
function hugoserveresoliaen {
    hugo server --buildDrafts --watch --verbose --editor="atom" --source="/Users/rcogley/repo/esolia" --config="config_en.toml" --port=1377
}

function hugoserveresoliaja {
    hugo server --buildDrafts --watch --verbose --editor="atom" --source="/Users/rcogley/repo/esolia" --config="config_ja.toml" --port=1399
}

... specifying the source folder and configs, hugo server starts ok and appears to work, but, the content gets mixed up and confused. Variables specified in the configs do not work. It seems like whichever started first "wins" and there is no separation of data.
Turns out I have to cd into the repo folder and then run the commands. It works fine then. So I added the cd commands to my functions and it's fine:
function hugoserveresoliaen {
    cd /Users/rcogley/repo/esolia
    hugo server --buildDrafts --watch --verbose --editor="atom" --source="/Users/rcogley/repo/esolia" --config="config_en.toml" --port=1377
}

function hugoserveresoliaja {
    cd /Users/rcogley/repo/esolia
    hugo server --buildDrafts --watch --verbose --editor="atom" --source="/Users/rcogley/repo/esolia" --config="config_ja.toml" --port=1399
}

However, is this the expected behavior? If you specify a source folder, wouldn't hugo server naturally find the configs in there?
Or, do I need to specify the full path of the config file in each --config param?
Please advise.

To long a post to read now, will read later, but have a look at this and see if it may be of relevance:
https://github.com/spf13/viper/issues/69

Thanks @bep. I guess it's also reasonable to require people to specify the path of the config file. However, I think hugo server should return an error if it cannot find the config as specified (with no path).
The thing is, why does it "kind of" work. The sites load ok even when running hugo server from ~, but, things get mixed up and there is no separation.

Looking at the source, here is what happend:

if you set config file using --config, this is the config file that is used
Else: If you do not set --config it is read relative to --source

In your case, you have no path in --config, hence it tries the current folder.

Thanks @bep. Yeah, that's what I suspected, but, why does hugo server load the site at all then? Somehow it is figuring out that one of those config files below ~ where I ran it, in ~/repo/esolia is the "right" one and loading it. I tried this after nuking public too. In my opinion hugo server should look at the path specified, and return an error like "can't find a Hugo config file at specified path".

If you run with those params outside of the project, you should get a ERROR: 2015/05/25 Unable to locate Config file. ... error. The site still starts with all the settings to their defaults.
Running the same from the project dir will pick up the config file, because now the relative path is correct.

I guess 1) should exit before the server is started.

A workaround for your case should be:
--config="/Users/rcogley/repo/esolia/config_en.toml"

Yes, agreed, specifying the path is the key. But I wonder why hugo server being run from ~ would pick those up from a subfolder.

hugo server now exits with exit -1 if no config file found, ant that should solve the main issue here.


Potentially incorrect IResolvers type

In types.ts
export interface IResolvers {
    [key: string]: (() => any) | IResolverObject | GraphQLScalarType;
}
export declare type IResolverObject = {
    [key: string]: GraphQLFieldResolver<any, any> | IResolverOptions;
};

Is this correct? As I understand it, IResolverOptions should not be part of IResolverObject, and should be as follows:
export interface IResolvers {
    [key: string]: (() => any) | IResolverObject | IResolverOptions | GraphQLScalarType;
}
export declare type IResolverObject = {
    [key: string]: GraphQLFieldResolver<any, any>;
}

The following does not compile for me for example:
import { GraphQLServer } from "graphql-yoga";
import { IResolverOptions } from "graphql-yoga/dist/types";

// ok
const MyInterface: IResolverOptions = {
    __resolveType: (obj, c, e) => "whatever",
};

// not ok
export const server = new GraphQLServer({
    resolvers: { MyInterface },
});

[ts] Argument of type '{ resolvers: { MyInterface: IResolverOptions; }; }' is not assignable to parameter of type 'Props<any, any, any>'.
       Types of property 'resolvers' are incompatible.
         Type '{ MyInterface: IResolverOptions; }' is not assignable to type 'IResolvers | undefined'.
           Type '{ MyInterface: IResolverOptions; }' is not assignable to type 'IResolvers'.
             Property 'MyInterface' is incompatible with index signature.
               Type 'IResolverOptions' is not assignable to type '(() => any) | IResolverObject | GraphQLScalarType'.
                 Type 'IResolverOptions' is not assignable to type 'GraphQLScalarType'.
                   Property 'name' is missing in type 'IResolverOptions'.

The following does compile, but only because it thinks its a GraphQLFieldResolver
import { GraphQLServer } from "graphql-yoga";

export const server = new GraphQLServer({
    resolvers: {
        MyInterface: {
            __resolveType: (obj, c, e) => "whatever",
        },
    },
});

If I try to use IResolverObject as below, the  code will compile but generate an error at runtime:

Error: MyInterface.MyInterface defined in resolvers, but not in schema

Which is true, I would only have MyInterface defined, not MyInterface.MyInterface.
import { GraphQLServer } from "graphql-yoga";
import { IResolverObject } from "graphql-yoga/dist/types";

// not representative of schema
const MyInterface: IResolverObject = {
    MyInterface: {
        __resolveType: (obj, c, e) => "whatever",
    },
};

export const server = new GraphQLServer({
    resolvers: { MyInterface },
});

I'd submit a PR to fix but I am unsure of what the correct implementation is
EDIT: As these types seem to be mimicking graphql-tools I checked their types and see the same setup, so I submitted a PR there and will see what they think https://github.com/apollographql/graphql-tools/pull/896

Hey @Slessi
I got a similar issue when I use forwardTo from prisma-binding:
[ts]
Argument of type '{ typeDefs: string; resolvers: { Query: { stories: (parent: any, args: any, context: any, info: G...' is not assignable to parameter of type 'Props<any, any, any>'.
  Types of property 'resolvers' are incompatible.
    Type '{ Query: { stories: (parent: any, args: any, context: any, info: GraphQLResolveInfo) => any; }; M...' is not assignable to type 'IResolvers'.
      Property 'Query' is incompatible with index signature.
        Type '{ stories: (parent: any, args: any, context: any, info: GraphQLResolveInfo) => any; }' is not assignable to type 'GraphQLScalarType | (() => any) | IResolverObject'.
          Type '{ stories: (parent: any, args: any, context: any, info: GraphQLResolveInfo) => any; }' is not assignable to type 'IResolverObject'.
            Property 'stories' is incompatible with index signature.
              Type '(parent: any, args: any, context: any, info: GraphQLResolveInfo) => any' is not assignable to type 'GraphQLFieldResolver<any, any, { [argName: string]: any; }> | IResolverOptions'.
                Value of type '(parent: any, args: any, context: any, info: GraphQLResolveInfo) => any' has no properties in common with type 'IResolverOptions'. Did you mean to call it?

I also try to override type definition as you indicate, but I got another one:


Autorest dependency causes build to fail

skydive(master)$ make
fatal: Couldn't JIT the PCRE2 pattern '//go:generate', got '-48'

fatal: Couldn't JIT the PCRE2 pattern '//go:generate', got '-48'

fatal: Couldn't JIT the PCRE2 pattern '//go:generate', got '-48'

go mod download
go<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>requires
<EMAIL_ADDRESS>invalid pseudo-version: version before v0.1.0 would have negative patch number
make: *** [Makefile:154: moddownload] Error 1

Looks like we arent the first to be bitten by this. Anyone else seeing the problem? I'm on Arch, so golang is go version go1.13.5 linux/amd64.
The PCRE failures are odd - i threw pax in softmode and still seeing that, but i doubt its related given what MSFT said in their github issue

Hi, thanks for reporting this issue. I just submitted a fix:
https://github.com/skydive-project/skydive/pull/2124/commits/c5c30ceb888fa9dd2d6a2825c1fff6f4b872074b

Thank you, adding diff to my PKGBUILD and testing

Confirm that it works.
What's weird is that the PKGBUILD process pulls from master, but this commit was not showing up yet, i had to explicitly add it via #commit=c5c30ceb888fa9dd2d6a2825c1fff6f4b872074b notation in the source section. Might just be lag on GH side.

The commit is part of a PR that is not merge yet.
For the /tmp use I think that is a Go thing, I do not see specific thing that we do in the build process. Did you try to set the TMPDIR env variable ?

The fix has been merged. part of master now.


Move to gem-drivers logic

Create PiPiper::Driver (skeleton for gemed drivers & shell for specs)
Remove bcm2835.rb to be found later in bcm2835 & sysfs gems
remove libbcm2835.so to specific gem
move pin_values.rb to drivers or objects that needs them
move pin_error to PiPiper module
move & update Platform features to PiPiper module
spec some PiPiper features (need still some work)
update Pin, Pwm, Spi, I2C to work with gemed driver logic
Pin: move #pull! to initialize not an instance method anymore (to be discussed)
also moved validation to driver level (nothing in PiPiper::Driver)
I'll test and push the to first drivers the weekend.
see you

can you rebase your branch from dev? I branched off that one and it seems like your changes are more than what you did for this PR :smile:

I look at it later in the day.
I'll push too my on going work on pi_piper-sysfs and pi-piper-bcm2835
El Matou
On Mon, Mar 7, 2016 at 6:32 AM, Zshawn Syed<EMAIL_ADDRESS>wrote:

can you rebase your branch from dev? I branched off that one and it seems
like your changes are more than what you did for this PR [image: :smile:]
—
Reply to this email directly or view it on GitHub
https://github.com/jwhitehorn/pi_piper/pull/66#issuecomment-193110839.

I can't understand why travis fails...
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

but Gemfile.lock is versioned (even if it shouldn't...)...

I don't understand why do you want to rebase the branch. It seems to be in sync with dev & master.
at least in @jwhitehorn repos.

Ah you are right, I forgot to rebase the new gem_structure_changes branch after we merged some changes. No worries.
Can you run bundle install and then see if the Gemfile.lock changed? If it did, go ahead and commit it. That should fix those issues.

Isn't a best practice not to version gemfile.lock for gems ?
On Mar 7, 2016 7:12 PM, "Zshawn Syed"<EMAIL_ADDRESS>wrote:

Ah you are right, I forgot to rebase the new gem_structure_changes branch
after we merged some changes. No worries.
Can you run bundle install and then see if the Gemfile.lock changed? If
it did, go ahead and commit it. That should fix those issues.
—
Reply to this email directly or view it on GitHub
https://github.com/jwhitehorn/pi_piper/pull/66#issuecomment-193375587.

I think so but travis relies on the lockfile so I suppose we have to.

hooray tests are passing! :smile:

Looks good overall. There are just a couple minor issues I commented on.

@elmatou One minor comment I put in the code. And regarding the tests, I don't think its conventional to put the arguments in the it statement. It should be it '#do_something' instead of it '#do_something(x, y). Also the it should really be a describe.

I corrected the ArgumentError thing, which makes total sense.
I disagree on the describe/it argument. Anyhow driver_spec.rb only intend to fix the API.

Cool I will take a look shortly.
Please take a look at this: http://betterspecs.org/ and https://relishapp.com/rspec/rspec-core/v/3-3/docs/example-groups/basic-structure-describe-it. Convention exists to help others get on board and keeps everything more maintainable.

@elmatou :+1: Very nice work. Thank you for updating the Pin spec. It is definitely much better now.  If not, go ahead and squash everything to 1 commit and I can merge it.

sqashed !

looks good to merge


[iOS] Error when building for arm64 simulator

adxe version: latest
devices test on: N/A
developing environments

Xcode version: 12.5
cmake version: 3.20.2

Cmake is run with this command:
cmake .. -GXcode -DCMAKE_TOOLCHAIN_FILE=../cocos2d/cmake/ios.mini.cmake -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=arm64
This is the error appearing when it tries to link certain libraries:
In /app/cocos2d/thirdparty/openssl/prebuilt/ios/libcrypto.a(aes_cfb.o), building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

If I use this cmake command:
cmake .. -GXcode -DCMAKE_TOOLCHAIN_FILE=../cocos2d/cmake/ios.mini.cmake -DCMAKE_OSX_ARCHITECTURES=arm64
and I try to build for a arm64 simulator, then I get this error:
Building for iOS Simulator, but linking in .tbd built for iOS, file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/usr/lib/libbz2.tbd' for architecture arm64

Is there anything I should be doing differently?

Currently, the iphone simulator arm64 target doesn't support yet,, should use x86_64

No worries

Since the x86_64 version of the simulator is supported and working great on the Apple M1 hardware, should we close this issue?

Can be close if we don't plan support arm simulator, and if x86_64 simulator works well on Apple M1 hardware, arm simulator support is pointless

That is the case, so all good, I'll just close this.


feat: dynamic height extensions for widgets

Description
Only for experiment
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Manually

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=283b37f


Importing a components from windwill UI prevents the entire component from being rendered

I assume since this built on top of Windmill React UI, components from the library should readily work. But this doesn't seem to be the case. Anytime a component from windmill UI is imported, the entire component doesn't get rendered.

This realised this is tied specifically to certain components like Alert

It would be great if you could fill the template for Bug issues, like version used, error shown, code, etc.


Smart-Table width

I am using Light theme v3 of angular pro.
When using the smart table with more than 10 columns  the _style:{width: '40%'} are not working.
I tried 4 columns and width works.
<c-smart-table #smartTable="cSmartTable"
  activePage
  cleaner
  clickableRows
  [columnSorter]="true"
  [columns]="columns"
  header
  [itemsPerPageSelect]="true"
  [itemsPerPage]="10"
  [items]="tblaccount"
  pagination
  selectable
  [tableFilter]="true"
  [tableFilterLabel]="searchLabel"
  [tableFilterPlaceholder]="searchText"
  [tableHeadProps]="{ color:'warning' }"
  [tableProps]="{ hover: true, striped: true, responsive: true }"
>
</c-smart-table>

Bug reports must include:

Operating system and version (Windows 11)
Browser and version (Microsoft Edge)

@32x0lf
What about, sth like:
_style: { minWidth: '40vmin', width: '40vw' },

@xidedix
Thanks it works.w


kernel: Include objtool and resolve_btf in kernel-dev.tar

These artifacts are required when building OOT modules.

Seems like the arm64 and riscv builds are not working.
What OOT modules are you building to include in EVE-OS? There at least used to be some OOT code. Maybe @rene knows what we still have.

https://www.intel.com/content/www/us/en/download/19081/intel-quickassist-technology-intel-qat-driver-for-linux-for-intel-server-boards-and-systems-based-on-intel-62x-chipset.html

Am trying to test Intel QAT on EVE OS:
Requires SR-IOV (separate problem) and the same driver on the Host (EVE) and in the VM (VF Driver).
https://www.intel.com/content/www/us/en/download/19081/intel-quickassist-technology-intel-qat-driver-for-linux-for-intel-server-boards-and-systems-based-on-intel-62x-chipset.html

Also I think all the OOT modules are built in the pkg/kernel package which includes the full kernel, so we aren't trying to extract the kernel-dev.tar package and trying to build an OOT module using that...

@DolceTriade do you plan to continue working on this PR?

Unfortunately we ended up not needing to build OOT kernel modules, so probably not unless there is a desire within eve to support this.


chore: Release 0.24.0

:robot: I have created a release beep boop
root: 0.24.0
0.24.0 (2023-08-31)
⚠ BREAKING CHANGES

acvm: Remove the Backend trait (#514)
acir: Remove unused Directive opcodes (#510)
acir: Add predicate to MemoryOp (#503)
acvm: Remove unused arguments from Backend trait (#511)
Assertion messages embedded in the circuit (#484)

Features

acir: Add predicate to MemoryOp (#503) (ca9eebe)
Assertion messages embedded in the circuit (#484) (06b97c5)

Miscellaneous Chores

acir: Remove unused Directive opcodes (#510) (cfd8cbf)
acvm: Remove the Backend trait (#514) (681535d)
acvm: Remove unused arguments from Backend trait (#511) (ae65355)

acir: 0.24.0
0.24.0 (2023-08-31)
⚠ BREAKING CHANGES

acir: Remove unused Directive opcodes (#510)
acir: Add predicate to MemoryOp (#503)
Assertion messages embedded in the circuit (#484)

Features

acir: Add predicate to MemoryOp (#503) (ca9eebe)
Assertion messages embedded in the circuit (#484) (06b97c5)

Miscellaneous Chores

acir: Remove unused Directive opcodes (#510) (cfd8cbf)

acir_field: 0.24.0
0.24.0 (2023-08-31)
Miscellaneous Chores

acir_field: Synchronize acvm versions

acvm: 0.24.0
0.24.0 (2023-08-31)
⚠ BREAKING CHANGES

acvm: Remove the Backend trait (#514)
acir: Remove unused Directive opcodes (#510)
acir: Add predicate to MemoryOp (#503)
acvm: Remove unused arguments from Backend trait (#511)
Assertion messages embedded in the circuit (#484)

Features

acir: Add predicate to MemoryOp (#503) (ca9eebe)
Assertion messages embedded in the circuit (#484) (06b97c5)

Miscellaneous Chores

acir: Remove unused Directive opcodes (#510) (cfd8cbf)
acvm: Remove the Backend trait (#514) (681535d)
acvm: Remove unused arguments from Backend trait (#511) (ae65355)

Dependencies

The following workspace dependencies were updated

dependencies

brillig_vm bumped from 0.23.0 to 0.24.0

acvm_blackbox_solver: 0.24.0
0.24.0 (2023-08-31)
Miscellaneous Chores

acvm_blackbox_solver: Synchronize acvm versions

acvm_js: 0.24.0
0.24.0 (2023-08-31)
⚠ BREAKING CHANGES

acir: Remove unused Directive opcodes (#510)
acir: Add predicate to MemoryOp (#503)
Assertion messages embedded in the circuit (#484)

Features

acir: Add predicate to MemoryOp (#503) (ca9eebe)
Assertion messages embedded in the circuit (#484) (06b97c5)

Miscellaneous Chores

acir: Remove unused Directive opcodes (#510) (cfd8cbf)

Dependencies

The following workspace dependencies were updated

dependencies

acvm bumped from 0.23.0 to 0.24.0

acvm_stdlib: 0.24.0
0.24.0 (2023-08-31)
Miscellaneous Chores

acvm_stdlib: Synchronize acvm versions

brillig: 0.24.0
0.24.0 (2023-08-31)
Miscellaneous Chores

brillig: Synchronize acvm versions

brillig_vm: 0.24.0
0.24.0 (2023-08-31)
Miscellaneous Chores

brillig_vm: Synchronize acvm versions

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/root-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acir-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acir_field-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm_js-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/brillig-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/brillig_vm-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm_stdlib-v0.24.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm_blackbox_solver-v0.24.0 :sunflower:


microk8s reset does not completely reset the cluster

Summary

When doing microk8s reset, validatingwebhookconfigurations.admissionregistration.k8s.io are not deleted. This can lead to weird errors, as mentioned also here. In my case, the problem was with the ingress-nginx-controller.
What Should Happen Instead?

microk8s reset should delete all previously resources, effectively providing a fresh cluster.
Reproduction Steps

Setup microk8s cluster.
Install ingress-nginx-controller as described here.
Run microk8s reset
Run microk8s.kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io

There should be still an ingress-nginx-admission webhook.
Introspection Report

I don't think it's needed.
Can you suggest a fix?

The problem is that here,  from the non-namespaced API resources, only crds, priority classes, storage classes and namespaces are deleted. I'm not exactly sure which of the non-namepsaced API should be cleaned up, but probably there are more than just validating webhooks.
Are you interested in contributing with a fix?

Probably, if I was informed what resources should be actually deleted.

Hi @LoniasGR, the script that performs the reset is https://github.com/canonical/microk8s/blob/master/scripts/wrappers/reset.py . Indeed it may not be cleaning up everything. Often users prefer to snap remove and re-install as this might be faster if you run a lot of workloads.

Thank you for the information. I created an MR that should probably solve the issue, since removing and re-installing is not a viable option for us.


Host api docs and unit tests

@anssiko mentioned that

I suggest you link the docs and unit tests (both LGTM) from README.md. They’d be hosted at webmachinelearning.github.io when this PR lands as follows:

https://webmachinelearning.github.io/webnn-polyfill/docs/
https://webmachinelearning.github.io/webnn-polyfill/test/

Polyfill and docs are deployed.