Rename project to Kamal

The kamal is one of the earliest navigational tools that used measuring altitude to determine latitude. The word kamal means “guide” in Arabic.1 Introduced to the Europeans by the Arab people, the kamal was useful in determining altitude, and lead to the development of newer tools such as the cross-staff. Famed explorer Vasco da Gama’s experienced navigator used the kamal to help them navigate around the tip of Africa as they sailed to Asia.

https://exploration.marinersmuseum.org/object/kamal/

Why though?

Is MRSK a copyright issue?

A certain shipping company rattled their saber.

Will sort CI issues in a follow-up.

Just as an FYI, Kemal is a longtime and fairly popular Sinatra-like web framework for Crystal.
It also seems like they might be the same word in Turkish and Arabic when used as a person's name.
Just pointing this out since it might cause some confusion in both communities.

Just as an FYI, Kemal is a longtime and fairly popular Sinatra-like web framework for Crystal.
It also seems like they might be the same word in Turkish and Arabic when used as a person's name.
Just pointing this out since it might cause some confusion in both communities.

It's not an issue in print, since the spelling is different.  I'm pretty sure that's were it will be used 99% of the time.  And although there is definitely overlap between the Ruby and Crystal communities, the context should easily disambiguate in any spoken conversations.

Okay, it's definitely easier to type


new instance UI & logic issues

A collection of issues arising from setting up a new instance. Should probably be treated as a master issue with these broken down into smaller tasks as appropriate.
Note that some of these are the result of my using large fonts because of low vision needs. I'm at Font size 20, + minimum font size 18.
Welcome aboard message contains raw html.

handwriting overlay isn't readable (presumably a large font issue).

when you add your first feed it says you've reached RSS Zero despite a) not having read anything and b) the goal of adding the feed presumably being to see feed content in the feed reader

clicking "view all items" tells you "you haven't read any stories". This of course directly contradicts the idea that i've reached inbox zero. Either i HAVE read everything or i haven't read anything. Both can't be true at this point.

clicking into the list of feeds i see this, which indicates that there are 6 unread. Again, self contradicting data. Either there ARE 6 items waiting to be read OR I've "reached RSS Zero". Can't be both.
also note the icons overlapping the text on the right side of the row and making it unreadable. Presumably another accessibility issue related to large fonts.

Thanks for the feedback! I'll see if I can get at least some of these addressed. One point I would disagree with, though:

Either i HAVE read everything or i haven't read anything. Both can't be true at this point.

If you have 0 stories, by definition you have both read everything and not read anything. To get super technical, in set logic "By the definition of subset, the empty set is a subset of any set A." (source) Similar to Ruby arrays:
> [].all?(&:nil?)
=> true
> [].all?(&:present?)
=> true

But there's probably still some room for improving the wording.

clicking into the list of feeds i see this, which indicates that there are 6 unread. Again, self contradicting data. Either there ARE 6 items waiting to be read OR I've "reached RSS Zero". Can't be both.

Can you provide more context on this? From what I can tell, the counters on the feeds page seem to be accurate. Is it possible the feed finished refreshing while you were on the empty /news page? We don't dynamically update the news page when new stories have come in from a feed.

@masukomi I've made some adjustments. Can you try the latest main?

not sure what you changed but i think you've addressed all my concerns here. Yes it says "you've reached rss zero" at the start but i think that's understandable. when you add a feed it still says zero but says check back later, so that's clear. little handwriting things worked well with the 3 items it displayed, no raw html.... yeah i think it's all good :D
thanks.

Closing, thanks for the feedback and please open a new issue if you notice anything else!


[BUG]: Dropdown Stays Open - Fails to Close Automatically and Annoys Users 🔎❌⚔

Description
🚫 The suggestion drop-down doesn't close automatically after the user selects an option, causing irritation and obstructing the view of underlying content. This results in a frustrating user experience, requiring manual closure and hindering smooth interaction with the application. A prompt resolution is necessary to improve usability and user satisfaction. 😠💻👎
Screenshots
https://github.com/rohansx/informatician/assets/85815172/844f1b16-0c42-466b-a626-965b2bc34c5c
Any additional information?
My Solution is ready i will create the PR ASAP
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

Well, you do not fix this issue in your previous pr? #1033


CSE_ModbusRTU.h does not have a define check

I noticed when I included CSE_ModbusRTU.h in a class cpp file the compiler errored out do to double define.  I see there is no #ifndef in CSE_ModbusRTU.h, may be nice to have.
Other functions that would be helpful for debug would be a functions that returns the address block and count of the each register type.  I know it is defined when configuring coils but I was getting some weird responses at times that would be helpful to be able to get access to that count to make sure it got setup correctly.

Yes Luke. Will add that soon.


FA shows a grey screen after launching

May be related to the launching of the ice adapter

Dont think so was like this before as well

Only happened sometimes, this is caused by the adapter window grabbing focus during launch, we've delayed the adapter window by 10 secs now.


Add Java Flight Recorder events for JaxRS requests.

This PR adds JFR events to allow inspection of JaxRS requests.

Thank you.


This looks really cool, any chance you can implement this for GURPS

Not sure how difficult or easy this would be, but I'm imagining as long as you know the relevant attributes used in the GURPS Game Aid, it's probably not that hard.

2781435174e5441e61d702c5a2b4c861f27a9515

Now available in v1.10.0


Create bouesti.txt

@tennybolaji First stage of verification passed, official domain is bouesti.edu.ng as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@tennybolaji Pull request merged. Thank you.


(Mainnet Verification) Some nodes show a broken country image in Load Nodes.

Description
Devnet and Ninja 2.3.0-alpha6.
Some of the nodes show a broken country image.

Node ID: 418, 417, 415, 414

Farm ID: 77

Steps to reproduce

Navigate to the Dashboard.
Connect your wallet.
Navigate to Virtual Machines.
Select VM and Load nodes.

Issue Update
Work in progress
Moved to the blocked column since we agreed on adding more features to the node selection card as:

Upload/Download chip
Country name chip
Country logo in case the country flag does not exits

in case no flag

other option without Flag

lets keep all text 14px or 0.875rem except Node ID 16 px or 1rem

It was initially blocked due to dependencies on the upload/download feature, but we have found a way to address it independently. I'll be working on resolving this tomorrow, Insha'Allah.

Issue Update
Work Completed:

Resolved the issue related to image reloading, ensuring that the bug no longer occurs.
Implemented a fix to address the error encountered while attempting to load certain images.
Replaced the hard-coded flag source with a dynamic function call (getCountryFlagSrc) for improved flexibility and accuracy.
Added a tooltip displaying the node's country information.

Investigation and Solution:

The issue was identified as a result of errors in the image link, leading to problems with image reloading.
The necessary changes were made to the code, particularly in the image loading section, to rectify the issue.

Screenshots

old

new

@Mahmoud-Emad Nice work I think while the flag issue was fixed we can skip adding not available (NA) avatar

@ehab-hassan, I suggest temporarily postponing this matter unless we encounter a similar issue in the future.

On Mainnet 2.3.0.
The Switzerland flag was fixed, and the image is shown.

And for other countries like the Bahamas and Czech Republic, it showed NA (but I still don't know why it didn't show the flag here).

At least it should be NA, but in the case of Greece, it still showed a broken image.

On Mainnet 2.3.0.
The Switzerland flag was fixed, and the image is shown.
And for other countries like the Bahamas and Czech Republic, it showed NA (but I still don't know why it didn't show the flag here).
At least it should be NA, but in the case of Greece, it still showed a broken image.

We decided to go with the default 'N/A' logo if any errors are loading the image. also, I tested node 635, and everything seemed to load up just fine, including the Greece flag.


Use ProcessManagedBean (not ProcessAnnotatedType) to create metrics - honors vetoes

There are two overall changes so that we honor other CDI extensions' vetoes of beans.

Previously, we defined metrics for annotated elements in the ProcessAnnotatedType observer. This incorrectly included beans which other extension might have vetoed.
Instead,  now the ProcessAnnotatedType observer records the Java class for each annotated type identified by CDI as being annotated with a metrics annotation.
Later, a new ProcessManagedBean observer ignores any beans for which the Java class was not previously recorded.
We do this in two steps because CDI invokes the ProcessBean observer for every bean. We have to check each constructor and method in every bean we process to look for metrics annotations, and this two-step approach allows us to avoid scanning constructors and methods of beans that CDI did not previously identify has having metrics annotations.

A relatively recent change to MP metrics includes automatically adding (if configured) a SimpleTimer metric to every JAX-RS endpoint method. Previously, we did this by:

Using a ProcessAnnotatedType observer on the HTTP operation annotations (@GET, @PUT, etc.) which would store each Method that had one of the HTTP method annotations and add a synthetic annotation @SyntheticSimplyTimed to the CDI AnnotatedMethod for the method.
Using an AfterBeanValidation observer to go through each such saved Method and create the corresponding SimpleTimer metric.

With this PR, the ProcessAnnotatedType observer only adds the synthetic annotation to the relevant methods in the AnnotatedType.

Obsolete. These changes have been incorporated into the metrics (and several other) CDI extensions already.


Track moist Held-Suarez developments

This issue is to track the developments of moist held-suarez. Here are the code pieces needed from dry hs to moist:

[x] moist var qt and equations
[x] microphysics scheme (0Moment for now)
[x] a simple vertical diffusion (following the paper
[ ] surface flux varying spatially (dependency: a new ClimaCore.jl release after this merged)
[ ] limiter for positivity

===============================
Tests:

Right now the moist HS crashes at day 18. Our goal is to have it running 1200. That means we are 1.5% done right now. We will keep updating this metric ;)
Things we tried that are stable till 1200 days:

[ ] dry HS
[ ] moist HS with no surface fluxes

Things we are testing now:

[ ] moist HS with moisture as passive tracer (set latent heat to 0)  -> crashes at day 24
[ ] moist HS without 0-moment precipitation -> crashes at day ?
[ ] moist HS with 0-moment precipitation -> crashes at day 18

@bischtob @charleskawczynski @LenkaNovak

The instability starts suspiciously "at the corner". Any hints what we could look at next @simonbyrne @szy21?

@jiahe23 are there any updates here?

@jiahe23 are there any updates here?

Updating climacore version in atmos; will set up proper sst once this done.
Waiting for limiters.


Update ebucoreplus.owl

See associated issue.

Remove ´hasRole´ completely, keep ´hasContributor´ and rename class ´Role´ to ´Involvement´


fix(devtools): make sure that sort function is properly read from localStorage

Fix for: #3639: DevTools doesn't remember the sort function
This effect is responsible for causing the problem. Good news is that it's also completely unneeded. It's doubling what's already done via useLocalStorage. And if it runs after (which it usually does), it disregards the value that's read by useLocalStorage hook - which is exactly what causes the bug.
This is easily fixable by simply removing the effect.

Codecov Report

Merging #3703 (941b1c6) into beta (ad82ee8) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             beta    #3703      +/-   ##
==========================================
- Coverage   97.11%   97.11%   -0.01%
==========================================
  Files          50       50
  Lines        2391     2388       -3
  Branches      706      704       -2
==========================================
- Hits         2322     2319       -3
  Misses         67       67
  Partials        2        2

Impacted Files
Coverage Δ

src/devtools/devtools.tsx
86.90% <0.00%> (-0.16%)
: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 19d755c...941b1c6. Read the comment docs.


[Bug]: useField hook fails to validate properly outside of form

Which packages are impacted?

[X] remix-validated-form
[ ] @remix-validated-form/with-zod
[X] @remix-validated-form/with-yup
[ ] zod-form-data

What version of these packages are you using?
"@remix-validated-form/with-yup": "2.0.1",
"remix-validated-form": "4.5.5",
"yup": "0.32.11",
Please provide a link to a minimal reproduction of the issue.
https://stackblitz.com/edit/node-9s1cco?file=app%2Fvalidated%2FTestForm.tsx,app%2Froutes%2Findex.tsx,app%2Fvalidated%2Fschema.ts
Steps to Reproduce the Bug or Issue

Go to stackblitz sandbox.
Attempt to use the Nested vs Unnested form.
Unnested displays validation messages even though it is satisfied.
Nested won't display validation messages, as expected.

Expected behavior
Since I am using a formId, I would expect to be able to use the context of the ValidatedForm without having to nest the inputs.  The documentation https://www.remix-validated-form.io/use-outside-forms suggests this behavior should be valid. This is helpful when a single page has many forms on it and rendering nested form is invalid HTML.
Screenshots or Videos
No response
Platform
MacOS Chrome Version 104.0.5112.101 (Official Build) (arm64)
Additional context
No response

Closing because this was invalid.  Adding form attribute to the input makes it behave as expected.


No timeout on awaitIdle

https://app.circleci.com/pipelines/github/VirtusLab/git-machete-intellij-plugin/3985/workflows/9018955f-bf7a-48ee-95f1-434763a843ec/jobs/4189 => stalled for 1 hour on Detecting project structure task... probably some quirk of 2021.1-BETA2. Still, it should rather crash after 10 minutes with no progress :/

This would not happen in new probe version (not yet released as I am making sure that the design is correct by trying to use it in project with benchmarks, but I guess I will open PR now.
Something like below should be satisfying for machete use case.
intelliJ.probe.openProject(path, WaitLogic.emptyNamedBackgroundTasks(basicCheckFrequency = 2.seconds, atMost = 10.minutes))
And even if you don't specify anything, the default waiting logic has limit of 15 min.
It is also possible put an arbitrary wait condition, i.e. in my benchmark code, I click to open build panel and wait for the tree in sync tab to show "failure" or "finished" and I end waiting then. Then I wait for indexing task to start, and then I measure time of indexing task.

Fixed in 0.5.0


Leaking Terraform processes when terminating a cluster operation

When we Ctrl+C out of a lokoctl cluster apply operation (and likely destroy, too), the lokoctl process terminates without killing its child processes. As a result, depending on the exact stage in which Ctrl+C was pressed, one or more Terraform-related processes are left behind as orphans.
Steps to reproduce:

Run lokoctl cluster apply -v against any .lokocfg file.
Wait for Terraform to start creating infrastructure, then hit Ctrl+C.
Check for orphan processes: ps -ef | grep terraform.

Here is what I'm getting:
johannes 3061095    1421  0 13:52 pts/3    00:00:01 /usr/bin/terraform internal-plugin provisioner file
johannes 3061106 3061095  0 13:52 pts/3    00:00:00 /usr/bin/terraform internal-plugin provisioner file
johannes 3061107    1421  0 13:52 pts/3    00:00:00 /tmp/lk/assets/terraform/.terraform/plugins/linux_amd64/terraform-provider-template_v2.1.2_x4
johannes 3061125    1421  0 13:52 pts/3    00:00:01 /usr/bin/terraform internal-plugin provisioner remote-exec
johannes 3061137 3061125  0 13:52 pts/3    00:00:00 /usr/bin/terraform internal-plugin provisioner remote-exec
johannes 3061165    1421  0 13:52 pts/3    00:00:02 /tmp/lk/assets/terraform/.terraform/plugins/linux_amd64/terraform-provider-tls_v2.1.1_x4
johannes 3061179    1421  0 13:52 pts/3    00:00:00 /tmp/lk/assets/terraform/.terraform/plugins/linux_amd64/terraform-provider-local_v1.4.0_x4
johannes 3061195    1421  0 13:52 pts/3    00:00:00 /home/johannes/.terraform.d/plugins/terraform-provider-ct_v0.4.0
johannes 3061212    1421  0 13:52 pts/3    00:00:00 /tmp/lk/assets/terraform/.terraform/plugins/linux_amd64/terraform-provider-packet_v2.7.5_x4
johannes 3061228    1421  0 13:52 pts/3    00:00:00 /tmp/lk/assets/terraform/.terraform/plugins/linux_amd64/terraform-provider-null_v2.1.2_x4

The orphan processes stay in memory indefinitely, though thankfully it doesn't seem like they keep executing Terraform operations in this state.
We should most likely implement a proper cleanup procedure which we always run in response to a SIGINT.

I wonder if this is a duplicate of #45? How they differ?

https://github.com/kinvolk/lokomotive/issues/45 is likely the solution to this issue. However, this issue reports a concrete problem created by us not handling the signal.

Found out that terraform apply handles the interrupts but terraform init doesn't and this behavior is reflected the same in lokoctl as well.
An upstream issue has been filed for the same.
hashicorp/terraform#25118


add datatype date32

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

retest this please

Thank you @chenzhx for submitting the pull request. However, I'm sorry that I'm not going to merge this because it's been supported on develop branch.
https://github.com/ClickHouse/clickhouse-jdbc/blob/c4b411b081fa7c8a9a37e33f02029c19aa4dbd10/clickhouse-client/src/main/java/com/clickhouse/client/data/BinaryStreamUtils.java#L1235-L1238


Avoid realloc when inserting into OwnedHeaders

Avoid alloc + realloc right after by allocating enough to hold input string + \0.
https://app.datadoghq.com/profiling/comparison?query=release%3Alogs-shard-router-logs-openai &agg_m=count&agg_m_source=base&agg_t=count&compare_end_A=1724162211916&compare_end_B=1724162213121&compare_query_A=release%3Alogs-shard-router-logs-openai-shadow kube_cluster_name%3Apignite-b &compare_query_B=release%3Alogs-shard-router-logs-openai-shadow kube_cluster_name%3Apignite-a &compare_start_A=1724161311916&compare_start_B=1724161313121&compareValuesMode=absolute&my_code=disabled&refresh_mode=paused&viz=flame_graph&from_ts=1724143688104&to_ts=1724147288104&live=false

Profile is only from time where only src/messager.rs was patched and not base producer.

Initially thought about having something like TryFrom<&str> for CString but not possible since type is external. Set up a thread to discuss it further though - https://internals.rust-lang.org/t/impl-tryfrom-str-for-cstring/21407/2.


SpaceKey is not working on flutter web but if I use shift + space key then I can see space in TextFormField

Steps to reproduce
...
Expected results
...
Actual results
...
Code sample
...
Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[Paste your output here]

@jaydeepkaria-mi
You haven't provided any code sample, flutter version and details around the issue, so we can't properly address it without such details. Please provide a runnable code sample, flutter doctor -v, actual vs expected behavior so that we can verify this further.
Also, please note, whenever opening an issue, please try to provide requested details in the issue template. Just providing the issue title without any details won't help us much.


Implement persistent volumes in AWS

The primary goal is to export a metric that calculates the hourly cost of each persistent volume within our EKS clusters. The exported metric should align with our existing metrics(cloudcost_aws_eks_persistent_volume_dollars_per_hour).
There's really two parts:

Generate a Pricing Map that enables searching by region and storage class
List out EBS volumes

There should be the following labels:

cluster
namespace
persistentvolume
storage_class
status(in use or not)

@paulajulve had pointed out the cluster label may not be possible to derive from the API response. If that's the case, then we need to consider how we can join against existing kube state metrics to derive the cluster name.

Most of the functionality is implemented with tweaks to naming and what not. The main thing is adding tests, specifically for the Collect method, is tightly coupled to the compute module.
@Pokom will take a look to see if we can split out the collect method in such a way where you can create a method that encapsulates the logic into a testable method.

Currently working to offload processing of the volumes to a background goroutine for performance reasons. @paulajulve will close this out and follow up with another issue that details the performance problems and track the work there.

Next steps:

performance implementations will continue here
I've not yet fully validated the numbers on the metrics we're emitting, but that'll continue as a separate work stream too, as I work to switch our own usage of Open Cost for EBS volumes to these ones.


Add docs

Fixes https://github.com/apache/skywalking/issues/8989
I leave empty CRUD examples for the future CLI tools.
Signed-off-by: Gao Hongtao<EMAIL_ADDRESS>

Where can we preview the docs?

Where can we preview the docs?

You can view them locally since they are markdown files. Once this gets merged, I will push them into the official website.

We need to adjust the file structure, files like api/proto/banyandb/measure/v1/docs.md can't be visualized AFAIk.

All markdowns should be hosted inside /docs, which is the root of website doc generator.

Where can we preview the docs?

You can view them locally since they are markdown files. Once this gets merged, I will push them into the official website.

the links in crud package(XXService) seem missing for 404?

All markdowns should be hosted inside /docs, which is the root of website doc generator.

done. Moved all API references into docs


Ability to modify slideLine appearance

Changes:

update for xcode 9 / Swift 4
Ability to modify slideLine appearance

Related to issue #21


TST: fix tests

order of items was out of sync
nosetests requires the test directory to have an init

@ElDeveloper, do you have any idea on why the tests are failing or why coverage is dumping so much extra crap? I can't tell if Travis is insane, or if I am:
(python27)19:39:55 mustached-octo-ironman@master$ git checkout fix_tests
Switched to branch 'fix_tests'
(python27)19:39:58 mustached-octo-ironman@fix_tests$ git status
# On branch fix_tests
nothing to commit, working directory clean
(python27)19:40:00 mustached-octo-ironman@fix_tests$ git diff origin/fix_tests | wc -l
       0
(python27)19:40:05 mustached-octo-ironman@fix_tests$ nosetests
....................
----------------------------------------------------------------------
Ran 20 tests in 4.372s

OK

@wasade from a quick look it looks like you're missing a .coveragerc file to tell coveralls which files needs to include in the report. You can take a look at the one in qiita.

Bam, thanks! :)
On Sun, May 10, 2015 at 8:29 PM, josenavas<EMAIL_ADDRESS>wrote:

@wasade https://github.com/wasade from a quick look it looks like
you're missing a .coveragerc file to tell coveralls which files needs to
include in the report. You can take a look at the one in qiita.
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/mustached-octo-ironman/pull/24#issuecomment-100741838
.

...I've got a few other PRs to get in after this that are staged. Should make things a little better

@wasade are the failures expected?

No, I cannot recreate locally. Had pinged @ElDeveloper but he wasn't sure
either
On May 12, 2015 9:46 AM, "josenavas"<EMAIL_ADDRESS>wrote:

@wasade https://github.com/wasade are the failures expected?
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/mustached-octo-ironman/pull/24#issuecomment-101344997
.

@wasade just curiosity, which was the source of the errors?

ipython cluster wasn't given enough time to actually start. Need to add in better state checking code

thanks!


Data warehouse queries to transform raw data to Collection/Project/Artifact/Event entities

Let's start with BigQuery public data sets, like the GitHub or Ethereum public data sets.
Let's create transforms that create the aggregations/materialized views that we expect in the frontend (e.g. events_daily_by_artifact)

I feel this is what dbt does perfectly! I'm happy to jump into a call and share an example or quick demo.

Oh I totally forgot about dbt! I vaguely recall playing with it a while ago, but it seems to have really matured
https://www.getdbt.com/product/what-is-dbt
Great suggestion, thank you

Indeed! Is one of the core components of the data stack nowadays. Let me know if you want a quick run or demo! :blush:

Duplicate
https://github.com/opensource-observer/oso/issues/751


steam: Remove python2

Motivation for this change
Removing python2 from steam because it's not needed.
From my tests everything seem to work fine.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

#148779

Result of nixpkgs-review pr 152080 run on x86_64-linux 1

10 packages built:

bottles
kodiPackages.steam-launcher
lutris
playonlinux
protontricks
steam
steam-run
steam-run-native
steam-tui
steamcmd


More options in get_json method

Hi there,
Currently in jstree's get_json method to get JSON representation of a node/whole tree , we pass two argument obj and options.
In options object previously we can only pass no_state,no_id,no_children,no_data and flat , through this pull request and my changes you can also pass no_li_attr and no_a_attr this gives us more fine grain control over get_json method and now client has full control over what he/she wants to be returned through get_json method.
Please tell me if any other information is required for this pull request or changes to be merged.
This is my first pull request on any project on github so please let me know your suggestion and all.
Thanks & Regards,
Tarun Garg

Please review @vakata

Thank you for the contribution but I could not merge this.
You changed the default file icon, changed the white space and code indentation, along with a few lines that were not relevant to the changes you wanted.


"uri" keyNotFound Error while generating a response

Description of the bug:
Using the Gemini iOS SDK (Version 0.5.6), I'm getting a Swift.DecodingError.keyNotFound for "uri" in the response.
This seems to happen about 50% of the time, whereas the other 50% the response comes through as expected.
Actual vs expected behavior:
Swift code being run:
print("Sending Request.")
var model = GenerativeModel(name: "gemini-2.0-flash-exp", apiKey: "<API_KEY_HERE>")
let response = try await model.generateContent("Run a Python program any random one") // This throws the error
print("Response: \(response.text ?? "N/A")")

Expected response:
Okay, here is a simple Python program...

Actual Response
[GoogleGenerativeAI] Error decoding server JSON: Swift.DecodingError.keyNotFound(CodingKeys(stringValue: "uri", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "candidates", intValue: nil), _CodingKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "citationMetadata", intValue: nil), CodingKeys(stringValue: "citationSources", intValue: nil), _CodingKey(stringValue: "Index 0", intValue: 0)], debugDescription: "No value associated with key CodingKeys(stringValue: \"uri\", intValue: nil) (\"uri\").", underlyingError: nil))

Same error but formatted for readability:
[GoogleGenerativeAI] Error decoding server JSON:
Swift.DecodingError.keyNotFound(
    CodingKeys(stringValue: "uri", intValue: nil),
    Swift.DecodingError.Context(
        codingPath: [
            CodingKeys(stringValue: "candidates", intValue: nil),
            _CodingKey(stringValue: "Index 0", intValue: 0),
            CodingKeys(stringValue: "citationMetadata", intValue: nil),
            CodingKeys(stringValue: "citationSources", intValue: nil),
            _CodingKey(stringValue: "Index 0", intValue: 0)
        ],
        debugDescription: "No value associated with key CodingKeys(stringValue: \"uri\", intValue: nil) (\"uri\").",
        underlyingError: nil
    )
)

Any other information you'd like to share?
This happens on multiple devices and seems to be new behavior despite unchanged code. Happens both when streaming and not streaming the response.
From the logs, the citationSources field seems to be where the problem comes from.
Here are the full logs with verbose logging enabled:
[GoogleGenerativeAI] Verbose logging enabled.
[GoogleGenerativeAI] Creating request with the equivalent cURL command:
----- cURL command -----
curl -H 'Content-Type: application/json' -H 'x-goog-api-key: <REDACTED_API_KEY>' -H 'x-goog-api-client: genai-swift/0.5.6' 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent' -d '{"model":"models\/gemini-2.0-flash-exp","contents":[{"role":"user","parts":[{"text":"Write a Python program any random one"}]}]}'
------------------------
[GoogleGenerativeAI] JSON response: {
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Okay, let's create a Python program that generates a random password.  This is a classic, useful example, and it's relatively straightforward to implement.\n\n```python\nimport random\nimport string\n\ndef generate_random_password(length=12):\n    \"\"\"Generates a random password of the specified length.\n\n    Args:\n        length: The desired length of the password (default is 12).\n\n    Returns:\n        A string representing the generated password.\n    \"\"\"\n\n    if length \u003c 1:\n        return \"\"  # Return an empty string for invalid lengths\n\n    characters = string.ascii_letters + string.digits + string.punctuation\n    password = ''.join(random.choice(characters) for _ in range(length))\n    return password\n\n\nif __name__ == \"__main__\":\n    password_length = 16 # You can change this to the desired length\n    random_password = generate_random_password(password_length)\n    print(f\"Generated Random Password (Length {password_length}): {random_password}\")\n\n    # Example of another password with default length\n    default_password = generate_random_password()\n    print(f\"Generated Random Password (Default Length 12): {default_password}\")\n```\n\n**Explanation:**\n\n1.  **Import Modules:**\n    *   `random`: This module provides functions for generating random numbers and making random selections.\n    *   `string`: This module provides useful string constants like `ascii_letters`, `digits`, and `punctuation` which we use for the characters to use to build the password.\n\n2.  **`generate_random_password(length=12)` Function:**\n    *   **`length` Parameter:** This is an optional parameter specifying the length of the password to generate, defaults to 12 if not specified by the caller.\n    *   **Error Handling:** It checks if `length` is a valid number greater than 0, if not it returns an empty string to represent an invalid length.\n    *   **Character Set:** \n        *  It creates a string `characters` containing all the desired character types: uppercase letters, lowercase letters, digits and punctuation symbols.\n    *   **Password Generation:**\n        *   It uses a list comprehension (`random.choice(characters) for _ in range(length)`) to generate a list of random characters by making `length` random choices from the `characters` string.\n        *   It uses `''.join(...)` to concatenate the random characters into a single string.\n    *   **Return Value:** The function returns the generated random password string.\n\n3.  **`if __name__ == \"__main__\":` Block:**\n    *   This block is the entry point of the script when you run it.\n    *   **Setting Password Length:** A length for the generated password is specified in the `password_length` variable.\n    *   **Password Generation and Output:** It calls the `generate_random_password()` function, prints the resulting password along with its length using an f-string.\n    *  **Example using default length**: Then the program calls `generate_random_password()` without specifying a length to show how the default works.\n\n**How to Run:**\n\n1.  Save the code as a Python file (e.g., `random_password.py`).\n2.  Open a terminal or command prompt.\n3.  Navigate to the directory where you saved the file.\n4.  Run the script using the command: `python random_password.py`\n\nEach time you run it, you'll get a new, randomly generated password.\n**Important Notes:**\n\n*   **Security:** This password generator is a basic example for learning. For highly secure password generation, you might want to investigate using the `secrets` module in Python for more cryptographically secure random number generation and handling, especially if generating for any kind of sensitive data.\n*   **Complexity:** If you need to generate passwords that meet specific complexity rules (e.g., at least one uppercase letter, one digit, etc.), you will need to add more logic to the code to enforce these rules by verifying after generation, or building the password step by step.\n*   **Usability**: While the passwords generated by this program are secure in terms of being hard to guess at random, they may be difficult to remember and should not be saved in plain text. If you need to remember these passwords, you might be better off using a password manager application.\n\nThis should give you a good starting point. Let me know if you have any other questions or if you want to try other random programs!\n"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {
          "category": "HARM_CATEGORY_HATE_SPEECH",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_HARASSMENT",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "probability": "NEGLIGIBLE"
        }
      ],
      "citationMetadata": {
        "citationSources": [
          {
            "startIndex": 541,
            "endIndex": 703,
            "uri": "https://osintteam.blog/6-simple-osint-python-scripts-to-add-to-your-toolkit-a704e6b29671"
          },
          {
            "startIndex": 567,
            "endIndex": 751,
            "uri": "https://worktile.com/kb/ask/2222986.html"
          },
          {
            "startIndex": 3063,
            "endIndex": 3217
          }
        ]
      },
      "avgLogprobs": -0.53625421075372248
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 8,
    "candidatesTokenCount": 999,
    "totalTokenCount": 1007
  },
  "modelVersion": "gemini-2.0-flash-exp"
}

[GoogleGenerativeAI] Error decoding server JSON: Swift.DecodingError.keyNotFound(CodingKeys(stringValue: "uri", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "candidates", intValue: nil), _CodingKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "citationMetadata", intValue: nil), CodingKeys(stringValue: "citationSources", intValue: nil), _CodingKey(stringValue: "Index 2", intValue: 2)], debugDescription: "No value associated with key CodingKeys(stringValue: \"uri\", intValue: nil) (\"uri\").", underlyingError: nil))

I was able to repro this bug. Looks like the server is returning invalid citations. Let me check with the backend team if this is expected.

This fix will be delayed since some of our team is on vacation for the holidays.


Update requirements

Related Issues or bug

Requirements.txt was not Up to date and previous versions of open-cv were not available.

Fixes: #1073
Proposed Changes

Changed the versions of requirements and all are now downloadable using pip.

Yes Now the Virtual Environment can be created with these versions.

I created the .env outside the project folder because there was no .gitignore.
I am working on a new Snapchat filter so this requirements.txt is of no use to me.


Update KanaAppraiser.java

 Quality gate: Failed
2 Issues

 2 Code issues

Details

 Quality gate: Failed
2 Issues

 2 Code issues

Details


Use generics deepcopy.Anything(T) => T

Could do a v2 or add a package function

FWIIW, I did a from scratch reimplementation of this here:  https://github.com/brunoga/deep
It supports this feature.


ensure that null values are not simple objects

Fix crashes in test when using nested optional properties in an index

There is no type error
The test fails in convex-test
The test passes against the live convex server

Schema
export default defineSchema({
  user: defineTable(
    v.union(
      v.object({
        timestamp: v.number(),
        type: v.literal('without_age'),
        name: v.string(),
      }),
      v.object({
        timestamp: v.number(),
        type: v.literal('with_age'),
        name: v.string(),
        add_info: v.object({
          age: v.number(),
        }),
      })
    )
  ).index('by_age_timestamp', ['add_info.age', 'timestamp']),
});

Query Code
const users = await ctx.db
  .query('user')
  .withIndex('by_age_timestamp', (f) =>
    f.eq('add_info.age', age).gt('timestamp', 0)
  )
  .collect();

Test
  it('local: should not return users that have no age', async () => {
    const t = convexTest(schema);
    await t.mutation(api.user.create, createUserParams);
    const users = await t.query(api.user.list, queryParams);
    expect(users).toEqual([]);
  });

Error
the issue I think is that `typeof null` is `"object"`, and this was a case not considered in the implementation of the function.

also, supplementing the other lines of the stack trace for info
```typescript
 FAIL  convex/transaction.test.ts > creates transactions
TypeError: Cannot convert undefined or null to object
 ❯ isSimpleObject node_modules/convex-test/dist/index.js:414:30
    412|     const isSimple = prototype === null ||
    413|         prototype === Object.prototype ||
    414|         // Objects generated from other contexts (e.…
       |                              ^
    415|         // conditions but are still simple objects.
    416|         prototype?.constructor?.name === "Object";
 ❯ evaluateFieldPath node_modules/convex-test/dist/index.js:426:18
 ❯ evaluateRangeFilter node_modules/convex-test/dist/index.js:493:20
 ❯ node_modules/convex-test/dist/index.js:265:56
 ❯ node_modules/convex-test/dist/index.js:265:38
 ❯ DatabaseFake._iterateDocs node_modules/convex-test/dist/index.js:232:21
 ❯ DatabaseFake._evaluateQuery node_modules/convex-test/dist/index.js:264:22
 ❯ DatabaseFake.startQuery node_modules/convex-test/dist/index.js:181:30

----

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for the PR, I fixed this in 35d0a84 (the fix required a slightly different approach).


Add SystemDSContext for systemds operations

Adds a SystemDSContext object which has to be used for the function calls which generate the input data for our SystemDS script. It can be used as an python context by using with SystemDSContext() as context: ... where context would then be the SystemDSContext object (we could add a different class instead like SystemDSConnection/SystemDSSession or something like that). The Context will automatically be closed once we leave the with.
A SystemDSContext object has to be used to generate the calls at the start of our Script like matrix, seq etc.
We can also generate the SystemDSContext directly, in which case we should not forget to .close() it at the end.

@Baunsgaard I resolved most of the comments, but please respond to the two unresolved conversations so we can decide if we need further changes.

LGTM to me as well - thanks @kev-inn and @Baunsgaard. Just a minor nitpick, whenever we touch the Python binding again, I would appreciate moving the package org.apache.sysds.pythonapi
to org.apache.sysds.api.python for consistency with the other APIs.


In mixed compilation, Java parser can't handle JUnit annotation

This came up at Lightbend over at https://github.com/akka/alpakka-kafka/pull/1727
% cat S.scala
class S

% cat J.java
//> using scala 3.4.0
//> using dep org.junit.jupiter:junit-jupiter-api:5.10.2
@TestInstance(org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS)
class J { }

% scala-cli compile .
Compiling project (Scala 3.4.0, JVM (17))
[error] ./J.java:6:1
[error] ')' expected but eof found.

Next, I will see if I can construct a reproducer that doesn't involve an external library.

The linked source is ordinary sbt build, in a Java package, with a correct import. That works in a trivial sbt project.

I reproduced the problem in sbt first before switching to scala-cli. You do have to have both Scala and Java sources.

No doubt it's one of those things.
➜  i20026-annot git:(master) cat src/main/scala/main.scala

class C {
}
➜  i20026-annot git:(master) cat ./src/main/java/trial/J.java

package trial;

import org.junit.jupiter.api.TestInstance;

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class J { }
➜  i20026-annot git:(master) cat build.sbt

scalaVersion := "3.4.0"

ThisBuild / scalacOptions ++= Seq(
  //"-Vprint:all",
)

ThisBuild / libraryDependencies ++= Seq(
  "org.junit.jupiter" % "junit-jupiter-api" % "5.10.2"
)
➜  i20026-annot git:(master) sbt compile
[info] welcome to sbt 1.9.9 (Eclipse Adoptium Java 21.0.2)
[info] loading project definition from .../i20026-annot/project
[info] loading settings for project i20026-annot from build.sbt ...
[info] set current project to i20026-annot
[info] Executing in batch mode. For better performance use sbt's shell
[info] compiling 1 Scala source and 1 Java source to .../i20026-annot/target/scala-3.4.0/classes ...
[success] Total time: 3 s, completed Mar 26, 2024, 12:41:13 PM

The plot thickens! The difference between your version and mine is the presence or absence of package trial;.
Which is peculiar, since naturally the original alpakka-kafka code does have a package declaration! So this seems to be rather fragile/subtle...

@som-snytt when you were looking into this, did you discover whether there's a workaround?


[BUG] Spell Points are deducted even if Activity is set to Not consume Spell Slots

In D&D5e 4.1.2, spells can use different Activities for individual parts of the spell. Activities can be set to not consume any Spell Slots.
However, while "Consume Spell Slot" toggle is off, the spell points are still consumed normally. It is also impossible to manually toggle the spell point consumption off, because the prompt is disabled when that setting is off.

ok, but you can set it to recover spell points (the same amount that would be spent) using a negative value on item uses.

this is not really a bug but a missing feature, right now the activity is not implemented with the spell points module since if you want to use spell points with activities you can just create a custom item and use it as spell points without this module.
what is your use case? why you want a spell that doesn't consume slots nor spell points? can't you make it a cantrip?

That's a useful solution, but won't work with upscaling without additional tinkering I think.
In my usecase, I use spells such as Eyebite which use Concentration, but then allow for extra free activities while the spell is active (i.e. target a different creature, make ranged attacks with Crown of Stars etc). Those activities do not count as separate castings of that spell so they wouldn't consume spell slots/spell points. And it's useful to keep all the spell's effects as sub-activities that way.


Ofelia (ee cron run-now) doesn't work

This issue tracker is only for issues related to EasyEngine. Please use https://github.com/EasyEngine/easyengine/discussions for support questions.
If you feel the issue is a EasyEngine specific issue, please attach the output of the following commands.
System Information
ee cli info
+-------------------+------------------------------------------------------------------------------------+
| OS                | Linux 6.5.0-1023-oracle #23~22.04.1-Ubuntu SMP Thu May  2 14:36:16 UTC 2024 x86_64 |
| Shell             | /bin/bash                                                                          |
| PHP binary        | /usr/bin/php8.3                                                                    |
| PHP version       | 8.3.7                                                                              |
| php.ini used      | /etc/php/8.3/cli/php.ini                                                           |
| EE root dir       | phar://ee.phar                                                                     |
| EE vendor dir     | phar://ee.phar/vendor                                                              |
| EE phar path      | /var/lib/docker/volumes/appartamentilenaviincieloit_htdocs/_data                   |
| EE packages dir   |                                                                                |
| EE global config  | /opt/easyengine/config/config.yml                                                  |
| EE project config |                                                                                |
| EE version        | 4.7.0                                                                              |
+-------------------+------------------------------------------------------------------------------------+
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:        22.04
Codename:       jammy
docker version
Client: Docker Engine - Community
Version:           26.1.3
API version:       1.45
Go version:        go1.21.10
Git commit:        b72abbb
Built:             Thu May 16 08:33:29 2024
OS/Arch:           linux/amd64
Context:           default
Server: Docker Engine - Community
Engine:
Version:          26.1.3
API version:      1.45 (minimum version 1.24)
Go version:       go1.21.10
Git commit:       8e96db1
Built:            Thu May 16 08:33:29 2024
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          1.6.32
GitCommit:        8b3b7ca2e5ce38e8f31a34f35b2b68ceb8470d89
runc:
Version:          1.1.12
GitCommit:        v1.1.12-0-g51d5e94
docker-init:
Version:          0.19.0
GitCommit:        de40ad0
docker-compose version
Docker Compose version v2.27.0
ee cron list
+----+------------------------------+----------+---------------------------------------------+----------------+
| id | site_url                     | user     | command                                     | schedule       |
+----+------------------------------+----------+---------------------------------------------+----------------+
| 1  | example.it | www-data | sh -c 'wp cron event run --due-now'         | 0 8/10 * * * * |
+----+------------------------------+----------+---------------------------------------------+----------------+
ee cron run-now 1
Error response from daemon: No such container: exampleit_php_1
Real PHP container site is named: exampleit-php-1 and not exampleit_php_1
Workaround is to use ee shell command
ee shell --command='wp cron event run --due-now'
Executed the cron event 'action_scheduler_run_queue' in 0.026s.
Executed the cron event 'wp_privacy_delete_old_export_files' in 0.01s.
Executed the cron event 'recovery_mode_clean_expired_keys' in 0.007s.
Executed the cron event 'wp_version_check' in 2.709s.
Executed the cron event 'wp_update_plugins' in 0.465s.
Executed the cron event 'wp_update_themes' in 0.009s.
Executed the cron event 'wp_scheduled_delete' in 0.298s.
Executed the cron event 'delete_expired_transients' in 0.007s.
Executed the cron event 'wpseo-reindex-links' in 0.006s.
Executed the cron event 'mwp_update_public_keys' in 0.006s.
Executed the cron event 'sucuriscan_scheduled_scan' in 4.556s.
Executed the cron event 'rt_wp_nginx_helper_check_log_file_size_daily' in 0.025s.
Executed the cron event 'sucuriscan_autoseckeyupdater' in 0.352s.
Executed the cron event 'wpml-tm-check-overdue-jobs-event' in 0.01s.
Executed the cron event 'wp_scheduled_auto_draft_delete' in 0.007s.
Executed the cron event 'wp_update_user_counts' in 0.006s.
Executed the cron event 'wp_delete_temp_updater_backups' in 0.007s.
Executed the cron event 'wpseo_start_cleanup_indexables' in 0.023s.
Executed the cron event 'upgrader_scheduled_cleanup' in 0.003s.
Executed the cron event 'upgrader_scheduled_cleanup' in 0.003s.
Executed the cron event 'upgrader_scheduled_cleanup' in 0.003s.
Executed the cron event 'update_wpml_config_index' in 0.073s.
Executed the cron event 'wpseo-reindex' in 0.006s.
Executed the cron event 'wpseo_permalink_structure_check' in 0.01s.
Executed the cron event 'flamingo_daily_cron_job' in 0.537s.
Executed the cron event 'wpseo_cleanup_cron' in 0.009s.
Success: Executed a total of 26 cron events.

This issue has been fixed in v4.7.1 https://github.com/EasyEngine/easyengine/releases/tag/v4.7.1
Please update your EasyEngine install using ee cli update and the crons should start working normally.


Mac binary distribution

This should use the CPack stuff in cmake that is already setup
probably using the DragNDrop generator.
guessing a few generator specific fields will need to be added
though there might be some new generators as well if we were ok requiring a new cmake for the mac builds which isn't out of the question.
This might be simple enough that it could be done and included with the 1.3 release.

CPackPackageMaker has been around since at least version 3.0 of CMake and can be used to create a component-based installer similar to Windows.

That sounds like a good approach,  looks like there is only additional variable we would need to add.  Is PackageMaker something that is easily available(included) or something that would have to be downloaded?  @kdheepak  do you know much about it?

The main thing is that the dependencies are also coupled with the installation, i.e. boost and zmq libraries should be included. If CPackPackageMaker can do that that would be ideal. I've not looked into this much yet, but I'll start to. I have been doing a bunch of reading to find what needs to be done in general on a Mac. I'll post information I find on this thread.


.stylish-haskell.yaml: Wrap lines to 100 columns

Update the stylish-haskell configuration following changes to the style guide by @bmmoore.
Reviewer checklist

[ ] Test coverage: stack test --coverage
[ ] Public API documentation: stack haddock
[ ] Style conformance: stylish-haskell

Doesn't stylish-haskell only wrap imports the way we are using it? I don't think imports are ever hard to wrap.

Doesn't stylish-haskell only wrap imports the way we are using it?

Yes.

I don't think imports are ever hard to wrap.

I'm sorry, I don't understand.

I mean import lists are usually composed of many small items that can be easily wrapped, and I still said to prefer lines under 80.


For long hovers, errors appear all the way at the bottom and require scrolling

I'm not sure if this is new, but I'm seeing it a lot lately. When I hover over some code with a red squiggle, if the hover/tooltip has a long description, I have to scroll all the way to the bottom to find the error.

I think it would be better if errors/warnings were either at the top, or somehow docked at the bottom of the tooltip, so you don't have to scroll to get to them. Some tooltips a REALLY long and it's a pain. I'm aware of the F8 functionality, I just prefer the tooltips :-)

I would prefer the errors/warnings are closer to the cursor i.e at the bottom. It means those views on top of it should not take the complete height.

I would prefer the errors/warnings are closer to the cursor i.e at the bottom

I think this may depend which way the hover appears? When your cursor is near the top, the box will appear below it, so having them at the bottom is still potentially quite far.
In any case, you shouldn't need to scroll through all of the hover content to see them :(

I hit this same issue while implementing a language server. My hover text provider was showing help text for functions that could be large. I saw that the diagnostic wasn't presented and concluded (incorrectly) that hovers and diagnostics were not compatible and disabled hover.
Somehow having the diagnostics be sticky would be my preference. The scrolling would then be per hover section rather than the entire hover panel.

This was reported by another user:
https://github.com/Dart-Code/Dart-Code/issues/2126
@sandy081 is there a plan to improve this? I understand you want them closer to the cursor, but having to scroll through pages of documentation to figure out what the red squiggle is feels like a really bad UX. Maybe errors could be outside of the scrollable docs (similar to the "Quick fix" section in the screenshots above?)

Pleas fix this, this is really bad UX.

Sorry have not planned yet.

Large hover payloads are the norm in Java-land. This is definitely an issue for Java users.
cc @akaroml

Large hover payloads are the norm in Java-land. This is definitely an issue for Java users.
cc @akaroml

That's why we put the entry "Resolve unknown type" as part of the Javadoc so it shows on top:

@sandy081 We would love to revisit this when the change is in.

This is particularly frustrating in Rust because the Rust compiler often emits diagnostics that cover entire lines, for example, borrow check errors, which overlap a lot of functions, causing the display of both docs and errors on hover, and surfacing this usability issue.

Would it be maybe possible to let plugins control the ordering? That way, it would be possible to use error "close to the line" for some languages that typically don't have long documentation (e.g. TypeScript, JS, ...) whereas for languages that do have long documentation (Java, Rust, ...) the plugins would be able to show error at the top.

I don't see why you'd want to have the error at the bottom, since it's presumably the most important thing about that line.

Can we get action on in this.
It's a constant annoyance they affects every user.

Is there a priority setting anywhere or is this still an open issue altogether?

I'm amazed this doesn't have the priority it deserves after 3 years, problems are always higher priority on coding. A tooltip should reflect that and also provide ordering of fields.

@sandy081 this is the current UX:

That's :/

I really don't want to be the guy commenting +1, but in this instance it seem warranted.
It would save me a few hours over the course of a year if this was configurable.

My current workaround is using Error Lens to show error directly on the editor instead of hovering (and scrolling!). A bit messy but acceptable to me.

please fix it.

It's even worse: When you scroll down quickly to the bottom, when you reach the bottom it will start scrolling the code editor itself which causes the popup to disappear, so I have to scroll slowly and carefully.

Just another plus one (terrible as they are) because I run into this quite frequently.

It's apparently diagnostic message is more important than other hover message, put error message on the top should be the  basic feature for editor. 😓

It would be a great improvement. Always I open the hover with a key shortcut and move the mouse to scroll down it disappears and I need to open again. It bothers a lot.

I opened this pr which should fix the issue, but it hasn't gotten any attention for the past 3 weeks :/ https://github.com/microsoft/vscode/pull/166560

Related question on Stack Overflow: How to show error/warning above the documentation in mouse hover popup?

Steps to test:

Open a file and type code with an error, for example a variable which is incorrectly initialized.
Hover over this code and verify that the error messages appear first in the hover.


optimize error message

Codecov Report

Merging #67 into release-rc4 will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             release-rc4      #67   +/-   ##
==============================================
  Coverage          59.39%   59.39%
  Complexity           313      313
==============================================
  Files                 35       35
  Lines               2827     2827
  Branches             208      208
==============================================
  Hits                1679     1679
  Misses               999      999
  Partials             149      149

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 46145c3...3d6cd29. Read the comment docs.


[Snyk] Upgrade @types/node from 18.11.9 to 18.18.7

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @types/node from 18.11.9 to 18.18.7.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 81 versions ahead of your current version.
The recommended version was released 21 days ago, on 2023-10-25.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Unified search graphql branch is deployed to platta: https://kuva-unified-search-pr120.api.dev.hel.ninja :rocket::rocket::rocket:

Unified search sources branch is deployed to platta: https://kuva-unified-search-sources-pr120.api.dev.hel.ninja :rocket::rocket::rocket:


Allow use of existing private registry secret

Hi @innobead,
The PR addresses issue #2157
There are 3 ways to install longhorn as mention in the doc:

Using a Manifest File
Using a Helm Chart
Using a Rancher App

For 1., just type the name of the existing private registry secret.
For 2./3., modify chart/values.yaml.
For example in chart/values.yaml:

If you want to create a new secret for longhorn, enter your user/pass like this:

privateRegistry:
  secretCreation: true
  registryUrl: <REGISTRY_URL>
  registryUser: <REGISTRY_USER>
  registryPasswd: <REGISTRY_PASSWORD>
  registrySecret: <REGISTRY_SECRET_NAME>

if you want to make use of the existing private registry secret, enter your user/pass like this:

privateRegistry:
  secretCreation: false
  registryUrl: <REGISTRY_URL>
  registryUser: ~
  registryPasswd: ~
  registrySecret: <REGISTRY_SECRET_NAME>

Hi @innobead,
The PR addresses issue #2157
There are 3 ways to install longhorn as mention in the doc:

Using a Manifest File
Using a Helm Chart
Using a Rancher App

For 1., just type the name of the existing private registry secret.
For 2./3., modify chart/values.yaml.
For example in chart/values.yaml:

If you want to create a new secret for longhorn, enter your user/pass like this:

privateRegistry:
  secretCreation: true
  registryUrl: <REGISTRY_URL>
  registryUser: <REGISTRY_USER>
  registryPasswd: <REGISTRY_PASSWORD>
  registrySecret: <REGISTRY_SECRET_NAME>

if you want to make use of the existing private registry secret, enter your user/pass like this:

privateRegistry:
  secretCreation: false
  registryUrl: <REGISTRY_URL>
  registryUser: ~
  registryPasswd: ~
  registrySecret: <REGISTRY_SECRET_NAME>

We need to update the questions.yaml as well.

addressed, thank you.


Please add support for WebSocket compression

See discussion in akka-http, there a links to RFC's etc.: https://github.com/akka/akka-http/issues/659

+1 for this, WS compression never made it into akka proper and I know others have held interest in seeing it added for a few years now


[New chain]:

Chain Name
Flow
RPC URL
https://testnet.evm.nodes.onflow.org
The chain must be added to https://chainlist.org/

[X] I confirm that the chain is added to chainlist

After creating the issue, a bot will estimate the required pre-fund and post it in the comments. Please check this checkbox after you send the pre-fund.

[ ] I sent the pre-fund in accordance with Github Action's comment

Relevant information
No response

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file password: changeme In the installer menu, select "gcc."

What is this? My computer refuses to run the file due to the risk of virus...

Duplicate of #656


Fix Notebook Kusto Kernel Consistency

This PR fixes #12255 when opening a new notebook multiple times from the same Kusto connection.

Pull Request Test Coverage Report for Build 254263041

0 of 3 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.008%) to 38.952%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/services/notebook/browser/models/notebookModel.ts
0
3
0.0%

Totals

Change from base Build 254163351:
0.008%

Covered Lines:
19149

Relevant Lines:
44848

💛  - Coveralls


libc:minimal:Add bsearch function

This function implements a generic binary-search.
Signed-off-by: Balaji Kulkarni<EMAIL_ADDRESS>

@nashif @galak  This is my first commit to Zephyr. Could you please help in how can I fix License/CODEOWNER checks in my PR? I have added new files, so I guess reviewers are not assigned based on history, how can I get this change reviewed?

Just add a commit in this PR that adds a line to the CODEOWNERS file in the root of the repo. You also need SPDX license identifiers in the .c and .h files. See other files.

This function implements a generic binary-search.
Signed-off-by: Balaji Kulkarni<EMAIL_ADDRESS>
You need to add a Fixes #15159 to the commit message.

This function should probably be added to stdlib.h, which is where it is normally found. See, for example: https://en.wikibooks.org/wiki/C_Programming/stdlib.h

The submitter of this issue had recommended keeping implementation similar to Linux one to have smaller stdlib footprint. In Linux this is not part of stdlib it exists as part of a separate library.

Just add a commit in this PR that adds a line to the CODEOWNERS file in the root of the repo. You also need SPDX license identifiers in the .c and .h files. See other files.

Added SPDX license identifiers similar to other files, still license check fails. Am I missing something?

@SebastianBoe I am adding a new test under /tests folder , when I include new header file added as part of this PR bsearch.h the build fails as it's not finding the file. I tried including directories in CMakeLists.txt now encountering other redefinition issues. Could you please help check right way to include the new header for tests?

@carlescufi @SebastianBoe I have added SPDX license headers for the new file (similar to existing .c file). The check still fails, could you please help check what additional is missing?

@carlescufi @SebastianBoe I have added SPDX license headers for the new file (similar to existing .c file). The check still fails, could you please help check what additional is missing?
I don't know why the check is failing, maybe re-order this
/*bsearch.c - binary search routine*/
below the license header?
Or just drop it. Doesn't say much that is not already clear from
* @brief Generic implementation of Binary Search

@carlescufi @SebastianBoe I have added SPDX license headers for the new file (similar to existing .c file). The check still fails, could you please help check what additional is missing?

I don't know why the check is failing, maybe re-order this
/*bsearch.c - binary search routine*/
below the license header?
Or just drop it. Doesn't say much that is not already clear from
* @brief Generic implementation of Binary Search

Doesn't help still!

You are missing a copyright, not a license.

CODEOWNERS

/lib/libc/minimal/source/stdlib/bsearch.c @balajikulkarni

I would say this doesn't scale at all. @nashif, @carlescufi, @galak, is this what we expected from adding that CI check? If so, d'oh. I'd say, the correct solution here is to ensure that each subsystem in Zephyr has its maintainers, in this case, lib/libc/minimal.


feat(metarepos): add an upper limit for the number of topics in a cluster

What this PR does
This patch adds an upper limit for the number of topics in a cluster. To do that, it adds a new CLI
flag --max-topics-count to the varlogmr executable.
When the metadata storage tries registering a new topic, it compares the current number of topics in
the cluster against the given upper limit. If the metadata repository rejects the RegisterTopic RPC,
gRPC code of the response is ResourceExhausted.
Which issue(s) this PR resolves
Resolves #295

Codecov Report
Base: 63.15% // Head: 63.36% // Increases project coverage by +0.20% :tada:

Coverage data is based on head (cb287e8) compared to base (c3066b8).
Patch coverage: 60.71% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #296      +/-   ##
==========================================
+ Coverage   63.15%   63.36%   +0.20%
==========================================
  Files         130      130
  Lines       17357    17383      +26
==========================================
+ Hits        10962    11014      +52
+ Misses       5841     5824      -17
+ Partials      554      545       -9

Impacted Files
Coverage Δ

pkg/mrc/metadata_repository_client.go
51.37% <0.00%> (-2.47%)
:arrow_down:

internal/metarepos/config.go
63.50% <20.00%> (-1.12%)
:arrow_down:

internal/metarepos/storage.go
80.81% <93.75%> (+2.12%)
:arrow_up:

internal/metarepos/raft_metadata_repository.go
76.95% <100.00%> (+0.28%)
:arrow_up:

internal/storagenode/replication_server.go
77.96% <0.00%> (-0.85%)
:arrow_down:

internal/storagenode/logstream/executor.go
81.48% <0.00%> (+1.20%)
:arrow_up:

internal/metarepos/raft_logger.go
66.66% <0.00%> (+33.33%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Some fixes

fixes fallback if an error occures during extracting or output.
fixes the similar keys in restString
fixes error if a section key is contained elsewhere.

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


Bitgo Integration

minor nit for next time: instead of copy-pasting files like https://github.com/brave/ethereum-remote-client/pull/136/commits/581cb8477e3a0fd6065730cc5137cde8e9466bb6 from another branch, it's preferable to cherry-pick the commit and then move it in a new commit so it preserves the commit history/authorship

@diracdeltas authorship restored - https://github.com/brave/ethereum-remote-client/pull/136/commits/5e9287bada2ef324d9e32c28ca0b2a265c063047

this work has been superseded by #186

this work has been superseded by #186


word-wrap isn't applied when main entry properties are exposed from hidden state

only from safari.


Automatically run migrations in prod on deploy

I'm a bit 50/50 on this since migrations often need a bit of babysitting. Thoughts @bailliekova ?

IMO worth doing now because it'll surface issues and shouldn't be a huge lift? We can always turn it off after we're launched if it seems like it's somewhat unstable.


Add version info to citadel and citadel agent

Fix in 1.1: https://github.com/istio/istio/pull/13951

You appear to be fixing a bug in Go code, yet your PR doesn't include updates to any test files. Did you forget to add a test?
Courtesy of your friendly test nag.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: douglas-reid, howardjohn, wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

security/OWNERS [wattli]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
8185ec71d6ff20f06c084b9753bde7e52c61c166
link
/test istio-unit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
8185ec71d6ff20f06c084b9753bde7e52c61c166
link
/test istio-unit-tests-master

prow/istio-presubmit.sh
8185ec71d6ff20f06c084b9753bde7e52c61c166
link
/test istio-presubmit-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-unit-tests-master

/test istio-presubmit-master

New changes are detected. LGTM label has been removed.

@wattli: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-security-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-security-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-security-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-security-k8s-presubmit-tests-master

prow/integ-pilot-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-pilot-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-security-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-security-k8s-presubmit-tests-master

prow/integ-pilot-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-pilot-k8s-presubmit-tests-master

prow/e2e-simpleTests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test e2e-simpleTests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@wattli: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-pilot-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-pilot-k8s-presubmit-tests-master

prow/e2e-simpleTests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test e2e-simpleTests-master

prow/integ-security-k8s-presubmit-tests.sh
0bd27388ff0ad74ab773f560904dfcaf218c7dce
link
/test integ-security-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


a8943a0 deepbit shares still risising endlessly.

happen under windows and linux
mine_lp look broken

I found a bug in LP which is fixed.

This should be fixed now, I'm testing it on my end.

same


Implement basic file drag-and-drop functionality.

This pull request implements some basic drag and drop file functionality, so that files can be dragged anywhere onto the page and be added into the file input control.

I did not run into any issues after a quick test, so this looks good to merge with the master branch. Thanks.
PNG files will be removed from .gitignore in the next commit.


Improve handling of nested workflow_jobs

Improve the handling of nested workflow_jobs in the WorkflowJobNode class.
The #job method was using .match?(/jobs/) to check if it was a job, the problem is that was matching on /api/v2/workflow_jobs/:id as well causing api.jobs.find(job_id) to fail with a 404.

For reference this is what one of these workflow_job_nodes looks like with a nested workflow_job
{
    "id": 11,
    "type": "workflow_job_node",
    "url": "/api/v2/workflow_job_nodes/11/",
    "related": {
        "credentials": "/api/v2/workflow_job_nodes/11/credentials/",
        "success_nodes": "/api/v2/workflow_job_nodes/11/success_nodes/",
        "failure_nodes": "/api/v2/workflow_job_nodes/11/failure_nodes/",
        "always_nodes": "/api/v2/workflow_job_nodes/11/always_nodes/",
        "unified_job_template": "/api/v2/workflow_job_templates/9/",
        "job": "/api/v2/workflow_jobs/27/",
        "workflow_job": "/api/v2/workflow_jobs/26/"
    },
    "summary_fields": {
        "job": {
            "id": 27,
            "name": "Test Workflow Template",
            "description": "",
            "status": "successful",
            "failed": false,
            "elapsed": 7.663,
            "type": "workflow_job"
        },
        "workflow_job": {
            "id": 26,
            "name": "Test Nested Workflow",
            "description": ""
        },
        "unified_job_template": {
            "id": 9,
            "name": "Test Workflow Template",
            "description": "",
            "unified_job_type": "workflow_job"
        }
    },
    "created": "2021-05-24T19:55:57.183220Z",
    "modified": "2021-05-24T19:55:57.439811Z",
    "extra_data": {},
    "inventory": null,
    "scm_branch": null,
    "job_type": null,
    "job_tags": null,
    "skip_tags": null,
    "limit": null,
    "diff_mode": null,
    "verbosity": null,
    "job": 27,
    "workflow_job": 26,
    "unified_job_template": 9,
    "success_nodes": [],
    "failure_nodes": [],
    "always_nodes": [],
    "all_parents_must_converge": false,
    "do_not_run": false,
    "identifier": "0e4519d5-a7f1-41b0-ad17-a2a8a140fd91"
}

cc @bdunne


[6.5.x] RHBPMS-1566 - Scripts with || are incorrectly saved

I think this piece of code is worth to extract into separate method. I found 9 occurrences in the Unmarshaller.
            String scriptLanguage;
            if(properties.get("script_language").equals("java")) {
                scriptLanguage = "http://www.java.com/java";
            } else if(properties.get("script_language").equals("mvel")) {
                scriptLanguage = "http://www.mvel.org/2.0";
            } else if(properties.get("script_language").equals("javascript")) {
                scriptLanguage = "http://www.javascript.com/javascript";
            } else {
                // default to java
                scriptLanguage = "http://www.java.com/java";
            }

@jomarko agreed. would it be ok to make that part of a refactoring PR separate from this? I can get that in asap.

@tsurdilo I am fine with refactoring in separate PR, if the new PR will me applied as for master so for 6.5.x. Refacotring only one branch could cause problems during cherry-picking between these two branches. So, do you plan to refactor both branches?

Tested and works well, so ready to approve if the refactoring discussed above is done separately.

@jomarko I will create a jira for it and it will be included whenever a release asks for it. I understand the value of refactoring this code but

it is not part of the fix for this platform jira
it has been around for a number of years and does not right now for this jira add particular value for it
it will be in master as soon as we get our other priority jiras in place for the next release

HTH

+1 from myself, probably also from @jlindop according to his previous comment.

I don't understand why this can't be refactored now. It looks like a matter of minutes to me. We certainly shouldn't be postponing the refactoring to (maybe) the next release. There's always gonna be something that will look to be more important than the refactoring. So it will never get done. We have empirical evidence for that :).

@csadilek @tsurdilo I am ready and willing to do the mentioned refactoring. Just let me know if I have green to do it as on master so for 6.5.x. I understand that @tsurdilo have a lot of work with other Jiras and I would like to help.

@jomarko definitely a green light from my side ;). thanks.

@jomarko same here :) was never a question if we do this or not, just in what pr and when. Thanks for your help!


Toggling all in the legend/style categorized breaks on params

Toggling all in the legend breaks if any of categories include '&'
Workaround is possible - using labels.

Added to https://github.com/GEOLYTIX/xyz/issues/419


Fit canvas to fixed container

Hello.
I have fixed container 600*600.
Is there way to load canvas with max container width and height?
Now it resize container height according image aspect:

I need to fit canvas of 600px max height:

.image-container {
  width: 600px;
  height: 600px;
}

Great. Thank you!
However, be noted that .image-container should be an immediate parent of image


Use @daenney improvements for .travis.yml

Split into lint/test stages so we can fail fast
cache modules
Only upload coverage if testing passes

I am going to come back to this eventually, but I am hoping that travis-ci fixed WASM with 1.13


Implement pagination for the ChatApi.Customers.list_customers/1 method

Problem
We currently fetch ALL customer records when we call the ChatApi.Customers.list_customers/1 method (i.e. we set no limit or offset in our query, nor do we have cursors or anything like that)
This will not scale very well as more and more data gets added.
Solution
To start off, let's do the following:

Implement another version of ChatApi.Customers.list_customers(account_id) that paginates the response, either by using a limit and an offset in the query, or cursors

Here's where the method lives in the code: https://github.com/papercups-io/papercups/blob/master/lib/chat_api/customers.ex#L22
Possible library for limit/offset approach: https://github.com/drewolson/scrivener_ecto
Possible library for cursor approach: https://github.com/duffelhq/paginator

(Note: I'm not sure that the cursor approach would even work in this scenario, since we want to be able to e.g. "fetch page 2 of our list of customers", which I'm not sure is possible with cursors... but I have a very minimal understanding of how to use cursors, so I may be wrong here)
This new method should just be called something like ChatApi.Customers.list_customers_paginated(account_id, pagination_options), and should only return, let's say, 50 records at a time

Testing
For the sake of this ticket, DO NOT use this new method in the GET /api/customers endpoint. We just want to set up the method itself, and write some tests showcasing how it works.
Questions, or need help getting started?
Feel free to ask below, or ping us on Slack :)
(You can also check out our CONTRIBUTING.md)

I can take on it


Moved Nodes usage out of inner DoCalculate in WideCombiner

Changelog entry
Moved Nodes usage out of inner DoCalculate in WideCombiner
...
Changelog category

Not for changelog (changelog entry is not required)

Additional information
...

https://a.yandex-team.ru/review/6169941/details
PR over arcadia


Omnipay: Sisow

Hello,
We use Invoiceninja from Softtaculous apps installer but using the payment gateway from Sisow the "Merchant Key " fiels is missing.
Can you update this or how can we fix this issue.
Best regards, Rene

Did you initialize the gateway as described in the example? Using the Merchant Key


memory leak while running for some time

I tried basic Pinger as follows:
for {
	pinger, err := ping.NewPinger("<IP_ADDRESS>")

	pinger.SetPrivileged(true)
	if err != nil {
		panic(err)
	}
	pinger.Count = 3
	pinger.Interval = time.Second
	pinger.Timeout = 3 * time.Second
	pinger.SetPrivileged(true)
	pinger.Run() // blocks until finished
	stats := pinger.Statistics()
	log.Println("%v", len(stats.Rtts) == 0)
	log.Println("%v", (stats))
}

Where start ping at t = t0 and pinger run shall be blocked for 3 secs and returns the status.
I start new pinger again for getting continuous ping statistics.
I tried finally differently by registering the callback and start the New Pinger on receiving the callback as follows:
func main() {
	pinger, err := ping.NewPinger("<IP_ADDRESS>")
	if err != nil {
		fmt.Println("Pinger Create failed: %s", err.Error())
		return err
	}

	pinger.Count = 3
	pinger.Interval = time.Second
	pinger.Timeout = 3 * time.Second
	pinger.SetPrivileged(true)
	pinger.OnFinish = onFinishCb

	err = pinger.Run()
	if err != nil {
		fmt.Println("Pinger Run failed: %s", err.Error())
		return err
	}

	wg := &sync.WaitGroup{}
	wg.Add(1)
	go shutdownHandler(wg)

	wg.Wait()
}

// onFinishCb is called when ping is finished.
func onFinishCb(stats *ping.Statistics) {
	t.latency = uint64(stats.AvgRtt / time.Millisecond)
	pinger, err := ping.NewPinger(t.peerIP)
	if err != nil {
		fmt.Println("Pinger Create failed: %s", err.Error())
		// return err
	}
	pinger.Count = 3
	pinger.Interval = time.Second
	pinger.Timeout = 3 * time.Second
	pinger.SetPrivileged(true)
	pinger.OnFinish = onFinishCb
	fmt.Println("Latency :%v", t.latency)

	err = pinger.Run()
	if err != nil {
		fmt.Println("Pinger Run failed: %s", err.Error())
	}
}

In either case I am finding memory of this main process increases from 1 MB to 8 MB in 4-5 mins (with top command).
Please provide your inputs.

I'm seeing this as well, does anyone have a clue what could be causing that?

The "memory leak" is packet rtt tracking.
This can be turned off with pinger.RecordRtts = false.
Fixed by:

https://github.com/go-ping/ping/pull/115
https://github.com/go-ping/ping/pull/150


[BUG] OperationalQueryAllocator: "Failed to register query responder, CHIP_ERROR_NO_MEMORY"

Reproduction steps

Recommission an m5stack all-clusters-app ~800+ times in ping-pong fashion:
** [old fabric] ArmFailSafe
** [old fabric] AddTrustedRoot
** [old fabric] AddNOC
** [new fabric] CASE
** [new fabric] CommissioningComplete
** [new fabric] RemoveFabric(old-fabric-index)

Eventually, I am seeing that mDNS advertisements are breaking with this signature:
I (42006655) chip[DIS]: Advertise operational node ACF66E6C553BB6D4-4831E7A0CAFFCFAC
I (42006705) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: ACF66E6C553BB6D4-4831E7A0CAFFCFAC.
E (42006755) chip[DL]: Failed to post event to CHIP Platform event queue
I (42006755) chip[DIS]: mDNS service published: _matter._tcp
E (42006755) chip[CSL]: Failed to queue CHIP System Layer lambda event: 1000000
I (42006755) chip[DIS]: Advertise operational node B488808FBF8FAADD-EF4CC0D532095C69
E (42006775) chip[DL]: Failed to post event to CHIP Platform event queue
E (42006785) chip[CSL]: Failed to queue CHIP System Layer lambda event: 1000000
E (42006815) chip[DIS]: Failed to register query responder: CHIP_ERROR_NO_MEMORY
E (42006825) chip[DIS]: Failed to find an open operational allocator

This condition persists until the device is restarted.  I believe we may be leaking memory from the OperationalQueryAllocator.
Bug prevalence
Only observed with devices subjected to this endurance test
GitHub hash of the SDK that was being used
26dab6c296d5b7d3de03a94320b12a412ff4aa9e
Platform
esp32
Platform Version(s)
No response
Anything else?
No response

In investigating, I am trying to figure out how / if / when RemoveQueryResponder is called.  We are failing to call it under some circumstances.  I am also observing that since some refactors where registered query responders seem to come from Platform::New, we can no longer rely on hitting the case where AddQueryResponder matches an existing entry here:
https://github.com/project-chip/connectedhomeip/blob/2c9cd9210b9858efaa3d87d0d538bd00b53757d6/src/lib/dnssd/minimal_mdns/ResponseSender.cpp#L55
That is, *it == queryResponder will be true rarely or never if I am reading the code correctly.  I think this may be the commit where that path becomes non-viable:
commit 59c6bae37dda2f011e853c36b728a18ece5c07f1
Date:   Fri Mar 18 15:00:11 2022 -0400
Use platform alloc & intrusive lists for managing MinMdns responders (#16181)

I think the leaks are probably happening somewhere at or after this point in the Advertise method:
https://github.com/project-chip/connectedhomeip/blob/2c9cd9210b9858efaa3d87d0d538bd00b53757d6/src/lib/dnssd/Advertiser_ImplMinimalMdns.cpp#L462
As far as I can tell, I think we are leaking the objects allocated here when we hit failure paths in Advertise:
https://github.com/project-chip/connectedhomeip/blob/2c9cd9210b9858efaa3d87d0d538bd00b53757d6/src/lib/dnssd/Advertiser_ImplMinimalMdns.cpp#L412
https://github.com/project-chip/connectedhomeip/blob/2c9cd9210b9858efaa3d87d0d538bd00b53757d6/src/lib/dnssd/Advertiser_ImplMinimalMdns.cpp#L419

@msandstedt can we somehow show what object leaks?
if we suspect a QueryResponder or QueryAllocator, we could add some instance count global to check. Since this is out of heap seemingly, it could be anything in the provision steps.
Is there a chip-tool or repl script that can replicate this? Some copy&paste/scriptable commands would make this easier to investigate.

@msandstedt can we somehow show what object leaks?
if we suspect a QueryResponder or QueryAllocator, we could add some instance count global to check. Since this is out of heap seemingly, it could be anything in the provision steps.
Is there a chip-tool or repl script that can replicate this? Some copy&paste/scriptable commands would make this easier to investigate.

Unfortunately, on our end we are driving this test from some proprietary tools, so I am unable to provide any script that would be helpful outside of our organization.
However, I've added the instrumentation you've suggested and am re-running to see if I can reproduce and catch a place where there may be a AddQueryResponder without a symmetric RemoveQueryResponder.

admin_ping_ping.py.tar.gz
Here is a test script that could be used to validate things. I was able to run this on linux like this:
# in a separate terminal, start a light app
rm -f kvs1 && ./out/linux-x64-light/chip-lighting-app --discriminator 2118 --KVS kvs1

# Compile and activate python
scripts/build_python.sh -m minimal -i separate
source out/python_env/bin/activate

# actual test run (limited iteration count)
rm -f admin_storage.json && python3 src/python_testing/admin_ping_pong.py --commissioning-method on-network --discriminator 2118 --passcode 20202021 --fabric-id 100  --int-arg num_iterations:5

valgrind did not report leaks though. May help if we instrument some things if hey increase but heap gets released at shutdown.

Testing for a ble-wifi device:
rm -f admin_storage.json && python3 src/python_testing/admin_ping_pong.py --commissioning-method ble-wifi --wifi-ssid $SSID --wifi-passphrase $PWD -d 3840 --passcode 20202022

(I did not yet get this to pass though... still trying to figure out why)

Above did not work because passcode is 20202021 for devkitc.

So my device seems to run out of event queue space, likely sigma1 taking CPU.

Yes, I've also seen this.  So far, I don't think this is implicated, but I have yet to reproduce the original issue since adding the instrumentation.

So my device seems to run out of event queue space, likely sigma1 taking CPU.

Yes, I've also seen this. So far, I don't think this is implicated, but I have yet to reproduce the original issue since adding the instrumentation.

I have also seen this:
I (443411) chip[ZCL]: OpCreds: successfully created fabric index 0x76 via AddNOC
E (443411) chip[DL]: Failed to post event to CHIP Platform event queue
I (443411) chip[EM]: <<< [E:41848r M:26663948 (Ack:98518830)] (S) Msg TX to 117:BD48AA13EED92FB9 [F129] --- Type 0001:09 (IM:InvokeCommandResponse)
E (443421) chip[CSL]: Failed to queue CHIP System Layer lambda event: 1000000
I (443431) chip[IN]: (S) Sending msg 26663948 on secure session with LSID: 25276
E (443451) chip[CSL]: PacketBuffer: pool EMPTY.
E (443461) chip[DL]: Failed to post event to CHIP Platform event queue
E (443461) chip[DMG]: Failed to send command response: b
E (443461) chip[CSL]: Failed to queue CHIP System Layer lambda event: 1000000

This appears to be more of the mDNS traffic starving everything else.  In this case, the protocol still was sane.  No response was sent and the recommissioning failed as expected.
Still waiting to repro...

OK, here is reproduction.  This is the last successful recommissioning:
I (45644171) chip[ZCL]: OpCreds: Fabric index 0x68 was removed
I (45645161) chip[DIS]: Updating services using commissioning mode 0
I (45645161) chip[DIS]: CHIP minimal mDNS started advertising.
E (45645211) chip[CTL]: ResponseSender::RemoveQueryResponder: allocated=6
E (45645211) chip[CTL]: OperationalQueryAllocator::~OperationalQueryAllocator: allocated=4
E (45645221) chip[CTL]: ResponseSender::RemoveQueryResponder: allocated=5
E (45645231) chip[CTL]: OperationalQueryAllocator::~OperationalQueryAllocator: allocated=3
E (45645241) chip[CTL]: ResponseSender::RemoveQueryResponder: allocated=4
E (45645251) chip[CTL]: OperationalQueryAllocator::~OperationalQueryAllocator: allocated=2
E (45645251) chip[CTL]: ResponseSender::RemoveQueryResponder: allocated=3
E (45645261) chip[CTL]: OperationalQueryAllocator::~OperationalQueryAllocator: allocated=1
E (45645271) chip[CTL]: ResponseSender::RemoveQueryResponder: allocated=2
E (45645281) chip[CTL]: OperationalQueryAllocator::~OperationalQueryAllocator: allocated=0
I (45645291) chip[DIS]: Advertise operational node 8DA978CE28BF5A69-790B4436644CE621
E (45645291) chip[CTL]: OperationalQueryAllocator::New: allocated=1
E (45645301) chip[CTL]: ResponseSender::AddQueryResponder: allocated=3
I (45645301) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: 8DA978CE28BF5A69-790B4436644CE621.
I (45645331) chip[DIS]: mDNS service published: _matter._tcp
I (45645331) chip[DIS]: Advertise operational node A80B62E552A748BB-9A3ACA6EF5CDB8E9
E (45645351) chip[CTL]: OperationalQueryAllocator::New: allocated=2
E (45645351) chip[CTL]: ResponseSender::AddQueryResponder: allocated=4
I (45645361) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: A80B62E552A748BB-9A3ACA6EF5CDB8E9.
I (45645391) chip[DIS]: mDNS service published: _matter._tcp
I (45645391) chip[DIS]: Advertise operational node E84E331D7F7A902B-83CBE7CC6A0BD495
E (45645421) chip[CTL]: OperationalQueryAllocator::New: allocated=3
E (45645421) chip[CTL]: ResponseSender::AddQueryResponder: allocated=5
I (45645431) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: E84E331D7F7A902B-83CBE7CC6A0BD495.
I (45645471) chip[DIS]: mDNS service published: _matter._tcp
I (45645471) chip[DIS]: Advertise operational node 88457643C469AB4D-972D412B0D3DDA7B
E (45645511) chip[CTL]: OperationalQueryAllocator::New: allocated=4
E (45645511) chip[CTL]: ResponseSender::AddQueryResponder: allocated=6
I (45645521) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: 88457643C469AB4D-972D412B0D3DDA7B.
I (45645561) chip[DIS]: mDNS service published: _matter._tcp
I (45645561) chip[ZCL]: OpCreds: RemoveFabric successful

And then, hereafter we are stuck:
--
I (46580311) chip[ZCL]: OpCreds: Fabric index 0x6a was removed
I (46581831) chip[TS]: Pending Last Known Good Time: 2022-10-14T11:31:09
I (46581851) chip[TS]: Previous Last Known Good Time: 2022-10-14T11:29:44
I (46581851) chip[TS]: Reverted Last Known Good Time to previous value
E (46582041) chip[FP]: Warning: metadata not found during delete of fabric 0x6a
E (46582301) chip[ZCL]: OpCreds: failed to delete fabric at index 106: d8
I (46582301) app-devicecallbacks: PostAttributeChangeCallback - Cluster ID: '0x0030', EndPoint ID: '0x00', Attribute ID: '0x0000'
I (46582321) app-devicecallbacks: Unhandled cluster ID: 48

So it seems to be the failure to delete a fabric and, therefore failure to emit the fabric-removed callback, that causes the mDNS advertisements not to be released.  Then subsequently when we try advertise again without having restarted the mDNS server, no more slots are available.

This would be where the error happened it seems:
https://github.com/project-chip/connectedhomeip/blob/bc6b43882a56ddb3e94d3e64956bd5f3292b4058/src/credentials/FabricTable.cpp#L222

I think I see it:
I (51186171) chip[FS]: Fail-safe timer expired
E (51186171) chip[ZCL]: OpCreds: Got FailSafeTimerExpired
E (51186171) chip[ZCL]: OpCreds: Proceeding to FailSafeCleanup on fail-safe expiry!
E (51186181) chip[FP]: Reverting pending fabric data for fabric 0x6a
I (51186181) chip[EVL]: Dropped 1 event from buffer with priority 1 and event number  0x00000000000F05E3 due to overflow: event priority_level: 1
E (51186431) chip[FP]: Warning: metadata not found during delete of fabric 0x6a
I (51187851) chip[FP]: Fabric (0x6a) deleted.
  In this case, the new fabric was being added to the last available 5th slot.  This means that though we've removed the fabric, we haven't removed its advertisement.  So if we try to commission a new fabric, mDNS advertisement will always fail because the mDNS server hasn't been restarted and its advertisement slots are already full.
For our part, we need to be using the already-known IP address.  This might in theory allow us to side-step this bug.  But it is still a bug because a newly-added fabric can't be advertised.

Further confirmed.  The device in question is continuing to advertise a stale identity after fail-safe expiry:
avahi-browse _matter._tcp
+ enp89s0 IPv6 95D5F7D9D34A6FFB-69FB7307CDAF2046             _matter._tcp         local

95D5F7D9D34A6FFB-69FB7307CDAF2046 is the operational instance name for the node / fabric that failed commissioning with fail-safe timeout.