Add missing aria-label support to <TextInput>

Summary:
Currently <TextInput> does not support aria-label, only accessibilityLabel. This commit updates  to accept either accessibilityLabel or aria-label, preferring aria-label when provided to match the implementation in other native components.
Changelog:
[GENERAL] [FIXED] Add missing aria-label support to <TextInput>
Test Plan:
Here's a demonstration of accessibilityLabel on both platforms, and the lack of aria-label support based on this code: https://snack.expo.dev/@levibuzolic/4c3b62
The top <TextInput> has accessibilityLabel="Input with accessibilityLabel" and the bottom has aria-label="Input with aria-label". Both platforms correctly read the accessibilityLabel while neither reads the aria-label. This is because theres no native code to support aria-label and instead all other components remap this prop to accessibilityLabel.
iOS
https://github.com/facebook/react-native/assets/721323/5518016c-c6a2-4d51-a8a8-7467cd693094
Android
https://github.com/facebook/react-native/assets/721323/d67adf1c-4b10-4e25-b602-4bb94e0ad589

@necolas Not sure where we've landed on adding aria-* props. Is this something we still want to encourage?
If yes, @levibuzolic can you also add a PR for the docs for this prop on react-native-website?

@lunaleaps more than ahppy to, but I think this may already covered by TextInputs's  inheritance of ViewProps. TextView doesn't explicitly include documentation any of the core accessibility* or aria-* props.

Have resolved conflicts, as far as I can tell this still makes sense as it aligns the implementation with the docs, but not sure what direction the team are going with the aria-* props at.

Hello, is something blocking this PR ? I noticed while working on accessibility issues that "aria-label" is misdcoumented on TextInput and does nothing.
If there is no plan to merge this, should the documentation be updated to prevent traps ?


Add SpliceAI predictions

Is your feature request related to a problem? Please describe.
Having a specialized service for splice predictions would be useful.
Describe the solution you'd like

Implement REST API server similar to CADD one.
This could be used as a starting point: https://github.com/bihealth/spliceai-wrapper
Implement caching inside VarFish Web as is done for CADD and MutationTaster.
As SpliceAI can run for a pretty long time, we might decide to only allow SNVs and have everything precomputed.

Describe alternatives you've considered
N/A
Additional context
N/A

Added via extra annos.


Rancher+k3s HA  traefik show logs  Endpoints not available for cattle-system/rancher

What kind of request is this (question/bug/enhancement/feature request):
question
Steps to reproduce (least amount of steps as possible):
1、install k3s master to two nodes    k3s version :v1.18.2+k3s1
2、install rancher  version v2.4.3
my  tls is a public ca cetificate   with host rancher.szsuyuji.com
kube-system     metrics-server-7566d596c8-pbd68          1/1     Running     0          40m
kube-system     local-path-provisioner-6d59f47c7-vzphn   1/1     Running     0          40m
kube-system     helm-install-traefik-qbwzr               0/1     Completed   0          40m
kube-system     coredns-8655855d6-7x4dd                  1/1     Running     0          40m
kube-system     svclb-traefik-dg464                      2/2     Running     0          39m
kube-system     svclb-traefik-8k2ql                      2/2     Running     0          39m
kube-system     traefik-758cd5fc85-pqdlm                 1/1     Running     0          39m
cattle-system   rancher-7dc864d7fc-l644m                 1/1     Running     0          36m
cattle-system   rancher-7dc864d7fc-fwztq                 1/1     Running     0          36m
cattle-system   rancher-7dc864d7fc-fsv4p                 1/1     Running     0          36m
evering thing is running
Result:
Rancher UI 404
Other details that may be helpful:
traefik logs show
{"level":"warning","msg":"Endpoints not available for cattle-system/rancher","time":"2020-06-02T05:16:30Z"}
{"level":"warning","msg":"Endpoints not available for cattle-system/rancher","time":"2020-06-02T05:16:31Z"}
{"level":"info","msg":"Server configuration reloaded on :443","time":"2020-06-02T05:16:54Z"}
{"level":"info","msg":"Server configuration reloaded on :9100","time":"2020-06-02T05:16:54Z"}
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
Installation option (single install/HA):
k3s version :v1.18.2+k3s1   and  rancher  version v2.4.3

HA install

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Machine type (cloud/VM/metal) and specifications (CPU/memory):
Kubernetes version (use kubectl version):

(paste the output here)

Docker version (use docker version):

(paste the output here)

change lb7 to lb4 fix it

We're seeing this on 1.18.19 build of k3s more regularly now and hence wondering if there is something thats causing it?


Adithya K Shetty

🛠 Fixes Issue
Closes #222
➕ Changes Introduced
html & css changes
also added a fontawesome CDN
Changes Other Than The Issue
added  a scroll bar

Please add the screenshot of the changes or a video demo

Thank you for your contribution :)

Welcome 🙏


Contact Sensor Button

Just wondering if I've missed something but I've got the Add-on all set up and HA is getting state changes but and there doesn't appear to be any functionality for a button press. Is that just a limitation or did I screw up somewhere?

Which of the following "buttons" are you referring to?

The physical button on the Contact Sensor
The Polling button detected via MQTT Discovery on Home Assistant

Regarding the former:
I’ve read the manual for that button, but it doesn’t seem to have any specific function.
If it’s the latter:
Pressing the button retrieves information from the server and updates the status.
(You can retrieve battery, moveDetected, openState, and brightness information.
https://github.com/OpenWonderLabs/SwitchBotAPI#contact-sensor-1)
Additionally, this add-on supports receiving webhooks for the Contact Sensor.
https://github.com/OpenWonderLabs/SwitchBotAPI#contact-sensor-2
This occurs when open/close detection or motion detection is triggered.
What exactly do you mean by "doesn't appear to be any functionality"?
What were you expecting, and what specific results are not being achieved?

I'm referring to the physical button on the device. I would expect it to be an entity in Home Assistant that, when pressed, could trigger an automation. That's what it does in the switchbot app.

First of all, I don’t believe that such a feature is implemented in the Contact Sensor.
The manual mentions the physical button as a “Fresnel Lens & Reset Button.”
https://drive.google.com/file/d/1vrWBxr_C3LJwOR9HWbOk8wT9qXzZtK_D/view
From the teardown photos, it appears that there is a function for emitting infrared for motion detection and a button for resetting.
https://fcc.report/FCC-ID/2AKXB-W1201500/5257863
I also couldn’t find any description in the SwitchBot Help Center indicating that pressing the button could trigger any specific action.
There is no mention in the API or Webhook documentation that pressing the button sends a webhook or performs any such function.
Therefore, it is not possible for this add-on to trigger events in Home Assistant or change states when the physical button is pressed.

There’s one thing I hadn’t fully understood.
In the SwitchBot app, it seems there is an automation trigger for the Contact Sensor’s button press event (I wasn’t aware of this).
However, I have confirmed that pressing the button does not currently trigger a webhook.
Therefore, there’s still nothing that this add-on can do in its current state.
I think it would be a good idea to request that webhook functionality be added in the API repository:
https://github.com/OpenWonderLabs/SwitchBotAPI
If webhook functionality is added, the add-on can then be updated to support it.

Gotcha. There's an open issue for it but it's 3 years old with no interaction from the developers.
https://github.com/OpenWonderLabs/SwitchBotAPI/issues/62
Which is a shame since it was a deciding factor when I purchased these things.
Thanks for your help!


Removing a dataset linked to various layers of a map results in broken map

STR

Create a dataset
Create a map with 2 layers referencing that dataset
Remove dataset

Expected result
The map is deleted
Actual result
The map isn't deleted and is left like an (accessible) "empty shell", a map with no layers
Related to https://github.com/CartoDB/cartodb/issues/9758
cc/ @javitonino @juanignaciosl

@gfiorav is the user warned about the deletion on step 3?

Yes!

Uhm, cannot reproduce this anymore :disappointed:

This is fixed now (checked both editor and builder) ✨


Why text layer having only sans-serif and monospace fonts?

How can i get the exact font-name,bold,italic for the text which is present in text layer?

Closing since this is a duplicate of #7372.


support Claude

@colleenm I haven't tested this yet as I'm waiting to get an anthropic key.
Overview:

I added a new option field model
if model starts with "gpt-" we use OpenAI's API
if model starts with "claude-" we use Anthropic's API
default model remains gpt-4-turbo

@Onurbon I sent it to you via signal


Explicit punning for record field

It might be useful to have special syntax for record field punning.
Something like {:x, :y} instead of {x, y}. This would be useful for two cases:

in the case where we have let a = {x, y: y - 10}; and we blindly update it to let a = {x - 10, y: y - 10} (forgetting to add the key back) we get something like "Error: 2344: Expecting "}" to finish the block" (last I checked).
in the case where we have a record with one field: {x} gets seen as a block with the return value x. Instead we'd write {:x}.

I like this idea for being explicit.
In the mean time, I don't quite like the idea of having three ways to do the same thing:
{:x, :y}, {x, y}, {x:x, y:y}. It will look very confusing to new comers. Maybe we should pick one of the forms and print everything to it.

I prefer the current punning style, but perhaps we can use a better error message.

@SanderSpies I agree that the first scenario could be helped with an error message, but the second one seems like a straight up grammatical ambiguity to me.  Ideally I'd have them all print to something like {:x, :y} (like how we print function punning) but that's just me.


Merge Release/1.6.2 to master

Summary

Concisely describe the issue and your solution:
Link to existing issue (type "#" to check):
Specify the tests done so far:

Solutions (Optional)
Please describe the details of your solution if it might be too complicated for reviewers.

Codecov Report

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

@@            Coverage Diff            @@
##             master     #197   +/-   ##
=========================================
  Coverage     41.80%   41.80%
  Complexity     1573     1573
=========================================
  Files           232      232
  Lines         12708    12708
  Branches       1574     1574
=========================================
  Hits           5312     5312
  Misses         6748     6748
  Partials        648      648

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 114ce47...114ce47. Read the comment docs.


Add /healthz endpoint for Gardenlet

What this PR does / why we need it:
This PR enhances the Gardenlet with a HTTP server that serves the /healthz and /metrics endpoints. The /healthz endpoint returns 200 OK if the Gardenlet can regularly renew its seed lease. Otherwise, it will return 500 Internal Server Error.
Release note:

The Gardenlet does now run a HTTP server that serves a `/healthz` and `/metrics` endpoint. The bind address and port is configureable in its component config. Also, the `gardenlet` Helm chart was enhanced with a liveness probe that targets the `/healthz` endpoint.

/kind/enhancement

Nice PR!
Can you elaborate why we expose the new endpoints via HTTP? I think especially the /metrics endpoint should be exposed via HTTPS only, shouldn't it?

No specific reason, it just was like this before. I can also move both to HTTPS, should be no problem.

Do you have a suggestion how what the expected behaviour should be and how to implement it?

Do you have a suggestion how what the expected behaviour should be and how to implement it?

Well, the health manager needs to be aware of its callers. Eventually only the caller identity (e.g. seed name) which once set c.healthManager.Set(false) can reset the whole health status of the manager to true again. Other c.healthManager.Set(true) calls will be ignored in the meantime.

I don't think the health manager should be responsible for this. Its sole task should be to store/manage the health status, but the actual information (healthy/unhealthy) should come from the caller.
I was thinking about a separate Go routine in the seed controller which regularly (e.g., every 5s calculates for how many seeds the gardenlet is responsible). The seed lease reconciler reports the individual seed status into a shared map. The mentioned Go routine loops over it, and if all seeds renewed their lease then it sets the health status to true, otherwise it sets it to false - in both cases it resets the map for next iteration. WDYT?

I implemented as discussed via phone/https://github.com/gardener/gardener/pull/2309#issuecomment-627179774, PTAL again.

/hold
I have to adapt the gardenlet self-deployment to also configure the new server section.

/area/quality
/area/robustness
/size/l
/topology/seed
/needs/changes
/platform/all
/priority/normal

/unhold
/drop needs changes
/needs/review
/cc @timuthy

Now when #2361 is merged, I've removed the release note
action developer
Developers have to run `make dev-setup` in order to populate the Gardenlet certificates to their `dev` directories.


transpile confused about resource types with the same name

While working on a test case for the .NET runtime, I discovered that Jco transpile generates invalid code for a component that imports both<EMAIL_ADDRESS>and<EMAIL_ADDRESS> Specifically, it generates two Pollable types, but only imports one of them, leading to an undefined symbol error at runtime.
Here's a test case that reproduces the issue: https://github.com/dicej/jco-transpile-name-clash

Thanks for posting with the clear replication, fix in https://github.com/bytecodealliance/jco/pull/488.


Add support for sorted parsing

The rationale behind this proposal is a bug that resulted from the use of the parse function in Aseprite. It so happened that the position of arguments is sensitive in some instances. For example, in cases where values without any associated options (e.g file names) come before some options, Aseprite opens the file(s), parse and process the opened file(s) before moving on to processing the other arguments. In some of these cases, the options provided via the CLI may be what is supposed to drive how the file is opened, parsed and processed. However, if the file is eagerly processed before the arguments, it results in some hard-to-debug bugs. This PR allows the user have two options:

get access to the CLI values/options as-is
move the option-less values to the end of "queue"

This second option delays the eagerness to open/process option-less values until all driving forces are properly taken care of. If, from Aseprite, we could have direct mutating access to the underlying values and options parsed, there would not have been a need for this PR but (rightly so) the interface exposed is immutable -- thus why I think this PR may be needed.
PS: I am not so sure the name of this function (sortedParse) is the right name for it, but as at the time of making this amendment, this is the only name I could think of.
ADDENDUM: According to this comment, this PR may not be necessary as the Aseprite opened issue isn't really a bug but a feature.

Closing this PR now because it's become obvious that Aseprite was designed exactly to work as-is. It wasn't a bug.


nix::unistd::write should take a signed integer

Hi,
Currently, nix::unistd::write take, as second parameter, a u8:
pub fn write(fd: RawFd, buf: &[u8]) -> Result<usize>

but the unix API specify that it should take a void pointer (from man 3 write):
ssize_t write(int fildes, const void *buf, size_t nbyte);

The main difference between those two prototypes is that the C version allow to give to write a negative integer. With the rust version, we can't give a negative integer to write which mean that we can't write, for example, EOF.
For example, if you write to the standard input of a REPL, you might want to send EOF to the REPL when quitting:
signed char eof = EOF;
write(repl_stdin_fd, &eof, 1);

Currently it is not possible since libc::EOF is an i32 and nix::unistd::write takes an &[u8].
Hence, nix::unistd::write should take an &[i8] and nix should define a a 'new' EOF of type i8:
pub fn write(fd: RawFd, buf: &[i8]) -> Result<usize>

or nix::unistd::write should take an &[i32] so that we can use libc::EOF:
pub fn write(fd: RawFd, buf: &[i32]) -> Result<usize>

I don't believe this is actually correct behavior actually. write() writes bytes, it doesn't write integers. Now a byte is canonically a u8. As soon as you get to more complex types (even i32) you have to manage serialization details (big- versus little-endian for example). And the difference between an i8 and a u8 is really semantics, it just specifies what the bit patterns mean. I'm of the opinion that a u8 is the canonical byte representation as the concept of a "negative byte" doesn't make much sense.
So I believe the solution is to actually modify EOF in libc or to just specify 255. That being said, you can cast it using as:
extern crate libc;

fn main() {
    println!("{}", libc::EOF as u8);
}

which prints 255, which has the same bit pattern as -1i8.

@Susurrus is right.  Closing this issue as a user misunderstanding.


Zksync adapt in node version

Looking forward to take Zksync in node,. Where we can other node runner can contribute on this while staking their other token., More node runner will be intersted especially in this good community

Integrating zkSync into a node infrastructure for wider participation and contribution sounds like a promising approach to expanding the network and enhancing community involvement. Here are some steps you might consider:

Documentation and Resources: Ensure comprehensive documentation and resources are available for node operators interested in running zkSync nodes. This includes setup guides, technical specifications, troubleshooting resources, and community forums.

Developer Outreach: Actively engage with developers and node operators through developer forums, social media platforms, and developer meetups to promote the benefits of running zkSync nodes and encourage participation.

Incentive Mechanisms: Consider implementing incentive mechanisms such as token rewards or governance rights for node operators to encourage participation and contribution to the network.

Community Governance: Establish a transparent and inclusive governance model that allows node operators and community members to participate in decision-making processes related to the zkSync network infrastructure.

Educational Initiatives: Organize educational initiatives such as workshops, webinars, and online tutorials to educate potential node operators about the technical aspects of running zkSync nodes and the benefits they can bring to the network.

Collaboration with Existing Communities: Collaborate with existing blockchain communities and networks to promote zkSync adoption and encourage node operators from diverse backgrounds to participate in the ecosystem.

Feedback Mechanisms: Establish channels for collecting feedback and suggestions from node operators and community members to continuously improve the zkSync node infrastructure and address any issues or concerns.

By implementing these strategies, you can create an ecosystem that fosters collaboration, innovation, and widespread adoption of zkSync among node operators and the broader community.

yes this is great I hope this will adapt in node version this is really great


Add -XX:+PortableSharedCache to JAVA_TOOL_OPTIONS env var

OpenJ9 JVM needs to create "portable" AOT code when run in containers.
Normally, OpenJ9 detects that it is running in containers and turns on
-XX:+PortableSharedCache option by itself.
However, at the moment, OpenJ9 does not support cgroups v2 and cannot
detect whether it's running in containers on systems with cgroups v2.
This commit adds -XX:+PortableSharedCache to the JAVA_TOOL_OPTIONS
env var (which is read by OpenJ9) to specifically enable the portable
AOT feature.
Signed-off-by: Marius Pirvu<EMAIL_ADDRESS>

@AdamBrousseau @narkedi could you please review/merge this PR? Thanks

@AdamBrousseau I see that its not present in the UBI images of Certified version. Will check that and get it added.
Regarding the current changes, they LGTM.


Example for ifftn, https://github.com/scipy/scipy/issues/7168

Similar example as scipy.fftpack.fftn
Adding an example as requested in https://github.com/scipy/scipy/issues/7168

Thanks, merged


[FEATURE] Document MLClient API using spec files

Is your feature request related to a problem?
As a downstream plugin, Flow Framework consumes the ML Commons API via its Client. As such, we are tightly coupled with the API.  During the recent 2.13.0 release cycle, a new feature was added to one of the ML Commons APIs.  Because we were not closely monitoring the development of the feature, it wasn't noticed until manual testing of a workflow using the new feature discovered its lack of implementation.
There is little visibility into new features without tracking Issues and PRs.  Particularly around releases, the documentation is not always written until after the "code freeze" (Release Candidate generation) date, greatly shortening the time window to detect and react to the updates.  In addition, this requires human intervention to search for and identify these changes.
We would like to develop an automated way to discover, via regular testing, when the API specification differs from our implementation, as early as possible.
What solution would you like?
In general:  some file published in some common location that we can machine-read to identify required and optional parameters for the APIs we implement.
Specifically:  OpenSearch recently transisitioned to using the OpenAPI specification for its API.  See, for example, the /cat API: https://github.com/opensearch-project/opensearch-api-specification/blob/main/spec/namespaces/cat.yaml
ML Commons could publish a similar API specification for its Client, using OpenAPI.  It's easy to do, with web-based authoring tools.  I did so for the Extensions SDK Hello World extension at the Swagger website without knowing anything about the spec: https://github.com/opensearch-project/opensearch-sdk-java/blob/main/src/main/java/org/opensearch/sdk/sample/helloworld/spec/openapi.yaml
Then over at Flow Framework we could just read in this spec file, iterate over the APIs we care about and parse the parameters, and make sure we have them all covered.
What alternatives have you considered?
Having fallible humans regularly monitoring PRs, Change Log, and Documentation Website hoping to catch all the changes.
Do you have any additional context?
Other clients (in other languages) may want to consume this spec to auto-generate client classes.  See https://github.com/opensearch-project/opensearch-api-specification/issues/189

+1 on this.

This is how core detects the breaking change https://github.com/opensearch-project/OpenSearch/pull/12974 of the downstream plugins. We should have something similar for ml-commons as Github workflow.


serving static files: Support Range header

I like the Body::from_file implementation a lot!
However, when serving files, the client might want to specify a Range: header to get only parts of the file.
Would be great to have a from_file_range<P>(path: P, range: &str) -> Result<Body, Error> or maybe a
from_file_range<P>(path: P, range: Option<&str>) -> Result<Body, Error>
which parses the Range: header and serves the requested ranges of the file.
I'm new to rust but I can volunteer to try a implementation if this is a wanted feature.

Related: https://github.com/http-rs/tide/pull/687.
Thanks for opening this issue @aawsome. We have a few things in progress right now that will help get us there, but they're not done quite yet. However what you're describing does sound like a great idea, and it's definitely something we want to do.

This sounds like a useful feature but you might want to prototype this as a separate crate first.
We're currently actually thinking about moving the 'serve_file' and 'serve_dir' endpoints into their own crate. I'm prototyping that over here https://github.com/mendelt/tide-fs (warning; this is work-in-progress) you might get some ideas on how to implement something like this as a separate endpoint.

I used the http-range crate and as in my use case no multipart ranges where needed, this did the job:
    let path = path.as_ref();
    let mut file = async_std::fs::File::open(path).await?;
    let mut len = file.metadata().await?.len();

    let mut res;
    match req.header("Range") {
        None => {
            res = Response::new(StatusCode::Ok);
        }
        Some(r) => {
	   match HttpRange::parse(r.as_str(), len){
           Ok(range) if range.len() == 1  => {
					file.seek(Start(range[0].start)).await?;
					len = range[0].length;
					res = Response::new(StatusCode::PartialContent);
				}
	   Ok( _ ) => return Err(tide::Error::from_str(StatusCode::NotImplemented, "multipart range not implemented")),
	   _ => return Err(tide::Error::from_str(StatusCode::InternalServerError, "range error")),
	   }
        }
    };

    let file = io::BufReader::new(file);
    res.set_body(Body::from_reader(file, Some(len.try_into()?)));
    Ok(res)

I would also be interested in this but for Read + Seek from async-std.
I'm currently working on async virtual file system and this would allow to easily support range headers for different cloud backends.
It will also be good to have support for Write + Seek for uploads.


Ignore dead_code hints for weak-only null checks.

Description
When https://github.com/dart-lang/sdk/issues/41985 is fixed, the
analyzer will begin detecting dead code due to "unnecessary" null
checks.  Since we want to retain null checks in Flutter even when they
appear unnecessary (in order to preserve runtime behavior in weak
mode), we need to suppress these dead code hints.
Related Issues
https://github.com/dart-lang/sdk/issues/41985 (PR must land before this issue can be fixed)
Tests
N/A since this change does not affect behavior, it merely avoids dead code hints.
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

Side note to @a14n: the corresponding spec change (https://github.com/dart-lang/language/pull/1134) hasn't been reviewed yet.  To avoid unnecessary churn, I won't land this without approval on the spec change.

test exempt: temporary migration annotations

Please do add some comments though that say what's going on.

Please do add some comments though that say what's going on.

Done

#63057 has been merged.

Reading the doc comment for platform_channel.dart handler type should be changed to be nullable. I will make a PR to change that.

@a14n thanks for noticing this.  It looks like the type of handler in setMockMessageHandler should be made nullable too.  I went ahead and did that in this PR; if you'd rather put that change in a separate PR let me know and I can rebase this one on top of yours.


Update CONTRIBUTORS.csv

Adding my name

@Darioazzali Thank you for accepting the CLA and taking time to contribute!!
Welcome to the Ockam Community 🥳
If you have questions, as you explore, join us on the contributors discord channel https://discord.gg/bewvnm6zqS


Issue with dragging last item and margin

Hello guys and let me get straight to the point :)  I've run into issue with jumping element when it has a margin and is at the last position in the list.
Please take a look at this exampe - https://jsbin.com/retiqekuha/edit?html,css,js,output
Steps to reproduce

Try to move last item up in the list - you can see that the element jumps between the current and the old position
Try to move some other item - no jumps
Now, remove margin rule from list-group-item  and once again try to move last item - also no issue this time

Thank you for the help in resolving the issue

Hey! Is anybody taking care of this issue?

+1
I have the exact same issue

Removing line 739 seems to fix the issue, but I'm not sure what other implications of this change would be

I do also have this issue when using 1.6.0, 1.6.6 & 1.5.1. Works fine with 1.4.2.
(I didn't test more/over versions)
Would be great if this can be fixed :)!

I fixed my issue by removing the margin from the draggable items, and replacing it with some other form of styling to create spacing between the items. (Such as a thick transparent border)

I also have a problem of sorting the last item in a list but even without any margin using 1.6.0 or 1.5.1. But, it works fine with 1.4.2.

Removing line 739 seems to fix the issue

@pruik Which line in which version did you remove?

@pruik Which line in which version did you remove?

Oh oops, I used version 1.5.1
if ((el.children.length === 0) || (el.children[0] === ghostEl) ||
(el === evt.target) && (target = _ghostIsLast(el, evt)) <-- This line (and fixing the if-statement)
) {

Same issue, anyway to fix/update this?
Thanks so much for an otherwise great plugin!

Indeed, this is now fixed: https://jsbin.com/focozegewe/1/edit?html,css,js,output

Not fixed yet, still have this bug with forceFallback mode with version 1.7.0

Can confirm I'm getting the same bug as well.
Have got two exact fiddles, one is running 1.4.2 the other 1.7.0
Try dragging the last item up in both fiddles, you will see the bug occurs in the fiddle running off 1.7.0:
1.4.2:
https://jsfiddle.net/rainerbird/0hnxLq0r/2/
1.7.0:
https://jsfiddle.net/rainerbird/0eyxdj5s/

This worked for me.
Change on line 812 (version 1.7.0)
if (!dragEl.contains(el))

to
if (!dragEl.contains(el) && el.children.length === 0 || el.children.length === 1)

Any updates on this issue? It's still a problem when using the latest version of Vue.Draggable, which uses 1.7.0.

Solved in latest version


Changed to attach correct column writer to exception column

This small change should fix the problem where the exception column in the database table gets the wrong data written to it

Nice catch 👍 This is definitely a copy-paste error from my side. I will release a new version with your fix soon.

Fixes https://github.com/SeppPenner/SerilogSinkForPostgreSQL/issues/15.


Tests

This PR is a draft

Is this still being worked on?

No, my initial plan was to test the HUD validity of customisations against the HUD files, but while it is possible it turned out to be too complicated for the value it would provide, because pretty much all of the HUD customisations work properly anyway. So I would say testing customisations is out of scope for the editor


Master

Fixes #98

BatchIf now supports buffer release on an interval timer as well as the
original features of releasing the buffer on a timer event.
Redesign also incorporates use of Reactive Buffer operator which I don't think existed at the time of writing the original

Failing unit test


[Bug] Uncovered branches before closing

Describe the bug
In our codebase, some Vue files have uncovered "branch" in some cases. I noticed that it always falls to the end of <script> block (whatever line it could be there). Unfortunately I cannot create reproduction, because it's a big project and this is happening only with some files. Other files with similar code have 100% coverage. Please see screenshots. Can you suggest what I could try to solve this issue? Maybe you could help debugging this? My current workaround is to use ignore comments.

Screenshots (insufficient branch coverage is highlighted in red)

Version: 2.7.8
Node Version: 18.17.1

Thanks!

Could you please tell us more infomation?
1, build tool and version, for example, webpack@5?
2, if minify disabled? for example: webpack config: mode = development
3, provide a small source file

We are using Vite version 5.0.12 and it has build.minify = false.

Here is source of one of those files
<script setup lang="ts">
import { ref } from 'vue'
import { useI18n } from '@papershift/locale/src/i18n'
import { useRouter } from 'vue-router'
import type { User } from '@papershift/api/src/user'
import ProfileFieldGroup from<EMAIL_ADDRESS>import ProfileField from<EMAIL_ADDRESS>import EmployeeEdit from '../employee-view/EmployeeEdit.vue'

const { t } = useI18n()

defineProps<{
  user: User
}>()
defineEmits<{
  updated: []
}>()

const router = useRouter()
/* v8 ignore start */
const isEditing = ref(false)
/* v8 ignore stop */
</script>

<template>
  <ProfileFieldGroup
    :title="t('group.title')"
    :subtitle="t('group.subtitle')"
    :can-edit="user.permissions?.profile?.general?.edit"
    @edit-click="isEditing = true"
  >
    <ProfileField :title="t('field.name')" :value="user.name" />
    <ProfileField :title="t('field.email')" :value="user.email" />
  </ProfileFieldGroup>

  <EmployeeEdit
    :user-id="isEditing ? user.id : ''"
    @close="isEditing = false"
    @updated="$emit('updated')"
    @deleted="router.replace({ name: 'employees' })"
  />
</template>

/* v8 ignore start */
<i18n locale="en">
group:
  title: General
  subtitle: Personal details.
field:
  name: Full name
  email: Email address
</i18n>

<i18n locale="de">
group:
  title: Allgemein
  subtitle: Persönliche Daten.
field:
  name: Name
  email: E-Mail-Adresse
</i18n>
/* v8 ignore stop */

Sorry I can't reproduce the issue.
see repo: https://github.com/cenfun/vite-vue-coverage

closed because it's long time no activity. Please open a new issue if the issue is still relevant


Incorrectly showing negative earnings on validators when including the current date

Noticed a bug where the final date has negative incomes for some validators for current date.This is related to the withdrawals that were just enabled. The calculation incorrectly includes withdrawals as losses.

Thanks for reporting this, I thought I had a bit more time to figure out how to address withdrawals. But since the calculation of consensus layer income is based solely on the validator balance difference, this will show incorrect values for every day during which a withdrawal occurred...
I added an alert to the website for now and will be working on fixing this ASAP.

Thank you. @eth2353

This should now be fixed, let me know if I overlooked some edge case but from some manual testing it seems to be fine.
I've also added a separate column to the output CSV that contains the amount withdrawn. This way you can choose to use that data and ignore the consensus layer income, since you only technically gain dominion over it once the ETH is withdrawn.

@eth2353 It's working!


Allow lambdas to only deploy if changes are detected

Lambdas always deploying on each terraform apply reduces the benefits of terraform which is to detect changes and apply changes when necessary.
The lines of code that impact this are

The always_run set to timestamp()
path.cwd (absolute) instead of path.module (relative)

This is not quite as straightforward an issue to solve as it might appear - running locally on a laptop, the zip archive is saved locally so can then be referenced during an apply. However if the Terraform plan and apply stages are separated with an approval step in GitHub Actions, then the apply phase will fail as it won't be able to find the archive file.
With some help from a colleague, we came up with a solution involving GitHub Actions caching.

How about these as steps

Run terraform plan and save the plan to a file
If no changes, exit successfully
If changes, prompt the user
If the user says no do not apply, exit successfully
If the user says yes apply, then upload the plan file as an artifact
The apply step should now download the plan file artifact
Finally run terraform apply

The issue I encountered when looking at these options previously is that the zipped Lambda code isn't included within the Terraform plan.
A collaborator came up with a good solution for the Serverless CA project using upload as an artifact and use of the GitHub Actions cache.
That achieved the aim which was:

usual behaviour when running locally on a laptop
GitHub Actions with an approval step for the Terraform apply phase, and uploading of the plan (not including the zip archive) as an artefact from the plan stage to be dowloaded during the apply stage
The first Github Actions run, the cache is populated
Subsequent Terraform plans don't show a rebuild of the Lambdas unless there are changes to the zip hash digest


[6.3.0] testing_phase2 Please ignore.

Forked from #346

Cherry-picked in https://github.com/bazelbuild/bazel/pull/388


Log version info

Codecov Report

Merging #54 into master will increase coverage by 0.79%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master      #54      +/-   ##
============================================
+ Coverage     53.07%   53.87%   +0.79%
- Complexity      516      542      +26
============================================
  Files           104      104
  Lines          2504     2504
  Branches        137      137
============================================
+ Hits           1329     1349      +20
+ Misses         1093     1073      -20
  Partials         82       82

Impacted Files
Coverage Δ
Complexity Δ

...ava/com/axibase/tsd/model/version/AtsdVersion.java
80% <ø> (ø)
5 <0> (+1)
:arrow_up:

...va/com/axibase/tsd/model/version/TimeZoneInfo.java
66.66% <0%> (+66.66%)
3% <0%> (+3%)
:arrow_up:

...n/java/com/axibase/tsd/model/version/Settings.java
66.66% <0%> (+66.66%)
3% <0%> (+3%)
:arrow_up:

.../java/com/axibase/tsd/model/version/BuildInfo.java
80% <0%> (+80%)
5% <0%> (+5%)
:arrow_up:

...n/java/com/axibase/tsd/model/version/DateInfo.java
83.33% <0%> (+83.33%)
6% <0%> (+6%)
:arrow_up:

...in/java/com/axibase/tsd/model/version/License.java
87.5% <0%> (+87.5%)
8% <0%> (+8%)
: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 40c8606...3b7c5d8. Read the comment docs.


Does I need to add a video tag?

Sorry but I don't understand how to use this library. The livesteam example works online but I don't know how to use it.

InputStream.createLiveStream = function(video) {
video.setAttribute("autoplay", true);
....
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream"
},
decoder : {
readers : ["code_128_reader"]
}
}, function(err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
});

It seems that one needs to add an element within your page with id="interactive", class="viewport"
such as:

It seems that the interface is a little bit odd, such as there's no way to independently control the video from the decoding, you can't pass in an element to attach the video to... a problem i'm trying to work out is that when video stops, i'm stuck with a big black empty space.. i might open a pull req on some of these changes, if maintainer would appreciate some API changes to make things line up in ways i would expect.. but then, i'm not always the best person for expecting things in ways that other people find sane, either ;)

@ericblade Thanks for answering this question. There is definitely room for improving the API. I'm not really sure how to separate it nice and clean from the DOM and all the dependencies. If you have a suggestions, or even a pull request, I would love to see your ideas. With that, even #52 might get resolved.

Sure, I spent a couple of hours trying to digest a way to get this into an app that would run on my phone for mass scanning of UPC codes.  It seems to work great on my N5, but I suspect that older slower phones are going to crawl with it.
I am unfortunately stuck with work and family things, so I'm not sure I'm able to contribute in the very near future, but if nothing's changed when I get back to it, then I'd be happy to submit any changes that I make for potential inclusion.  If I do anything, it would probably be adding new methods and possibly making additions or changes to some API signatures..

Alright then, I'll close this issue for now and continue working on #52.


Some searches break because of query selector

For example search for 'port': http://npmsearch.com/?q=port

gah, thank you for reporting! so weird - I'll look into it

fixed as of #18


language formatting

First language formatting attempt discussed on - https://github.com/SeleniumHQ/docs/issues/69
Not an expert of all the languages hence they should be proof read.
Updates: I am having a second though about writing code samples in html. Working on old selenium do in rst was easier as it did not require any special encoding (for <, > etc). But this is something one needs to take care of when writing code sample in html. What do other doc authors think of it?

I closed the pull request as not comfortable with whole idea of tackling code examples in html, getting rid of encoding etc.


update azd auth login for azuredevelopercli credential

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
AZD team update azd login to azd auth login. This is a small change and I'll skip changelog.  If the pr is approved, would someone help me to click merge button? I couldn't do that as it says The base branch restricts merging to authorized users.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Netatmo broken in 0.95

Home Assistant release with the issue: 0.95

Last working Home Assistant release (if known): 0.94.x
Operating environment (Hass.io/Docker/Windows/etc.): Hassio

Component/platform: Netatmo

Description of problem: Netatmo integration broken. Entities not available, error in log (see below)
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
netatmo:
  api_key: !secret netatmo_api_key
  secret_key: !secret netatmo_secret_key
  username: usr
  password: !secret netatmo_password
  discovery: False

Traceback (if applicable):
2019-06-27 13:59:25 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up platform netatmo
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 143, in setup_platform
    config.get(CONF_STATION)))
  File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 190, in __init__
    self._module_type = self.netatmo_data. \
AttributeError: 'NoneType' object has no attribute 'moduleByName'

Additional information:

I have the exakt same stack trace

I had to downgrade to 0.94.4 because netatmo is very important for me and i have many automations based on values from netatmo indoor/outdoor. Please fix this as fast as possible.

Enabling discovery will fix the issue partially if you have multiple weather stations on the same account or completely if you have just one station.

Enabling discovery will fix the issue partially if you have multiple weather stations on the same account or completely if you have just one station.

I don't understand. I have this in config ...
# Discover some devices automatically
discovery:
  ignore:
    - songpal

and netatmo is broken. What exactly do you mean with that "Enabling discovery will fix.."?

I've meant discovery: True in the netatmo config section.

This is fixed in https://github.com/home-assistant/home-assistant/pull/24788.
What @onlyoneme was talking about is
netatmo:
  api_key: !secret netatmo_api_key
  secret_key: !secret netatmo_secret_key
  username: usr
  password: !secret netatmo_password
  discovery: True

Hi, I got this error when starting up HA
Fri Jun 28 2019 08:40:12 GMT+0200 (Mitteleuropäische Sommerzeit)
Error while setting up platform netatmo
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 143, in setup_platform
config.get(CONF_STATION)))
File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 190, in init
self._module_type = self.netatmo_data.
AttributeError: 'NoneType' object has no attribute 'moduleByName'
Everything is working exept missing attributes (garden_max_temp and garden_min_temp)
will that be fixed as well?

The fix is not yet release but should hopefully ship with 0.95.2.

I just tried min_temp and max_temp and it works fine.

Hmm.. interesting. Both are not detected during HA startup. I rebooted niww several times. Even no entities with a slightly different name. Ok, is not that important

You have #24788 in your system?

I'm on 0.95. So most likely not.
But it's OK. Will wait for 0.95.2

Just updated to 0.95.3 and after 3 restarts, I always got the following error and no netatmo devices showed up in HA. I'm really looking forward to getting my Netatmo integration stable again after more than one month now.
Error while setting up platform netatmo
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 126, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 161, in setup_platform
    dev.extend(find_devices(data))
  File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 177, in find_devices
    data, module_name, condition.lower(), data.station))
  File "/usr/src/homeassistant/homeassistant/components/netatmo/sensor.py", line 199, in __init__
    self._module_type = module['type']
TypeError: 'NoneType' object is not subscriptable

Yes, I got multiple locations in my Netatmo account but only want to have one specific one tracked by HA:
Component:
netatmo:
    api_key: !secret netatmo_api_key
    secret_key: !secret netatmo_secret_key
    username: !secret netatmo_username
    password: !secret netatmo_password
    discovery: false

and Sensor
- platform: netatmo
  station: Berlin

This config has been working fine since the beginning and I had lots of troubles of the Netatmo component crashing randomly and now it won't get started again. I didn't see any breaking changes in the logs though. What am I doing wrong?

It happens when you provide only station name without any modules in your config file.

According to the docs it's not necessary: https://www.home-assistant.io/components/netatmo/#sensor
Also, as I mentioned it's been working fine like with the same config for more than a year
It broke after I updated from 0.95.0 to 0.95.3. I just downgraded again to 0.95.0 and it's working fine.

You can be right regarding previous releases and maybe you've faced a side effect of fixes implemented in the current release. I've just suggested a possible workaround.


Add "Single Product View" and update Buy One Drink view

Motivation
In Buy one drink view, the user should be able to view information about the product before purchasing.
Tasks

[ ] Get the product list, categories, prices & descriptions from somewhere

[ ] These descriptions don't exist yet; they should be written
[ ] misc: Product illustration(s). These are seen at top of product view. Could re-use illustrations based on product category; no need for unique illustrations for every single product

[ ] misc: Filter chips (top of overview page) should be focused depending on scroll position, and tapping one should bring the relevant section into view
[ ] misc: List available milk -- this info should probably not be directly baked into the product description, but instead fetched from somewhere else
[ ] misc: Product purchasing flow (what is seen after pressing "Pay with MobilePay") could also use a refresher -- out of scope for this issue
[ ] Transition design to v4 spec as shown below

Work can begin on these tasks using our current catalogue of widgets and by leveraging dummy repositories.
Design spec (v4.2, 24 Apr 2023)

Overview (page)
Product view (fullscreen dialog)

If we simply want to display all the possible drinks, we can do so already, we just need to add them to the database. This issue seems to be more focused on redesigning the UI, despite the title

How would you better segment/title this issue? I want to get as close to the v4 design as possible.


New small RNA-seq training material

First part of a new set of small RNA-seq training materials. The only addition here is the tutorial markdown file (which is incomplete at the moment, but usable). Dockerfile, tools.yaml, library_data.yaml, etc. are to be added after the training material restructuring happens to avoid conflicts with the current versions of these files for the RNA-seq tutorials.

Ok, let's get this in. This is already a valuable resource and I will try to help with the missing stuff as soon as the new infrastructure is in place.

Thanks @bgruening! I should be able to get most of the additional materials done, I just need will need to update with correct file names/paths once each tutorial is in its own folder.

@malloryfreeberg that's awesome, thanks a lot!


Duplicate @Test annotation added to method

I have created a simple recipe to add a Junit5 @Test annotation to a method that has a legacy @testName custom javadoc tag using the latest 7.40.8 openrewrite release. A simple RewriteTest shows the annotation being added twice. In debugging this, the reason is that the<EMAIL_ADDRESS>used to validate that a method does not already have an annotation fails to match the existing annotation because the matchesAnnotationName call to TypeUtils.asFullyQualified(annotation.getType()) returns null and the annotation.getType() returns Unknown.
Full test repo is here:
https://github.com/starksm64/tck-rewrite-tools.git
Output of mvn test:
[INFO] Running tck.conversion.rewrite.ConvertTestNameTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Visting(someTestMethod)
Found unknown block tag: testName:
Added @Test annotation?
MethodDeclaration{test.somepkg.SomeTestClass{name=someTestMethod,return=void,parameters=[]}}
Visting(someTestMethod)
Found unknown block tag: testName:
Added @Test annotation?
MethodDeclaration{test.somepkg.SomeTestClass{name=someTestMethod,return=void,parameters=[]}}
[ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.735 s <<< FAILURE! - in tck.conversion.rewrite.ConvertTestNameTest
[ERROR] tck.conversion.rewrite.ConvertTestNameTest.addTestAnnotation  Time elapsed: 0.729 s  <<< FAILURE!
org.opentest4j.AssertionFailedError:
[Expected recipe to complete in 1 cycle, but took at least one more cycle. Between the last two executed cycles there were changes to "test/somepkg/SomeTestClass.java"]
expected:
  "package test.somepkg;

  public class SomeTestClass {

      /**
      @testName: someTestMethod
      */
      @Test
      public void someTestMethod() {
      }
  }"
 but was:
  "package test.somepkg;

  public class SomeTestClass {

      /**
      @testName: someTestMethod
      */
      @Test
      @Test
      public void someTestMethod() {
      }
  }"
        at org.openrewrite.test.RecipeSchedulerCheckingExpectedCycles.scheduleVisit(RecipeSchedulerCheckingExpectedCycles.java:69)
        at org.openrewrite.RecipeScheduler.scheduleRun(RecipeScheduler.java:106)
        at org.openrewrite.Recipe.run(Recipe.java:498)
        at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:320)
        at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:131)
        at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:126)
        at tck.conversion.rewrite.ConvertTestNameTest.addTestAnnotation(ConvertTestNameTest.java:18)

[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR]   ConvertTestNameTest.addTestAnnotation:18 [Expected recipe to complete in 1 cycle, but took at least one more cycle. Between the last two executed cycles there were changes to "test/somepkg/SomeTestClass.java"]
expected:
  "package test.somepkg;

  public class SomeTestClass {

      /**
      @testName: someTestMethod
      */
      @Test
      public void someTestMethod() {
      }
  }"
 but was:
  "package test.somepkg;

  public class SomeTestClass {

      /**
      @testName: someTestMethod
      */
      @Test
      @Test
      public void someTestMethod() {
      }
  }"
[INFO]
[ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

Code for the JavaIsoVisitor that adds the annotation ConvertJavaTestNameVisitor.java:
package tck.jakarta.platform.rewrite;

import org.openrewrite.java.AnnotationMatcher;
import org.openrewrite.java.JavaIsoVisitor;
import org.openrewrite.java.JavaTemplate;
import org.openrewrite.java.tree.Comment;
import org.openrewrite.java.tree.J;
import org.openrewrite.java.tree.Javadoc;

import java.util.Comparator;

/**
 * Find methods marked with a @testName javadoc comment and add a Junit5 @Test annotation
 * @param <ExecutionContext>
 */
public class ConvertJavaTestNameVisitor<ExecutionContext> extends JavaIsoVisitor<ExecutionContext> {
    private final AnnotationMatcher TEST_ANN_MATCH = new AnnotationMatcher("@org.junit.jupiter.api.Test");

    private final JavaTemplate testAnnotationTemplate =
            JavaTemplate.builder(this::getCursor, "@Test")
                    .imports("org.junit.jupiter.api.Test")
                    .build();

    public ConvertJavaTestNameVisitor() {
    }

    @Override
    public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, ExecutionContext ec) {
        String methodName = method.getSimpleName();
        if(method.getAllAnnotations().stream().anyMatch(TEST_ANN_MATCH::matches)) {
            System.out.printf("Visting(%s) skipped due to @Test\n", methodName);
            return super.visitMethodDeclaration(method, ec);
        }
        System.out.printf("Visting(%s)\n", methodName);
        for(Comment c : method.getComments()) {
            if(c instanceof Javadoc.DocComment) {
                for(Javadoc jd : ((Javadoc.DocComment) c).getBody()) {
                    if(jd instanceof Javadoc.UnknownBlock) {
                        String name = ((Javadoc.UnknownBlock) jd).getName();
                        System.out.printf("Found unknown block tag: %s\n", name);
                        if(name.equals("testName:")) {
                            method = method.withTemplate(testAnnotationTemplate,
                                    method.getCoordinates().addAnnotation(Comparator.comparing(J.Annotation::getSimpleName)));
                            System.out.println("Added @Test annotation?\n"+method);
                        }
                    }
                }
            }
        }

        return super.visitMethodDeclaration(method, ec);
    }

}

hi @starksm64 ! Looks like you're very close, with an implementation that's indeed a good recipe candidate. I'll try to explore here as well, but looking briefly at your implementation I have a feeling the type returns null because the annotation template (and possibly also the unit tests) might be missing a classpath entry before it's able to resolve the test annotation. Here's two examples where we similarly add a missing annotation, while providing the appropriate classpath entries:

https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/main/java/org/openrewrite/java/testing/junit5/AddMissingNested.java#L110
https://github.com/openrewrite/rewrite-testing-frameworks/blob/main/src/test/java/org/openrewrite/java/testing/junit5/AddMissingNestedTest.java#L35

Hope that already helps you debug a bit, before I'm back to work tomorrow to explore this further myself
If this is a recipe you'd like to contribute we'd also gladly accept it into https://github.com/openrewrite/rewrite-testing-frameworks

Indeed resolved with these changes: https://github.com/openrewrite/rewrite/issues/3260
I'm guessing you might still want to work on your implementation; potentially

[ ] potentially adding @DisplayName("<original testname>")
[ ] Removing the print statements
[ ] Removing the Javadoc tag

With the classpath issues resolved I imagine the above steps will be easier, especially when you step through with the debugger. Hope this helps!

@timtebeek thanks so much for the feedback and especially the PR.
In going through the docs I had the impression that recipe code saw the runtime environment classpath. Does a recipe basically need to restate any build dependency needed to have the recipe code compile?

No problem at all; happy to help & see you develop recipes; Feel free to ask more questions here, or on our public Slack.
We should make classpath usage more explicit; as right now the page about JavaTemplate does not mention classpath at all. I've logged this as an improvement.
We do have some documentation about using classpath dependencies, but that mostly goes in depth on using multiple different versions in a single project. Hope that's still of some use; happy to hear any feedback such that we can improve this area of the docs still.

Also had a quick look at running recipes at scale against some of the arquillian repositories, in case that interests you; Here's a quick recipe run of some static analysis fixes as an example: https://public.moderne.io/results/LwqI7
You can run recipes against these yourself as well by creating a repository group

Happy to walk you through this as well; it's another reason why it might help to have your recipes available through OpenRewrite.


Disocrd

Can it be possible to have a discord community
I can do one for you if you want

Sorry, we already have a community in Telegram :)

Can ti be possible to have one in discord I can make everythings

I think it would be better than telegram


SeedTotem unable to use multiple matierials in custom JSON; missing counter increment?

I just did a bit more testing and narrowed the issue down to how you're parsing the JSON/using that JSON. If I only use an empty JSON object,
{}
then the game loads fine, and I can build entirely free seed totems. If I add only a single key/val pair, that works, too.
{
"FineWood": 5
}

Using a second key/val pair caused the bug to happen:
{
"FineWood": 5,
"GreydwarfEye": 5
}

https://github.com/MathiasDecrock/ValheimMods/blob/master/SeedTotem/SeedTotemPrefabConfig.cs#L75-L87

Fixed in 1.1.5


I can save/update the list with a name (user can have only one active list at a time)

Trabajo completado


allow overrides for next-gen profiles

Allow some input parameters to apps/bundles to be overridden.

Support Helm value overrides at the very least
Stretch goal: allow patches to arbitrary manifests

Aha! Link: https://pf9.aha.io/features/ARLON-130

Hey team! Please add your planning poker estimate with Zenhub @bcle @jayanth-tjvrr @Rohitrajak1807 @ShaunakJoshi1407

Moving this out of v0.11


TypeError: Expected input type is Uint8Array (got object)

Been trying to upgrade to cuid2 from cuid on-off for a while now but never been able to solve this issue. Hoping maintainers or community can help.
I installed with the following:
yarn remove cuid

yarn add @paralleldrive/cuid2

And my diffs are essentially
- import cuid from "cuid"
+ import cuid2 from "@paralleldrive/cuid2"

- cuid()
+ cuid2.createId()

But I'm always seeing the error:
TypeError: Expected input type is Uint8Array (got object)

> 1 | import cuid2 from "@paralleldrive/cuid2"

Same with:
TypeError: Expected input type is Uint8Array (got object)

> 1 | import { createId } from "@paralleldrive/cuid2"

Only seems to be a problem on my web package, my api is not complaining.

Can you tell me more about your environment?

Hi @ericelliott, I encountered the same issue while running some test cases with Jestand @paralleldrive/cuid2. It seems that Jest adds a large global object which is not properly converted into a Buffer object, but instead, it is converted into a string with all the object keys. I suspect this happens in the createFingerprint function.
Ideally, sha3 should receive a Uint8Array as an argument, but in this case, it is receiving a string. To provide more context, I've included some logs from the callstack at createFingerprint:

I hope this clarifies the issue. Thank you! 😄

@miguel-osuna

It seems that Jest adds a large global object which is not properly converted into a Buffer object, but instead, it is converted into a string with all the object keys

String of object keys is exactly what was requested in createFingerprint() method:
const globals = Object.keys(globalObj).toString();

According to the screenshot you shared, it's a string of keys from  window object.

Ideally, sha3 should receive a Uint8Array as an argument, but in this case, it is receiving a string.

The error itself is coming from @noble/hashes/src/utils.ts:98.
export type Input = Uint8Array | string;
export function toBytes(data: Input): Uint8Array {
  if (typeof data === 'string') data = utf8ToBytes(data);
  if (!(data instanceof Uint8Array))
    throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);
  return data;
}

As you can see Input type allows both Uint8Array and string. You pass it a string of object keys so it rewrites data = utf8ToBytes(data) first and then it fails, because whatever is returned from utf8ToBytes() function is not a Uint8Array instance.
I would suggest to dig into this utf8ToBytes() method:
export function utf8ToBytes(str: string): Uint8Array {
  if (typeof str !== 'string') {
    throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);
  }
  return new TextEncoder().encode(str);
}

I wasn't able to replicate this problem on my local, running this logic within the Jest test suite, but the bottom line seems to be that there is no problems with @paralleldrive/cuid2. The issue is coming from util.TextEncoder.encode([input]) which should return instance of Uint8Array, but doesn't seem to be working as expected for your test case. It could be due to TypeScript or Jest manipulations.

Hi everybody.
In order to move forward with this, I'd need a minimal demonstration that reliably reproduces the problem. Can somebody put one together in CodeSandbox or similar or a GitHub repo we can clone, and share the link?

If we can validate the bug, we may be able to wrap a try/catch around it, and if it fails, maybe we could just count the globals instead of read their names, and pad with random entropy to make up for the lost entropy?

I'm running into the exact same issue.  I'm using React/Redux with Jest.
"react": "18.2.0" "jest": "29.5.0"
It seems simple enough to reproduce, as I have a file that uses the createId() method, but Jest fails when trying to import createId()

I've created a quick repo to show how easy it is to reproduce.  https://github.com/AlaricWhitney/cuid2-issue.  just run npm run test and the issue will show up.

Any ideas on root cause? What is jest doing that makes the list of global names fail?

JSDOM environment in Jest
This seems to be related to the use of jsdom as it builds global object which doesn't match the one provided by Node.js. There is a known issue in Jest when jsdom environment is used and results of new TextEncoder().encode() and new Uint8Array() are different, refer to https://github.com/jestjs/jest/issues/9983.
The easy fix for the example provided by @AlaricWhitney would be to use custom environment which overwrites Uint8Array provided by jsdom:

Install jest-environment-jsdom. Make sure to use the same version as your jest (in cuid2-issue example it was v27), ref. https://stackoverflow.com/a/72124554

❯ npm i jest-environment-jsdom@27

Create jsdom-env.js file in the root

const JSDOMEnvironmentBase = require('jest-environment-jsdom');

Object.defineProperty(exports, '__esModule', {
    value: true
});

class JSDOMEnvironment extends JSDOMEnvironmentBase {
    constructor(...args) {
        const { global } = super(...args);

        global.Uint8Array = Uint8Array;
    }
}

exports.default = JSDOMEnvironment;
exports.TestEnvironment = JSDOMEnvironment;

Update scripts to use the custom environment:

{
    // ...
    "scripts": {
        // ...
        "test": "react-scripts test --env=./jsdom-env.js",
        // ...
    },
}

P.S. Change will make tests in the example fail, since expectations were not updated to match results from createId.
JSDOM lacks features
Also it is known that jsdom doesn't support TextEncoder and TextDecoder, refer https://github.com/jsdom/jsdom/issues/2524. The workaround would be similar, see this comment.

The bottom line is that when Unit Tests are executed via Jest, features like Uint8Array/TextEncoder/TextDecoder may be available in jsdom environment but will produce results different from those expected in Node.js or browser. It might be resolved by jsdom at some point, but there is no clear ETA on the issue. I personally don't think it's on cuid2 to adjust and use something else, but owner of the package may fill differently 🙃

@kisaiev Thank you for the root cause analysis. It sounds like there would be no trivial fix to get this working with Jest. This is a bug in Jest, not a bug in Cuid, and the bug in Jest is caused by reliance on the outdated JSDOM implementation.
Note: This would not just break Cuid2 - it also breaks other things that would rely on new, unsupported DOM APIs.
Yet another reason to use Riteway instead of Jest.
Could we document a workaround for Jest users?
e.g., before loading Jest, __backupUint8Array__ = Uint8Array
Then in your jest code, before calling cuid2: global.Uint8Array = __backupUint8Array__;. Does that work?

Can anybody confirm that this solution works?
If not, does this solution work?  I think we should add a troubleshooting section to the doc on how to get this working with Jest.

The bottom line is that when Unit Tests are executed via Jest, features like Uint8Array/TextEncoder/TextDecoder may be available in jsdom environment but will produce results different from those expected in Node.js or browser. It might be resolved by jsdom at some point, but there is no clear ETA on the issue. I personally don't think it's on cuid2 to adjust and use something else, but owner of the package may fill differently 🙃

I have validated that the solution that @kisaiev does resolve the TypeError: Expected input type is Uint8Array (got object) issue.

e.g., before loading Jest, backupUint8Array = Uint8Array
Then in your jest code, before calling cuid2: global.Uint8Array = backupUint8Array;. Does that work?

I have validated that this does not work.
https://github.com/jsdom/jsdom/issues/2524#issuecomment-1480930523 also does not work.

Since it doesn't look like this is something we can easily fix with a code change, I have updated the Readme Troubleshooting section.

@AlaricWhitney, @ericelliott I have validated that this works, hopefully it works for you too.
jest.config.mjs
const config = {
  ...
  // testEnvironment: 'jest-environment-jsdom',
  testEnvironment: './jest-environment-jsdom.js', // had to extend; see https://github.com/jsdom/jsdom/issues/2524
}

jest-environment-jsdom.js
const { TextEncoder, TextDecoder } = require('util')
const { default: $JSDOMEnvironment, TestEnvironment } = require('jest-environment-jsdom')

Object.defineProperty(exports, '__esModule', {
  value: true,
})

class JSDOMEnvironment extends $JSDOMEnvironment {
  constructor(...args) {
    const { global } = super(...args)
    global.TextEncoder = TextEncoder
    global.TextDecoder = TextDecoder
    global.Uint8Array = Uint8Array
  }
}

exports.default = JSDOMEnvironment
exports.TestEnvironment = TestEnvironment === $JSDOMEnvironment ? JSDOMEnvironment : TestEnvironment

This was a frustrating issue...

@coryasilva Did the instructions from the readme not work for you?

Here's the ESM version of @coryasilva's snippet for packages of type module/ESM.
import { TextEncoder, TextDecoder } from 'util';
import jestEnvironmentJsDom from 'jest-environment-jsdom';

// jest-environment-jsdom attaches properties to exports object so it needs to be imported like this
const { default: $JSDOMEnvironment, TestEnvironment: JSDOMTestEnvironment } = jestEnvironmentJsDom;

class JSDOMEnvironment extends $JSDOMEnvironment {
  constructor(...args) {
    const { global } = super(...args);
    global.Uint8Array = Uint8Array;
    if (!global.TextEncoder) global.TextEncoder = TextEncoder;
    if (!global.TextDecoder) global.TextDecoder = TextDecoder;
  }
}

export const TestEnvironment = JSDOMTestEnvironment === $JSDOMEnvironment ? JSDOMEnvironment : JSDOMTestEnvironment;

export default JSDOMEnvironment;

please feel free to open a PR


Add an optional collection home page displaying editable content

Is your feature request related to a problem? Please describe.
It would be nice if DSpace admin users could save and display more content about a collection and have that content be displayed on a dedicated collection home page.
Describe the solution you'd like

Add new metadata fields to the DSpace database for saving the following data:

Collection header (has inner HTML)
Collection footer (has inner HTML)
Collection owner (has inner HTML)
Collection introduction (has inner HTML)

Add a new (optional) collection home page which displays the aforementioned collection descriptive content /collections//home

This collection home page should contain a search that only exposes items from that collection.

Link to the new collection home page from the sub-collection page

Describe alternatives or workarounds you've considered
You could display the new collection descriptive content fields on the collection browse page. As currently happens for the News and copyright saved for a collection.
However, having a dedicated page for displaying collection descriptive content would be nicer.
Additional information

Seems related to #3254.   Similar to that, I'll add that this feature would require very careful implementation.  Whenever HTML-based content can be "injected" into a page, there is a risk for XSS attacks (or similar attacks).  Any implementation of this feature would need to guard against unwanted content being added into Collection pages.


Downloaded sets different than on published RESULTS

NOTE: I'm referring to the RESULTS file on the current Kaldi commit, not goodatleas/zeroth
Hi, I tried running the provided recipes for zeroth_korean on kaldi.  I didn't change anything on the scripts but when I looked at the evaluations, I found that the test set is only giving me 6641 "words" (individual tokens separated by space).  The RESULTS text file however, shows that there are 9253 words.  What do you think is the issue why there is a discrepancy with the data I'm processing?
Another insight on my current setup, when I reached nnet3's common procedures for ivector extraction, I first tried turning off speed perturbation.  Once it reaches the point where the training data is being subset to 30,000 utterances, it gave an error because the training set (train_clean) is only 22263 files.  Maybe there's something I'm missing?

Hi,
Korean is agglutinative language, so all the text should be analyzed by subword (morpheme). As a raw testset text file has 6641 word, but after segmented by local/updateSegmentation.sh, the number of morphemes will be around 92XX.
If you are using data from openslr, training data is 22263 files.
To get 30k subset, you should do speed perturbation. the training set will be tripled and you can get 30k of perturbed data.

Hi Lucas,
Is there any reason why the segmentation procedure is not part of the current "run" scripts' pipelines?  As I mentioned, I didn't change anything in the scripts except for some flags (e.g. speed_perturb).  Should it not be part of the score scripts?  Maybe I'm missing a flag to do the tokenization somewhere?
Regarding the speed perturbation, yes I understand that with speed perturbation I can get 3x more.  But I was just wondering about having the subsetting to 30,000 step there even when perturbation is turned off, that maybe there's a larger dataset I'm missing.

Oh, it's my bad.  I was running the run script stages on a per copy-and-paste basis and I didn't realize I was skipping the update segmentation stage.    Sorry for the trouble!


cleanup: remove io/ioutil package

Part of #https://github.com/Project-HAMi/HAMi/pull/135

Add more details here about the diff between  ioutil.ReadFile & os.ReadFile from GPT-4.
Both ioutil.ReadFile and os.ReadFile are functions in Go language used to read data from files. However, as of Go version 1.16, the ioutil package has been deprecated. Most functions previously in ioutil have been moved to new packages such as os and io. Thus, ioutil.ReadFile is deprecated, and it's recommended to use os.ReadFile.
While these two functions serve similar purposes, reading data from a specified file path, they do differ slightly in usage:
ioutil.ReadFile:
This function reads the entire content of a file and returns a byte slice and an error. If the operation is successful, the error is nil. The function closes the file after use. This function was deprecated in Go 1.16.
data, err := ioutil.ReadFile("path/to/file")
os.ReadFile:
This function, introduced in Go 1.16, operates almost identically to ioutil.ReadFile. It reads the entire content of a file and returns a byte slice and an error. If the operation is successful, the error is nil. The function also closes the file after use.
data, err := os.ReadFile("path/to/file")
In comparison, os.ReadFile is preferred because ioutil.ReadFile has been deprecated and their functionalities are nearly identical with little difference in usage.

agree, thanks for fixing that


Issue a warning if the Logger is being built before invoking Datadog.initialize()

Is your feature request related to a problem? Please describe.
I couldn't get the library to send in logs.
RUM was working, but logger wasn't sending to datadog, and I just couldnt find the reason.
After a lot of investigations it turned out it was because I was initializing the logger
        logger = Logger.Builder()
            .setNetworkInfoEnabled(true)
            .setLogcatLogsEnabled(true)
            .setDatadogLogsEnabled(true)
            .setBundleWithTraceEnabled(true)
            .build()

before I invoked
        Datadog.initialize(ctx, credentials, configuration.build(), TrackingConsent.GRANTED)

Describe the solution you'd like
I would have saved a lot of time, if either

an exception was thrown if Logger was initialized before Datadog
a warning that no logs at all will be sent if Logger was initialized before Datadog
or logs would be working event if the Logger was initialized before Datadog

Hi @nordfalk indeed this is something we should print in the logcat, we'll work on this real soon

Hello @nordfalk!
We've released the first beta of our SDK v2, and now you will be notified if you are trying to create Logger before SDK is actually initialized.
Feel free to re-open this ticket if the solution doesn't solve your case.

Hi @0xnm , thanks for the suggestion!
I gave it a try, but I had to give up in the end.
It seems that upgrading to v2 makes my Room database kapt compilation fail, with this error: https://stackoverflow.com/questions/72508332/android-studio-attempting-to-assign-weaker-access-privileges-error-on-room-da
It seems you have changed dependency to Room 2.5.1 (https://github.com/DataDog/dd-sdk-android/commit/1f4323c4971c23395ded8851b96dd01d9e0312d1), but I am stuck on Room 2.4.3 and cannot easily upgrade.
Same with WorkManager.
You might consider to write in your migration guide that its not possible to migrate to v2 if you use Room 2.4.3 or earlier.


Error: The port selected is in use, please configure an open port.

Hello.
I've been able to install cellxgene_VIP but the visualization plugin window is "blank".
When I restart the program I now get a new error:
Error: The port selected 5005 is in use, please configure an open port.

I've tried restarting it with multiple ports 5005 to 5100 and I get the same message with all of them.
Any suggestions what might be going on?
Thanks

Okay I've got an update. If I wait about 5 minutes the command works. I'm not sure why.
However although the page loads the visualization plugin window is now missing.
I looked at the chrome developer tools console and I get this text:
Form submission canceled because the form is not connected (index):1

Okay I've got an update. If I wait about 5 minutes the command works. I'm not sure why.
However although the page loads the visualization plugin window is now missing.
I looked at the chrome developer tools console and I get this text:
Form submission canceled because the form is not connected (index):1

Hi,
Would you please confirm your ports 5005 to 5100 are open or used by another program? Usually when other program is using your specified port, it would complain. Also, when you stop a cellxgene launch, wait a little bit for it to release the port and then start again (point to the same port).
Hope this helps.

Hi,
Would you please confirm your ports 5005 to 5100 are open or used by another program? Usually when other program is using your specified port, it would complain. Also, when you stop a cellxgene launch, wait a little bit for it to release the port and then start again (point to the same port).
Hope this helps.

@dfermin could you please download and re-install the current version of vip, run './config.sh' in your env since you have your env setup. And please let us know if you are still having issues.
Best,