Maintainer-Guidelines: give maintainers time to review enhancements.

Let's slow down a little on enhancement PRs to give other maintainers time to give their feedback.
This is mostly self-directed criticism after discussion with @sjackman and some other @homebrew/plc members.
@Homebrew/maintainers please provide your thoughts and feedback here. I only want to merge this if we have majority agreement on it.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?
[x] Have you successfully run brew man locally and committed any changes?

Agreed that we need more time to review things: the pace is quite high, and stuff is moving fast.
Another way to handle this is to say that in general you would need an approval instead of having a time limit. 24 hours might also be too short in my opinion.

I would also add to the list any "refactoring" PRs. I think they need to wait some time until they are reviewed by some more people, cause they sometimes break things and create needless frustration.

Agreed that we need more time to review things: the pace is quite high, and stuff is moving fast.
Another way to handle this is to say that in general you would need an approval instead of having a time limit. 24 hours might also be too short in my opinion.

We tried approvals in the past and I don't think they are a great fit for several reasons:

I don't think we need (yet, at least) a process where you need a random maintainer who may have no context to ✅ your PRs to merge if CI is green
24h in the work week seems like a happy middle ground between "providing time for people to raise any objections" and "not slowing down folks like @MikeMcQuaid and @reitermarkus who do large refactorings and wish to self-merge their PRs without approval"

If it helps: the 24h is broadly based off the principle in earlier GitHub days to allow a geographically distributed team to be able to do the above. We now have more required ✅ for compliance reasons

I would also add to the list any "refactoring" PRs. I think they need to wait some time until they are reviewed by some more people, cause they sometimes break things and create needless frustration.

@dawidd6 I would consider "refactoring" to be an "enhancement" here but I'll add them specifically 👍🏻

We could make it approval or 24h, whichever comes first.

We could make it approval or 24h, whichever comes first.

@SMillerDev I would specifically like to have maintainers be able to provide feedback on PRs that may be approved by other maintainers before they are merged. In my case I want (and try) to read all Homebrew/brew PRs so I would like PRs submitted in my evenings/weekends to give me 24h to be able to take a look. It sounds like there's some desire on the Homebrew/core side for something similar.

I'm +100 to giving other maintainers time to review. I wouldn't limit this to 24 hours though but instead to one, two or three approvals (depending on the repo) from other maintainer(s) or to three business days. In this case, something like "three business days or N approvals" seems like a reasonable requirement.
I second what @iMichka says here:

Another way to handle this is to say that in general you would need an approval instead of having a time limit. 24 hours might also be too short in my opinion.

and what @dawidd6 says here:

I would also add to the list any "refactoring" PRs. I think they need to wait some time until they are reviewed by some more people, cause they sometimes break things and create needless frustration.

I don't think the following justification applies to Homebrew, @MikeMcQuaid:

the 24h is broadly based off the principle in earlier GitHub days to allow a geographically distributed team to be able to do the above.

because GitHub employees are paid to do that (this is their job) and we are not.
With regard to:

I don't think we need (yet, at least) a process where you need a random maintainer who may have no context to ✅ your PRs to merge if CI is green

This can be circumvented by providing instructions on how to test and by explaining the expected change in the behavior so that the PR can be tested even by a maintainer without a context. The goal of doing that is to make sure that the changes don't affect the work of that other maintainer.
Regarding:

24h in the work week seems like a happy middle ground between "providing time for people to raise any objections" and "not slowing down folks like @MikeMcQuaid and @reitermarkus who do large refactorings and wish to self-merge their PRs without approval"

These folks could help each other by reviewing each other's work... In that case they wouldn't have to wait 24 hours (if N required approvals = 1).
Finally, we need to set what an "approval" should look like. In case of Homebrew (because so many people use it on a daily basis), I think the reviewer should explain how exactly they tested the PR. Empty approvals should not be counted towards the approvals count.

I think the reviewer should explain how exactly they tested the PR. Empty approvals should not be counted towards the approvals count.

I like the idea of logging the review steps I take, and writing better approval comments.
Let’s remember that habit-forming is super hard though, and takes time and patience.
Therefore we should be picky when adding new hard requirements IMHO.

I'm a bit worried that adding more and more explicit rules (so many days, so many approvals) is creating a bureaucracy in which nothing can ever advance, or require extraordinary effort.
I'm not a very frequent contributor to homebrew/brew, but on the homebrew-core side things we are definitely lacking maintainer time: it's common that PRs become stale halfway through a discussion, because nobody had time to help, could review, could suggest a way forward, etc.

I wouldn't limit this to 24 hours though but instead to one, two or three approvals (depending on the repo) from other maintainer(s) or to three business days. In this case, something like "three business days or N approvals" seems like a reasonable requirement.

@maxim-belkin Three business days is much harder to keep track of than one. Again, I would like to avoid "N approvals" because you can get any number of approvals but still be missing maintainers who have important context.

because GitHub employees are paid to do that (this is their job) and we are not.

My argument is allowing people a reasonable amount of time to provide feedback if they wish to be sufficiently engaged on a given issue/PR/repo. I consider one working day to be that

I'm a bit worried that adding more and more explicit rules (so many days, so many approvals) is creating a bureaucracy in which nothing can ever advance, or require extraordinary effort.

@fxcoudert I agree.
Accordingly: I won't be adjusting this proposal to be approval-based because I don't agree that approach is necessary unless reviews are individual solicited. For enhancements/refactorings I just want to provide some time for people to review that's longer than how long it takes CI to run and accounts for the fact we have a wide timezone distribution between maintainers.
My take is in homebrew-core most PRs look more like "version bumps" or "fixes" than enhancements. Perhaps that's not the case? If so, I'm happy to see this adjusted accordingly.

I don't think this is needed for core, we have so little actual enhancements that most are reviewed extensively before merging.

While I don't share your fear of irrelevant reviews because I think the motivation is different, I think a timer is fine too. I would just like to see a github action that helps us there in that case.

I think a timer is fine too. I would just like to see a github action that helps us there in that case.

an automated timer would be clever, and it begs the question of which timezone is used in the "5pm on Friday" / "5pm on Monday" examples

I don't think this is needed for core, we have so little actual enhancements that most are reviewed extensively before merging.

@SMillerDev Fair point. Do you think it's worth either:

excluding core
making clear from the description that core enhancements are so rare that they'll easily meet the criteria here

an automated timer would be clever, and it begs the question of which timezone is used in the "5pm on Friday" / "5pm on Monday" examples

My thinking with the "24 hours" is in the situation where I, as a maintainer, wish my PR to be merged as soon as possible with or without review. 24 hours gives me a minimum amount of time I leave the PR so I can solicit input from other maintainers who may wish to request changes on the PR before it is merged. I can merge it whenever I want but I should wait 24h to give those maintainers time (given timezones, sleeping patterns) to do so.

Also: we do have releases in brew, so this delays the time where stuff is shipped to all our users, leaving time for a post-merge review.
So 24h is somewhat fine, unless we need to do an emergency release in-between (but I doubt this happens that often).
I would definitively remove core from this recommendation.

I think approvals are essential (especially for open-source projects) to make sure the changes are tested in scenarios different from those used by the submitter. Of course, if a submitter uses all features of Homebrew/brew, maintains their own tap and Homebrew/core and/or migrates/deprecates/deletes formulae (and their features) on a regular basis -- then sure, 24 hours is enough.
Also, somewhat tangentially related: I feel that at least sometimes Homebrew/brew needs to request approvals from Homebrew/core maintainers to make sure changes to Homebrew/brew don't disturb their workflows that are not captured by the test-bot. As an alternative, we could devise some requirements for PR to allow self-merging, e.g.: "To merge your own PR, please provide one|two|three scenarios in which you tested the changes so that other maintainer can later confirm your observations. Preferably, scenarios would make use of Homebrew/brew and/or Homebrew/homebrew-core".
Finally, regarding "merging as quickly as possible": I'm not sure if this is a good goal. Homebrew is mature (and popular) enough for people (users & developers) to expect that it'll just work / continue to work. So, while I understand that even 24-hour time limit is already some self-restriction, I think that it should be closer to 48 hours.

I think approvals are essential (especially for open-source projects) to make sure the changes are tested in scenarios different from those used by the submitter.

I think we have a different definition of "essential" considering this project has run for over 10 years for millions of users without most PRs having approvals 😉

"To merge your own PR, please provide one|two|three scenarios in which you tested the changes so that other maintainer can later confirm your observations. Preferably, scenarios would make use of Homebrew/brew and/or Homebrew/homebrew-core".

I think this goes without saying, honestly.

Finally, regarding "merging as quickly as possible": I'm not sure if this is a good goal. Homebrew is mature (and popular) enough for people (users & developers) to expect that it'll just work / continue to work. So, while I understand that even 24-hour time limit is already some self-restriction, I think that it should be closer to 48 hours.

24h is fine because:

Also: we do have releases in brew, so this delays the time where stuff is shipped to all our users, leaving time for a post-merge review.
So 24h is somewhat fine, unless we need to do an emergency release in-between (but I doubt this happens that often).

For reference, ~0.01% of users are on the master branch and affected by 24h merges. In my experience having regular merges encourages smaller pull requests and faster development. This is a desirable goal in itself; it just needs balanced against product and code quality.

I would definitively remove core from this recommendation.

@iMichka (and @SMillerDev again): Do you think it's worth either:

excluding core
making clear from the description that core enhancements are so rare that they'll easily meet the criteria here
being explicit about the other types of core PRs that are fine to self-merge

I guess I'm still thinking on core if people decide to e.g. change the MySQL datadir, start using an optional dependency by default, etc. they should have 24h to be reviewed. If that's already happening: great, we can document that and it doesn't change any behaviour. If it's not: I think we should have the same policy as Homebrew/brew for the same reasons (arguably it's more important given a brew upgrade makes often non-idempotent changes to people's installations).

I'd go for this option:

making clear from the description that core enhancements are so rare that they'll easily meet the criteria here

I'd go for this option:

@SMillerDev done in 57e8f348f

Feels like we've reached something mostly acceptable here so let's merge and feel free to offer specific wording changes as a follow-up PR.


[BUG] legacy-rolebinding-ownerref-cleaner handlers fire millions of times per hour

Rancher Server Setup

Rancher version: 2.7.5
Installation option (Docker install/Helm Chart): Helm Chart on k3s
Proxy/Cert Details: none relevant

Information about the Cluster

Kubernetes version: v1.24.12+k3s1
Cluster Type (Local/Downstream): Local

User Information

What is the role of the user logged in? None

Describe the bug
The Rancher Performance Debugging Grafana dashboard reports >1.5 million executions of the legacy-rolebinding-ownerref-cleaner handler in a few hours with 3000 RestrictedAdmin users and 3 downstream clusters.

To Reproduce
Create 3000 Restricted Admins, wait few hours, check Rancher Performance Debugging Grafana dashboard.
Creation of the users can be done with the same instructions posted for https://github.com/k3s-io/k3s/issues/8234
Result
High hundreds thousands of executions per hour.
Expected Result
No excess of executions.

Test passed! Confirmed expected behavior pre-patch and confirmed the legacy-rolebinding-ownerref-cleaner controller was removed post-patch.
Pre-patch:

Post-patch (rancher head image):


Issue following ImagePicker guide

Just want to start off by saying thanks for the work you've put into this library. I couldn't really get the ImagePicker working using the code snippet provided here: https://github.com/SwiftUIX/SwiftUIX/blob/master/Guides/Image Picker.md
struct ContentView: View {
    @State var image:Data?
    var body: some View {
        ImagePicker(data: $image, encoding: .png)
        Image(data: image!)!
            .resizable()
            .aspectRatio(contentMode: .fill)
            .frame(width:200,height:200)
            .clipped()
    }
}

It crashes on Image(data: image!)! with
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

Is it just me or is this code snippet broken for others?
I ended up following https://www.hackingwithswift.com/books/ios-swiftui/importing-an-image-into-swiftui-using-uiimagepickercontroller to learn more about how this works
import SwiftUI

// https://www.hackingwithswift.com/books/ios-swiftui/importing-an-image-into-swiftui-using-uiimagepickercontroller
struct ContentView2: View {
    @State private var image: Image?
    @State private var showingImagePicker = false
    @State private var inputImage: UIImage?

    var body: some View {
        NavigationView {
            VStack {
                if image != nil {
                    image?
                        .resizable()
                        .scaledToFit()
                } else {
                    Text("Tap to select a picture 2")
                        .foregroundColor(.black)
                        .font(.headline)
                }
            }.onTapGesture {
                self.showingImagePicker = true
            }
        }.navigationBarTitle("ImagePicker")
        .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
           ImagePicker2(image: self.$inputImage)
        }
    }

    func loadImage() {
        guard let inputImage = inputImage else { return }
        image = Image(uiImage: inputImage)
    }
}

struct ImagePicker2: UIViewControllerRepresentable {
    class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
        let parent: ImagePicker2

        init(_ parent: ImagePicker2) {
            self.parent = parent
        }

        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
            if let uiImage = info[.originalImage] as? UIImage {
                parent.image = uiImage
            }

            parent.presentationMode.wrappedValue.dismiss()
        }
    }

    @Environment(\.presentationMode) var presentationMode
    @Binding var image: UIImage?

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

    func makeUIViewController(context: UIViewControllerRepresentableContext<ImagePicker2>) -> UIImagePickerController {
        let picker = UIImagePickerController()
        picker.delegate = context.coordinator
        return picker
    }

    func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext<ImagePicker2>) {

    }
}

So then I was able to get SwiftUIX's ImagePicker working with the following code
import SwiftUI
import SwiftUIX

struct ContentView: View {
    @State private var data: Data?
    @State private var image: Image?
    @State private var showingImagePicker = false

    var body: some View {
        NavigationView {
            VStack {
                if image != nil {
                    image?
                        .resizable()
                        .scaledToFit()
                } else {
                    Text("Tap to select a picture 1")
                        .foregroundColor(.black)
                        .font(.headline)
                }
            }.onTapGesture {
                self.showingImagePicker = true
            }
        }.navigationBarTitle("ImagePicker")
        .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
            ImagePicker(data: self.$data, encoding: .png)
        }
    }

    func loadImage() {
        guard let data = data else { return }
        image = Image(data: data)
    }
}

It seems like ImagePicker should always be displayed from a sheet, because it internally calls presentationManager.dismiss(), is this accurate in its usage pattern? If so, could we update the guide's code snippet to the above or similar?

@lawmicha thanks for raising this issue. I've fixed the guide as well exposed an onCancel parameter which allows you to override the "Cancel" button's behavior (which defaults to dismissing the presentation right now).


Cannot disable baggage propagation for brave

Describe the bug
When propagation type is set to W3C, each extra bagge field is sent twice. once in "baggage" header and once on its own.
baggage: country-code1=A,country-code2=B
country-code1: A
country-code2: B

With otel, setting spring.sleuth.otel.propagation.sleuth-baggage.enabled=false ensures that only "baggage" header is sent.
Setting equivalent headers for brave has no effect:
spring.sleuth.brave.propagation.sleuth-baggage.enabled=false

Please fix so that it's possible to avoid sending duplicate baggage headers in W3C propagation with brave
spring cloud sleuth version: 3.0.0-M5

Can you describe exactly how you passed the propagation type? Did you set B3 and W3C or W3C only?

W3C only

maven pom:
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-dependencies</artifactId>
	<version>2020.0.0-M5</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

application.properties:
spring.sleuth.brave.propagation.sleuth-baggage.enabled=false
spring.sleuth.baggage.remote-fields=my-header,my-header2
spring.sleuth.baggage.correlation-fields=my-header,my-header2
spring.sleuth.baggage.correlation-enabled=true
spring.sleuth.propagation.type=W3C

code:
tracer.createBaggage("my-header").set("new-value");
tracer.createBaggage("my-header2").set("new-value2");
tracer.createBaggage("my-header3").set("new-value3");

thanks. seems to work fine. had to fiddle a bit because of package renames

Cool! You can check out this doc https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#300-m6 to see the release notes with breaking changes


refactor controller tests

Codecov Report

Merging #44 into master will increase coverage by 0.87%.
The diff coverage is 61.9%.

@@            Coverage Diff             @@
##           master      #44      +/-   ##
==========================================
+ Coverage   57.24%   58.11%   +0.87%
==========================================
  Files          15       15
  Lines         566      573       +7
==========================================
+ Hits          324      333       +9
+ Misses        223      222       -1
+ Partials       19       18       -1

Impacted Files
Coverage Δ

broadcaster.go
57.14% <ø> (-11.43%)
:arrow_down:

cache.go
90% <100%> (+25.13%)
:arrow_up:

dispatcher.go
64% <38.46%> (-3.4%)
:arrow_down:

session.go
85.71% <0%> (ø)
:arrow_up:

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 113fe53...2888ead. Read the comment docs.


[RFR] Fix disabling views

It should fix the disabling of views which wasn't working when you had fields initialized inside the view.
It also fix the test fixtures which were making tags a read only entity and trying to go to its edit page anyway.

Mergeable - @Kmaschta


filters not working?

I'm trying to use the filters param with client.all, but get an error message. I tried the example from the readme verbatim, and it also fails
[15] pry(main)> clients = Paymill::Client.all( order: [:email, :created_at_desc], count: 30, offset: 10, filters: [email<EMAIL_ADDRESS>created_at: "#{4.days.ago.to_i}-#{2.days.ago.to_i}"] )
I, [2015-10-09T12:13:49.392081 #19639]  INFO -- : [Paymill] [09/Oct/2015 12:13:49 UTC] GET /v2/clients/ 400
Paymill::APIError: filters
from /usr/lib/ruby/gems/2.2.0/gems/paymill-0.5.1/lib/paymill/request/validator.rb:27:in `validate_response_data'

Hi @gingerlime
there are 2 ruby gems.
The one is from paymill official supported (paymill_ryby)
The other is from dkd (paymill).
Pls try this request with the paymill_ruby gem.

Oh, I didn't realize I used the wrong fork. Any chance of you removing the old one? Or is this still an active fork?

I can't remove it since it has other owner.
Just change the gem in your Gemfile to
gem 'paymill_ruby', '~> 2.0', require: 'paymill'

will do, thanks!. Just wondered if you guys have any contact with the original author and ask him to "join forces" so others can avoid this confusion in future.

I agree :)
Maybe in the future they will be merged, but this is the current state right now :(


Fix wrong focus neighbor for grid-aligned 0 separation controls

Fixes https://github.com/godotengine/godot/issues/42965.
In these videos, I am inputting "ui_right" by pressing the right arrow key.
Current behavior:
https://github.com/user-attachments/assets/f31b2d18-9117-4f4f-83ed-e220c4f4ca7a
This fix:
https://github.com/user-attachments/assets/127162be-c7f5-40b9-a243-9aefba2bed7a
The current algorithm for finding focus neighbors seems to check each side of a control against each side of a potential closest neighbor, and choose the control which is closest. In cases where there is non-zero separation between controls, this works just fine. But in cases where there is zero separation between controls, and the controls are arranged in a grid, multiple potential controls are equally close (e.g, up-left, up. and left will all have a distance of 0). This introduces a bias towards the first found neighbor control (empirically, controls that are to the left and/or up from the current control).
This fix adds a tie-breaking step in the case where multiple controls are equally close. It sorts by the minimum distance between the centers of the current control and prospective closest neighbors, which works nicely for grid-aligned controls.
Since it only runs in the tied case, this shouldn't affect existing behavior in cases where there is any separation between controls. The default theme adds separation, and anyone using zero-separation grid containers is very unlikely to be dependent on incorrect existing behavior.
My C++ will need extensive changes for style and efficiency - it's been a while since I wrote any!
Edit: Okay, that's my best attempt at C++ style. I'm aware that my code is different in style than the surrounding function, but I wanted to leave in verbose names and comments in case the algorithm itself needs to be changed. I also don't know what I don't know in terms of helper functions to use.

Ah, there's another case, where checking by distance is incorrect. Video of my PR:
https://github.com/user-attachments/assets/322c94b3-b058-4fc9-8c0c-da0a84c150e3

This video shows tie-breaking the prospective neighbors by the which one is most aligned with the desired input direction. This works in the basic grid-aligned case, and it works well enough for the center button in the edge case presented. However, it does not work intuitively when moving from the large buttons to the small ones.
https://github.com/user-attachments/assets/3f3cf3e7-f513-4a6a-a6db-d47020c0d7e6
Satisfying all the intuitive behaviors of neighbor focus would require rethinking the entire selection algorithm, rather than just patching a tie-breaking step at the end.
I propose solving the narrow problem of 0 separation grid-aligned controls in this PR, using tie-breaking by the closest aligned control. This solves the obvious pain-point of a 0 separation GridContainer, as well as some other grid-aligned cases. In other cases, users can add manual neighbor overrides (as they are probably already doing). Existing behavior in non-zero separation cases will remain unchanged.

In your new test project it's not possible to select corner buttons:
https://github.com/user-attachments/assets/686ae67a-57e7-4b64-b6ba-0d31f4de410d
You can select them using Tab, but the order is odd.
With old behavior it was at least partially possible:
https://github.com/user-attachments/assets/78e4a092-cfb4-445a-ab94-d3a663d67ff9
That's a corner case though, so probably fine.

In your new test project it's not possible to select corner buttons:

My goal with this PR was to make the common case behave correctly, and make it the user's responsibility to use manual neighbors to fix literal corner cases like this. As it is, the common case is already wrong and the user's responsibility to fix with manual neighbors, so this is an improvement
If it's a hard requirement that every control on the screen must be accessible through some permutation of left, right, up, down inputs - that might be possible, but I'm not even sure if the existing system can guarantee that.
I do think that the existing algorithm + this patch is not exactly what would be designed from first principles for an intuitive default neighbor selection algorithm - that would use some weighted combination of closeness and alignment with direction. But I wanted to make a change that does not affect the existing behavior except when tie-breaking.

Thanks!


Support HTML and JSX

This extension would be really useful for the above languages. I wasn't able to figure out if this was possible with languageConfiguration as there is no documentation for it

Since there are many experimental elements at this stage, I would like to document it when the specifications are more stable.


SAKIII-4465 Focus left collector column when opening the widget

https://jira.sakaiproject.org/browse/SAKIII-4465

Added these commits to https://github.com/sakaiproject/3akai-ux/pull/1384


Implement FilterSubstrings

This PR will update filtering to include the FilterSubstrings tag.
Signed-off-by: Jeroen Simonetti<EMAIL_ADDRESS>

This is really great thank you @jsimonetti!


[Feature Request] Change OpenAI protocol default value to NOT_GIVEN

🚀 Feature
As of now OpenAI API protocol set the direct default values. From the endpt pov, it is better to set most values to be NOT_GIVEN, as per specified, then the backend would be able to supply model specific configurations if the configuration has not been passed in from the fronend.

cc @MasterJH5574 @anibohara2000 @Celve @Hzfengsy

https://github.com/mlc-ai/mlc-llm/pull/2178

let us also confirm if it is the case for JSONFFIEngine

@tqchen PR to change this in JSONFFIEngine: https://github.com/mlc-ai/mlc-llm/pull/2225

Just to followup on the case of JSONFFIEngine. The main purpose of JSONFFIEngine is that we should avoid passing in object and parsing mlc-chat-config from FFI side. so the current implemetation that relies on parsing and passing the default config from python side is not too desirable.
Instead, we should populate these values during JSONFFIEngine.reload inside the c++ implementation. This is to help the JSONFFIEngine default behavior to be useful across backends(such as iOS). can you followup with that?

@MasterJH5574 would be good to confirm the state of this issue now in JSONFFI


chore: update docs Steps, Table, Toast, withSuffix

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.866%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8617

Relevant Lines:
9545

💛  - Coveralls


Flextype Core: fix issue with entries count cache

Steps to reproduce:

Create entry "test"
Create sub entry "test/test2"
Delete entry "test"
Create entry "test"

Counter for "test" will be the same (1) because it is was not deleted for previous entry with same name.

moved to 0.9.8

This issue related to Admin Panel plugin (@flextype-plugins/admin)
Moved from current 0.9.8 release.
Set prio: low

moved to https://github.com/flextype-plugins/admin/issues/95


Fix key check for customPayload in StargateQueryHandler

There are constants for these keys in AuthenticatedUser, they just need to be made public.

There are constants for these keys in AuthenticatedUser, they just need to be made public.

/gcbrun

/gcbrun


Enrollment APi

moved enrollment method to a "GeneralAPI" in api.py

Can we make a Participant API and have /enroll be a function of that?


UserManager support Password Credentials Grant

Password Credentials Grant https://www.rfc-editor.org/rfc/rfc6749#section-4.3
Just a post
POST https://keycloak/auth/realms/demo/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=admin&password=admin&client_id=demo-web

A workaround
class ClientAuthUserManager extends UserManager {
  async signinCredential({ username, password }: { username: string; password: string }) {
    let logger = this._logger.create('signinCredential');
    let url = await this.metadataService.getTokenEndpoint();
    if (!url) {
      throw new Error(``);
    }
    let resp;
    try {
      let r = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: new URLSearchParams({
          username,
          password,
          grant_type: 'password',
          client_id: this.settings.client_id,
        }).toString(),
        mode: 'cors',
      });
      resp = await r.json();
    } catch (e) {
      logger.error(`Login failed`, e);
      throw new Error('Login failed');
    }

    let user = new User(resp);
    await this.storeUser(user);
    logger.debug('user stored');
    this._events.load(user);
    return user;
  }
}

Thanks for sharing, i would accept a MR, which adds this feature. Most of the part can be achieved with JsonService.post i guess...

@wenerme :
There is another similar issue from me (https://github.com/authts/oidc-client-ts/issues/746) and a PR (https://github.com/authts/oidc-client-ts/pull/747). Feel free to comment if it does not fit your needs and I'll do my best.

I think we should close this issue.


Added Chatwheel Sync Final

Still have to update the 12v12 Mode if this is accepted.
Working and tested in game,
Debounced + Batched Updates in realtime.

PR Fix


[qemu] q35 VFIO passthrough fails on both bridge and pcie-root-port

I have recently tried VFIO passthrough with and without SR-IOV and detected a number of problems that make it fail.
Reporting them as a single issue since they all contribute to "VFIO passthrough not working". Let me know if you prefer to split them.
The below tests were performed with the following device:
65:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
Description of the problem
Generically, trying to add a PF or VF via VFIO passthrough fails
Problem 1: pci-rescan
The pci-rescan triggered by kata-agent makes shpchp fail. Basically, the same as reported in #2460.
@devimc pointed me to the origin origin of the rescan which seems to be related to lack of ACPI hotplug support in old versions of qemu.
Question: Could we implement a mechanism to tell the agent whether a rescan is needed?
Should we keep the rescan as the default behaviour in that case?
Alternatively, could the mechanism that was implemented in to fix #2460  be extended to support not only devices with large BARs.
Failing dmesg:
[    2.826270] shpchp 0000:00:02.0: Latch close on Slot(1)
[    2.826282] shpchp 0000:00:02.0: Button pressed on Slot(1)
[    2.826290] shpchp 0000:00:02.0: Card present on Slot(1)
[    2.827662] shpchp 0000:00:02.0: PCI slot #1 - powering on due to button press
[    2.827970] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    2.834453] pci 0000:01:01.0: [8086:1572] type 00 class 0x020000
[    2.834706] pci 0000:01:01.0: reg 0x10: [mem 0x00000000-0x00ffffff 64bit pref]
[    2.834909] pci 0000:01:01.0: reg 0x1c: [mem 0x00000000-0x00007fff 64bit pref]
[    2.836799] pci 0000:01:01.0: PME# supported from D0 D3hot D3cold
[    2.846095] pci 0000:01:01.0: BAR 0: no space for [mem size 0x01000000 64bit pref]
[    2.846100] pci 0000:01:01.0: BAR 0: failed to assign [mem size 0x01000000 64bit pref]
[    2.846106] pci 0000:01:01.0: BAR 3: assigned [mem 0xfe800000-0xfe807fff 64bit pref]
[    2.920303] audit: type=1334 audit(1588753077.748:6): prog-id=8 op=LOAD
[    9.277048] shpchp 0000:00:02.0: Device 0000:01:01.0 already exists at 0000:01:01, cannot hot-add
[    9.277053] shpchp 0000:00:02.0: Cannot add device at 0000:01:01
[    9.285780] shpchp 0000:00:02.0: Latch open on Slot(1)
[    9.285800] shpchp 0000:00:02.0: Button pressed on Slot(1)
[    9.285818] shpchp 0000:00:02.0: Card not present on Slot(1)
[    9.287833] shpchp 0000:00:02.0: PCI slot #1 - powering on due to button press
[   14.397081] shpchp 0000:00:02.0: No adapter on slot(1)

And, lspci -vv reports:
01:01.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev ff) (prog-if ff)
        !!! Unknown header type 7f

FWIW: Forcing isLargeBarSpace to return true, eliminates the issue.
This problem is reproducible both with the PF or with one of its VFs
Problem 2: isPcieDevice does not account for pcie-root-port
When trying to work around problem 1, I tried to take the  pcie-pci-bridge out of the picture, so I enabled:
hotplug_vfio_on_root_bus = true
pcie_root_port = 2

and tried to add the PF:
$ ls /sys/kernel/iommu_groups/32/devices/
0000:65:00.0
$ lspci -s 0000:65:00.0
65:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
$ sudo podman run -it --device /dev/vfio/32  --runtime=/usr/local/bin/kata-runtime fedorat sh
Error: QMP command failed: Bus 'pcie.0' does not support hotplugging: OCI runtime error

Looking at the logs, the following caught my eye:
May 06 05:37:51 time="2020-05-06T05:37:51.615333266-04:00" level=info msg="Start hot-plug VFIO device" arch=amd64 command=create container=a1a265ed847721c4009b9a7c767c16466e025a0e5
bef19aaf145b8b82408b050 device-info="{\"IsPCIe\":false,\"Type\":1,\"ID\":\"vfio-4d57823e41cd64510\",\"BDF\":\"65:00.0\",\"SysfsDev\":\"/sys/bus/pci/devices/0000:65:00.0\",\"VendorID\":\"\",\"DeviceID\":\"\",\"Class\":\"0x020000\",\"Bus\":\"
\"}" hotplug-vfio-on-root-bus=true machine-type=q35 name=kata-runtime pcie-root-port=2 pid=25464 source=virtcontainers subsystem=qemu

specially the part where it says it's not a PCIe device
Looking at isPCIeDevice and at my PCI tree:
+-[0000:64]-+-00.0-[65-66]--+-00.0  Intel Corporation Ethernet Controller X710 for 10GbE SFP+
 |           |               \-00.1  Intel Corporation Ethernet Controller X710 for 10GbE SFP+
 |           +-05.0  Intel Corporation Sky Lake-E VT-d
 |           +-05.2  Intel Corporation Sky Lake-E RAS Configuration Registers
 |           +-05.4  Intel Corporation Sky Lake-E IOxAPIC Configuration Registers
 |           +-08.0  Intel Corporation Sky Lake-E Integrated Memory Controller
...
$ lspci -s 0000:64:00
64:00.0 PCI bridge: Intel Corporation Sky Lake-E PCI Express Root Port A (rev 04)

it seems it's not being detected as a PCIe device although it being connected to a pcie-root-port.
Note that even forcing the hotplug into the pci-root-device does not work. However, repeating the process manually (via QMP) does work, which makes me think the use of pci-root-device is still affected by the rescan race condition described above.
Expected result
We should de able to add both PFs and VFs to a kata container both using a bridge and a pcie-root-port
Actual result
It is not possible to add a PF or VF to a kata container neither on a bridge nor on a pcie-root-port.
Credits:
Thanks to @devimc for his help troubleshooting the issues

Confirmed that forcing  isLargeBarSpace to return true also fixes the root-port scenario, having the following log:
[    4.193056] pcieport 0000:00:05.0: pciehp: Slot(0): Attention button pressed[    4.193193] pcieport 0000:00:05.0: pciehp: Slot(0) Powering on due to button press
[    4.193418] pcieport 0000:00:05.0: pciehp: Slot(0): Card present[    4.193533] pcieport 0000:00:05.0: pciehp: Slot(0): Link Up
[    4.318660] pci 0000:02:00.0: [8086:1572] type 00 class 0x020000
[    4.319333] pci 0000:02:00.0: reg 0x10: [mem 0x00000000-0x00ffffff 64bit pref]
[    4.319776] pci 0000:02:00.0: reg 0x1c: [mem 0x00000000-0x00007fff 64bit pref]
[    4.320288] pci 0000:02:00.0: Max Payload Size set to 128 (was 256, max 2048)
[    4.321631] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[    4.323035] pci 0000:02:00.0: BAR 0: no space for [mem size 0x01000000 64bit pref]
[    4.323243] pci 0000:02:00.0: BAR 0: failed to assign [mem size 0x01000000 64bit pref]
[    4.323445] pci 0000:02:00.0: BAR 3: assigned [mem 0xfe600000-0xfe607fff 64bit pref]
[    4.323882] pcieport 0000:00:05.0: PCI bridge to [bus 02]
[    4.324047] pcieport 0000:00:05.0:   bridge window [io  0x1000-0x1fff]
[    4.328618] pcieport 0000:00:05.0:   bridge window [mem 0xfd800000-0xfd9fffff]
[    4.330752] pcieport 0000:00:05.0:   bridge window [mem 0xfe600000-0xfe7fffff 64bit pref]
[    4.334643] PCI: No. 2 try to assign unassigned res
[    4.334791] release child resource [mem 0xfe600000-0xfe607fff 64bit pref]
[    4.334956] pcieport 0000:00:05.0: resource 15 [mem 0xfe600000-0xfe7fffff 64bit pref] released
[    4.335180] pcieport 0000:00:05.0: PCI bridge to [bus 02]
[    4.340221] pcieport 0000:00:05.0: BAR 15: assigned [mem 0xec0000000-0xec17fffff 64bit pref]
[    4.340474] pci 0000:02:00.0: BAR 0: assigned [mem 0xec0000000-0xec0ffffff 64bit pref]
[    4.340877] pci 0000:02:00.0: BAR 3: assigned [mem 0xec1000000-0xec1007fff 64bit pref]
[    4.341276] pcieport 0000:00:05.0: PCI bridge to [bus 02]
[    4.341432] pcieport 0000:00:05.0:   bridge window [io  0x1000-0x1fff]
[    4.344018] pcieport 0000:00:05.0:   bridge window [mem 0xfd800000-0xfd9fffff]
[    4.345904] pcieport 0000:00:05.0:   bridge window [mem 0xec0000000-0xec17fffff 64bit pref]

So, I tried to reproduce the race condition generically, running  while true; do echo 1 > /sys/bus/pci/rescan; done we can:

Reproduce the race on plugging and unplugging the bridge with all kind of devices, including for instance e1000
Reproduce the race on hot-unplug on the pcie-root-port.

I don't think this depends on the size of the BAR.  Even if the problem was solved in the kernel, the result would be to serialize the hotplug and the rescan (making the rescan hold the slot lock?), which does not solve the 5s delay that justified the rescan in the first place.
There is still something I'm missing because I cannot reproduce the race on hotplug on the root-port. However, forcing kata to delay the plug (forcing  isLargeBarSpace to return true) solves the issue. If I don't do that I simply see:
[    3.630707] pcieport 0000:00:05.0: pciehp: Slot(0): Attention button pressed
[    3.630872] pcieport 0000:00:05.0: pciehp: Slot(0) Powering on due to button

and nothing else...
which seems to indicate the hotplug has been interrupted. A subsequent rescan does not make the device appear though. Any idea?
Regardless of the mysterious disappearing of the device, I see the following ways forward:

kata runtime/agent ensures the rescan does not happen during a hotplug or hotunplug
a generic (i.e: not associated with size of BAR) way of disabling rescan. The price of this is: 5seconds or having the orchestration preallocate pcie-root-ports.

What do you think @devimc @amshinde?

@amorenoz  I'm running some tests to see if we can rid of pci-rescan, this way lazy attach won't be needed

Thanks @devimc. In the tests I ran disabling the rescan worked fine. Also, the pcie-root-port hotplug did not incur in the 5s delay.
Let me know if I can assist in any way.

Splitting Problem 2 described above to a new issue: #2678

The original report covers two problems.  The isPCIeDevice problem is already fixed with https://github.com/kata-containers/runtime/pull/2889.  So, update title to reflect this is just tracking the rescan problem.

I'm no longer planning to pursue this in Kata1, I'll be following up in Kata 2 instead.


CMAKE_BUILD_WITH_INSTALL_RPATH breaks the ability to run binaries during Cmake build

Commit 07c4b3896f74cf29894ab67e3c35911866469038 adds both CMAKE_BUILD_WITH_INSTALL_RPATH and CMAKE_INSTALL_RPATH_USE_LINK_PATH to the global cmake flags. For the reasons I listed in my comment on that commit, I believe it makes  sense so remove CMAKE_BUILD_WITH_INSTALL_RPATH from the global CMake flags. I am repeating this issue here for proper tracking/bookkeeping.
My comment below:
On my system, for homebrew-science/vtk, this commit breaks the build. The problem seems to be that VTK builds some binaries and then tries to run them during the build; when it runs the binaries it is unable to load the shared libraries because of the CMAKE_BUILD_WITH_INSTALL_RPATH option. What was the reasoning behind adding the CMAKE_BUILD_WITH_INSTALL_RPATH flag? I understand the need for CMAKE_INSTALL_RPATH_USE_LINK_PATH - the binaries need to be linked properly for running. But at build time, the binaries are not present in the install directory, and therefore any attempt to run them from the build directory will fail.
I removed CMAKE_BUILD_WITH_INSTALL_RPATH from the args list and build vtk again, and the build was successful. If there is no compelling reason to keep CMAKE_BUILD_WITH_INSTALL_RPATH set, would you accept a pull request disabling it again?

I'm on vacation in Thailand until the new year. Please bump this thread after then. Sorry for the delay.


Update doc blocks

This PR:

Adds doc blocks in places where an array of Operation objects is returned. This helps with type-ahead and code completion in IDEs and make the code a bit easier to understand

Closed with 401783ae68698027ed69970f06610559e91c41d6.


Add J Sargeant Reynolds

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 email.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 email.txt: Your request has an incorrect file path format, please ensure the request follows     the repository rules set out at the bottom of this page and change     it accordingly or start a new one.     If you are unable to make a pull request with the instructions provided, please send an email to<EMAIL_ADDRESS>mentioning the URL of this request in the message.

@drb1994 I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for the understanding!


Wishlist: local token identifiers?

I have some uses of paste where the same set of token pastes are repeated a few times. For example, within a macro_rules:
paste::paste! {
    struct [<$name:camel Struct>] {
      // ...
    }

    impl [<$name:camel Struct>] {
       // ...
    }

    impl SomeTrait for [<$name:camel Struct>] { ... }
}

It would be nice to have a mechanism to locally define a symbol representing the [<$name:camel Struct>] token pasting expression. I could add a new layer of macro expansion to capture that expression, but that doesn't feel like a great solution.
Is there some other existing idiom for this?
If not, then as a total straw-man suggestion for syntax, maybe something like:
paste::paste! {
    paste::define!(structname, [<$name:camel Struct>]);

    struct $structname {
    ...

Hey @jsgf! I'd love this as well, I find myself repeating the same thing a lot.

I think I would prefer not to support this in this crate. But anybody else should feel free to experiment with a more fully featured crate that can do this kind of thing.


Documentation

I have just started writing documentation. make html is creating pages.

@martindurant I have made changes according to the above comments and also added docs for Style and Projection. Please have a look.

I have made changes according to review and started API doc. I will also shift the information about widgets available in a style and projection(such as height, width, basemap..) in the API docs,  thus making the main docs short and clear.

Yes. I think that's the right way to go about it.

Note that you should have a top-level readthedocs.yml file like https://github.com/intake/dfviz/blob/master/readthedocs.yml

For the sake of keeping iterating, I will merge this now, and try to get RTD working with it.


How to use the projects page and folder?

In your .md or .html file in _posts folder, ensure that there are project: true in the header.
Example:
---
layout: post
title:  "Moon Jekyll Theme"
date:   2016-04-06
excerpt: "Minimal, one column Jekyll theme for your blog."
project: true
tag:
- jekyll
- moon
- blog
- about
- theme
comments: true
---

See: https://raw.githubusercontent.com/TaylanTatli/Moon/master/_posts/2016-03-21-moon-theme.md


[BEAM-7513] Bigquery rowcount

[BEAM-7513] Adding rowcount estimation for bigquery tables. This change creates a class to represent beam rowcount estimation. It has to pass the pipeline options in SQL transform path to BeamCalciteTable. Therefore, currently the pipeline options are passed to BeamCalciteTable in two different ways in SQLTransform path we get it as PipelineOption object. In JDBC path we get it as a Map<String, String> object.
A Jira Issue is created to unify both paths so that they pass the PipelineOptions itself. https://issues.apache.org/jira/projects/BEAM/issues/BEAM-7590
R: @akedin
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

 This time all seems good


Remove WestUS2 from LA WS to AA mapping

Removing incorrect entry from LA WS to AA mapping table

@stasku : Thanks for your contribution! The author, @georgewallace, has been notified to review your proposed change.

#sign-off


Tabs in CALCULATIONS

In this section, you should probably put somewhere that many of these examples use fields that are specifically tab-separated, as - unless I'm very confused - fields can be separated by other things. :-)
E. g.
perl6 -ne 'say [+] .split("\t")'
could just as easily be
perl6 -ne 'say [+] .split(",")'
for a CSV file rather than a TSV file.

Just noticed that one of the examples does, in fact, split on comma, and specifically says so. Probably better, IMO, to make a general statement that the separator can be whatever it needs to be and take each example as being able to use a different separator.


⚠ Bofrost.lu has degraded performance

In 5822241, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2036 ms

Resolved: Bofrost.lu performance has improved in c13edb5 after 26 minutes.


modify plugin documentation to cover more common cases than neon

Neon is a more esoteric use case than Amazon RDS/SQS, Postgres, and Stripe/Twilio
Our plugin documentation should cover common use cases so the reader only has to wrestle with one new concept and can map it to their world a lot easier

I believe this is closed by #248 . If not, feel free to re-open with more details


Updating instructions for Mac OS

Hi @moozzyk, I'm your friendly neighborhood Microsoft Open Technologies, Inc. Pull Request Bot (You can call me MSOTBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Pawel Kadluczka). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla2.msopentech.com.

TTYL, MSOTBOT;


Improve installation steps

It seems no one edits the composer.json anymore these days. So thanks :)


gnutls: enable latest version on Darwin

Motivation for this change
https://github.com/NixOS/nixpkgs/commit/d6454e6a1593f12e17d982a1ad30c97ca7cf130a was held back because https://github.com/NixOS/nixpkgs/issues/24693, which was implemented in https://github.com/NixOS/nixpkgs/pull/27598 cc: @vcunat
Fixes https://github.com/NixOS/nixpkgs/issues/58481
Things done

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

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@GrahamcOfBorg build gnutls

Superseded by https://github.com/NixOS/nixpkgs/pull/58611


(virtualbox) Uninstall no longer fails when there are no extensions installed

Description
Fixes #1353
Motivation and Context
Package's uninstallation process was failing when there were no extensions installed.
How Has this Been Tested?
I tested the updated package in chocolatey test environment.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[x] All files are up to date with the latest Contributing Guidelines
[x] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

:white_check_mark: Package verification completed without issues. PR is now pending human review

Thx. This will be pushed on next update.


Setup bootloaders on Quadruna

Setup bootloaders on all the Quadruna boards. Still needs testing on the car.

AUTOMERGED????


Can you provide pretrained model for noisy data as well

Sorry for the late reply. I will be working on the update of the repo recently. And I may also provide the pretrained model on noisy data.


TypeChain includes _bytecode in generated wrappers which bloats the codebase? any work around

Should be possible to add a flag to remove this functionality.


Add ability to exclude words from profanity check

Hey @JonPurvis! This PR adds the ability to pass an array of words/phrases to exclude from the profanity check.
The idea behind this is that you might sometimes have profanity-like words in your code but that is intentional. As a really basic example purely to highlight the change, something like:
class Product
{
    public const BASE_PRICE = 10.69
}

The following test would fail because of 69:
expect('App')->toHaveNoProfanity();

But this test would pass:
expect('App')->toHaveNoProfanity(excluding: ['69']);

From my quick manual testing, this looks like it works as expected. But I apologise if I've missed anything!
If this is something you think might be useful, please give me a shout if you'd like any changes made to the PR. I'll be happy to submit a PR to update the docs too 😄

Hey @ash-jc-allen 👋
This is awesome and the use case totally makes sense so I'm definitely happy to include this!
Please would you be able to take a look at the issue Static Analysis has flagged up, also if you could add a little bit to the docs for this, that would be great!
Cheers! 🍻

Sweet! I've just fixed the issue with the static analysis and updated the docs. Hopefully, it's all okay? 🤞


Add support for column instance::attr

Similar to body:: and bind::, it would be useful if we could add an attribute to a model element (primary instance element) .

type
label
instance::enk:custom

text
t
a

produces:
<model>
      <instance>
               <t enk:custom="a"/>
     </instance>
</model>

The use case is custom extensions, just like the use case for bind:: and body::. We could also name it model:: or data:: if preferred.

This appears to already been working. I should have checked. Not sure since when. Thanks to whoever added this :)!


Regex on text streams

 Issue by suhr
Wednesday May 07, 2014 at 14:18 GMT
For earlier discussion, see https://github.com/rust-lang/rust/issues/14015
This issue was labelled with: A-libs in the Rust repository

Regex library defines methods for find/replace on strings, but what about text streams?

Looking at the original issue, I did some research (https://github.com/rust-lang/rust/issues/14015) on this a while back and I think I concluded that this was hard to do in the general case.
I would be very happy to hear about a more specific proposal in a new issue.


added resend_envelope parameter

added resend_envelope parameter for /v2/accounts/{accountId}/envelopes/{envelopeId}/recipients endpoint

Thank you for this pull request and please accept my apologies for the lack of review before now.
We've added the ability to specify query parameters to the SDK methods.


Integrated code lifecycle: Fix detection of skipped tests

Checklist
General

[x] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
[x] I strictly followed the server coding and design guidelines.
[x] I added multiple integration tests (Spring) related to the features (with a high test coverage).
[x] I added pre-authorization annotations according to the guidelines and checked the course groups for all new REST Calls (security).
[x] I documented the Java code using JavaDoc style.

Motivation and Context
Artemis currently does not detect skipped tests correctly and marks them as successful instead.
Description
Skipped test cases have a <skipped/> element inside. I added a check for this to the Parser.
Steps for Testing
Create a Programming Exercise that uses Assumptions for skipping test cases, for example a test like this:
MergeSort mergeSort = new MergeSort();
mergeSort.performSort(dates);
Assumptions.assumeTrue(datesWithCorrectOrder.equals(dates));

Check that the test passes for the solution, but is skipped for the template / student submission:

Testserver States

[!NOTE]
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked

Review Progress
Performance Review

[x] I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

[x] Code Review 1
[x] Code Review 2

Manual Tests

[x] Test 1
[ ] Test 2

Test Coverage
Test added, changes covered

Thanks for fixing this issue!


bug: Mouse-based gestures calculated incorrectly

Type: bug
Ionic Version: 1.x
Platform: desktop browser
Drag directions are not correctly determined for mouse events on desktops. When swiping/dragging with a mouse, every "direction" of the gesture is registered as "down." The issue this causes is that, probably among other things, you can't swipe an ion-item on desktop to reveal the ion-option-button(s).
I have found the source of the issue and implemented a fix: the function "getCenter" can receive two different types of objects depending on if the source of the event was touch click event. The "pageX,pageY" properties don't exist on both. I switched to "screenX,screenY" which exist in both types of "touches" objects.
With this change swiping works correctly when triggered by a mouse.
Here's the new getCenter function I implemented:
getCenter: function getCenter(touches) {
  var valuesX = [], valuesY = [];

  for(var t = 0, len = touches.length; t < len; t++) {
    valuesX.push(touches[t].screenX);
    valuesY.push(touches[t].screenY);
  }

  return {
    pageX: ((Math.min.apply(Math, valuesX) + Math.max.apply(Math, valuesX)) / 2),
      pageY: ((Math.min.apply(Math, valuesY) + Math.max.apply(Math, valuesY)) / 2)
  };
},

Ionic version 1.2.4 I should mention as well

Hello! Is this still an issue with the latest version of ionic? Thanks!

Hello all! As it seems it has been a while since there was any activity on this issue i will be closing it for now. Feel free to comment if you are still running into this issue. Thanks for using Ionic!


Bugfixes aggregated

Added a couple of fixes I needed to do to get the code running on Ubuntu 14.04, opencv 2.4.8, ffmpeg 1.2.6-7:1.2.6-1

ffmpeg no longer support the 'sameq' option, changed into '-qscale 0'
openCVs surf.detect() no longer detects point+ computes fatures; changed to surf.detectAndCompute()
also under ubuntu, the openCV package does not contain the SURF functions, added some assert to give a proper error message
python's glob() seems to return the files in random order in unix-systems. Put a sorted() around the glob call to preserve the temporal ordering of the images

Thanks for the fixes!


search bar in the header nav of the Meltano website doesn't do anything

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/538
Originally created by @dmor on 2019-03-29 21:01:46

What is the current bug behavior?
(What is happening now)
What is the expected correct behavior?
When I click into the search bar, type, and press enter I should see search results.
Alternately, if search is not enabled we should remove this feature.
Steps to reproduce
Try to perform a search on Meltano.com
Relevant logs and/or screenshots

Possible fixes
(If you can, link to the line of code that might be responsible for the problem or suggest a fix)
Further regression test
(Ensure we automatically catch similar issues in the future)

[ ] Write additional adequate test cases and submit test results
[ ] Test results should be reviewed by a person from the team

View 4 previous comments from the original issue on GitLab


Update banner to Community Survery

Description Of Changes
This updates the top notification banner to point to the Community Survery.
Motivation and Context
We need the banner updated.
Testing

This work is currently already live on docs.chocolatey.org, but pulling from the source branch in the package.json file.

Operating Systems Testing
n/a
Change Types Made

[ ] Bug fix (non-breaking change).
[x] Feature / Enhancement (non-breaking change).
[ ] Breaking change (fix or feature that could cause existing functionality to change).
[ ] Documentation changes.
[ ] PowerShell code changes.

Change Checklist

[ ] Requires a change to the documentation.
[ ] Documentation has been updated.
[ ] Tests to cover my changes, have been added.
[ ] All new and existing tests passed?
[ ] PowerShell code changes: PowerShell v2 compatibility checked?

Related Issue
n/a

@st3phhays thank you for getting this updated!


it is a bug?

server return a 500 Timeout::Error (execution expired)  when i publish a message use the method client.publish(topic, message, false, 2). but when i use client.publish(topic, message, false, 0) or client.publish(topic, message, false, 1),everything is good. why qos can't use 2?

As listed in the limitations in the README, QoS 2 is not currently supported.
Given that there is also no persistence support in the client, I am not sure that QoS 2 will help you anyway. What were you hoping to achieve by using QoS 2?

When using QoS 0, the message may not be sent, is not it?
When using QoS 1, the message may be sent repeatedly, is not it?
But what I want is that the message must be sent successfully and will not be sent repeatedly, so which level of QoS should I use？It should be QoS2, right?

Hi,
That is correct. However MQTT must operate over a reliable network protocol (see section 4.2 of the MQTT specification):

The MQTT protocol requires an underlying transport that provides an ordered, lossless, stream of bytes from the Client to Server and Server to Client.

This means that the only time that the different QoS levels come into effect are when the TCP connection disconnects, part way through a Publish. Only then should a message be re-transmitted, after re-establishing the MQTT connection. In normal circumstances this should be a rare occurrence.
Other things to consider:

ensure that you don't write the same message to the database twice
ensure the you write the same message to disk more than once (wait for a publish to complete, but don't loose the message before writing it to too)

Quite often, it is easier to use other mechanisms than QoS, because all of your other code has to implement the QoS guarantees too:

Make your code idempotent
Use some kind of identifier or key to verify if you have seen a message more than once

It all depends on your application really - but I suspect that using QoS 2 is the least of your worries.
nick.


Add LST20 Part-Of-Speech tagger model

LST20 Corpus from National Electronics and Computer Technology Center, Thailand. It can download dataset from https://aiforthai.in.th/corpus.php.
Support Model

Unigram Part-Of-Speech tagger
Perceptron Part-Of-Speech tagger

and tag map for LST20 to Universal Dependencies.
Model train by Mr.Wannaphong Phatthiyaphaibun
Model License : CC-0
Code

Model File : https://github.com/PyThaiNLP/pythainlp-corpus/releases/tag/lst20-v0.2
Train script : https://github.com/PyThaiNLP/pythainlp_notebook/blob/master/postag/train_lst20_pythainlp.ipynb
Google Colab : https://colab.research.google.com/drive/1Fpp1iCdx1mGcnAOTnU2O7QwY5IsqHHtW?usp=sharing

TODO

[x] document

Hello @wannaphong! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file pythainlp/tag/lst20.py:

Line 7:1: E302 expected 2 blank lines, found 1
Line 7:19: E231 missing whitespace after ':'
Line 12:1: W293 blank line contains whitespace
Line 23:34: W292 no newline at end of file

In the file tests/test_tag.py:

Line 68:10: E261 at least two spaces before inline comment

Coverage increased (+0.04%) to 95.058% when pulling 90436b6a37fea8c1fc60eabef5a0c0b3057f6913 on add-LST20-postag into e6e01c5598648fb558e03e8904355fff389e2ffb on dev.

I doing train new model. I will combine eval with train.

I doing train new model. I will combine eval with train.

Done

It would be nice if we have some comparisons between these taggers and also the existing ones we have in PyThaiNLP.

I refactor some of the code, move tagger-related stuffs away from the corpus data files (lst20.py and unigram.py) and put them to tagger files (perceptron.py and unigram.py)


Update README to clarify Octopus' support for this script

Reinforcing that the script is provided as is, and that Octopus support teams will not provide assistance on using it.

 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.


Added more enterprise file search and code interpreter samples.  Found that message attachment in some sample use the wrong model class causing red underline.    Updated readme

Added more enterprise file search and code interpreter samples.  Found that message attachment in some sample use the wrong model class causing red underline.    Updated readme

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-projects


support for etl file captured using pktmon?

Is there a difference in the format of the etl created using netsh trace and pktmon?  When trying to convert an etl generated using pktmon the result is an empty file. Well not completely empty, but the pcapng coverted file only has this data:
\n\r\r\n\x1c\x00\x00\x00M<+\x1a\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1c\x00\x00\x00

Hi Chad, yes, pktmon packet events are a different format and not compatible with etl2pcapng. Pktmon itself can convert its ETL packet traces to pcapng format. Run "pktmon etl2pcap help" for more info.
Maybe pktmon event detection should be added to etl2pcapng to print a helpful message to this effect.

https://github.com/microsoft/etl2pcapng/issues/48

Thanks for the clarification.
A cool feature that etl2pcapng has is that it can add the Process PID in the packet comment.
pktmon pcapng command unfortunately does not provide this functionality.

I've addressed this with #74 by printing a helpful message. Actual conversion of pktmon events is, I think, out of scope for etl2pcapng for the time being.


Adding services to an existing machine causes inconsistent results

Hey @DAlperin! Thanks a ton for creating and maintaining this provider. I'm very excited to increase usage of it. I've been having some non-starters, but after upgrading to 0.15 I got my first successful app launches.
Now, when trying to add services to these existing apps I'm running into some consistency issues. I've tried to reduce the problem as much as possible and include all available debug info. Let me know if there's anything else that would be helpful!
It's worth noting that entirely recreating the app does not cause this same issue.
terraform apply
fly_app.nginx: Refreshing state... [id=jg-nginx]
fly_machine.nginx: Refreshing state... [id=e784343a275778]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # fly_machine.nginx will be updated in-place
  ~ resource "fly_machine" "nginx" {
      ~ env      = {} -> (known after apply)
      ~ id       = "e784343a275778" -> (known after apply)
        name     = "jg-nginx"
      + services = [
          + {
              + internal_port = 80
              + ports         = [
                  + {
                      + handlers = [
                          + "http",
                        ]
                      + port     = 80
                    },
                ]
              + protocol      = "tcp"
            },
        ]
        # (6 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

fly_machine.nginx: Modifying... [id=e784343a275778]
╷
│ Error: Provider produced inconsistent result after apply
│
│ When applying changes to fly_machine.nginx, provider "provider[\"registry.terraform.io/fly-apps/fly\"]" produced an unexpected new value: .services: was
│ cty.ListVal([]cty.Value{cty.ObjectVal(map[string]cty.Value{"internal_port":cty.NumberIntVal(80),
│ "ports":cty.ListVal([]cty.Value{cty.ObjectVal(map[string]cty.Value{"handlers":cty.ListVal([]cty.Value{cty.StringVal("http")}), "port":cty.NumberIntVal(80)})}), "protocol":cty.StringVal("tcp")})}), but
│ now null.
│
│ This is a bug in the provider, which should be reported in the provider's own issue tracker.

DEBUG=1 TF_LOG=debug terraform apply

Terraform Manifest
terraform {
  required_providers {
    fly = {
      source  = "fly-apps/fly"
      version = "0.0.15"
    }
  }
}

provider "fly" {}

resource "fly_app" "nginx" {
  name = "jg-nginx"
  org  = "personal"
}

resource "fly_machine" "nginx" {
  name = "jg-nginx"

  app   = fly_app.nginx.name
  image = "nginx"

  region   = "sea"
  cpus     = 1
  memorymb = 1024
  cputype  = "shared"

  # Newly Added
  services = [
    {
      internal_port = 80
      ports = [
        {
          handlers = [
            "http",
          ]
          port = 80
        },
      ]
      protocol = "tcp"
    }
  ]
}

Oops good catch. Solved in v0.0.16

Thank you!


Adjust version formatting and add formatted version to rpc

see commits

adjusted tests

adjusted tests

adjusted tests

👀
Are you sure?

adjusted tests

👀
Are you sure?


JSON ValueError exception

Hi when I have an error in my JSON values script doesn't show anything about it just not work. I try to handle and show this error but it doesn't work. Can you help?
    if bool(int(request.form['dummyvalues'])):
        # List variables (introspection)
        env = Environment()
        vars_to_fill = meta.find_undeclared_variables(env.parse(request.form['template']))
        for v in vars_to_fill:
            values[v] = choice(dummy_values)
    else:
        try:
            values = json.loads(request.form['values'])
        except ValueError as e:
            rendered_tpl = "Value error in JSON: {0}".format(e)
            return rendered_tpl

Hello,
Indeed, the parser doesn't integrate any json validator of any kind.  This is not foreseen but I would definitely integrate any pull request going that direction.  In the meantime you'll have to rely on another solution to validate your json input.


Can't recover sprite clipping through wall

Describe the bug
My sprite started off inside a sea of wall, but I can't move outside of the walls anymore. And when I use left/right controls, sometimes it goes the opposite way

Expected behavior
I should be able to get out of the walls
(using beta)
Desktop (please complete the following information):

OS: ChromeOS
Browser Chrome86

AHH this one's actually not a regression, the issue is that the sprite is being made before the tilemap so it's only clipping once the tilemap is set (if you move the tilemap to the top or do a set position on the sprite after the tilemap is created things will work)
Should probably make it so set wall and set tilemap both run through all sprites and try to resolve overlaps, but wouldn't block release on it. (I'll see about doing that now, maybe we can sneak it in)

AHH this one's actually not a regression, the issue is that the sprite is being made before the tilemap so it's only clipping once the tilemap is set (if you move the tilemap to the top or do a set position on the sprite after the tilemap is created things will work)
Should probably make it so set wall and set tilemap both run through all sprites and try to resolve overlaps, but wouldn't block release on it. (I'll see about doing that now, maybe we can sneak it in)

ooooooooooooooooooh okay makes sense no pressure! I just thought it was related to the physics changes yesterday D: rip

ooooooooooooooooooh okay makes sense no pressure! I just thought it was related to the physics changes yesterday D: rip

I guess no

for you

I guess no

for you


Question about diffusion prior

Hi，In my project, I only train the diffusion prior network.
I use train_prior_config.example.json which is provided in here
I only change the hyperparameter "use_ema" to false. And I use MScoco dataset(karpathy split) to train . During training, the loss type is "mse loss", and the train_Ioss can go down to 0.2.
For inference, I use diffusion_prior.sample(tokenized_text, n_samples_per_batch=2, cond_scale=1.0) to generate CLIP image embedding
I think the generated CLIP image embedding should be similar with the ground-truth CLIP image embedding. I find the the cosine similarity between them are about 0.7.  Is this normal?

Hi, I have a question. How long did it take you to train the model?

About 70 minutes for one epoch，use one NVIDIA TITAN RTX

Thank you!

How do you process the dataset？I don't know why my loss value can't go down, Looks so weird

I want to train Diffusion Prior model , how to get the PriorEmbeddingDataset? Thank you.

If you mean get clip text embedding and clip image embedding for train prior，I think you can read ClipCap's code for reference. Extract CLIP features, then create your  PriorEmbeddingDataset


Upgrading to Spring Data JDBC 2.1.3 results in ConverterNotFoundException for String to Duration

I have a Spring Data repository that returns an object with a Duration field which is stored in the database as a String. In Spring Data JDBC 2.1.2 the object is created and returned successfully. After upgrading to Spring Data JDBC 2.1.3, the following exception is thrown:
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.time.Duration]
I've created a project that demonstrates the issue here: https://github.com/dmkeen/spring-boot-2.4.2-issue
Because the issue presented itself when upgrading Spring Boot, I filed an issue there first. Scott Frederick helped narrow down the problem - please see his analysis here: https://github.com/spring-projects/spring-boot/issues/25878.

I strongly suspect this is a duplicate of https://github.com/spring-projects/spring-data-commons/issues/2223
You should be able to fix this by registering some custom conversion for the conversion from String to Duration and back.

Attaching stack trace:
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.time.Duration]

	at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:322)
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:195)
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:175)
	at org.springframework.data.relational.core.conversion.BasicRelationalConverter.getPotentiallyConvertedSimpleRead(BasicRelationalConverter.java:241)
	at org.springframework.data.relational.core.conversion.BasicRelationalConverter.readValue(BasicRelationalConverter.java:164)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter.readValue(BasicJdbcConverter.java:244)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter$ReadingContext.readFrom(BasicJdbcConverter.java:488)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter$ReadingContext.readOrLoadProperty(BasicJdbcConverter.java:457)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter$ReadingContext.populateProperties(BasicJdbcConverter.java:436)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter$ReadingContext.createInstanceInternal(BasicJdbcConverter.java:568)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter$ReadingContext.mapRow(BasicJdbcConverter.java:414)
	at org.springframework.data.jdbc.core.convert.BasicJdbcConverter.mapRow(BasicJdbcConverter.java:348)
	at org.springframework.data.jdbc.core.convert.EntityRowMapper.mapRow(EntityRowMapper.java:67)

We should properly support the JSR310 converters in Spring Data JDBC

Thanks for looking into this!

You should be able to fix this by registering some custom conversion for the conversion from String to Duration and back
I was hoping I wouldn't have to! :)

This is probably already fixed by #937 for the current master
I see that this PR is included in Spring Data 2021.0.0, so I've tested with Spring Boot 2.5.0-RC1 (which includes 2012.0.0) and the issue is resolved. Thanks!

Closing this as a duplicate of #937


Fixed behavior of wordlist:keyword separator in Windows

Fixes: #227

in linux also there may be this exact same problem
like the one i am facing with directories or files that contain ":" in their names


feat: Add callback option for more control over screenshot capture

Closes #648
Extends the attachScreenshot option to allow a callback to be passed which when supplied is called before capturing a screenshot. The callback is passed the event and hint and returning true results in screenshot attachment.

Can't folks just use beforeSend to filter here? I'm not a huge fan of extending the public API this way, especially since then only electron will work this way.


Makefile: validate that each commit can at least build

it is very useful when using git bisect that at least the commit can
build.
got inspiration from: https://twitter.com/pid_eins/status/1072797993760423941
Signed-off-by: Giuseppe Scrivano<EMAIL_ADDRESS>

/approve
LGTM, thanks for the great addition @giuseppe !

LGTM, assuming happy tests.

the new tests are finally passing.  It is failing somewhere else now

the new tests are finally passing. It is failing somewhere else now

Yay!  Dang, That error doesn't seem related to any changes you made here, is that happening on master or other PRs?

bot, retest this please

bot, retest this please

bot, retest this please

rebased, let's see if it solves the CI failures

/lgtm

tests are passing!

@giuseppe running this post-merge on master broke:  https://cirrus-ci.com/task/5157597072064512
Perhaps it can be skipped in that context?  If so, just need to add:
build_each_commit_task:
    ...
    only_if: $CIRRUS_BRANCH != 'master'
    ...


Terminal cursor blinks on Windows when typing

I noticed a blinking which doesn't happen in some other terminals like Windows Terminal. This happens for all terminal.integration.gpuAcceleration values:

Might be because we respect hiding the cursor immediately or https://github.com/xtermjs/xterm.js/issues/4082?
Version: 1.72.0-insider (user setup)
Commit: c4722f1bb292284e0437eb7547808a5788fe6430
Date: 2022-09-02T05:17:36.744Z
Electron: 19.0.12
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22000
Sandboxed: Yes

doesn't happen on the xtermjs.org demo on windows for me

Cannot repro anymore


Transaction: Add “@ORM\Column()” annotation

See #56.

I'll make the same PR on master once it will be validater.


Keyboard Caret jumps to find during new/edit

Is it an actual bug?
Yes
Did you check if the bug has already been reported?
Yes
Describe the bug
When New/Edit ToDo and Press Shift+Tab
Keyboard Caret would focus on Searchbar, which is really weird
To Reproduce
Steps to reproduce the behavior:
4. See error
Do you see any error entries in sleeks developer tools?
Expected behavior
Stay on New/Edit, jump to "Cancel"
Screenshots
Desktop (please complete the following information):

OS: Windows 10 20H2
Version of sleek 1.0.5-5
Source: Github
https://github.com/ransome1/sleek/releases/tag/v1.0.5-5

@ransome1 hi, just found a bug in the newest version

@nutnutwin a modal jail for tabindexing has been introduced with https://github.com/ransome1/sleek/releases/tag/v1.0.6-2
It should work with all modals in sleek, please feel free to give it some testing.

@nutnutwin a modal jail for tabindexing has been introduced with https://github.com/ransome1/sleek/releases/tag/v1.0.6-2
It should work with all modals in sleek, please feel free to give it some testing.

Works Perfectly! Thank you!
@ransome1

@nutnutwin this enhancement actually created a glitch in the auto complete container. In 1.0.6-2 you're not able to select the filters using the tab key. Its fixed in the next release, though.

@ransome1 you fix bugs faster than I can report them.
Will try the new version
Thank you

@nutnutwin , does the later one still is present in https://github.com/ransome1/sleek/releases/tag/v1.0.6?
@9z0 I only have a laptop at hand, so no numpad. The Ctrl+Enter combination works fine here. Next month I might be able to test it with a keyboard. Is this still an issue in v1.0.6 as well?

@ransome1 the tab focus on project/priority is Fixed
Thank you.

@9z0 I only have a laptop at hand, so no numpad. The Ctrl+Enter combination works fine here. Next month I might be able to test it with a keyboard. Is this still an issue in v1.0.6 as well?

Unfortunately, yes.

@9z0, I added your finding to my backlog and am closing here, as the topic is a different one.

I noticed that Ctrl+Enter works if you wait a second between clicking Ctrl and Enter:

Click Ctrl and keep it down.
Wait a second or so.
Click Enter

Also, if you do so while the cursor is at the end of a project like +project|, it shows the popup list but with only that project.

The Ctrl+Enter issue seems to be solved with the latest 1.0.8! 👍

@9z0 thank you for your feedback!


fix: fix an issue of highlighting in code blocks

fixes #92

Coverage decreased (-0.08%) to 78.231% when pulling 3378b9c3a0db4e649184dd735b0761f991dc44f4 on steve/fix-marking-in-code-blocks into 841a82abffadeae9490a656b9eae7c9b982348bc on master.


Add support for PDP-11 RX-50 disks

According to my source [https://www.cbmstuff.com/forum/showthread.php?tid=634] the format of RX-50 is

single sided
80 tracks
10 sectors per track
96 tpi (tracks per inch)
300 rpm (revolutions per minute)
250 KHz data rate

I have a disk labeled
BL-T540E-MC
CZUFDE0 MICRO PDP-11
USER TESTS
© 1983, 1894
DIGITAL EQUIPMENT CORP.

and stamped 14131.
The image read all sectors and the content looks plausible.  strings on it says things like
$ strings rx50.img  | grep -i pdp
; This file implements the USER FRIENDLY Diagnostic for the MICRO PDP11 & 11/73

however, I don't have an emulator or other system to use the disk image with so
I can't 100% vouch for the image being complete and correct.

Excellent, thanks! Yes, please change the image_reader and image_writer filenames. Also, I think I probably want to put together a generic PDP-11 page.

Here's another source of info about RX50: http://home.claranet.nl/users/pb0aia/vax/rx50.html
should I put
                        track_length_ms: 200
                        clock_rate_khz: 250

or should I do like you have for ibm360_525 and use 167/300? The current values are wrong, in any case.

as for doc, since this is essentially a variant on "generic IBM" should I just add a bullet to disk-ibm.md instead?

Re track length: that should be 167/300, because it's referring to the rotation period and data rate in a normal 360rpm PC drive. This all needs fixing to be independent of the drive type, as it means you can't write disks in 300rpm drives if you happen to have one, but that's where we are now.
Re doc: add a bullet to disk-ibm.md. I'll update things later.
Thanks for the link!

Also, from looking at that link... isn't the RX-50 a Vax drive rather than a PDP-11 one?

I don't really know much about this era of computing; I have no recollection of why I even have these floppies.
The RX50 is listed as a PDP-11 accessory by wikipedia https://en.wikipedia.org/wiki/PDP-11#Peripherals and the label on my disks says PDP-11 and RX50K. Here's an image of one of them:

@davidgiven review suggestions implemented & pushed.

Actually, one more request: in the mkninja.sh file, down the bottom, there's a block of encodedecodetest lines. Could you add the rx50 format there? That will run a basic random-data-to-flux-and-back-to-data image to make sure a round trip conversion works. Other than that, it all looks LGTM to me.

Thanks for the prompt to add a test. I discovered that the round-trip didn't work, and resolved it by reducing the 'gap3' to match a value I found in flashfloppy. I wasn't able to find a different source for this value, the closest I came https://archive.org/details/bitsavers_sigmaInfor0FloppyCtrlManJun87_1225619/page/n17/mode/2up table didn't give a specific number of bytes in the table, just 'P'.

Thanks --- merged!

Thank you both for all the advice during this PR. Happy to see it merged, hope it helps someone in the future.


Proposal: Change current tab pane design to the default WinUI TabView (but with acrylic of course), rather than the current floating box style

There are no plans to change the design of the TabView at the moment, if you feel this change would benefit users, please fill out the issue template to help us understand how this would benefit users.


Polygon intersection operation is not symmetric

Expected behavior and actual behavior.
For these two polygons which touch at an edge, a.intersection(b) and b.intersection(a) should give the same result.

Steps to reproduce the problem.
from shapely.geometry import Polygon

b = Polygon([(-2129.8301268088653, 3808.3625460804574),
 (-13.419399941060902, 5383.564741760034),
 (2589.8327945394485, 5383.564741760034),
 (2589.8327945394485, 2421.1656459793585),
<PHONE_NUMBER>85728, -6043.318375123083),
 (-2129.8301268088653, -6043.318375123083),
 (-2129.8301268088653, 3808.3625460804574)])

p = Polygon([(11174.451451065055, 13710.473363871335),
 (-14730.97396732842, -5570.416909945428),
 (-24371.419104236804, 7382.295799251309),
 (1534.0063141566734, 26663.18607306807),
 (11174.451451065055, 13710.473363871335)])

print("b", b.area)
print("p", p.area)
print(p.intersection(b).area)
print(b.intersection(p).area)

Operating system
Mac OS X 12.2.1
Shapely version and provenance
2.0b2 and 1.8.4 both installed using pip.

Confirmed in Shapely 2.0b2 / GEOS 3.11.  This looks like an upstream bug in GEOS; raised GEOS #741 for this.


client/shared: Add client events

WebViewEvent, RmluiEvent in Entity file it's correct?

You should categorize the events like server does, instead of putting them all in a single file.

EntityHitEntity in shared, but in sdk this event comment to only client, it's good?
https://github.com/altmp/altv-js-module-v2/blob/1091f21950f9e710e941cea13fb968569eecb349/shared/js/events/entity.js#L6
https://github.com/altmp/cpp-sdk/blob/3199c7eb4c5b23e3d696df2ebd00beac951b28e5/events/CEvent.h#L96


HasInstanceNameChanged: Is there a way to get the actual name?

When you register a new service, and the name clashes with an existing service, the implementation automatically picks a new name for you. And you get the reg->HasInstanceChangedFlag set to true.
But is there a way to get the actual name the system picked for you? I can't seem to find anything.
I don't see many things. reg-IPAddress returns NULL, reg->status is just an integer, and reg->ToString() seems to trigger an exception.
I'm trying to match the semantics of the other Zeroconf implementations. Knowing what your service has been renamed to is also useful.
One frequent example is you both advertise a service and also offer a browser of all other services. In the browser, you often want to omit the service you advertised so the user doesn't connect to themselves. But if you don't know the name, you can't filter it from the list.
(And resolving the IP Address doesn't guarantee anything. Besides generating unnecessary traffic on the network to do an unnecessary resolve, there could be other processes advertising services on the same IP, so you still don't know which service belongs to the one you just launched.)
Any ideas?

I figured it out. I can use DnssdServiceInstanceName on the mService instead of trying to use the DnssdRegistrationResult.


Fix/plausible compose

Changes

Fix a bug where SECRET_KEY_BASE didn't get created properly, which led to the users to be unable to register after deploying the service

Issues

fix #3455, #1449

Hey @andrasbacsai, you wanna merge https://github.com/coollabsio/documentation-coolify/pull/33 as well :)

Thank you for the PR, but the problem originates from the docker compose parser. It will be fixed in the upcoming version (#3705), so I close this one.


Implement drawing CGPaths through CGContext

Unify the factory for each context's render target as any geometry object must be created by the same factory instance in order to be rendered there.

This change is

:clock1:

ComPtr<ID2D1RenderTarget> renderTarget = newImage->Backing()->GetRenderTarget();

For instance, this line actually causes the Render Target to leak unexpectedly. Because GetRenderTarget returns a raw *, this assignment operator is doing an implicit ComPtr construction around the raw *.
wrl\client.h has the following (can check in Visual studio sdk):
ComPtr& operator=(_In_opt_ T *other) throw()
{
    if (ptr_ != other)
    {
        ComPtr(other).Swap(*this); <-- GREAT SADNESS
    }
    return *this;
}

Which shows the construction around a raw* that does an additional AddRef. (Was already +1 from the .Detach() )

Refers to: Frameworks/CoreGraphics/CGContext.mm:1900 in 5eab616. [](commit_id = 5eab61608a771419a62db861cc1e951982a511da, deletion_comment = False)

Storing a Com Object as a raw* as a member variable is a problematic pattern. It is removing all the niceness of RAII and makes the consumer have to think at all points about the reference count and its management. For instance, this code is completely not needed if you were to store it as a ComPtr and the other code I commented on is easier to rationalize about (I was actually wrong given how this pattern is. The other code is safe but you really need to pay attention to understand that).

Refers to: Frameworks/CoreGraphics/CGBitmapImage.mm:404 in 5eab616. [](commit_id = 5eab61608a771419a62db861cc1e951982a511da, deletion_comment = False)

}

I don't know what data is but it sure seems like a RAII helper like std::unique / shared ptr would help ref count some memory and delete it for you safely when it is done. This pattern is not thread safe here and the fact that you don't just straight up delete it suggests that the ownership model is more than a simple one so knowing what thread all its uses occur on can be problematic.

Refers to: Frameworks/CoreGraphics/CGBitmapImage.mm:409 in 5eab616. [](commit_id = 5eab61608a771419a62db861cc1e951982a511da, deletion_comment = False)

And actually the non owning return raw * while it doesn't leak now, doesn't necessarily correctly describe the ownership as that * could become invalidated at any point while the caller (one of which jackets immediately and minimizes the room for explosions but not totally removes) still has one laying around.
Point being, don't use raw * unless you have a real good reason.

In reply to: 258521890 [](ancestors = 258521890)

Refers to: Frameworks/CoreGraphics/CGBitmapImage.mm:404 in 5eab616. [](commit_id = 5eab61608a771419a62db861cc1e951982a511da, deletion_comment = False)

:clock1:

:shipit:


Attached Pluginfile to Gemfile for new plugins

Minor improvements after https://github.com/fastlane/fastlane/pull/4950/

:+1:


Assert with FileRef from github

Description
Configuration files are often located in github and when one needs to assert them, he first need to download them via curl or wget. This costs a lot of typing and is error prone.
Therefore, it would be nice if the FileRef could be provided as a reference to a raw file in github.
To Reproduce (in v0.0.6)
steps:
  - name: "Retrieve raw file from github"
    try:
      - script:
          content: |
            curl https://raw.githubusercontent.com/kyverno/chainsaw/v0.0.6-alpha.4/testdata/test/custom-test.yaml -o ./local-custom-test.yaml
  - name: "Assert the downloaded version of the file"
    try:
      - assert:
          file: ./local-custom-test.yaml

Expected enhancement
steps:
  - name: "Assert from a raw github file"
    try:
      - assert:
          file: https://raw.githubusercontent.com/kyverno/chainsaw/v0.0.6-alpha.4/testdata/test/custom-test.yaml

I would like to take this

Thanks @shubham-cmyk


Best Practice - Restful Service Design Pattern - Create Project as Example

Task Description

Research on Rest API design pattern.
Determine whether operations should reuse the same model, or, each operation should have its own model.
Refactor Create Project operation as needed.

Specific Considerations

Parameters should be marked optional or mandatory. Currently all parameters are marked as optional.
ID field does not need to be filled. It is the system generated identity column.
Status field does not need to be filled. It has the default of "A" in the column definition.
Create Time field does not need to be filled. It has the default of CURRENT TIMESTAPM in the column definition.

HI,
Can someone give me an idea regarding Task Description NO. 2
Determine whether operations should reuse the same model, or, each operation should have its own model.
Not able to understand the requirement?
Thanks

As you can see, the issue has a tag of Design. It is more of a design pattern than coding. Basically, we'd like to research and follow the best practice on Restful service design.
To give you an example.

You come to the Rest API document page at: http://localhost:8080/swagger-ui.html
Under Project Controller, you find this operation POST /api/projects/add. You are certain this is the one you should use.
Now, expand that operation, you need to know what input parameters to fill in. You look at Model and Model Schema under Data Type.
Here your trouble comes: How do you fill in those input parameters?

Every field is marked as optional. Does that mean if you don't fill in any value and you can still get a project created successfully? Obvious not. But this operation doesn't enforce "mandatory" field.
id: how do you provide an id? This field sounds like auto-generated column in the database, you are not suppose to fill it. Is it ideal if the operation just hide it from you for this operation? If not, as least it should tell you that don't fill in this field.
status: should I fill in status? If the system assigned a default status, the documentation should tell me. If I have to fill in status, it should let me know what value options are.
organization: when I create a project, I only need to fill in organization id. The complete organization model listed in the data type complicates me. Can I just have an organization id field?
.....

With these questions, I'd better talk to a backend developer. ..who to talk to? no one is online...

So, this task is try to address the headache of the frontend developer. A frontend developer should be able to finish his task based on the rest service endpoint specification, without need to talk to a real backend developer.

This issue was moved to Code4SocialGood/c4sg-services#16


scalafmt updates

AppDependencies.scala does not format properly will need to format. can you please also look at the platops-pr-bot comment and update the change, thanks

@scullythornton1 Done.