Prometheus Metrics Endpoint

Summary
The development branch of echo-contrib has changes to their Prometheus metrics endpoint making it suitable for our needs.
Test Plan
A docker-compose environment has been created to demonstrate how everything should be configured. You can use the /metrics endpoint without all of that stuff, but histogram metrics are difficult to read without additional processing.
I put together a simple dashboard for testing:

Note: the block import time looks bad because it's bad, not because the metrics are wrong. It's possible this is because of the block-generator, more testing is needed.

One note and some questions.

The last chart title in the screenshot has a typo: "Byes".
What is "request size bytes" in the screenshot? The length of the url?
What is "all queries" in the screenshot?
Could you add units of measurements to each chart?
I'm concerned about storing too much data in memory. What does Prometheus store exactly? Does it delete old info?

One note and some questions.

The last chart title in the screenshot has a typo: "Byes".

Fixed

What is "request size bytes" in the screenshot? The length of the url?

The HTTP request sizes in bytes.

What is "all queries" in the screenshot?

95th percentile of the total sum of requests per 5 minutes. It's an out of the box expression for histograms in grafana:
histogram_quantile(0.95, sum(rate(indexer_request_duration_seconds_bucket[5m])) by (le))

Could you add units of measurements to each chart?

This is just for testing, not a real dashboard.

I'm concerned about storing too much data in memory. What does Prometheus store exactly? Does it delete old info?

Indexer only maintains real-time stats and counters, there is no old data for Indexer to worry about. Prometheus is a time series database that is configured to poll the new /metrics endpoint at some interval. Every 15 seconds is the default interval.
The only unusual thing I've done is to include query parameters in the path, this is to allow seeing the impact of certain query parameters (i.e. timestamp searches, rollback, etc). This means that instead of maintaining a single histogram per endpoint it's possible to have a histogram for every combination of parameters.
There is some overhead though, so I just added a --disable-metrics option in case people want to disable metrics.

LGTM


Progressbar does not run until 100% when updating encodings

To reproduce run out demo notebook until:
adata_2 = ep.ec.encode(adata_2, encodings={"one_hot_encoding": ["service_unit", "day_icu_intime"]})

Also shows up in tests (deterministically)

Only when updating the one-hot encoding

Only when updating the one-hot encoding

In fact, it showed up whenever there were either multiple (bug was that I was using only one single task object and did not update it through the loop while encoding a single column).
Should be fixed though with https://github.com/theislab/ehrapy/commit/6ed1d0f648a80728990060391bde922da3bd3a43


Advanced Uploads

Linked Issue(s)

closes #14

Description
Feature
Advanced uploads
Checklist

[x] I have read the Contributing Guide and Code of Conduct

Example attached showing the new "Uploads" sidebar option present on all workspaces. The images shown each link to a show page that only shows the image - no delete link yet. Also no masonry yet either - it's pure grid meaning lots of unused space...
"New Upload" link links to a form for uploading files independent of Entity content.


500 errors in resolving cookbook for runlist - bad argument in call to erlang in chef_depsolver_worker

Hi,
Our staging chef server is throwing these errors when running chef-client on the nodes. Restarting services on chef-server didnt help.
client.log on the node -

ERROR: Server returned error 500 for https://chef_server_ip/organizations/qubole/environments/staging/cookbook_versions, retrying 1/5 in 3s

crash.log -

=SUPERVISOR REPORT====
Supervisor: {local,pooler_chef_depsolver_member_sup}
Context:    child_terminated
Reason:     {badarg,[{erlang,binary_to_term,[<<131,104,2,100,0,2,111,107,108,0,0,0,4,104,2,109,0,0,0,8,119,101,98,115,108,97,118,101,104,3,97,0,98,2,165,221,160,97,1,104,2,109,0,0,0,12,99,104,101,102,95,104,97,110,100,108,101,114,104,3,97,1,97,1,97,8,104,2,109,0,0,0,16,113,100,115,95,115,101,110,115,117,95,99,108,105,101,110,116,104,3,97,1,97,0,97,0,104,2,109,0,0,0,4,99,114,111,110,104,3,97,1,97,6,97,1>>],[]},{chef_depsolver_worker,handle_call,3,[{file,"src/chef_depsolver_worker.erl"},{line,178}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,607}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,639}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]}
Offender:   [{pid,<0.2334.0>},{name,chef_depsolver_worker},{mfargs,{chef_depsolver_worker,start_link,undefined}},{restart_type,temporary},{shutdown,brutal_kill},{child_type,worker}]

erchef.log -

[error] Supervisor pooler_chef_depsolver_member_sup had child chef_depsolver_worker started with {chef_depsolver_worker,start_link,undefined} at <0.2275.0> exit with reason bad argument in call to erlang:binary_to_term(<<131,104,2,100,0,2,111,107,108,0,0,0,4,104,2,109,0,0,0,8,119,101,98,115,108,97,118,101,104,3,97,...>>) in chef_depsolver_worker:handle_call/3 line 178 in context child_terminated

Haven't seen this issue before, and unable to fix it now. Can anyone help?

please can you file this on https://github.com/chef/chef-server/issues, where you're much more likely to find someone who can help.

Thanks. I've file it there - https://github.com/chef/chef-server/issues/648. Closing this one.


Update dependencies

I am happy to submit a PR if you are interested.

I most certainly am!

Oh, even for this I have to sign the CLA?

Yeah, we don't try to draw some imaginary line. Every committer needs to sign the CLA.


BUG: remove midrule in latex output with header=False

This bug fix addresses issue #7124. If to_latex is called with option header=False, the output should not contain a \midrule which is used to separate the column headers from the data.

@TomAugspurger ?

pls add a whatsnew note for 0.17.1

Yeah this looks good (looked at this code in a while though). @loicseguin if you could rebase and add a release note, thanks.

Done. Let me know if there's anything else I should add.

merged via https://github.com/pydata/pandas/commit/924c419070bc6d7c4edc6779b501377a22bce58d
thanks!


Reintroduce order finalizing event

Seems TC used to fire an event just before an order is finalized, but doesn't appear to be there anymore

Fixed in core project


Adding poetry-release to poetry 1.6.1 breaks poetry.

When I add poetry-release to poetry 1.6.1 with poetry self add poetry-release (^0.3.1) this works but running any poetry command after that results in No module named 'poetry.core.semver'.
Before adding poetry-release this is the output of poetry env info
Virtualenv
Python:         3.10.9
Implementation: CPython
Path:           NA
Executable:     NA

System
Platform:   linux
OS:         posix
Python:     3.10.9
Path:       /home/jflipts/miniconda3
Executable: /home/jflipts/miniconda3/bin/python3.10

When I uninstall poetry and install poetry 1.5.1 and add poetry-release 0.3.1 everything works back as expected.

Yeah the issue is that poetry-core deprecated that code: https://github.com/python-poetry/poetry-core/releases/tag/1.7.0 , it should be using the replacement code at: poetry.core.constraints.version. I'd love to know if the maintainer of this lib has plans to update the poetry release to support the new location for the semver code, or if they would be willing to review PRs that could fix this issue.
Thanks


use of "key" as a property in px-map-tile-layer-google

This is related to px-map-tile-layer-google.
px-map-tile-layer-google accepts "key" property which is an apiKey or apiAccessToken could you rename it accordingly?
the naming makes it hard to use this component in a react component  as "key" is a special property in react.

We use key in other components in px-map and elsewhere to name properties that accept API keys. This would be a breaking change for this component and require breaking changes elsewhere. Key is not a reserved HTMLElement attribute or property in the web platform specs as far as I’m aware. We won’t be making this change.
You can still use this component in React by finding its ref in the componentWillMount or componentWillRecieveProps and setting the key property directly.

👍 . Thank you.


Add zkSync realm

Resolves #828

What has been done:

Added zkSync realm to map
Connected zkSync realm to contracts
Updated localStorage version to display new realm

Testing

[x] Clear localStorage
[x] New realm is visible on the map
[x] zkSync realm has "New realm" label
[x] All realm data is visible in the modal
[x] You are able to stake / unstake in new realm

Need to check on that
I agree
I wanted to finish it first, to merge it into new-realm-ui branch and already check it here


New team photo?

Random idea: we change that team photo to be a collage of everyone's slack photo. Only problem is that not everyone has their photo on their Slack profile. The upside would be that it's always up to date.

I wonder if it’s possible to tell from Slack’s API whether someone has updated their picture 🤔

@jordanschalm I was wondering the same thing.

We could also just forgo the team photo altogether to make room for more detailed sections on individual members (#42, maybe a section to highlight tech leads too (ie their area of expertise, experience, etc))

@bfbachmann if we need people to have profile pictures, we could just have a student photographer come in and take some for us?

Expanded the scope of this ticket in response to https://github.com/ubclaunchpad/rocket/issues/70


Plugin doesn't work for Maven < 3.5.4

Due to recent project migration to Scala, plugin no longer works for pre-3.5.4 Maven versions:
The plugin net.alchim31.maven:scala-maven-plugin:3.4.2 requires Maven version 3.5.4
This is causing obvious problems for those who need to use older Maven version, for any reason.

Issue solved by reverting back to Java. Released as 4.0.0. No functional changes in comparison to 3.0.0, however changing implementation language is a change significant enough to mark it as a new major release.


Implement linkedin authentication with Passport js

Description:
In our ongoing efforts to bolster the security and user experience of our application, we are expanding our authentication capabilities to include LinkedIn Authentication. We'll be utilizing Passport.js and JWT (JSON Web Tokens) to facilitate this seamless and secure login method. This enhancement will empower users to effortlessly access our platform using their LinkedIn accounts while ensuring the safety of their credentials through JWT token-based session management.
Tasks:

Incorporate the necessary dependencies for Passport.js and JWT in the project to facilitate LinkedIn Authentication.
Configure Passport.js to utilize the LinkedIn strategy, enabling authentication through LinkedIn accounts.
Develop a user registration endpoint, ensuring the creation of new accounts adheres to robust security measures.
Establish a LinkedIn login endpoint that validates users via their LinkedIn accounts and generates JWT tokens.
Implement a protected endpoint that mandates a valid JWT token for access, reinforcing the security of sensitive areas.
Set up middleware to authenticate incoming requests using Passport.js and the JWT strategy.
Implement a user-friendly logout feature to invalidate tokens or sessions as needed.
Create a robust password reset functionality, catering to users who require password retrieval.

Acceptance Criteria:

Users should have the capability to register and create new accounts securely.
Users should be able to access our platform using their LinkedIn accounts, receiving a JWT token for subsequent authenticated requests.
Access to the protected endpoint should be strictly limited to those with a valid JWT token.
JWT tokens must undergo meticulous validation, with expired or invalid tokens being promptly rejected.
Users should be able to log out, effectively invalidating their session or token.
Our password reset functionality should be a secure and straightforward process for users.

Additional Information:

Adhere to industry best practices for security, including robust password hashing and the secure handling of JWT tokens.
Thoroughly document the authentication API endpoints, encompassing essential input parameters and response formats.
Implement comprehensive error handling for various scenarios, such as invalid credentials or expired tokens.
Ensure the utmost care in handling users' personal information obtained from LinkedIn, strictly following privacy regulations.
Provide detailed setup and configuration instructions for LinkedIn Authentication within our application.
Offer clear instructions for testing the authentication endpoints, aiding in verifying the functionality.

Related Dependencies or References:

Passport.js: link to documentation
JWT: link to documentation
LinkedIn OAuth 2.0: link to documentation

@anjula-sack Will I able to work on an issue like this? Want JS?

Shall I work on this issue please? @anjula-sack

Shall I work on this issue please? @anjula-sack

sure go ahead

@dsmabulage Usually first you need to get assigned to an issue then you can start working on it. This is already assigned to @dilankavishka. @dilankavishka What do you think, Is it okay to assign it to @dsmabulage since he has already sent a PR?

@anjula-sack Yeah it's fine. Go ahead! by the way @dsmabulage Next time please take a look at the issue is already assigned or not. If it's not assigned, you can ask for work on that.

@dilankavishka Sorry for the inconvenience that I've created. thanks for your go ahead with this PR. @anjula-sack Sure I will check the issues assignability for the future PRs.


Divide cornflow-app into two repositories

cornflow-app repository and user interface should be divided into two repositories:

one should be a components library that can be reused in other interfaces such as cornflow-admin.
the user interface of the default cornflow-app.

This means to move the current components that have been created in cornflow-app, for example, the calendar or the gantt. This way it should be easier to uses this components on other user interfaces and not have to copy paste code and maintain it on several places.
The library / package could be handled by version number, so that if a new component is needed on the user interface, just upgrading the package version should be enough to be able to use it.

Implemented with cornflow-ui and mango-vue.


FileUtils: avoid Integer Boxing

The function withContent was defined to take a Function2 object, in which the second item was an integer. Sadly, this means that those Int values need to be boxed, so this is a source of allocations.

Merging this, thanks @diesalbla! That may explain some checksums-related slowdowns I've been seeing in the native CLI.


Avoid nondeterministic ordering of output

Most people agree that it is a Good Thing when compilers are deterministic: the exact same input bits produce the exact same output bits every time the compiler is run. Bonus points are awarded if the results are independent of the platform the compiler was compiled for and run on.
One of the easiest kinds of nondeterminism to have sneak into a compiler is for it to produce the "same" code inside functions, but sometimes emits functions or other global symbols in a different order from run to run. Right now, the Slang compiler has some of this kind of nondeterminism.
The main way (but not necessarily the only way) that a compiler ends up producing output with a different ordering across runs is by iterating over the contents of a hash-based container (in our codebase, a Dictionary or HashSet), where the keys make use of pointers. Most operating systems intentionally try to randomize the address space of processes across runs (as a security feature), so that exact pointer values are not stable across runs, and thus hash value are not stable across runs, and thus the ordering of entries is not stable across runs.
This change identifies a few cases of iterating over dictionaries or sets that could have produced output non-determinism:

The HLSLIntrinsicSet was using a Dictionary to store intrinsics that had been referenced, and would later produce a linear list of those intrinsics based on their order in the dictionary.

The WitnessTables produced by the front-end stored a Dictionary or requirements, and lowering from AST->IR was iterating over that dictionary to ensure that everythign got emitted.

The SharedSemanticsContext was tracking a HashSet of modules that were imported into scope (so that their extensions should be visible), and an iteration over that list was used when producing candidate extensions during lookup. This case is unlikely to cause any nondeterminism in final output, but could lead to nondeterministic ordering in diagnostic messages for ambiguous reference/overload cases.

The IR linker maintains a Dictionary of symbols based on their mangled names, and iterates over it in code that clones all witness tables into the linked IR whether or not they are referenced.

For most of these cases the fix is simple:

Keep both a Dictionary/HashSet and a List of the appropriate type
Whenever adding to the hash-based container also add to the list
Whenever iterating, iterate over the list

In the final case of the IR linker, the relevant code was marked with a TODO comment noting that it shouldn't actually be needed, so I simply dropped it and the change doesn't seem to break any of our tests. I've been fairly confident that code wasn't needed for a while.
This change isn't exactly elegant, and a better long term solution might be to introduce two new types, OrderedDictionary and OrderedSet, which are similar to Dictionary and HashSet except that they guarantee a deterministic order of enumeration of their contents, based on insertion order.
(Note that a SortedDictionary and/or SortedSet that use something like a binary tree to produce a "determinsitc" sorted order wouldn't actually help here, because sorting entries by pointer values wouldn't solve the underlying problem that the pointer values aren't stable across runs)
I've chosen to avoid adding new types to core in the interest of making the change as small as possible. If we all agree that new types are warranted, it should be easy to clean up these use cases.
Testing this change is difficult, because we can't produce a reliable test to rule out nondeterminism. I have done best-effort testing by hand by crafting shaders that show output nondeterminism, and then compiling them both with and without these changes.

There used to be an EnumerableDictionary that stores key value pairs on a separate linked list. We removed it early in this project but we can always add that back.

Yes, something like the EnumerableDictionary you describe could be helpful for this kind of stuff. In the simplest case we can build the ordered containers as a pair of a hashed container and a List, but a dedicated implementation like you describe can be more efficient while also supporting more operations (e.g., removal of elements).


fix typo

@googlebot I signed it!

Thanks!

I think the existing doc is correct -- get is referring to kpt pkg get (as opposed to git).  LMK if you think there is a way to make this more clear.  (maybe change get to kpt pkg get)


404 when trying to access service

Hi,
I created a service in my cluster (hello-world) with the following properties:
$ kubectl describe svc hello-world
Name:                     hello-world
Namespace:                default
Labels:                   app=hello-world
Annotations:              federation.kubernetes.io/service-ingresses={}
                          kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"hello-world"},"name":"hello-world","namespace":"default"},"spec":{"po...
Selector:                 app=hello-world
Type:                     LoadBalancer
IP:                       <IP_ADDRESS>
LoadBalancer Ingress:     <IP_ADDRESS>
Port:                     web  8080/TCP
TargetPort:               80/TCP
NodePort:                 web  30152/TCP
Endpoints:                <IP_ADDRESS>:80,<IP_ADDRESS>:80,<IP_ADDRESS>:80 + 3 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  CreatingLoadBalancer  1m    service-controller  Creating load balancer
  Normal  CreatedLoadBalancer   1m    service-controller  Created load balancer

Making a request to the cluster-IP and an endpoint directly works fine:
$ curl <IP_ADDRESS>:8080
Hello
$ curl <IP_ADDRESS>:80
Hello

But when requesting it from the LB:
$ curl <IP_ADDRESS>:8080
404 page not found

Logs seem to be fine - part of the kube-keepalived-vip:
[...]
Mon Jan  8 10:44:51 2018: Activating healthchecker for service [<IP_ADDRESS>]:tcp:80 for VS [<IP_ADDRESS>]:tcp:8080
Mon Jan  8 10:44:51 2018: Activating healthchecker for service [<IP_ADDRESS>]:tcp:80 for VS [<IP_ADDRESS>]:tcp:8080
[...]

Same goes for keepalived-cloud-provider:
I0108 10:44:47.506840       1 loadbalancer.go:111] syncing service 'hello-world' (b9058845-f1f6-11e7-8f16-fa163ea76de0)
I0108 10:44:47.509644       1 loadbalancer.go:128] found existing loadbalancer for service 'hello-world' (b9058845-f1f6-11e7-8f16-fa163ea76de0) with IP: <IP_ADDRESS>

I created a second service, "hello-world-local", which uses port 80:
NAME                TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)           AGE
hello-world-local   LoadBalancer   <IP_ADDRESS>    <IP_ADDRESS>   80:30960/TCP      4d

There, I get a "connection refused" when trying to curl to port 80 - and a 404 when connecting to 8080:
$ curl <IP_ADDRESS>
curl: (7) Failed to connect to <IP_ADDRESS> port 80: Connection refused
$ curl <IP_ADDRESS>:8080
404 page not found

Any idea on how to debug this further?
Thanks in advance

Use type=ClusterIP with externalIP or try MetalLB.

MetalLB works :+1:


[Existing API Name] : Movie API

Brief Description 🤓
User on searching the movie name ,shows all the possible movie available with name along with year of release.
Provide reference!
https://www.omdbapi.com/
Select the open source program you are contributing to
hacktoberfest-23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINES of this project.

Greetings @dhruti26🎀 ! , We are excited to have you dive into another issue with us!🚀
Your involvement in our project has been invaluable, and we're confident that your skills and insights will help us conquer this challenge😇.  Use command /gdsc to self assign the issue.  This issue represents an exciting opportunity for us to improve and enhance our project, and we are thrilled to have you on board.
We request you to follow CONTRIBUTING GUIDELINES.
Looking for your PR soon!
In case of any issues, you can contact us on Discord.❣

@dhruti26 Don't alter the title name. You can go through pinned issues to see how to create issue🚀.

Hey @dhruti26 ! I wanted to inform you that we have closed issue.Thank you for your understanding, and we look forward to your continued engagement with our repository🤗.
In case of any issues, you can contact us on Discord.
Thank you! ❣
Happy Coding! ✨
Will See you soon❣


fix(governance): disable penalty column in standby validator table

Related issues 🔗
Closes #5191
Description ℹ
Fixing this in the specific way outlined in the ticket was hard, as so many of these values are calculated by munging
together bits of data from different APIs. So I undid all those changes and just hid the 'Penalties' column from the
standby validators table.
Demo 📺

Waiting for @JonRay15 to check if he's happy with this solution..


Support for Unstructured HTTP Headers

Greetings team,
I'm currently working on a project intended for security professionals, and I've come across a requirement where we need to send HTTP requests in an unstructured format. This functionality would allow users to construct requests similar to the following example:
GET / HTTP/1.1
  Host: hello.com
Host: attacker.com
HeaderWithoutValue

as host header injection (as described in this informative resource: Host Header Injection). Additionally, it can help detect if the application is running in Debug mode or enable the identification of potential issues related to HTTP request smuggling (as explained here: HTTP Request Smuggling).
For more detailed information and context, please refer to the following GitHub issue: BugBlocker/lotus #136.

It sounds like you want the ability to send headers that are incorrectly formatted on purpose, to probe servers, is that right? Part of hyper's goals is to strictly enforce things that would be illegal.

Hello @seanmonstar,
I wanted to discuss the possibility of incorporating a feature in the Hyper project that would cater to the needs of security professionals within the DevOps lifecycle (like this one). Specifically, this feature would allow them to scan the application before deploying it.
But I understand that this may not align with Hyper's primary goals, and I respect that.
Before proceeding with forking the project, I would like to inquire whether it would be acceptable for us, as the Lotus team, to add this feature ourselves in the forked version
Your input on this matter would be greatly appreciated.
Best regards
@knassar702

Well, so, there is some precedent that hyper allows enabling options for things that the specs now say "please don't ever do this, but legacy software may exist". So, in that sense, it could be acceptable. If you wanted to put together a design document outlining how to do this, and pitch it on the hyperium/hyper repo, we could consider it. I'm sympathetic to allowing hyper be more flexible, as long as it's safe by default.

https://github.com/emo-crab/slinger
A client specifically developed for security researchers
https://github.com/emo-crab/slinger/blob/main/examples/smuggling.rs

Good job @cn-kali-team :clap:
thank you

Oh, I understand what you're looking for now. I think this PR would do it: https://github.com/hyperium/hyper/pull/3417


Improve speed for pipedgzip reader.

Hi, I have been doing some major performance nerding lately as part of my work on fastqsplitter.
I discovered that
with open('my_file.txt', 'rb') as file_handler:
     for line in file_handler:
        # do stuff per line
        pass

Is the fastest way to iterate over files in python. file_handle.readline() or next(file_handle) exhibits some overhead.
I noticed that the PipedGzipReader uses a lot of cpu time when iterating over it that way. This PR fixes that by letting __iter__ return self._file as that is already an iterator.
I did some benchmarks with this script:
#/usr/bin/env python3

import sys
import xopen

with xopen.xopen(sys.argv[1]) as file_h:
    for line in file_h:
        pass

I conducted some testing with hyperfine (installable via conda). It is quite a nice tool. It does several runs and allows you to set a warmup so the file is thoroughly cached in memory before the actual tests start.
Before:
hyperfine -w 3 "python3 test.py ~/test/big.fastq.gz"
Benchmark #1: python3 test.py ~/test/big.fastq.gz
  Time (mean ± σ):      8.263 s ±  0.239 s    [User: 15.095 s, System: 1.841 s]
  Range (min … max):    7.982 s …  8.657 s    10 runs

after:
hyperfine -w 3 "python3 test.py ~/test/big.fastq.gz"
Benchmark #1: python3 test.py ~/test/big.fastq.gz
  Time (mean ± σ):      5.847 s ±  0.177 s    [User: 12.541 s, System: 1.801 s]
  Range (min … max):    5.567 s …  6.212 s    10 runs

Xopen still crashes when you give it a corrupt gzip file. The output is the same. All the tests succeed. The speedup is quite nice: >25%. And the resulting code is smaller.
What more do you need? :wink:

Codecov Report

Merging #14 into master will decrease coverage by 0.05%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master     #14      +/-   ##
=========================================
- Coverage   92.35%   92.3%   -0.06%
=========================================
  Files           2       2
  Lines         458     455       -3
=========================================
- Hits          423     420       -3
  Misses         35      35

Impacted Files
Coverage Δ

src/xopen/__init__.py
84.51% <100%> (-0.21%)
:arrow_down:

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 417bcae...2f9c897. Read the comment docs.

For context I did a hyperfine run of pigz -cd itself:
hyperfine -w 3 "pigz -cd ~/test/big.fastq.gz >> /dev/null"
Benchmark #1: pigz -cd ~/test/big.fastq.gz >> /dev/null
  Time (mean ± σ):      4.310 s ±  0.097 s    [User: 6.783 s, System: 0.441 s]
  Range (min … max):    4.144 s …  4.516 s    10 runs

Using pigz alone it uses 160% cpu or 1.6 core, therefore the real time is less than the cpu time.
pigz takes on average 6.8 cpu seconds to decompress this file.
Before this PR: 15.1 - 6.8  = 8.3 cpu seconds python overhead
After this PR: 12.6 - 6.8 = 5.8 cpu seconds python overhead.
5.8 / 8.3 ~= 0.7. A 30% reduction in python overhead is achieved.
Given that the python CPU overhead equals the real time it shows that python is the limiting factor still (I can also see this on my system monitor, python reaches 100% of one core all the time). pigz decompresses faster than python can iterate over lines.

Thanks, this is interesting!
I had to do some digging why the original code was written this way. After all, your patch removes the self.process.wait() and self._raise_if_error() lines, which are obviously meant for error handling.  Previously, I just used subprocess.Popen(...) directly, but this hid errors when reading truncated gzip files.
Interestingly, all tests pass with your patch, in particular even those that check reading from truncated gzip files raises an error!
Here is one of those tests (abbreviated):
f = xopen("truncated.gz", "r")
for line in f:
    pass
f.close()

As it turns out, the current version will correctly crash on one of the for line in f iterations, and the changed version will not do so. However, your version will crash on f.close(), so the test still passes.
So this change will be an inconvenience for those users who do not close their input files, but one can argue that it’s already a bug in their code.
One alternative is to use a yield from self._file instead, and then the error checking can be left in. Do you think you could run your time measurements for that as well? If the runtime is the same, I’d prefer this, but otherwise, I’m probably fine with merging it as-is.

I realized that no errors would be checked in the iter method, but since the checking self._raise_if_error() was also done in the close() method I figured that the checking would be done anyway. If files are not properly closed that leads to other problems as well.
I tested the following snippet:
    def __iter__(self):
        yield from self._file
        self.process.wait()
        self._raise_if_error()

Benchmark:
hyperfine -w 3 "python3 test.py ~/test/big.fastq.gz"
Benchmark #1: python3 test.py ~/test/big.fastq.gz
  Time (mean ± σ):      7.727 s ±  0.265 s    [User: 14.558 s, System: 1.881 s]
  Range (min … max):    7.257 s …  8.138 s    10 runs

So that is considerably slower than returning self._file.

Thanks for running the extra benchmark! This is a significant improvement, thanks a lot.

@marcelm, could you make a new release? It is nice to have the extra speed available on pypi. Thanks!

Sure, I just tagged 0.8.0.
However, I’m a bit worried that something is now broken because of this test failure. This is the test run for the commit where I only updated the changelog, so it should pass. The next build does indeed pass, which is why the automatic release to PyPI went through. Possibly this is a non-deterministic failure.

I don’t have time at the moment, but have opened #16 to keep track of this.


colspan not working whith gridpan

gridPane=build(GridPane, hgap: GAP, vgap: GAP, alignment: Pos::CENTER, gridLinesVisible: false)
gridPane.add(node,  columnIndex: 0, rowIndex: 0, colspan: 2,  rowspan: 1)
assigning a value to colspan dont change anything

columnSpan: 2

colspan does seem to show up in the FX docs a lot but it is only for variable names.  The property name is columnSpan.


Fix ARANGODB_RPM_UPSTREAM generation for devel and nightly (3.8)

Scope & Purpose
(Please describe the changes in this PR for reviewers, motivation, rationale - mandatory)

[x] :hankey: Bugfix
[ ] :pizza: New feature
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification

Checklist

[ ] Tests

[ ] Regression tests
[ ] C++ Unit tests
[ ] integration tests
[ ] resilience tests

[ ] :book: CHANGELOG entry made
[ ] :books: documentation written (release notes, API changes, ...)

Related Information
(Please reference tickets / specification / other PRs etc)

[ ] Docs PR:
[ ] Enterprise PR:
[ ] GitHub issue / Jira ticket:
[ ] Design document:

[ ] https://jenkins.arangodb.biz/job/arangodb-ANY-linux-packages.x86-64/2886/


Bug: CornerRadius Inconsistency/Missing on some Controls

Describe the bug
There is some inconsistency with the added corner radius in WinUI 2.2 styling (#659). Some controls don't have the radius in all situations, others are missing it.
Please see some examples below (I created this as a catch-all bug report in case there are other cases found).
Screenshots
(1) The buttons in ContentDialog did not get a corner radius in all cases. As you can see the button on the right has the radius, the button on the left does not. Other dialog types probably have the same issue (MessageDialog).

(2) When an item has keyboard selection like the buttons in the above image, should the added context border have a corner radius as well?
(3) AppBarButton doesn't have a CornerRadius. I actually think this looks better and should stay that way. However, was this and related AppBar controls missed in the discussion?

Version Info
Microsoft.UI.Xaml 2.2.190830001

Windows 10 version
Saw the problem?

May 2019 Update (18362)
Yes

October 2018 Update (17763)
N/A

April 2018 Update (17134)
N/A

Fall Creators Update (16299)
N/A

Creators Update (15063)
N/A

Device form factor
Saw the problem?

Desktop
Yes

Mobile
N/A

Xbox
N/A

Surface Hub
N/A

IoT
N/A

Buttons in ContentDialog is probably an oversight. Buttons in MessageDialog is owned by Windows and would be part of a future OS update.
AppBarButton ... i'm not sure. @chigy?

@robloo , @jevansaks
#1 - A bug. All buttons are supposed to get rounded.
#2 - Don't understand the question. If the question is if the keyboard focus should be rounded, then the answer is no. Not part of today's design.
#3 - It is by design per "T-rule" when multiple items are next to each other and forms a T, it should not be rounded. Thus, we don't round list items nor grid items.

@chigy

2 - Don't understand the question. If the question is if the keyboard focus should be rounded, then the answer is no. Not part of today's design.

Yes, that is my question (should have said 'Focus'). Further annotated below:

3 - It is by design per "T-rule" when multiple items are next to each other and forms a T, it should not be rounded. Thus, we don't round list items nor grid items.

Makes a lot of sense and definitely visually it's the right call. Can this be added to docs some place so developers like myself are aware. We are going to have to know the design conventions with CornerRadius.
Probably here: https://docs.microsoft.com/en-us/windows/uwp/design/style/
I can add feedback to the document on GitHub if it will help.

@robloo , Yes, it is by design that we don't round and yes we plan on adding some note to that since as a developer you can round the corner as much as you like but they might not look good. Detail is still being worked out as to what to say and where, but early draft is here. https://github.com/microsoft/microsoft-ui-xaml-specs/blob/user/chigy/roundedcorner/active/RoundedCorner/roundedcorner.md

@robloo , can you please open a bug against #1 so I can close this issue as resolved since the other two issues are actually by current design?

@Chigy I will re-title this one. No need to make a new bug report.

Removing myself so it will appear at triage. Please consider fixing # 1 issue. FYI @jevansaks

Thanks @robloo! @kaiguo, FYI.

Apart from the buttons that are not in the Selected state not having the CornerRadius set, the ContentDialog itself doesn't have it either:

@kaiguo , ContentDialog not having corner working was something to do with a bug that you were working through? Though I thought we shipped with corner rounded but the bug was about customizaiton?

Are the buttons in the ContentDialog supposed to have a border brush? This doesn't match with the default button style.

This came up investigating another bug which I'll open shortly.

@robloo , which version are you using because I am seeing the right behavior on my older Controls gallery (this one doesn't have rounded corner fixed) so did something get reverted when others got fixed?

I am also seeing the right behavior on the latest commit on master of this repository. Following screenshot was taken inside the MUXControlsTestApp:

@chigy @chinguacoding Ok, thanks for taking a look. This is a strange state my app is getting into then and it looks like it's tied with #1764. Since the style is correct for you, I won't worry about it here.

Update: The border on the buttons in the content dialog was a bug on my part. Sorry for that!

Update: The border on the buttons in the content dialog was a bug on my part. Sorry for that!

Thanks for letting us know.


Bugfix: add tag omitempty for the fields in this data structure ApisixRouteHTTPMatchExpr

Please answer these questions before submitting a pull request

Why submit this pull request?

[x] Bugfix

[ ] New feature provided

[ ] Improve performance

[ ] Backport patches

Related issues

Bugfix

Description
In the ApisixRoute CRD:

So the field value and set can't appear at the same time
But the golang data structure will be marshal to value: null or set: null, this will cause CRD checking error

How to fix?
Adding tag omitempty to this field

Thanks!


Add note on complex fields impl block in doc

Adding a small note in doc to avoid confusion about impl block for complex fields.
See #482

Codecov Report

Merging #483 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #483   +/-   ##
=======================================
  Coverage   85.71%   85.71%
=======================================
  Files         111      111
  Lines       15958    15958
=======================================
  Hits        13678    13678
  Misses       2280     2280

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 3a6d5e6...61df752. Read the comment docs.

Thanks for the PR!


Convert is not showing in menu after first install

Maybe my document isn't compatible, or something, but the menu that is supposed to have the Convert option only has one option, Help.
Could this be because I am a domain administrator on my org's google account? I saw a note that said individual installation may not work for these accounts, but I tried anyway and assumed I would be blocked from installing. Instead, the install was successful, but now I can't seem to convert a doc.

I'm not sure what the behavior is if you do an individual install of an add-on even though your org has a Google Workplace account.  Did you install it under your personal Google/Gmail account? Try opening an incognito window and signing into your personal account (assuming you installed using that account).

I'm not sure what the behavior is if you do an individual install of an add-on even though your org has a Google Workplace account.  Did you install it under your personal Google/Gmail account? Try opening an incognito window and signing into your personal account (assuming you installed using that account).

Hey, thanks for the reply. I installed it under my work gmail account. I did end up getting it to work by doing a domain install for my whole google workspace. I guess the behaviour of an individual install on a workspace admin account is that the add on can't get permission to read the doc, so the Convert option doesn't show in the menu. Feel free to close this.

Hey, thanks for the reply. I installed it under my work gmail account. I did end up getting it to work by doing a domain install for my whole google workspace. I guess the behaviour of an individual install on a workspace admin account is that the add on can't get permission to read the doc, so the Convert option doesn't show in the menu. Feel free to close this.


"export default from" lint an error

I use @babel/plugin-proposal-export-default-from(version 7.2.0) plugin so that I can write:
export XXXXX from './xxxxx';   （instead of writing：export {XXXXX} from './xxxxx' and in xxxxx.js use export default XXXXX instead of use export {XXXXX}）
But eslint shows the gramma mistake and auto fix the code to:
exportXXXXXfrom './xxxxx;
I use rollup and babel to build the whole project and everything is correct, just the eslint shows the gramma error. How to solve this problem. Is it a bug in babel-eslint?
The error says： [eslint] There should be no space after 'export'.

Also experiencing this. Any solutions? @HypnosNova

This error was caused by eslint-config-google.  I updated my rules with the following and the errors stopped:
  "object-curly-spacing": 0,
    "comma-dangle": ["error", {
      exports: "never",
      imports: "never",
      arrays: "always-multiline",
      objects: "always-multiline",
    }]

Thank you for the issue. Now that @babel/eslint-parser has been released, we are making this repository read-only. If this is a change you would still like to advocate for, please reopen this in the babel/babel monorepo.


Fix support for interface value in objectKeys

Previously, objectKeys caused type errors when called with any value declared from an interface.
import { objectKeys } from 'ts-extras';

interface MyInterface {
  some: string;
  value: number;
}

type MyType = {
  some: string;
  value: number;
};

declare const withInterface: MyInterface;
declare const withType: MyType;

objectKeys(withInterface); // => ❌ ERROR
objectKeys(withType); // => ✅ PASS

Closes #50

Thank for fixing, @ifiokjr 👍


config(prow/config): add release-3.* and release-4.* into tide's query branches for docs repos

also make the include branch congfiguration more simpler
Signed-off-by: wuhuizuo<EMAIL_ADDRESS>
What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
What's Changed:
How it Works:

/approve


Copy and Paste to the same folder no longer works: Failed to start transfer: Cannot transfer data when the source is the same as the destination

Storage Explorer Version: 1.16
Build Number:
Platform/OS: Windows 10
Architecture:  x64?
Regression From:  1.12
Bug Description
in azure storage explorer 1.12 I can copy a file and paste it to the same location (this may seem silly but I'm using this to effectively perform a unix touch command to update the timestamp)
Steps to Reproduce

chose a file
chose copy from menu
chose paste

error message "Failed to start transfer: Cannot transfer data when the source is the same as the destination"
Expected Experience
you are allowed to overwrite the file when copying and pasting to the same location. you do  get a warning dialog but can chose to proceed. once the file is overwritten the  modified timestamp is updated
Actual Experience
you are blocked with the error message "Failed to start transfer: Cannot transfer data when the source is the same as the destination"
Additional Context
I basically am using this as a mechanism to update the files modified attributes. While I do think this a regression I'm going to open a feature request to emulate the ability to update the file attributes

Hi again @jasonhorner . This is by design. Because how AzCopy handles copy and paste, pasting to the same blob name is no longer feasible. It'll result in data corruption, which we are certain people do not want. That's why we've blocked it.

@MRayermannMSFT I guess this makes #3797 more relevant then thanks for providing an explanation. it might be useful to add some text to the warning message as to why the operation is disallowed. especially for folks that maybe be relying on that behavior in downlevel versions


[Feature Request] Ability to focus on open/close File Explorer with key bindings

Although we have the key bindings to toggle the sidebar, I would love to have a shortcut that would open the file explore and focus on it so I can use j,k navigation. The same shortcut should close the sidebar and focus on the editor.
Today it is possible by using ctrl + w + h, but that is not specific to the File Explorer and also it does not work well when you have the sidebar closed, as it will focus in the sidebar navigation (explorer icon, search icon, etc.) instead of the Explorer.
My desired workflow is:
Have the explorer closed, hit a shortcut (today I have leader + m) to open the file explorer and focus on it. Choose a file to open, then close the explorer with the same key shortcut and have the focus in the editor.

Maybe  would be a good shortcut.

Hi, I would appreciate this feature too.
Furthermore, what do you think of focus the file, you are actually working on to focus by default?
You could than easily move j, k to files in the same directory.
This is what vscode does with

Hey @tw1t611 I've added this feature now in an open PR, but I can look at adding a "Focus current File" option as well, since I think its been requested elsewhere.


Performance

The every-24-hour script for the ML nodes takes 2 minutes and 25s to run on the sonar VM (which was otherwise not busy).  This is probably as bad as it's going to get since we have more than 3 months of data and the longest run generates a report for the last quarter.  At the same time, (a) that's quite a lot of time and (b) there will be many more clusters added.  Simple monitoring says that almost all the time is spent in sonalyze, not much in naicreport.  Let's enumerate some obvious avenues for better performance, based partly on profiling and partly on gut feeling.

[ ] Caching of parsed and cleaned data, #161.  A lot of time is being spent reading the sonar data from unreliable CSV files
[ ] Parallelism internal to sonalyze might help - files can be read in parallel, at least
[ ] Parallelism external to sonalyze (ie the quarterly and monthly reports might be generated at the same time) might help
[ ] A better-provisioned VM: Parallelism will require the VM to be provisioned with more CPU (it currently has one) and possibly with more memory; each invocation of the script requires more than 1GB resident memory, and this probably eats from anything that in-memory disk cache uses, and we don't want to do that
[ ] Obviously, better algorithms in sonalyze, TBD

On my computer (which is a lot faster than the VM), perf says that 56% of the running time of the monthly report is spent in merge_streams, I've added #314.

The new VM is quite a lot faster than the old VM, this takes a little bit of the edge off the problem.

The VM has been upgraded to 32GB RAM, which helps a lot for large analysis jobs.

CSV parsing and data representation have been changed in major ways, leading to more than 2x perf improvement and a 50% reduction in peak memory use (and a 95% reduction in allocation volume).

Having probed this further with Samply, it's clear that for most sonalyze jobs workloads the time is being spent reading the database: easily 50% of the time, actually.  Most of that time is spent parsing CSV and converting.  That parser is pretty well optimized, and though more can be done around the edges the only thing that's really going to move the needle is to cache the parsed data and read the cached data, bypassing parsing, checking, and conversion altogether.  I expect about 80% of those 50% to simply disappear if we do this.
However, most sonalyze jobs runs will be for near-term data, where there isn't that much data to read, and where performance is not all that important.
For sonalyze load, the running time is dominated by the quadratic stream merging, but this is not tremendously problematic because that feature is being used mostly by reports that are generated in the background for later consumption.  Also the generation happens when the system is not going to have many interactive users.
And sonalyze uptime is similar to load, and sonalyze profile is similar to jobs.
I think in conclusion, we should look into caching when we look at #379 and the quadratic merge algorithm needs to be fixed at some point, but there's nothing critical about performance at this point.

With the transition to the Go version of sonalyze, I've made file reading concurrent and it's generally much faster than the Rust version.  What remains here is to fix the quadratic algorithm and (maybe) add caching.  I'll close this bug as fixed, and let those bugs stand on their own.  I see no point in worrying about parallel report generation at this point, it'll just create contention on the server.


enhance #3063

Please review geo ctrl test First, merge it. Then you can review this PR.

@oldme-git Please add associated unit testing case for this pr.

@gqcn 等https://github.com/gogf/gf/pull/3090合并后，此PR就会有单测


[WIP] Hotfix/remove-blank-profile-objects

Fixes: #2412
Correct Internal Server Error when Clicking Submit in Profile when there is a blank School or Job object.

After fix, blank objects will be ignored when "Submit" is clicked.

@billyhunt is this still a work in progress or finished?

Still working on it.  Its in a different section of the profile. (Jobs and Education vs Social)

I updated the PR to reflect that it also fixes issue #2384

@billyhunt Can you resend this PR as a feature branch so that this can go through the full QA process before hitting production?

Sure thing.
Best,
Billy Hunt
Developer
Center For Open Science
http://osf.io
@billyhunt
434-825-7721
On Wed, Jun 24, 2015 at 12:58 PM, Steven Loria<EMAIL_ADDRESS>wrote:

@billyhunt https://github.com/billyhunt Can you resend this PR as a
feature branch so that this can go through the full QA process before
hitting production?
—
Reply to this email directly or view it on GitHub
https://github.com/CenterForOpenScience/osf.io/pull/2531#issuecomment-114941305
.

First pass - syntax review only - complete.

@billyhunt - there have been some minor changes to this page since you started - could you merge in the branch release/0.43.0, verify that things are working as they should, then push that up?

@sloria - the above will mean that this PR is directed to develop, but should be merged into release/0.43.0 and manually closed. Is this acceptable?

See also #3492. I'm closing that issue as it's basically a duplicate of #2412, but stated in a different way. This PR should satisfy it as well.

Yes, it is fine that this targets develop. I will merge into release/0.43.0 if this is ready to merge before 0.42.0 is released.

Since this has been been updated with release/0.43.0 it contains a bunch of commits that aren't on develop. @billyhunt Please resend this PR targeted to release/0.43.0

Closed to resend to 0.43 branch.


Enable purge protection for App Configuration stores

Rule request
Suggested rule change
App Configuration supports purge protection to extend the protection provided by soft-delete. Purge protection limits data loss causes by accidental and malicious purges of deleted configuration stores by enforcing an mandatory retention interval.
This feature only applies to Standard SKU configuration stores. Free configuration stores should be ignored by this rule.
This is enabled by setting the properties.enablePurgeProtection property to true.
Applies to the following
The rule applies to the following:

Resource type: Microsoft.AppConfiguration/configurationStores

Additional context
Azure deployment reference
Purge protection
Related rules include:

https://azure.github.io/PSRule.Rules.Azure/en/rules/Azure.KeyVault.PurgeProtect/

@ms-sambell
If you are out of capacity or want to focus on other aspects, I'd happily help you out with this one.

@bengeset96 That would be great, I'll assign it over to you. Thank you. :)


Deprecate zigbuild and glibc in favor of static musl binaries for Linux builds.

What is this
This PR replaces current ways to build linux binaries (zigbuild) with a musl build using custom built OpenSSL and CTNG musl toolchains.
How
We utilize ctng to generate a musl toolchain using a configuration which includes libstdc++, a requirement by RocksDB. This allows us to compile OpenSSL and rusty-kaspa against musl.
Tests performed
Ran by two testers in #qa for two days.
Why do we need it
We need it because on certain machines (Ubuntu 22.04.1 LTS) when running TN10 we get a segmentation fault with the following backtrace snippet:
Core was generated by `./kaspad17800141 --testnet --utxoindex --disable-upnp --ram-scale=0.8 --appdir'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  rocksdb::CoreLocalArray<rocksdb::ConcurrentArena::Shard>::AccessElementAndIndex (this=0x48) at rocksdb/util/core_local.h:73
73  rocksdb/util/core_local.h: No such file or directory.
[Current thread is 1 (LWP 710665)]
warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/starkbamse/coredump-old-rust/kaspad1780.
Use `info auto-load python-scripts [REGEXP]' to list them.
(gdb) bt
#0  rocksdb::CoreLocalArray<rocksdb::ConcurrentArena::Shard>::AccessElementAndIndex (this=0x48) at rocksdb/util/core_local.h:73
#1  rocksdb::ConcurrentArena::Repick (this=0x0) at rocksdb/memory/concurrent_arena.cc:38
#2  0x00005c0fbe499273 in rocksdb::ConcurrentArena::AllocateImpl<rocksdb::ConcurrentArena::AllocateAligned(unsigned long, unsigned long, rocksdb::Logger*)::{lambda()#1}>(unsigned long, bool, rocksdb::ConcurrentArena::AllocateAligned(unsigned long, unsigned long, rocksdb::Logger*)::{lambda()#1} const&) (this=0x471e51638a0, bytes=56, force_arena=<optimized out>, func=...)

Considerations:
Performance, could be worse if areas where performance is crucial utilize C memory allocators. It is planned to maybe replace the allocator with mimalloc to solve this problem.

@elichai @supertypo

How does one generate the musl .config file? Can you add instructions for that somewhere?

How does one generate the musl .config file? Can you add instructions for that somewhere?
You use ct-ng menuconfig for that. But yes, I'll write instructions.


ISPN-11530 Only allow numOwners=1 and ALLOW_READ_WRITES strategy

https://issues.redhat.com/browse/ISPN-11529
https://issues.redhat.com/browse/ISPN-11530
Lets see if this breaks any tests :slightly_smiling_face:

It didn't break anything :tada:

Can we have a backport please ?

https://github.com/infinispan/infinispan/pull/8156


cfpb-core: Indent numbered lists

Changes

Indents numbered lists 0.3rem to avoid clipping that can happen when lists are double digits.

Testing

Check lists page in the design system on this PR preview link.

Screenshots

Before:

After:

@anselmbradford: I was chatting with @huetingj and @nataliafitzgerald about this in our working group today, and I had another idea. It sounds like you and @huetingj already went over some options and settled on the 0.3 rem nudge for ordered list items as the best option, but @nataliafitzgerald made the excellent point that it seems a shame to nudge all ordered lists out of flush left alignment just to account for the handful of long lists we have (and that we discourage content authors from making, anyway). Which got me thinking…
What if we add the 0.3 rem nudge to only ordered lists that contain 10 or more items? I think the :nth-last-child() method in this A List Apart article might do the trick, right?

Hmmmmmm. interesting idea regarding applying it only to the longer lists. My initial hunch is using nth-child may be difficult to apply to the items before item 10, but I'll try it out. Also, I think you're right this can be integrated into the existing padding. I'll circle back to this. Thanks!

Could we merge this in for now and consider adding the padding only when lists are 10+ items as a separate feature?
I think having digits visibly cut off (which is the current state of things across the site) is worse than the slightly different alignment.

@niqjohnson This has been updated to only indent lists greater than 10 items long:

@niqjohnson All credit to you for digging it up! I just entered it in.


Add homebrew-kn-plugins-approvers to owners

Signed-off-by: Paul S. Schweigert<EMAIL_ADDRESS>Assuming the approvers group named after the repo should be in the OWNERS file :smile:
/assign @rhuss @dsimansk

/approve
/lgtm


Paginate children inscriptions

Fixes #2578

Did some refactoring during coding club, this is just missing some testss:
server.rs tests:

test for fetching /children without page
test for fetching /children with page
only first four children are displayed on /inscription
if more than four children are displayed, display more button

@devords I just finished up the last tests. Have a look if this looks good.

@raphjaph Looks great to me. Thanks for adding those tests!


FancyZones feature - allow programs to go fullscreen within a zone

Description of the new feature / enhancement
Allowing programs to go fullscreen within a zone they're snapped to, opposed to going fullscreen to the whole display, would save screen estate to essential features of a program, especially in layouts that have relatively small zones. Fullscreen mode also hides redundant visual information, easing up cognitive load.
Scenario when this would be used?
Example 1: I have a tutorial video playing in a corner of a screen, while the program I'm using to follow it takes up most of the screen space. Setting the player to fullscreen mode inside the zone would get rid of the top and bottom bars, allowing me to use the zone fully for video playback.
Example 2: I have three documents open in different zones and use fourth for writing. If I could set the document viewers to fullscreen mode within their zones I could display more text at once in each while reducing redundant information on screen at the same time.
Supporting information
No response

"Crop and lock" was added just days ago, it both saves screen area and reduces clutter. It does both better than a fullscreen would since you decide what to crop. The resulting crop is always-on-top and won't fill a zone, but will at least move to and try to fit in.

I personally would like this as well but for another reason: To get programs to behave as if maximized.
For example, when Chrome is maximized it allows you to click at the very top of the screen to switch tabs but when it's not, you have to be more accurate (need to aim further down) because the very top will trigger the window resizing.
The workarounds are:

Use hotkeys to change tabs. This isn't ideal as it requires the window being active.
Using the 'Space Around Zones' feature in FancyZones to extend the window past your screen. -9px is the minimum to get the desired 'maximized-like' behavior. Obvious downside is that your window will not only overflow a the top, but also to every other side.

/dup #279

/dup #279

This thread talks about maximizing and full screen interchangeably, where these are functionally totally different. Even the commenters are all over the place with what they're talking about. At some point the discussion was focused on maximizing a window, and now the thread is just a mess. I'm asking for strictly fullscreen functionality, tha's why I opened up this thread.


LTI Launch URL is "undefined"

After creating a class and entering the LTI secret, the LTI launch URL generated by the server contains "undefined" in the path and is not valid, e.g.:
http://rage.northeurope.cloudapp.azure.com:3000/api/login/launch/undefined/gleaner

In the last version of the interface there is a small bug that causes that variable to be undefined.
We will solve it throughout the morning, until then, in the default configuration, that variable should contain "afront".

As in "http://rage.northeurope.cloudapp.azure.com:3000/api/login/launch/afront/gleaner"?
That also generates a 404.

Changes merged, should be fixed in the next stable release or here: https://github.com/e-ucm/rage-analytics/issues/64#issuecomment-431333573

OK, I'll create a new issue on the launch not actually working.


References removed because of (java.net.SocketException: Connection reset)

Can this exception maybe not lead to all orphans being removed?

Are you using version 2.6.x ?  By default orphans are always processed (i.e., re-crawled) since 2.6.0, even if a "parent" page generates an exception.  The exception to this is if the parent page times out more than once in a row, then it will be "deleted" from cache and its children will be considered orphans.  Do you have <orphansStrategy> set to DELETE by any chance?
Child pages are only be considered orphans when the parent page gets deleted.  To prevent parent page deletion on timeouts, you can set your "spoiled" reference strategy to IGNORE for pages with a bad status (default is to "grace" them once).  Like this (part of crawler config):
  <spoiledReferenceStrategizer>
    <mapping state="BAD_STATUS" strategy="IGNORE" />
  </spoiledReferenceStrategizer>

Have a look at GenericSpoiledReferenceStrategizer
If the above does not help you and you can reproduce easily with your config, can you please share it?

Yes I am deleting orphans and bad_status was grace once with 2.6.
It seems to me the grace once didn't work as the previous crawl had finished successfully. Or am I misunderstanding and it means a retry within the same crawl session didn't complete successfully?
The reference was not imported, as I only use it for links, if that matters.
Should the logs show something when first attempt failed (grace once)?

It will not attempt to re-crawl within the same crawl session.  You will get an entry in the logs if you set this to DEBUG in log4j.properties:
log4j.logger.com.norconex.collector.core.crawler.AbstractCrawler=DEBUG

The message will look something like this:
[CrawlerName]: this spoiled reference is being graced once [...]

If you frequently get timeouts Putting BAD_STATUS to IGNORE may be your best bet.  Pages that no longer exist (404) will still trigger a deletion request on the committer if you have NOT_FOUND to DELETE (which is the default setting).

Yeah, might as well set it to IGNORE. Thanx.


Add half frame to floor() for animated particles UV

This is the same bug fix as described in #53233 but for the master branch. However I was not able to test this on master because I have another bug (#53236) animated particles do not play at all in current master?! But I can't find an open issue on that.
Closes #36435

Thanks! And congrats for your first merged Godot contribution :tada:


Crashes when text contains "button"

Example command:
echo "buttons" | ./piper --model en-us-amy-low.onnx --output_file output.wav
Output:
[2023-07-03 19:23:13.045] [piper] [info] Loaded voice in 0.12955468 second(s)
[2023-07-03 19:23:13.045] [piper] [info] Initialized piper
2023-07-03 19:23:13.047565316 [E:onnxruntime:, sequential_executor.cc:494 ExecuteKernel] Non-zero status code returned while running Gather node. Name:'/enc_p/emb/Gather' Status Message: indices element out of data bounds, idx=144 must be within the inclusive range [-130,129]
terminate called after throwing an instance of 'Ort::Exception'
what():  Non-zero status code returned while running Gather node. Name:'/enc_p/emb/Gather' Status Message: indices element out of data bounds, idx=144 must be within the inclusive range [-130,129]
Aborted (core dumped)

Same but for 'lighten'

Please upgrade to Piper 1.1 and use the "medium" quality amy voice. The "low" quality voice will need to be retrained with additional phonemes. It won't crash any more in 1.1 at least.


File modes cleanup

Just some small cleanup in making two scripts executable and converting one test file to the unix format like the rest of the repo.

@JoshData do you mind taking a quick look at this PR?

Thanks!


kube-public information disclosure hunter

What would you like to be added
In default kubeadm clusters (and probably others) there is a default namespace created called kube-public which is intended for public information. There is a configmap in that namespace called cluster-info which contains the TLS certificate of the API server.
Sample curl request to retrieve it
curl -k https://[IP]:6443/api/v1/namespaces/kube-public/configmaps/cluster-info

A handy fingerprinting hunter (e.g. when scanning a network) would be to get this URL and extract the CN and Issuer fields
Why is this needed
Could make a useful addition for fingerprinting clusters.

Looks really cool. are there another publicly accessible resources from there we could scan? do you want to take the development  of this on you?

It'll depend on the exact Kubernetes distribution in use. for a modern version of kubeadm, these paths are likely to be visible
  - /healthz
  - /livez
  - /readyz
  - /version
  - /version/

As to development, python is not a language I'm super familiar with, so if someone else has time to take it on, that'll be cool. I can have a look but it's unlikely to be soon :)


Bugfix/NETEXP-523: Added cloning Profiles

JIRA: NETEXP-523
Description
Summary of this PR

Added clone button to appear when Clone Data is passed down to Profile Details.

When clone button is clicked:
1. user is redirected to AddProfiles page with profile type opened
2. clone data is displayed in form
3. the profile name has CLONE added to the end

Also included fixes to make add profile more consistent with profile details for SSID, Captive Portal, and Passpoint

images were tested this with TIP ui passing down clone profile data

Before this PR
Screenshots of what it looked like before this PR

After this PR
Screenshots of what it will look like after this PR

remove Clone references the Title and Description and change to be specific to the changes you made

remove Clone references the Title and Description and change to be specific to the changes you made


Generate pure JavaScript goodies from the TypeScript ones

Thus we begin possible support for more languages!

I thought JS was deprecated 😅 . Looks good btw!

It is, but some people still like to use it 😉


testing: flaky issue where crash written doesn't reproduce an error

I've been playing around with this fuzz test:
func FuzzFuzzer(f *testing.F) {
	f.Fuzz(func(t *testing.T, x int, s string) {
		b := []byte(s)
		if bytes.Contains(b, strconv.AppendInt(nil, int64(x), 10)) {
			t.Errorf("minimize this! %d, len(s)=%d", x, len(s))
		}
	})
}

I've noticed that sometimes it is writing a crash that doesn't actually reproduce an error when re-run with go test. My guess is that this is a minimization issue, since I haven't been able to reproduce this bug when I set -fuzzminimizetime=0.
Still trying to figure out where the bug was introduced and why none of our tests are catching it.
/cc @golang/fuzzing

Something very weird is going on. I'm also seeing times where minimization wasn't even attempted. Those crashes are also not reproducible when run with go test
e.g.
godev test -run Fuzz -fuzz Fuzz -v -parallel 5
=== FUZZ  FuzzFuzzer
fuzz: elapsed: 0s, gathering baseline coverage: 0/13 completed
fuzz: elapsed: 0s, gathering baseline coverage: 13/13 completed, now fuzzing with 5 workers
fuzz: elapsed: 0s, execs: 100 (1508/sec), new interesting: 0 (total: 9)
--- FAIL: FuzzFuzzer (0.07s)
        --- FAIL: FuzzFuzzer (0.00s)
            foo_test.go:20: minimize this!

    Crash written to testdata/fuzz/FuzzFuzzer/9bbe05c1b66fbfdbd1d075945dfe9b96d1b56a04f8edf276fd6b363a92edfb5e
    To re-run:
    go test foo -run=FuzzFuzzer/9bbe05c1b66fbfdbd1d075945dfe9b96d1b56a04f8edf276fd6b363a92edfb5e
FAIL
exit status 1
FAIL    foo     0.214s

Duplicate of #48731


update setup screenshot: yarn insted of npm

😬 Forgot this in https://github.com/contentful-userland/gatsby-contentful-starter/pull/34

Haha. 🙈 Thanks! 🎉


[IOTDB-1385] Extract the super user and password to the config

In some scenarios, the super user needs to be specified based on the environment.  Extract the super user and password to the config

@LebronAl @neuyilan @mychaow hi, could you please review?
Thanks


Work with ssh urls of repos

I use ssh-links to repos (not https), and github-pivotal-flow gives an error saying it can't parse that uri (git@github.com:user/repo.git).

Can't seem to reproduce this. Could you paste the relevant section of your .git/config file? There might be something special about your github user id or repo name that is failing the regexp.

@donaldpiret  it seems that bug only happens if URL has uppercase letters. If you use lowercase (even for uppercase-repo) -- it works.

Since merge of https://github.com/donaldpiret/github-pivotal-flow/pull/11 this should be fixed.

Sorry, maybe it wasn't related after all, but it doesn't also seem to be directly related to this project. Here's an example of an error:
➜  tldr-data git:(develop) git publish
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:176:in `split': bad URI(is not URI?): git@github.com:ThoughtLeadr/tldr-data.git (URI::InvalidURIError)
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:211:in `parse'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:747:in `parse'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:996:in `URI'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/project.rb:20:in `initialize'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/configuration.rb:99:in `new'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/configuration.rb:99:in `project'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/configuration.rb:232:in `ensure_github_api_token'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/configuration.rb:15:in `validate'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/command.rb:20:in `initialize'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/bin/git-publish:6:in `new'
        from /Library/Ruby/Gems/2.0.0/gems/github-pivotal-flow-1.2/bin/git-publish:6:in `<top (required)>'
        from /usr/bin/git-publish:23:in `load'
        from /usr/bin/git-publish:23:in `<main>'

I am having this same issue.
❯ git start                                                                                ios-three develop ✗ b812052
/Users/john/.rbenv/versions/2.2.0/lib/ruby/2.2.0/uri/rfc3986_parser.rb:66:in `split': bad URI(is not URI?): git@github.com:Tripstr/ios-three.git (URI::InvalidURIError)
        from /Users/john/.rbenv/versions/2.2.0/lib/ruby/2.2.0/uri/rfc3986_parser.rb:72:in `parse'
        from /Users/john/.rbenv/versions/2.2.0/lib/ruby/2.2.0/uri/common.rb:226:in `parse'
        from /Users/john/.rbenv/versions/2.2.0/lib/ruby/2.2.0/uri/common.rb:713:in `URI'
        from /Users/john/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/github-pivotal-flow-1.2/lib/github_pivotal_flow/project.rb:20:in `initialize'

.gitconfig:

[pivotal]
  api-token = 44aa4eea04b********************bd35
  project-id = 13****90

[gitflow "branch"]
  development = develop
[gitflow "prefix"]
  feature = feature
  hotfix = hotfix
  release = release

Not sure how to troubleshoot this. Let me know if there is more info I can provide.

Hey John, I'll have some time this weekend and will take a look at this. Thank for reporting!

Let me know how I can help. I am not a ruby dev, but do know my way around. I think it might even be a dependency problem.(using ruby 2.2.0)

Looks like I had forgotten to cut a new gem version that contained the fix for this. Should be fixed in 1.3


Violation of clean architecture principles

Hi I am using this source code as a reference to implementing clean architecture in ASP.NET Core 2.1 MVC.
In this code the validation logic for api request models is written in the presentation layer e.g. (RegisterUserRequestValidator) which contradicts the rule that business logic should be in domain layer

Thanks for sharing your opinion @akshayshah2050
I wouldn't necessarily include model validation as part of the core business logic.  The purpose of model validation in the presentation layer is to act as a "frontline" check of the incoming data from the client to make sure it is valid before doing any further processing.  Usually, this is where we do superficial checks for non-empty strings, valid email addresses, properly formatted phone numbers and so on.  Ensuring the data is in a valid shape before sending to the core/domain layer for further processing/validation.
I usually like to think of validation as being a ubiquitous responsibility that happens across multiple layers of my application, not just one.

Ok thanks for the explanation
With your repository as the main reference and other sources from all over the internet i have created this repository : https://github.com/akshayshah2050/AspNetCoreWebApiWithCleanArcitecture
This is the very initial version of what i plan to create. Can u please review the project structure and other architectural aspects of the repository and provide your suggestions? I think it will help me in clarifying my concepts and doubts
Thanks in advance

Hi @akshayshah2050 - had a look through your project, well done!  It certainly looks like you've got a solid grasp on the importance of separating concerns and have implemented some great patterns in your code to achieve that.  One callout I would have on that topic is that you might want to consider further layering your project by adding separate class library projects to house your Core and Infrastructure layers.  This would just help to add the physical separation of layers in the solution.  This provides better de-coupling and can help make unit testing easier.  When you do this, your Core layer should have very few (if any) external dependencies as most of those will be found in your Infrastructure project (e.g. ORM/db access libraries, http client, cache client, logger etc.)
Hope this helps, keep up the good work!
Regards,
Mark

Thanks for your feedback
I am not quiet sure if i understand your suggestion correctly.
Core and Infrastructure layers in my repository are already implemented as .NET Core Class Libraries
Am i missing out on something???

Hahaha...sorry, yes you're right!  I first looked at your repo on my mobile device and for some reason thought your Core and Infrastructure folders were inside your web API project folder, but you're correct - they're separate, and that is the correct structure in my opinion.
Keep up the good work!


Error in button Jump to cpanel

When in Orders - Services Manager - Jump to cPanel show
Page /bb-themes/admin_default/index.html not found.

Have you set your cPanel hostname in Configuration->Hosting plans and servers->Server management?
(first server is located under index.php?_url=/bb-admin/servicehosting/server/1)


LnUrl Auth implementation

Closes #135
Closes #390
Waiting on next ldk release to cut a new version of lnurl-rs, otherwise this is ready to go

Nice work! Re-ran the test, not sure what was up with the browser crash.

Yeah I think the wasm stuff is just inherently a little flaky.


A problem occurred evaluating project ':app'.

Ionic version:  (check one with "x")
(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x] 3.x
[ ] 4.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x] feature request
Current behavior:

Hey guys, I meet a problem that I can't build my android apk.
Got this error
* Where:
Script '/Users/Story5/Story5/01Project/OSChina/03 BlueEarth/05 BIM_Market/platforms/android/CordovaLib/cordova.gradle' line: 132

* What went wrong:
A problem occurred evaluating project ':app'.
> No match found

My Ionic info:
cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 3.1.8
    Cordova Platforms  : android 7.0.0 ios 4.5.4
    Ionic Framework    : ionic-angular 3.9.2

System:

    Android SDK Tools : 26.1.1
    ios-deploy        : 1.9.2
    Node              : v8.11.1
    npm               : 5.6.0
    OS                : macOS High Sierra
    Xcode             : Xcode 9.3 Build version 9E145

Environment Variables:

    ANDROID_HOME : /Users/Story5/Library/Android/sdk

Misc:

    backend : pro

Same here. Any news @Story5? Did you solve this?

For me the android-versionCode was faulty in my config.xml. make sure it's formatted with numbers only: android-versionCode="291". No "." or other characters.

@Kinzi I solved by change the android-versionCode in config.xml to the corrent value. I set the value "1.0.0" which is not a int value cause the problem.


Fix invalid warp message and add case-insensitive warp teleport

For #379
Still very new to plugin development/contributing. The code isn't exactly top notch, sorry in advance
Also I made to intend for single server, so probably doesn't work for network setup.

Thanks for your interest in helping out here!
The issue with this approach is that you're now having to query for every warp ever set on the server each time a user runs the command -- which is slow.
The SQL statement in the getWarp method is what probably needs changing to select all with a name irrespective of case

That is probably what I should have looked at first...
Thanks, I'll try and see if I could do it, feel free to close the PR

No problem :) Please do feel free to have a go at doing that, everyone's gotta start somewhere with this stuff!
You'll want to look at the MySqlDatabase and SqLiteDatabase classes -- and probably do a bit of reading on how to update the SQL statement for getting a warp by name. Currently afaik it just does a WHERE name=? which is where the flaw with this is.
Maybe even have a look at the Unit Tests class in BukkitHuskHomes if you want a bit of a challenge and see about writing / editing the unit tests for querying warps so this can be caught more easily!

Yeah I will leave that to you xD
For now, I made the SQL statements to use UPPER() and use .toUpperCase() for warpName. It works fine, but no idea on how that would work with cross-server/multi network stuff.
As for the message, its kind of a bandaid, I have no idea what the check in resolveWarp is doing, so I'm only adding ontop of it.


Update the global audio player

Fixes

Related to #2910 by @fcoveram
Description

This PR updates the Global audio player to match the design requirements in #2910.

It also fixes the problem we had with global audio player: it sometimes appeared on the home page, but didn't appear on the single result page. This was caused by the updates in the layouts, when I accidentally added the component into the wrong layout.
The old no longer used VCloseButton component is also removed.
Testing Instructions

Open the app on a mobile-width screen and search for something. When you click on Play button, you should be able to see the global player. You can seek, pause or play using it. If you click Play on a different audio, the audio should be updated. If you click on the audio title, the single result should open, and the global player should stay on the screen with the same audio playing.
Checklist

[ ] My pull request has a descriptive title (not a vague title likeUpdate index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.
[ ] I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@fcoveram, there were some child elements that were covering the border and making it look not rounded. I've updated the code:

The corners of the VAudioControl are the same as the global audio layout (4px) but it seems that they look a little bit more rounded so that there's a tiny gap between the button and the border. I tried making the button rounded corner 2px, but it didn't look right either. What do you think, @fcoveram ?

@obulat I'm seeing an issue where when I play an audio from the results list, then click on a single result, the audio stops playing. Is that intended? Otherwise this works as expected!

@obulat I'm seeing an issue where when I play an audio from the results list, then click on a single result, the audio stops playing. Is that intended? Otherwise this works as expected!

The expected behavior was to stop the playback if you are opening a single result that is different from the audio that is currently playing. And if you start playing an audio and then go on to its single result page, the playback continues.


add Exponential Moving Average (EMA) support to SimpleGenerativeModel [WIP]

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.84%. Comparing base (e932a37) to head (7f02e9c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #66      +/-   ##
==========================================
+ Coverage   95.82%   95.84%   +0.01%
==========================================
  Files          48       48
  Lines        3643     3655      +12
==========================================
+ Hits         3491     3503      +12
  Misses        152      152

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Use flock to avoid concurrent write-access by Ansible

Proposal: flock
Author: Dag Wieers <@dagwieers> IRC: dag
Date: 2018-05-09

Status: New
Proposal type: core design
Targeted Release: <future release #, ex. 2.2>
Associated PR: <link to GH PR in ansible/proposals if PR was submitted>
Estimated time to implement: days

Motivation
Currently when modules are concurrently running on the same system (eg. delegated to localhost) modifying the same file can lead to corruption or data loss. Adding flock() support to file-access would avoid such problems (or report issues back to the user).
Problems

Avoid concurrent write-access to files that Ansible is managing using an exclusive (process-based) lock
This prevents file-corruption or data-loss

Simple example, when reprovisioning systems concurrently, you may want to remove existing keys from known_hosts on the Ansible host. Doing that currently with the known_hosts module will fail and there's no easy way to do this from a role as you can't use serial/forks on a task.
Second example, concurrently ensuring a specific file (eg. known_hosts) was removed would fail, because the file would be removed by one of the processes (in between testing existence and the actual removal) and the removal would fail. (This was fixed in the file module in PR ansible/ansible#39466, but would not have happened if flock was implemented).
Third example, in some cases functionality is not allowed to run concurrently, but is not prevented by the API (eg. Cobbler syncs). Currently there is no means to avoid concurrent calls, but a flock implementation could prevent a module from being run concurrently.
Solution proposal

A module needs to add a lock on the original file before accessing that file for reading/copying and editing.
Possibly using a timeout-value that relates to the number of forks in some way ?
The lock could be lifted once the file has been atomically moved into place (or will be gone when the process ends)

Dependencies (optional)

We may need to look at other file-modifying functionality offered to or used by modules that needs flock support added, but this is less of an issue if the module has proper locking before accessing files.
Our only concern is concurrent access of the same module, although if all modules would be using flock correctly we could also prevent concurrent access of multiple playbook-runs, our first focus would be on concurrently running the same module.

Testing (optional)
Testing is required and may be a bit more tricky, but not impossible.
Anything else?
We may want to add this using an option that at first is disabled, and when we are confident enable it in a subsequent release. Also any effect on normal performance needs to be looked at.

iirc, due to our use of atomic moves, and never editing the dest file directly (not using open) meant that a solution like this was not straight forward. I had briefly experimented with a lock file instead, but significant changes are needed.
In most cases, we read the file, then do processing and finally move it into place. This solution would also have to prevent that initial read while another task is in progress.

@sivel The implementation would need to use flock on the original file before we edit the copy and do the atomic move. A concurrent module would have to wait for the lock to be removed. So yes, using our own open() would not be helpful, I'll update the proposal.

As mentioned, we also need to lock in some manner before read too. Otherwise if multiple instances read close together, they would ignore recent changes just made by the process with the lock.
I'm not looking at the docs (fcntl) but I remember some caveat about exclusive locks only applying to opening files for write.

@sivel Correct, see rephrased proposal.

FYI, if modules use the atomic_move (as they should) there is no chance of corruption unless you specifically use the unsafe_writes option and then only if it is not possible to rename the file into place.
A lock would prevent the loss of data though as you could have 2+ diff processes updating the same file with different information and it is possible that the changes from the first process to write are lost by the 2nd overwriting if it had read the original file instead of the updated one.

I detailed my proposed implementation in #52567 and we have our own context-managed open_locked() call which returns the file descriptor to be used inside the context (to avoid opening the same file and breaking the existing lock on close).

This is might be useful not only for simultaneous writes, but for other tasks too.
Eg I want to have no more one outgoing ssh connection to the host, I would be glad to use something like this in my task:
- raw: 'sleep 10; echo {{ item }}'
  lock_file: /tmp/asdasd
  lock_type: exclusive
  delegate_to: 'localhost'
  loop: '{{ my_list }}'

closing as per #52567


tegra-firmware confligts with linux-firmware package

Including both tegra-firmware and linux-firmware packages to image causes build error using latest master meta-tegra and styhead poky.
Downloading file:/home/sapiippo/boot2qt/build-jetson-agx-error: check_data_file_clashes: Package linux-firmware-nvidia-tegra wants to install file /home/sapiippo/boot2qt/build-jetson-agx-orin-devkit/tmp/work/jetson_agx_orin_devkit-poky-linux/b2qt-embedded-qt6-image/1.0/rootfs/usr/lib/firmware/nvidia/tegra194/vic.bin
        But that file is already provided by package tegra-firmware-tegra234
error: check_data_file_clashes: Package linux-firmware-nvidia-tegra wants to install file /home/sapiippo/boot2qt/build-jetson-agx-orin-devkit/tmp/work/jetson_agx_orin_devkit-poky-linux/b2qt-embedded-qt6-image/1.0/rootfs/usr/lib/firmware/nvidia/tegra194/xusb.bin
        But that file is already provided by package tegra-firmware-tegra234

For now I would suggest not including the linux-firmware-nvidia-tegra package from linux-firmware, as this isn't something we've done in the past. How is that getting picked up for you, are you installing all of linux-firmware?
I think that we may not need the tegra194 xusb or vic firmware for t234, but this needs to be reviewed. If that's the case, moving foward, we can drop them from tegra-firmware for t234.


⚠ Samsung has degraded performance

In bef8605, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2558 ms

Resolved: Samsung performance has improved in e20999e.