virt-viewer: 6.0 -> 7.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/virt-viewer/versions.
meta.description for virt-viewer is: '"A viewer for remote virtual machines"'.

Checks done (click to expand)

built on NixOS
/nix/store/2fh8lrlz371f30ddqbk4grwhycg1wp92-virt-viewer-7.0/bin/remote-viewer passed the binary check.
/nix/store/2fh8lrlz371f30ddqbk4grwhycg1wp92-virt-viewer-7.0/bin/virt-viewer passed the binary check.
/nix/store/2fh8lrlz371f30ddqbk4grwhycg1wp92-virt-viewer-7.0/bin/.remote-viewer-wrapped passed the binary check.
/nix/store/2fh8lrlz371f30ddqbk4grwhycg1wp92-virt-viewer-7.0/bin/.virt-viewer-wrapped passed the binary check.
4 of 4 passed binary check by having a zero exit code.
0 of 4 passed binary check by having the new version present in output.
found 7.0 with grep in /nix/store/2fh8lrlz371f30ddqbk4grwhycg1wp92-virt-viewer-7.0
directory tree listing: https://gist.github.com/b36b046eab4c7515eef6a0ae13ded6f0
du listing: https://gist.github.com/75cc8970a96b617c40b855994f9d3fa7

Test this build with Cachix (click to expand)

One time setup in nixpkgs Git checkout:
cachix use r-ryantm
git remote add r-ryantm https://github.com/r-ryantm/nixpkgs.git

Test this build:
git fetch r-ryantm && git checkout 3f8989bff9b241e6115337e3f13eef5669ff6bfc && nix-shell --pure -I nixpkgs=. -p virt-viewer

cc @7c6f434c for testing.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: virt-viewer
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: virt-viewer
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0
shrinking /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0/bin/.virt-viewer-wrapped
shrinking /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0/bin/.remote-viewer-wrapped
gzipping man pages under /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0/share/man/
/nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0
strip is /nix/store/1hi76hr87bd1y1q1qjk0lv8nmcjip1c8-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0/bin
patching script interpreter paths in /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0
checking for references to /build in /nix/store/7a38sik8lfqq4d0lnv2pyv8jdkrky4k6-virt-viewer-7.0...

Success on aarch64-linux (full log)
Attempted: virt-viewer
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0
shrinking /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0/bin/.virt-viewer-wrapped
shrinking /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0/bin/.remote-viewer-wrapped
gzipping man pages under /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0/share/man/
strip is /nix/store/zrs21zqcchgyabjf4xfimncdq16njizc-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0/bin
patching script interpreter paths in /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0
checking for references to /build in /nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0...
/nix/store/48xl1ixhz9gjhi6p0d2ipl9q1927g4qz-virt-viewer-7.0

spice-gtk has been updated.
@GrahamcOfBorg build virt-viewer

Success on x86_64-linux (full log)
Attempted: virt-viewer
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0
shrinking /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0/bin/.remote-viewer-wrapped
shrinking /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0/bin/.virt-viewer-wrapped
gzipping man pages under /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0/share/man/
strip is /nix/store/gpc2wld1s0c6qzx9326cwn1wcx29xzsj-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0/bin
patching script interpreter paths in /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0
checking for references to /build in /nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0...
/nix/store/03hj97y8l0dcx1hdkyyzwxfd61gy2369-virt-viewer-7.0

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: virt-viewer
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Timed out, unknown build status on aarch64-linux (full log)
Attempted: virt-viewer
Partial log (click to expand)
stripping (with command strip and flags -S) in /nix/store/bjkkdg29xm7chr5b7v00v9h9p9z15jrc-spice-gtk-0.35/lib  /nix/store/bjkkdg29xm7chr5b7v00v9h9p9z15jrc-spice-gtk-0.35/bin
patching script interpreter paths in /nix/store/bjkkdg29xm7chr5b7v00v9h9p9z15jrc-spice-gtk-0.35
checking for references to /build in /nix/store/bjkkdg29xm7chr5b7v00v9h9p9z15jrc-spice-gtk-0.35...
shrinking RPATHs of ELF executables and libraries in /nix/store/lqi6v7236rkfrb9axgisl6vc8br7g2c0-spice-gtk-0.35-dev
strip is /nix/store/ah0va6j4cnwj9nx4j6rwcfc8nh785jwm-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/lqi6v7236rkfrb9axgisl6vc8br7g2c0-spice-gtk-0.35-dev/lib
patching script interpreter paths in /nix/store/lqi6v7236rkfrb9axgisl6vc8br7g2c0-spice-gtk-0.35-dev
checking for references to /build in /nix/store/lqi6v7236rkfrb9axgisl6vc8br7g2c0-spice-gtk-0.35-dev...
cannot build derivation '/nix/store/livcw54hfsygh6w1zdnssfm7y9hdwjgm-virt-viewer-7.0.drv': 2 dependencies couldn't be built
error: build of '/nix/store/livcw54hfsygh6w1zdnssfm7y9hdwjgm-virt-viewer-7.0.drv' failed


Provide built-in listener for getting notifications to external process

Originally submitted to Google Code by bryan.oakley on 27 Nov 2011

The SocetListener class that is part of RIDE has uses outside of RIDE. I think it should be made part of the robot framework core so people can use it even if they don't install RIDE.

I don't think this issue is important enough to keep open. Can be looked again if someone has a concrete use case.


Result of RandomSource.Next(x, x+1) Not in Range [x, x+1[

Using MathNet.Numerics 3.13.0:
When I use the code RandomSource.Next(x, x+1), I don't get the expected value of x back, but something (random) out of range.
Testcode:
RandomSource source = new Xorshift();
var next = source.Next(9, 10);
next.Should().Be(9); // Expected value to be 9, but found -2037414154.

Maybe there should be a fastpath added, to just return the minimum element without a random call?

The problem seems to be, that DoSampleInt32WithNBits is called with the parameter bitCount=0, and it tries to shift with an invalid amount of 32 bits:
// the least significant N bits with independend uniform distribution and the remaining bits zero
            uint uintN = uint32 >> (32 - bitCount);

Which leaves uintN the same as uint32.

Thanks for catching and reporting this!

Merged to master


APPDUX-81: Add role info under user menu

Motivation
https://issues.redhat.com/browse/APPDUX-81
What
Add login name, admin/dev icon, and admin/dev 'badge' based on whether the current user has admin rights or not, according to the design spec.
Why
To better display whether the currently logged in user has admin account privileges or not.
Verification Steps
No cluster to test on, so you will need to verify by running locally:

Start solution explorer and click the user menu in the masthead. It should display the administrator version of the menu.
Change ln 230 of masthead.js to 'isAdmin = false'.
Click the user menu in the masthead. It should now display the developer version of the menu.

Checklist:

[x] Code has been tested locally by PR requester
[ ] Changes have been successfully verified by another team member

Progress

[x] Finished task

Additional Notes
User menu when logged in as Admin:

User menu when logged in as Dev:

Looking good! Just a few styling tweaks.

No hover state/background color change for the profile info section.
Background color for the section with the profile info: global_BackgroundColor_150
Background color for the developer label should be: global_palette_cyan_100

Looking good! Just a few styling tweaks.

No hover state/background color change for the profile info section.
Background color for the section with the profile info: global_BackgroundColor_150
Background color for the developer label should be: global_palette_cyan_100

Thanks @tiffanynolan... I made the CSS changes. I've attached the latest screen caps, and/or you can run it locally and let me know if you approve.

Looks great! Thanks, Mark.

Thanks... here's a screenie of the correct dev color, just to keep me honest.


No autocomplete for DOMContentLoaded

VSCode Version: 1.22.2
OS Version: macOS

Steps to Reproduce:

document.addEventListener(...)
There's no DOMContentLoaded

Yes


⚠ Bofrost.at has degraded performance

In f0b039d, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1148 ms

Resolved: Bofrost.at performance has improved in 1dce4fa after 9 minutes.


[BUGFIX] [FRONTEND] Correct chat logprobs

FIX #5008 – correct logprobs format
BEFORE SUBMITTING, PLEASE READ THE CHECKLIST BELOW AND FILL IN THE DESCRIPTION ABOVE

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Seems the failing builds are only due to some infrastructure issues...

I think stop_reason was intentionally added in #2976. Better not remove it from the output.

Also, the existing code for _create_logprobs fails the type checker (at least when I'm developing on VSCode). Feel free to use my updated implementation.

I think stop_reason was intentionally added in #2976. Better not remove it from the output.

Good catch.
But this means that some clients might break. I have to test this, but I think clients in statically typed languages will not work with this, since it’s not part of the official API.

Also, the existing code for _create_logprobs fails the type checker (at least when I'm developing on VSCode). Feel free to use my updated implementation.

Can you share some details about what the type checker is complaining about? I'm not seeing any errors.

Also, the existing code for _create_logprobs fails the type checker (at least when I'm developing on VSCode). Feel free to use my updated implementation.

Can you share some details about what the type checker is complaining about? I'm not seeing any errors.

Currently, cross-directory checking is disabled (--follow-imports=skip) which suppresses most errors. @rkooo567 is working on properly type annotating the code before enabling cross-directory checking. To avoid introducing more errors, I've developing with cross-directory checking enabled. Specifically inside the context of OpenAIServing._create_logprobs and OpenAIServingChat._get_top_logprobs, I'm getting the following errors on your branch:
mypy
vllm/entrypoints/openai/serving_engine.py:110: error: Key expression in dictionary comprehension has incompatible type "Optional[str]"; expected type "str"  [misc]

vllm/entrypoints/openai/serving_chat.py:415: error: Argument "token" to "ChatCompletionLogProb" has incompatible type "Optional[str]"; expected "str"  [arg-type]
vllm/entrypoints/openai/serving_chat.py:417: error: Item "None" of "Optional[str]" has no attribute "encode"  [union-attr]

pyright
vllm/entrypoints/openai/serving_engine.py:102:40 - error: Argument of type "str | None" cannot be assigned to parameter "object" of type "str" in function "append"
  Type "str | None" cannot be assigned to type "str"
    "None" is incompatible with "str" (reportArgumentType)
vllm/entrypoints/openai/serving_engine.py:107:50 - error: Argument of type "dict[str | None, float] | None" cannot be assigned to parameter "object" of type "Dict[str, float] | None" in function "append" (reportArgumentType)
vllm/entrypoints/openai/serving_engine.py:119:34 - error: Argument of type "str | None" cannot be assigned to parameter "obj" of type "Sized" in function "len"
  Type "str | None" cannot be assigned to type "Sized"
    "None" is incompatible with protocol "Sized"
      "__len__" is not present (reportArgumentType)
vllm/entrypoints/openai/serving_engine.py:196:40 - error: Argument of type "str | None" cannot be assigned to parameter "text" of type "TextInput | PreTokenizedInput | List[PreTokenizedInput]" in function "__call__" (reportArgumentType)

vllm/entrypoints/openai/serving_chat.py:415:23 - error: Argument of type "str | None" cannot be assigned to parameter "token" of type "str" in function "__init__"
  Type "str | None" cannot be assigned to type "str"
    "None" is incompatible with "str" (reportArgumentType)
vllm/entrypoints/openai/serving_chat.py:417:44 - error: "encode" is not a known member of "None" (reportOptionalMemberAccess)

@DarkLight1337 if you can help review and shepherd this PR that would be great (I'll merge upon your approval)
Regarding the output compliance if it is proven wide spread (can type safe languages to ignore extra fields? Otherwise it's difficult for forward compatibility I would have imagine), we can maybe return it via extra headers. (cc @njhill)

Re additional fields in outputs, I feel that sticking to only what's supported by the current OpenAI APIs will be too restrictive. Just like how we have a bunch of extra request parameters (though I understand that doesn't have the same client compatibility concern). AFAIK clients can ignore unrecognized response fields in most cases.
If this turns out to be a problem, we could consider adding a "strict API response compatibility" config flag, and omit any extras if it's set?

I have tested today with the Azure OpenAI client for Java (cf. https://platform.openai.com/docs/libraries/azure-openai-libraries) and it worked. So at least with this client the extra stop_reason is not a problem.
While this is not an exhaustive proof, I'll add it back. Then I'll see that I merge the changes from @DarkLight1337 into this PR.

@DarkLight1337
I've added the following changes following your PR:

in protocol.py top_logprobs is no longer required  to be defined when logprobs is True
LogProbs has been renamed into CompletionLogProbs
improved tests
fixed code for type checker

There are some parts in your PR that I disagree with:

in protocol.py the format of the logprobs object for the chat completion is not in accordance to the OpenAI API spec. You can see in the official API spec here that:

the logprobs object contains a content array
the content array contains objects with a token string, a logprob number, a bytes array of ints and a top_logprobs array of objects
the top_logprobs array of objects contain a token string, a logprob number and a bytes array of ints

also, when requesting "top_logprobs" : 2, the top_logprobs array contains the top token (redundantly) plus the second best token. I.e. len(top_logprobs) == k. This can also be seen in the link above.

There are some parts in your PR that I disagree with:

Thanks for going into depth regarding the API and raising these issues!

in protocol.py the format of the logprobs object for the chat completion is not in accordance to the OpenAI API spec. You can see in the official API spec here that:

the logprobs object contains a content array
the content array contains objects with a token string, a logprob number, a bytes array of ints and a top_logprobs array of objects
the top_logprobs array of objects contain a token string, a logprob number and a bytes array of ints

My PR does follow this, as specified in vllm.entrypoints.openai.protocol.ChatCompletionLogProbs. Perhaps you missed it?

also, when requesting "top_logprobs" : 2, the top_logprobs array contains the top token (redundantly) plus the second best token. I.e. len(top_logprobs) == k. This can also be seen in the link above.

I've looked through the docs again, and it indeed seems that len(top_logprobs) == k for Chat Completions API. I'll edit my message in #5008 accordingly.

According to this, an object of type vllm.entrypoints.openai.protocol.ChatCompletionLogProbs contains, optionally, a list of vllm.entrypoints.openai.protocol.ChatCompletionLogProb. Each element in the list contains only one field called top_logprobs,

Notice that ChatCompletionLogProb inherits from ChatCompletionTopLogProb.

@DarkLight1337 I believe all issues are now addressed. Thanks for your help!

I'm having an issue with the formatting. It seems the formatter wants the imports in a different way than isort...

isort wants this:

yapf wants this:

I don't really know how to fix this conflict... @DarkLight1337 can you help?

One could set the multi-line mode in isort to https://pycqa.github.io/isort/docs/configuration/multi_line_output_modes.html#4-hanging-grid. But this would be a project-wide change. I'm uncomfortable doing it.

I ran it locally and it seems the following format passed ./format.sh
diff --git a/vllm/entrypoints/openai/serving_completion.py b/vllm/entrypoints/openai/serving_completion.py
index cfa2e8ae..7bc5a127 100644
--- a/vllm/entrypoints/openai/serving_completion.py
+++ b/vllm/entrypoints/openai/serving_completion.py
@@ -8,10 +8,13 @@ from fastapi import Request

 from vllm.config import ModelConfig
 from vllm.engine.async_llm_engine import AsyncLLMEngine
-from vllm.entrypoints.openai.protocol import (
-    CompletionLogProbs, CompletionRequest, CompletionResponse,
-    CompletionResponseChoice, CompletionResponseStreamChoice,
-    CompletionStreamResponse, UsageInfo)
+from vllm.entrypoints.openai.protocol import (CompletionLogProbs,
+                                              CompletionRequest,
+                                              CompletionResponse,
+                                              CompletionResponseChoice,
+                                              CompletionResponseStreamChoice,
+                                              CompletionStreamResponse,
+                                              UsageInfo)

Apart from the formatting issue, LGTM. @simon-mo do you have permission to update their fork? If so, you can apply your suggestion and then merge this request.

@simon-mo this is the formatting produced by isort after the yapf formatting.
When run locally, there is no check whether yapf or isort changed the sources. When run in the CI environment, the fact that yapf changes this leads to build errors.

@rkooo567 any suggestion to this?

There are some other places where yapf is disabled via comments. Perhaps you have to do that here.

While you're here, please also resolve the merge conflict.

#5031 was just merged which seems to create conflict

@simon-mo conflicts resolved. Build should be through soon.

@simon-mo all tests green. We can merge!

@br3no I'll merge this on behalf of Simon - thank you for fixing this issue!


Cannot Open Dataset Files

Hello,
I downloaded the RGB dataset files from the link provided in the ReadMe. However they were all downloaded as binaries. Looking at the code I see that the input to any of the scripts is a yaml file which I assume would be inside the dataset folders. How can I open/convert to another format?
Thanks!

Hi @nradwan - Thank you for the question. Can you please provide a bit more information?

What are the files that you downloaded? They should be dataset_train_rgb.zip.001, dataset_train_rgb.zip.002 ...
Which operating system are you using?
The yaml files can be found within the zip files. The probably easiest way to unzip the files is to use 7-zip, see https://hiro.bsd.uchicago.edu/node/3168

Oh that clears it up. I was attempting to open with unzip and it didn't work. Was able to extract everything successfully now. Thank you for your help!

I can not see any yaml file inside the zip files.

The labels are stored within the repo. See https://github.com/bosch-ros-pkg/bstld/tree/master/label_files


'sys/xattr.h' file not found

i imported my iphone code to Winstore10.sln
after building i got this 'sys/xattr.h' file not found error in appdelegate.m
did any come across like this?

We haven't faced this issue before. Can you get us more details on your project and, if possible, the repro steps so we can investigate the issue?

Please reopen the issue when you have more info, if the latest release doesn't fix your problem.


Some question about hoodie

When can i use hoodie? Will the user see these data i stored in browser?

All data is stored in the browser, so when the user knows where to look, they can see it. But it's their data, so that should be no problem?


Mariadb appliance lock timeouts for UPDATE queries

Hey!
I'm running a WordPress site inside docker container in Flynn. This 3 node flynn cluster is created just for testing purposes.
It has been running smoothly ~ 2 weeks but now mariadb appliance started to give timeout errors like this one:
Mysql Error: Lock wait timeout exceeded; try restarting transaction query
UPDATE `wp_posts` SET `post_author` = 0,
`post_date` = '2016-09-10 14:33:58',
`post_date_gmt` = '2016-09-10 14:33:58',
`post_content` = '{{ INSERT 14000 characters of html here }}'

I found these lines in the mariadb logs:
[Warning] Aborted connection 50248 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50264 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50253 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50247 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50260 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50259 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)
[Warning] Aborted connection 50250 to db: '2f0a4053b8c1223a51048f50b893782f' user: '4ba7ff45fa9b10653c1990ec9ae742f7' host: '<IP_ADDRESS>' (Got an error reading communication packets)

Full output from flynn -a mariadb log can be found here: https://gist.github.com/onnimonni/9089f18be5cba3232fcfb2e1d19236e8

Can you please provide your Flynn cluster version and provide the output of flynn -a mariadb run mysqld --version

$ flynn-host version
v20160814.0

and
$ flynn -a mariadb run mysqld --version
/usr/sbin/mysqld  Ver 10.1.16-MariaDB-1~trusty for debian-linux-gnu on x86_64 (mariadb.org binary distribution)

This is due to an upstream bug in MariaDB, we tracked it down and got it fixed and released.
However we haven't yet shipped a new stable version of Flynn with the fix.
For now you can install the nightly release, this can be done best by taking a cluster backup and restoring it.
Otherwise for now you can work around it by running the following:
$ flynn -a mariadb mysql console -- -e 'SET GLOBAL rpl_semi_sync_master_wait_point = "AFTER_COMMIT"'

You can then verify the result with:
$ flynn -a mariadb mysql console -- -e 'SELECT @@rpl_semi_sync_master_wait_point'
+-----------------------------------+
| @@rpl_semi_sync_master_wait_point |
+-----------------------------------+
| AFTER_COMMIT                      |
+-----------------------------------+

I applied AFTER_COMMIT setting and confirmed that it's set but it didn't help. I still get the same lock wait timeout exceeded; error.
I can try to update to the nightly version.

@josephglanville what's the recommended way to change from stable -> nightly?

I might have misconstrued your issue in that case, this is actually likely an application level problem. Another transaction is holding a lock on your table by the looks of it.
As for moving from stable -> nightly the best way is to use the cluster backup facility and bootstrap the new cluster from this backup. Unfortunately installing nightly needs to be done manually rather than using the installer but once you have nighly version of flynn-host running on each machine you can run the bootstrapper with the cluster backup like so:
flynn-host bootstrap --from-file=<path_to_backup> <usual args, discoverd token or peer list etc>

Can you also post the output of this command:
flynn -a mariadb mysql console -- -e 'SHOW PROCESSLIST'

For the record: I have similiar flynn cluster for production. The production cluster uses external mariadb cluster because I saw bad performance with mariadb appliance ( issue in: #3291). We haven't had any problems over there so I think it's somehow related on the configuration of the mariadb appliances.
Here's the output:
$ flynn -a mariadb mysql console -- -e 'SHOW PROCESSLIST'
+-----+-------+--------------------+-------+---------+------+-------+------------------+----------+
| Id  | User  | Host               | db    | Command | Time | State | Info             | Progress |
+-----+-------+--------------------+-------+---------+------+-------+------------------+----------+
| 221 | flynn | <IP_ADDRESS>:60421 | mysql | Query   |    0 | init  | SHOW PROCESSLIST |    0.000 |
+-----+-------+--------------------+-------+---------+------+-------+------------------+----------+

Can you provide output of flynn -a mariadb ps. Something seems amiss, you mentioned this was a 3 node cluster but your MariaDB appliance seems to be running in singleton mode as there is slave replication process showing in the process list.

Here you go:
$ flynn -a mariadb ps
ID                                                                    TYPE     STATE  CREATED     RELEASE
grid1.flynn.stage.example.com-77363390-502f-46e3-a552-566f6cc4254e  web      up     5 days ago  470778b3-eba0-4ff1-a056-ece993b2b094
grid3.flynn.stage.example.com-b6e8a73e-fca1-492a-a0fe-17cdc3413e59  web      up     5 days ago  470778b3-eba0-4ff1-a056-ece993b2b094
grid2.flynn.stage.example.com-55206a08-a32b-493a-ae1c-04cc89590b75  mariadb  up     5 days ago  470778b3-eba0-4ff1-a056-ece993b2b094
grid1.flynn.stage.example.com-919a2fdc-70df-43c4-9fa6-5d426aad0f43  mariadb  up     5 days ago  470778b3-eba0-4ff1-a056-ece993b2b094
grid3.flynn.stage.example.com-2aeab3c6-7319-4e6b-8d99-7f9fea7803f1  mariadb  up     5 days ago  470778b3-eba0-4ff1-a056-ece993b2b094

Looks like that might be a different bug, if you could run flynn-host collect-debug-info for me that would be great.

I sent them as tarball to<EMAIL_ADDRESS>because github anonymous gists gave 405 error.

Logs look good, perhaps the binlog dump process isn't showing up for a different reason I haven't had a chance to observe it over a long enough period to ensure it is always running, I just expect to see it there when I run SHOW PROCESSLIST.
If you could run this last command I should be able to verify everything is actually fine:
flynn -a mariadb mysql console -- -e 'SHOW status LIKE "rpl_%s"'

Here you go:
$ flynn -a mariadb mysql console -- -e 'SHOW status LIKE "rpl_%s"'
+----------------------------------------+-------------+
| Variable_name                          | Value       |
+----------------------------------------+-------------+
| Rpl_semi_sync_master_clients           | 1           |
| Rpl_semi_sync_master_net_waits         | 59274       |
| Rpl_semi_sync_master_no_times          | 0           |
| Rpl_semi_sync_master_status            | ON          |
| Rpl_semi_sync_master_timefunc_failures | 0           |
| Rpl_semi_sync_master_tx_waits          | 59255       |
| Rpl_semi_sync_master_wait_sessions     | 1           |
| Rpl_status                             | AUTH_MASTER |
+----------------------------------------+-------------+

Ok that looks all good, no bug here.

Is there something I could do in order to make the timeout longer without changing the application logic?

You could try setting the timeout higher with:
$ flynn -a mariadb mysql console -- -e 'SET GLOBAL innodb_lock_wait_timeout = 120'

The default is 50 seconds.
This won't be permanent currently because the tunables code hasn't landed yet but it won't change unless your cluster is restarted or experiences a failure.

Sorry I confused my two clusters yesterday. This testing cluster isn't my default flynn cluster so I showed you wrong data yesterday. Here is now the real process list:
flynn -c stage -a mariadb mysql console -- -e 'SHOW PROCESSLIST'                                                                                master
+-------+----------------------------------+---------------------+----------------------------------+-------------+--------+-----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+----------+
| Id    | User                             | Host                | db                               | Command     | Time   | State                                                                 | Info                                                                                | Progress |
+-------+----------------------------------+---------------------+----------------------------------+-------------+--------+-----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+----------+
|   205 | flynn                            | <IP_ADDRESS>:50685  | NULL                             | Binlog Dump | 488544 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL                                                                                |    0.000 |
| 47195 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:44224  | 2f0a4053b8c1223a51048f50b893782f | Query       | 123950 | Waiting for semi-sync ACK from slave                                  | UPDATE `wp_posts` SET `post_author` = 0, `post_date` = '2016-09-10 14:33:58', `post_date_gmt` = '201 |    0.000 |
| 47196 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:38999 | 8d1f1653903c095e968f6e78c0c6717a | Query       | 123950 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'a:2:{s:7:\"plugins\";a:5:{s:21:\"polylang/polylang.php\";a |    0.000 |
| 48587 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:41782 | 8d1f1653903c095e968f6e78c0c6717a | Query       |  99840 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'a:7:{i:1473643440;a:1:{s:29:\"wp_session_garbage_collectio |    0.000 |
| 49326 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:60381  | 2f0a4053b8c1223a51048f50b893782f | Query       |  84027 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'a:8:{i:1473633384;a:1:{s:19:\"wp_scheduled_delete\";a:1:{s |    0.000 |
| 49327 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:60388  | 2f0a4053b8c1223a51048f50b893782f | Query       |  83873 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'O:8:\"stdClass\":3:{s:9:\"lastCheck\";i:1473659458;s:14:\" |    0.000 |
| 50875 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:50942 | 2f0a4053b8c1223a51048f50b893782f | Query       |  52491 | query end                                                             | UPDATE `wp_options` SET `option_value` = '1' WHERE `option_name` = 'ninja_forms_load_deprecated'     |    0.000 |
| 51025 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:53842  | 2f0a4053b8c1223a51048f50b893782f | Query       |  48479 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 51132 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:57523  | 2f0a4053b8c1223a51048f50b893782f | Query       |  41700 | query end                                                             | UPDATE `wp_options` SET `option_value` = 'a:19:{s:11:\"date_format\";s:5:\"d/m/Y\";s:15:\"currency_s |    0.000 |
| 52404 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:44634  | 2f0a4053b8c1223a51048f50b893782f | Query       |     23 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52422 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:45255  | 2f0a4053b8c1223a51048f50b893782f | Query       |     34 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52429 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:45500  | 2f0a4053b8c1223a51048f50b893782f | Query       |      6 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52441 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:45883  | 2f0a4053b8c1223a51048f50b893782f | Query       |     46 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52459 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:46505  | 2f0a4053b8c1223a51048f50b893782f | Query       |      8 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52477 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:47127  | 2f0a4053b8c1223a51048f50b893782f | Query       |     20 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Admin |    0.000 |
| 52485 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:55163 | 8d1f1653903c095e968f6e78c0c6717a | Query       |     48 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:6:{i:1473643440;a:1:{s:29:\"wp_session_garbage_collectio |    0.000 |
| 52486 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:55165 | 8d1f1653903c095e968f6e78c0c6717a | Query       |     26 | updating                                                              | UPDATE `wp_options` SET `option_value` = 'a:5:{i:1473643440;a:1:{s:29:\"wp_session_garbage_collectio |    0.000 |
| 52487 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:55176 | 8d1f1653903c095e968f6e78c0c6717a | Sleep       |     51 |                                                                       | NULL                                                                                |    0.000 |
| 52488 | 81acd8ef3bf84b0b6cc06d6816340211 | <IP_ADDRESS>:55179 | 8d1f1653903c095e968f6e78c0c6717a | Sleep       |      0 |                                                                       | NULL                                                                                |    0.000 |
| 52490 | 4ba7ff45fa9b10653c1990ec9ae742f7 | <IP_ADDRESS>:47648  | 2f0a4053b8c1223a51048f50b893782f | Query       |     28 | updating                                                              | UPDATE `wp_options` SET `option_value` = '1' WHERE `option_name` = 'ninja_forms_load_deprecated'     |    0.000 |
| 52492 | flynn                            | <IP_ADDRESS>:53397  | mysql                            | Query       |      0 | init                                                                  | SHOW PROCESSLIST                                                                                |    0.000 |
+-------+----------------------------------+---------------------+----------------------------------+-------------+--------+-----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+----------+

And after I killed the 47195 Waiting for semi-sync ACK from slave query all of those waiting queries went away:
$ flynn -c stage -a mariadb mysql console -- -e 'SHOW PROCESSLIST'
+-------+-------+--------------------+-------+-------------+--------+-----------------------------------------------------------------------+------------------+----------+
| Id    | User  | Host               | db    | Command     | Time   | State                                                                 | Info             | Progress |
+-------+-------+--------------------+-------+-------------+--------+-----------------------------------------------------------------------+------------------+----------+
|   205 | flynn | <IP_ADDRESS>:50685 | NULL  | Binlog Dump | 490888 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |    0.000 |
| 52537 | flynn | <IP_ADDRESS>:54673 | mysql | Sleep       |    791 |                                                                       | NULL             |    0.000 |
| 52591 | flynn | <IP_ADDRESS>:52579 | mysql | Query       |      0 | init                                                                  | SHOW PROCESSLIST |    0.000 |
+-------+-------+--------------------+-------+-------------+--------+-----------------------------------------------------------------------+------------------+----------+

I also set:
flynn -c stage -a mariadb mysql console -- -e 'SET GLOBAL rpl_semi_sync_master_timeout = 1000'

which I found from: #3197

Yep this is definitely #3197 then. The AFTER_COMMIT workaround should make changing rpl_semi_sync_master_timeout unnecessary but it won't hurt.

TIL:

The global variable change does not affect the session variable for any client that is currently connected (not even the session within which the SET GLOBAL statement occurred).
Source: https://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html

So If someone else finds this later on you need to kill the hanging query in order to start using the new configs.
Thanks for your help @josephglanville.


Should dataframes with empty predictions have a class recall of None or 0?

This may get superseded by the desire to transition to torchmetrics for evaluate.py, but I am having internal debate about how to format the evaluation dataframe for situations where the model returns no predictions.
related to https://github.com/weecology/DeepForest/issues/412
and uncovered during the PR here: https://github.com/weecology/DeepForest/pull/410
def test_evaluate_empty():
    m = main.deepforest()
    m.config["score_thresh"] = 0.8
    csv_file = get_data("OSBS_029.csv")
    root_dir = os.path.dirname(csv_file)
    results = m.evaluate(csv_file, root_dir, iou_threshold = 0.4)

    #Does this make reasonable predictions, we know the model works.
    assert np.isnan(results["box_precision"])
    assert results["box_recall"] == 0

    df = pd.read_csv(csv_file)
    assert results["results"].shape[0] == df.shape[0]

The logic is that the box recall is already, there are no correct boxes. The class recall is usually interpreted as, given the matching boxes, which are correctly predicted?


Full screen mode

Please add a full-screen icon just to the right of serverless. Clicking it should hide the title bar and nav bar. Here's the kind of icon to use: https://www.google.com/search?q=full+screen+icon&tbm=isch
You then need to add the inverse to restore.

we already have a /serverless and a /landscape urls used for rendering the png or pdf. Should we try to reuse it? Can you specify what exactly should be left in a fullscreen mode? Should we attempt to use a fullscreen mode from a browser?

Just add a mode=fullscreen and don't render the navbar or header, similar to what you do with embedded=yes.


Error Handling: Enhancement

Hi @petyosi, thanks for addressing the earlier issues on error handling and introducing some built-in handlers. However with the latest update in 1.13.4 our previous custom 'catch-all' has not stopped working as expected. Previously it would catch all unrecognised inputs and either display an empty paragraph node or converts the inputs into text, now it only catches certain characters and your built-in error comes up asking the user to correct source view.
This is a little problematic because we don't intend to show source-view to the user unless they are an admin (because most of them aren't coders and won't be markdown literate). Is there a way to ensure rich-text view is ALWAYS available in case of an error?
I am going to look further into how i can modify my catch all to still work for my needs, but I expect there will be some challenges because of conflicts the built-in error parser. Understand it's hard to make something that works for everyone, but the need to correct it in sourceview is really problematic for us.
Thanks very much!

The latest error handling still has lower precedence than the registered visitors, so a catch all plugin logic should work as expected.
To show you what I mean, I created this sandbox. As you can see, the markdown uses an unknown construct (a heading), but the headings plugin is not there. However, the catch all plugin falls it back to a paragraph node. Since there's an eventual visitor that caught that node, the diff/source view error handling is not triggered.
If I am missing something here, please fork the sandbox above and demonstrate the problem you experience.

@petyosi thanks for creating this sandbox! I have reproduced the scenario mentioned earlier here. The catch-all seems to pick up unsupported MD well but not something like  <!-- -->

For what I've found out so far, the <!-- --> is actually causing a synta error when HTML parsing is turned on. It cannot be caught by a visitor (and somehow fallen back to something). More details on that in the docs.

hey @petyosi thanks for that. It works well now for most of our use cases if I add the suppressHtmlProcessing in addition to the catch all plug-in. Sorry the catch-all earlier was somehow able to convert html tags to paragraph out of the box so didn't think it could be the issue.
Thanks again for your contribution :)


Any ETA for the release of the updated @zxcvbn-ts/language-es-es?

Is there any ETA of the updated version fo @zxcvbn-ts/language-es-es? It's containing a fix for a non-translated string which would be great to get as soon as possible!
Thanks a lot for your work!

Thank you!


Cross-platform applications can't import Android-specific code in V (os.NativeActivity)

Error is "unknown type os.NativeActivity".
Since V doesn't support conditional imports using directives like C/C++, current workaround is to re-structure project with separate modules as it is the only way to control what to import. So, Android-specific JNI code can be seperated from desktop code.

In V, you can name your files so they end in _<platform>.c.v where code specific to each platform should live.
So if you want to import jni.android it should be done in a file ending in _android.c.v

In V, you can name your files so they end in _<platform>.c.v where code specific to each platform should live.
So if you want to import jni.android it should be done in a file ending in _android.c.v

I was not aware of this, thank you.


Overhaul input textarea

ISSUE IN PROGRESS
Notes

We want autogrow with min and max rows.

References
Vuetify is the major reference here.

vuetify
quasar
ant-design

Duplicate #510


Copr URLs are wrong for groups

The copr URLs for groups (starting with @) are different.

@sturivny, @lachmanfrantisek, @TomasTomecek, building in the custom copr works. That's great!
The log linked by packit for the RPM build however points to an invalid copr build URL.
The log: https://prod.packit.dev/copr-build/3500/logs
The invalid link in the log: https://copr.fedorainfracloud.org/coprs/@oamg/convert2rhel/build/1321726/
The link that works: https://copr.fedorainfracloud.org/coprs/g/oamg/convert2rhel/build/1321726/

Originally posted by @bocekm in https://github.com/oamg/convert2rhel/pull/27#issuecomment-604972368

@sturivny, @lachmanfrantisek, @TomasTomecek
Also, the testing farm is trying to install the convert2rhel build from an invalid copr repo URL.
Testing farm log: https://console-testing-farm.apps.ci.centos.org/pipeline/1bb7bded-36e2-4b9b-b34f-47333aaf418e
It tries to install the pkg from<EMAIL_ADDRESS>It should be installing it from: https://copr.fedorainfracloud.org/coprs/g/oamg/convert2rhel/repo/epel-6/group_oamg-convert2rhel-epel-6.repo

Originally posted by @bocekm in https://github.com/oamg/convert2rhel/pull/27#issuecomment-604974158

The PRs above should have fixed this issue (and I should have closed it long ago), but still copr build URLs are invalid in the logs, though the repo URLs seem to be fine (logs)
[18:05:15] [+] [cruncher] [/plans/smoke] [prepare] Installing builds from copr
# cd /etc/yum.repos.d && curl -LO<EMAIL_ADDRESS>% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
127 382 127 382 0 0 952 0 --:--:-- --:--:-- --:--:-- 9794
# repoquery --disablerepo=* --enablerepo=copr:copr.fedorainfracloud.org:@oamg:convert2rhel '*' | grep -v \.src | xargs dnf -y install
Loaded plugins: fastestmirror, presto
Error: Need to pass a list of pkgs to install

I'll try to check on this.

The copr build URLs are wrong b/c packit-service/packit#780 above was not correctly released.
Installation fails, b/c Testing Farm doesn't use the correct repo name: instead of copr:copr.fedorainfracloud.org:@oamg:convert2rhel it should be copr:copr.fedorainfracloud.org:group_oamg:convert2rhel. I'm discussing with @thrix how to fix this.

Re-built Packit Service images and updated the deployment. Links to copr builds are okay now, see https://prod.packit.dev/copr-build/5155/logs

The Testing Farm is still unable to install the convert2rhel package. The Farm calls the following repoquery cmd which is wrong - it returns nothing:
repoquery --disablerepo=* --enablerepo=copr:copr.fedorainfracloud.org:@oamg:convert2rhel '*' | grep -v \.src | xargs dnf -y install
There shouldn't be just asterisk, but rather the build version that has just been built for the PR. E.g.:
repoquery --disablerepo=* --enablerepo=copr:copr.fedorainfracloud.org:@oamg:convert2rhel '*v0.9-1.20200409153013426150*' | grep -v \.src | xargs dnf -y install
I'm not sure if it still falls under this issue or new issue should be filed for the testing farm.

The copr build URLs are wrong b/c packit-service/packit#780 above was not correctly released.
Installation fails, b/c Testing Farm doesn't use the correct repo name: instead of copr:copr.fedorainfracloud.org:@oamg:convert2rhel it should be copr:copr.fedorainfracloud.org:group_oamg:convert2rhel. I'm discussing with @thrix how to fix this.

Actually @csomh created a patch and I am deploying it now. Not sure about the other issue though ....

FTR https://gitlab.com/testing-farm/cruncher/-/merge_requests/13

It seems that there were successful builds and test runs for oamg/convert2rhel#27, so closing this.
Thanks @thrix for your help and thank you @bocekm for your patience!

Awesome, thanks, guys.

@lachmanfrantisek @csomh thank you for taking care of this and finishing it for real! you're heroes


Broadcast operation failure while using simsimd beyond v3.7.7

[ ] Packages affected:

community: fix cosine_similarity to support simsimd beyond 3.7.7
partners/milvus: fix cosine_similarity to support simsimd beyond 3.7.7
partners/mongodb: fix cosine_similarity to support simsimd beyond 3.7.7
partners/pinecone: fix cosine_similarity to support simsimd beyond 3.7.7
partners/qdrant: fix cosine_similarity to support simsimd beyond 3.7.7

[ ] Broadcast operation failure while using simsimd beyond v3.7.7:

Description: I was using simsimd 4.3.1 and the unsupported operand type issue popped up. When I checked out the repo and ran the tests, they failed as well (have attached a screenshot for that). Looks like it is a variant of https://github.com/langchain-ai/langchain/issues/18022 . Prior to 3.7.7, simd.cdist returned an ndarray but now it returns simsimd.DistancesTensor which is ineligible for a broadcast operation with numpy. With this change, it also remove the need to explicitly cast Z to numpy array
Issue: #19905
Dependencies: No
Twitter handle: https://x.com/GetzJoydeep

[ ] Considerations:

I started with community but since similar changes were there in Milvus, MongoDB, Pinecone, and QDrant so I modified their files as well. If touching multiple packages in one PR is not the norm, then I can remove them from this PR and raise separate ones
I have run and verified that the tests work. Since, only MongoDB had tests, I ran theirs and verified it works as well. Screenshots attached :

I have added a test for simsimd. I feel it may not go well with the CI/CD setup as installing simsimd is not a dependency requirement. I have just imported simsimd to ensure simsimd cosine similarity is invoked. However, its not a good approach. Suggestions are welcome and I can make the required changes on the PR. Please provide guidance on the same as I am new to the community.

@efriis @baskaryan please review

Patches make sense to me 🤗

Thanks @baskaryan for the unit test fix. Is the poetry.lock file also need to be checkedin?


MaxListenersExceededWarning: Possible EventEmitter memory leak detected

Since i enabled critical-css i see this in my build.
node:26304) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(Use node --trace-warnings ... to show where the warning was created)
(node:26304) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGTERM listeners added to [process]. Use emitter.setMaxListeners() to increase limit
(node:26304) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT listeners added to [process]. Use emitter.setMaxListeners() to increase limit

That seems weird, I'll take a look! What version of Eleventy and eleventy-critical-css are you using?

Same here with eleventy 1.0.0-beta.8. The build breaks with the error "FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory"

I have a repo you can test - https://github.com/atlas-bi/website
I've always gotten this message and just ignored it probably started with 11ty v0.10.0 and still get it in 1.0.0.

Hey @gregives did you have a chance to check this out?

Hi @christopherpickering sorry I haven't taken a look yet, I might have some time tomorrow to investigate. As the code for eleventy-critical-css is only 20 lines long, I imagine the problem actually lies the critical dependency

Hmm, yeah, you're right. I wonder if because 11ty is processing the pages async that penthouse gets overloaded?

I think that's right, critical or penthouse seems to register more and more listeners without checking process.getMaxListeners() which causes this error. I'll try to look into it more tomorrow…

I've taken a look at this and I don't think the error is coming from eleventy-critical-css but from critical, probably related to this issue. I will open another issue in the critical repository, to see if they can investigate it further.
If you want the warning to go away, you can either increase the limit or turn the limit off, like so:
process.setMaxListeners(100); // Increase the limit
process.setMaxListeners(0); // Turn off the limit

However, be aware of what you are doing before you include those lines of code. There is a StackOverflow thread here with some useful context.

As a follow up @gregives would you be so kind to link the issue # from critical here, once you've opened it please?

This has been fixed in v2.0.2, let me know if you have any problems with it!


Uploaded notebook not pushing to the gh-pages branch

Hi,
Running into an issue after uploading a new notebook to the _notebooks folder. The new notebook "2021-02-15-NHL-Instagram-Analysis.ipynb" has successfully uploaded, but it is not being reflected in the gh-pages branch of the repository. I'm not seeing any errors in GitHub Actions either.
I've uploaded it multiple times and deleted it to see if that solved any issues, but to no avail.
Link to the repository: https://github.com/pdholakia98/DholakiaSportsAnalytics

Notebooks are not supposed to go into the gh-pages branch only HTML is.    If they aren't being converted, look at the development guide and debug it a bit before opening an issue with information.

Hi Hamel,
I don't believe your answer was sufficient enough to warrant closing the issue. I tried to debug the issue before posting here and read through the documents provided, but they're not detailed enough for me to understand why a notebook uploaded to the master _notebook folder would not create a post.
I would appreciate a better explanation of what the issue is, as the expected action steps are not occurring.
Thanks

Can you please debug locally and tell me what information you are seeing.  It's impossible to debug given the information you are sharing


Fix fontWeight on ReactNative

Closes #145
@jurmous can you please verify this fixes your issue?

Closing in favor of #210


TimetableGridItem speaker's Text overflow handling is different from Figma

Overview
I think Ellipsis is correct for the Speaker of TimetableGridItem for one line and TextOverflow when looking at Figma.

Figma
Actual

🙋
I wanna handle this!

Thanks! Assigned 👍

The number of lines in the session title also seems to be different. (Figma has 3 lines, actual has 2 lines).
I will try to handle the issue of the number of lines in the title together.

As I commented earlier, I was going to fix the number of lines in the session title together, but there seems to be a problem with the logic used to calculate the height of the text in the session title. (Because simple fixes such as maxLines and weight were not enough to solve the problem.)
Therefore, I will create another Issue regarding the number of lines in the session title.


Implement textDocument/documentSymbol

Specification
Just realized that I miss this feature. I imagine that it will just enumerate all symbols with their position in filetype=grep *symbols* buffer. Would be nice to set working directory to the current buffile's one to have very short prefix for jumps, but it's intrusive and raises the question about flexible cwd again (ref https://github.com/mawww/kakoune/issues/2091). Might worth improving grep.kak to use some cwd option to jump instead of actual cwd when present.

Going to make really simple implementation of it and then improve based on feedback.


bug: if C:\Users\<user>\AppData\Local\nvim-data is a symlink on Windows, wierd stuff happens

Did you check docs and existing issues?

[X] I have read all the lazy.nvim docs
[X] I have searched the existing issues of lazy.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
0.9.0
Operating system/version
Windows 10 19045
Describe the bug
On Windows if C:\Users\<user>\AppData\Local\nvim-data is a symlink something is different.  I don't know what, I just know that I get errors with treesitter trying to reinstall all my parsers every time I open a new file unless I remove the symlink, and I didn't get those errors with Packer
Steps To Reproduce
setup a neovim config with lazy.nvim and nvim-treesitter, add some parsers to ensure_installed, and make C:\Users\<user>\AppData\Local\nvim-data a symlink to another directory that exists.  Open a file and wait for treesitter to finish installing all the parsers in ensure_installed, and if it fails with some of them then close and reopen the same file until it successfully installs all the parsers.  Close that file and open a different file, and treesitter will throw weird errors and try to reinstall all the parsers in ensure_installed.
Expected Behavior
treesitter should only compile and install the parsers once
Repro
i tried to make a config but it looks like its using some other path instead of the standard C:\Users\<user>\AppData\Local\nvim-data and I don't know how to deal with that or if it would affect the result

not a lazy issue. sorry. you probably have an old nvim-treesitter plugin lingering around. Treesitter does funky things checking for installed parsers.
Run :checkhealth lazy and see if it reports something.
You can also check https://github.com/folke/lazy.nvim/issues/582 to further debug your issue.

upgraded all my plugins to the latest version, nvim-treesitter is at cdc45ac6bad52d95802b54e8a6d4f7aaa163edc5
still an issue

i also removed my entire nvim-data folder and recreated it and it still happened

The issue is probably because the nvim-treesitter rtp path is not the same as the path they get through debug. Should be fixed in nvim-treesitter.  They should use something like vim.loop.fs_realpath


Refactor Slice reference op for port to TFLM

Solves second part of issue #51669, PR2:  Extract the reference implementation out of tensorflow/lite/kernels/internal/reference/reference_ops.h into its own header which can be included without dragging in reference_ops.h's dependences
Change-Id: I1c8e2a4550d9c6fd792b2d5ad0361579b9d437dd

@advaitjain Thank you for reviewing, I'm currently working on fixing the Ubuntu Sanity build fail. Did you suggest any other changes for this patch? I am unable to find it in the changes view, therefore I wanted to double-check that I'm not missing anything. BR Annie

@advaitjain Thank you for reviewing, I'm currently working on fixing the Ubuntu Sanity build fail. Did you suggest any other changes for this patch? I am unable to find it in the changes view, therefore I wanted to double-check that I'm not missing anything. BR Annie

Apologies, looks like my previous comments got lost. Added a comment this time to IWYU.
The Ubuntu sanity build can sometimes fail for unrelated reasons. Once I approve the PR, it will be imported internally and that is a place where more exhaustive tests run.

@advaitjain Thank you for reviewing, I'm currently working on fixing the Ubuntu Sanity build fail. Did you suggest any other changes for this patch? I am unable to find it in the changes view, therefore I wanted to double-check that I'm not missing anything. BR Annie

Apologies, looks like my previous comments got lost. Added a comment this time to IWYU.
The Ubuntu sanity build can sometimes fail for unrelated reasons. Once I approve the PR, it will be imported internally and that is a place where more exhaustive tests run.

Thank you for the helpful reply and for your comments!

apologies for the delay. 5a6b185 (#51672) fixes a lint error about not having a newline at the end of the file. This PR should be ready to go now.


Update code after changes of systems api in bevy

Breaking changes were introduced in
https://github.com/bevyengine/bevy/pull/8079
Not sure what strategy of keeping up to date with bevy this project has (master depends on bevy main branch but there are also some other branches), but this will be probably useful for anyone using bevy custom build.

done


Compose Web: wrong instance remembered when several remember calls in one scope

Clicking the foo button the second and subsequent times causes the code for the bar button to be executed.
fun main() {
    renderComposableInBody {
        val words = remember { mutableStateListOf<String>() }
        words.map { P { Text(it) }}
        Button(attrs = { onClick { words.add("foo") } }) { Text("foo") }
        Button(attrs = { onClick { words.add("bar") } }) { Text("bar") }
    }
}

Following is the build.gradle:
plugins {
    kotlin("multiplatform") version "1.7.20"
    id("org.jetbrains.compose") version "latest.release"
    kotlin("plugin.serialization") version "latest.release"
}

repositories {
    mavenCentral()
    maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
    google()
}

kotlin {
    js(IR) {
        browser()
        binaries.executable()
    }
    sourceSets {
        val jsMain by getting {
            dependencies {
                implementation(compose.web.core)
                implementation(compose.runtime)
                implementation("io.ktor:ktor-client-core:latest.release")
                implementation("io.ktor:ktor-client-content-negotiation:latest.release")
                implementation("io.ktor:ktor-client-js:latest.release")
                implementation("io.ktor:ktor-serialization-kotlinx-json:latest.release")
            }
        }
    }
}

Reproduced with compose version 1.2.1 and kotlin 1.7.20.
Works with compose version 1.2.0 and kotlin 1.7.10.

Thank you @eymar for the quick diagnosis and a workaround that helped unblock me!  I can't wait to complete my 100% Kotlin (client+server) app and show it off to everybody :)

as expected with compose version 1.2.0 and kotlin 1.7.10.

It probably should also work with Compose 1.2.1 and Kotlin 1.7.10, because Compose Multiplatform supports multiple Kotlin's

@bgcl Did you encounter that issue in some more complex use cases?
So I'm wondering if you had other cases/snippets where the issue takes place.

@eymar I applied your workaround to my more complex use case and it does not work with k1.7.20.  I'm posting the full code below although you wouldn't know how to run it live. But essentially, refactoring the whole thing into a separate composable still doesn't work with k1.7.20 but it works with k1.7.10 -- regardless of compose 1.2.0/1.2.1.  (not factoring it out also does not work with k1.7.20 but works with k1.7.10 -- regardless of compose 1.2.0/1.2.1)
import androidx.compose.runtime.*
import androidx.compose.runtime.snapshots.SnapshotStateList
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.plugins.contentnegotiation.*
import io.ktor.client.request.*
import io.ktor.serialization.kotlinx.json.*
import kotlinx.browser.window
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import kotlinx.serialization.json.Json
import org.jetbrains.compose.web.css.Color.gray
import org.jetbrains.compose.web.css.Color.green
import org.jetbrains.compose.web.css.Color.red
import org.jetbrains.compose.web.css.Color.yellow
import org.jetbrains.compose.web.css.backgroundColor
import org.jetbrains.compose.web.dom.*
import org.jetbrains.compose.web.renderComposableInBody

@Serializable
data class Message (val id: Int, val message: String)

@Serializable
class CurrentGame {
  val k: Int = 0
  lateinit var game: Game
}

@Serializable
class CompletedGame {
  lateinit var game: Game
}

@Serializable
class Game {
  val k: String = ""
  val game_moves: Collection<GameMove> = listOf()
  @Transient val game_moves_x: Collection<GameMoveX> = listOf()
}

@Serializable
class GameMove (@Transient val game: Game = Game(), val guess: String, val reply: String) {
  val i: Int = 0
  val j: Int = 0
}

fun main() {
    val cs = MainScope()
    val hc = HttpClient() {
        install(ContentNegotiation) {
            json(Json {
                prettyPrint = true
                isLenient = true
            })
        }
    }
    var initialized = mutableStateOf(false)
    var completed = mutableStateOf(false)
    val moves = mutableStateListOf<List<Pair<Char, Char>>>()
    val words = mutableStateListOf<String>()
    val guess = mutableStateListOf<Char>()
    cs.launch { hc.post("http://localhost:8080/currentgame").let {
        println("currentgame: ${it.status}")
        val game = it.body<Game>()
        println("game: ${game.k}")
        if (game.game_moves.lastOrNull()?.reply == "GGGGG") {
            completed.value = true
        }
        moves.clear()
        words.clear()
        game.game_moves.map {
            moves.add(it.guess.zip(it.reply))
            words.add(it.guess)
        }
        guess.clear()
        initialized.value = true
    } }
    window.onkeydown = fun (e) {
        if (! initialized.value || completed.value) return
        if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return
        e.keyCode.let { kc ->
            if (listOf(8, 46).contains(kc)) {
                guess.removeLast()
                return
            }
            if (kc == 13) {
                if (guess.size < 5) return
                cs.launch { hc.post("http://localhost:8080/gamemove") { setBody(guess.joinToString("")) }.body<Game>().let {
                    guess.clear(); moves.clear(); words.clear()
                    it.game_moves.map { moves.add(it.guess.zip(it.reply)); words.add(it.guess) }
                    if (it.game_moves.lastOrNull()?.reply == "GGGGG") completed.value = true
                    println(guess.joinToString(""))
                    println(moves.joinToString())
                    println(words.joinToString())
                } }
            }
            if (guess.size == 5) return
            if ((65..90).contains(kc).not()) return
        }
        guess.add(e.key.get(0))
    }
    renderComposableInBody {
        g(cs, hc, initialized, completed, guess, moves, words)
    }
}

@Composable fun g(
    cs: CoroutineScope,
    hc: HttpClient,
    initialized: MutableState<Boolean>,
    completed: MutableState<Boolean>,
    guess: SnapshotStateList<Char>,
    moves: SnapshotStateList<List<Pair<Char, Char>>>,
    words: SnapshotStateList<String>
) {
    if (! initialized.value) {
        P { Text("initializing; please wait up to 10 seconds") }
        return
    }
    if (completed.value) {
        Button(attrs = { onClick { cs.launch { hc.post("http://localhost:8080/newgame").body<Game>().let {
            completed.value = false
            guess.clear()
            moves.clear()
            words.clear()
            it.game_moves.map {
                moves.add(it.guess.zip(it.reply))
                words.add(it.guess)
            }
        } } } }) { Text("new game") }
    }
    Table {
        Tbody {
            moves.map { Tr { it.forEach { val color = when (it.second) { 'X' -> gray; 'Y' -> yellow; 'G' -> green; else -> red }; Td (attrs = { style { backgroundColor(color) } }) { Text(it.first.toString()) } } } }
            Tr { guess.forEach { Td { Text(it.toString()) } } }
        }
    }
}

Hey @bgcl
we published a new build of compose compiler plugin you may want to try with kotlin 1.7.20.
// in your build.gradle.kts
compose {
    kotlinCompilerPlugin.set("<IP_ADDRESS>-beta01") // it's a temporary hack. The new compiler version will likely be included in compose-multiplatform 1.2.2
}

The issue should be gone.

@eymar that does seem to work!  thank you for unblocking me so promptly on k1.7.20 :)  (sorry for the delay in confirming)

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Feature suggestion: Add Gotify as receiver

Gotify is a self-hosted server application that supports sending messages via a REST-API. Is there any way to add Gotify as a receiver within Alertmanager?

Thanks for suggesting this change. Unfortunately, we are currently not accepting new integrations.
We can only provide the stability and performance we want to provide if we can test integrations in an automated and scalable fashion. For
this reason, we are suggesting people integrate with the help of our generic interfaces by either integrating natively or putting a rewriting proxy in the middle. We would be more than happy to list this on our integrations page.
Even if existing integrations can not be tested in an automated fashion, we will not remove them for reasons of compatibility. This also means that any additions we take on, or any changes to existing integrations we make or accept, will mean maintaining and testing these until at least the next major version, realistically even beyond that.
Feel free to question this answer on our developer mailing list, but be aware it's unlikely that you will get a different answer.
That said, it looks like Gotify supports plugins (https://gotify.net/docs/plugin) and could therefore support out of the box alertmanager wehbooks

I made a really simple app, available at https://gitlab.com/A1kmm/alertmanager-to-gotify, to send a notification to Gotify for each alert, with the details of the notification controlled by annotations.

@A1kmm you can add your project here: https://prometheus.io/docs/operating/integrations/#alertmanager-webhook-receiver

I took the same route as @A1kmm, but used go since I'd prefer to avoid docker for my use case:
https://github.com/DRuggeri/alertmanager_gotify_bridge
It works pretty well though isn't completely finished.
I've opened a PR as suggested by @simonpasquier to add it to the docs.

This issue has been open for years now. Are you accepting new integrations again?
Would you accept a PR if I implemented it directly in alert-manager? Less complexity seems better to me.

I build and run my own alertmanager docker images. As part of that, I decided to take the route of building a native integration in alertmanager to gotify rather than running one more service to act as a bridge.
If anyone is interested, you can take a look at this patch - https://github.com/TuxdudeHomeLab/docker-image-alertmanager/blob/master/patches/01-gotify.diff , The patch builds successfully against the latest version of alertmanager, but I didn't get to write any tests. Also, I plan to maintain this patch only as part of my alertmanager docker image. Anyone is welcome to use or reuse it any form that works for them.
If there is interest from the alertmanager team to integrate this, I am happy to put in the effort to upstream it as a proper PR. But I would like to hear the stance first before I put in the extra effort, given the past discussions didn't seem as promising.

I have also built something to get this working: https://github.com/LukasKnuth/gotify-slack-webhook/
It's a plugin for Gotify which will accept Slack Incoming Webhooks (as already supported by AlertManager). It's good enough for my current use-case, have a look if you're interested.

I wrote a gotify plugin to directly receive and process webhooks. https://codeberg.org/ocimea/gotify-alertmanager-plugin It aims to keep the code base relatively small. You are welcome to share your thoughts.


test: check for replica attachments being created and attached

What type of PR is this?

/kind test
What this PR does / why we need it:
Adds check for replica attachment creation in dynamic provisioning test and azdiskschedulerextender tests
Which issue(s) this PR fixes:

Fixes #221
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

There seem to be some conflicts from rebase that is contributing to test failures.


friture: 0.49-unstable-2024-06-02 -> 0.51

Description of changes
Fix build.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Uh, it might be me not being able to use github correctly, but what did you change in the force-push? These two commits look identical to me.

I just rebased this branch to master. :)


Defining a class method outside its definition

Crystal appears to copy Ruby's ability to define a class method outside a definition of that type, by using a type name as the receiver of a def instead of self:
module Foo
end

def Foo.foo
  1
end

Foo.foo # => 1

It even works if the target type is unrelated to the current definition scope:
module Foo
end

module Bar
  def Foo.foo
    1
  end

  module Foo; end

  # not a redefinition
  def Foo.foo
    2
  end
end

Foo.foo      # => 1
Bar::Foo.foo # => 2

I think this is confusing, as the those targets depend on whether Bar::Foo has been defined prior to the def, so I would like the compiler to reject the second case at least. There is less ambiguity in the first case because those type lookups always start from the top level.
Crystal itself uses the top-level defs extensively in src/json/from_json.cr and src/yaml/from_yaml.cr, and also for the Spec module. The only non-top-level defs already refer to the enclosing type:
https://github.com/crystal-lang/crystal/blob/9e52dd6a4078b4f637e25f685bd47faf63c74273/src/float.cr#L262-L270

Is there a valid use case for redefining another class's method within another type scope? (e.g., first def in Bar). To me it sounds like we can keep the top-level re-definition (which saves you from module Foo; def foo; ...; end; end), and consider the second case as a re-definition of Bar::Foo.

One application I recently found is being able to do this without #8422:
require "json"

# okay, `NoReturn.from_json` will deserialize to a "value" of type NoReturn
def NoReturn.new(pull : JSON::PullParser) : NoReturn
  pull.raise "Cannot deserialize to NoReturn"
end

This then allows one to write:
struct Foo
  include JSON::Serializable

  # okay, this is a formally correct way to specify that `x` must be an empty array
  getter x : Array(NoReturn)
end

Foo.from_json %({"x":[]})  # => Foo(@x=[])
Foo.from_json %({"x":[1]}) # Cannot deserialize to NoReturn at line 1, column 8 (JSON::SerializableError)

The alternative, which might look even odder to some eyes, is:
alias NoReturnClass = NoReturn.class

class NoReturnClass
  def new(pull : JSON::PullParser)
    pull.raise "Cannot deserialize to NoReturn"
  end
end


Monday as first day of the week

Hello,
is it possible to set the first day of the week to Monday instead of Sunday?
Thanks

Hi @MarcoMirisola,
of course you can, just use the method of AUCalendar called setFirstDayOfWeek and pass to it Calendar.MONDAY (of java.util package)


ensure rspec rake task is defined for tasks

When I run asset precompile locally, it blows up on undefined rspec tasks.
EDIT: It happens when I do not have a database.yml locally
This is double sure that the RSpec RakeTask is defined

interesting...I am ok with this, but very surprised no one has hit this yet, since many others do precompiles locally

Thanks @jrafanie - I did a grep search and replace in lib/tasks. I removed the 2 that did not have rspec tasks defined.

Thanks @kbrock, but I didn't want them removed :stuck_out_tongue:

LOL.
rewrite: I will remove those modifications. but leave those lines in

This is related to #1823 - anything else to do here before merging?


chore: Update example to use builder

Description
Updating example code which is not using current alchemist version.
Type of Change

[ ] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ x] 📝 Documentation
[ ] 🗑 Chore

@hawkbee1 Thank you!!


When only one value is possible, ranged slider should show entire slider as selected

If a ranged slider only has one possible value (i.e., floor === ceil), the slider should show as entirely selected.
This is what currently happens:

This is what I would expect to happen:

I was able to simulate the entire range being selected via the translate option.
Demo jsfiddle: https://jsfiddle.net/L2kxuqxf/

In my opinion, a value should be a single point on the slider. In your proposition, there would be 2 points with the same value and this is not logic.
I won't implement such a feature since the whole architecture is based on this simple idea.

This situation can come up (and it is for me) if the slider's range is determined dynamically (e.g. due to what the user has set) and there is only one value. In this situation, the entire slider is representing a single point not two. It might make more sense, visually, if the points are not shown when there is only one possible value.
I don't believe this use case is uncommon or invalid.

I think that you should hide the slider when there is only one value ad simply display the value.


Easier ad hoc perSystem definition

Currently if I want to add a perSystem flake attribute, I have to do a bunch of option defintions and config setting. Would be good if I could just do perSystem = { system, ... }: { foo = ... } and get flake.foo.x86_64-linux.

Would be good if I could just do perSystem = { system, ... }: { foo = ... } and get flake.foo.x86_64-linux.

This would require the definition of flake to scan each config of allSystems, which is too strict.
Also many options in perSystem are not meant to be public, so for these reasons, it can't be quite as simple as that.
With https://github.com/hercules-ci/flake-parts/pull/63 the following should do the trick:
{
  transposition.foo.adHoc = true;
  perSystem = { ... }: {
    foo = ...;
  };
}

I'm not adding that example to the readme though, because I want to encourage users to write proper options; not to copy this kind of bad example.

Makes sense, thanks!

@roberth Do you think it might be possible to at least lower the boilerplate to add a new proper option? Some simple way to say "I want to simultaneously define a perSystem option, and map it to a new flake attribute set option keyed on system and sharing a common description"?

Something in the style of mkRenamedOptionModule would be possible, but I didn't write it because

Transposition is the problem and it should be removed from the next version of flakes
We shouldn't be adding many ad hoc attributes
The indirection will make the code a bit harder to understand
The description isn't actually common, because of the transposition.

I've made it about as easy as possible to make a really ad hoc declaration; just two lines. Apparently your use case is not as ad hoc. What is your actual use case?

Ah, sorry, this was meant to be a question about what to do when it's not ad hoc. E.g. if I look at apps.nix, it seems like I should be able to just write something like
{
  options.perSystemFlakeOptions.apps = mkPerSystemFlakeOption
      ({ config, system, ... }: mkOption {
          type = types.lazyAttrsOf appType;
          default = { };
          description = ''
            Programs runnable with nix run <literal>.#<name></literal>.
          '';
          example = lib.literalExpression or lib.literalExample ''
            {
              default.program = "''${config.packages.hello}/bin/hello";
            }
          '';
        }
      );
}

in place of
{
  options = {
    flake = mkSubmoduleOptions {
      apps = mkOption {
        type = types.lazyAttrsOf (types.lazyAttrsOf appType);
        default = { };
        description = ''
          Programs runnable with nix run <literal>.#<name></literal>.
        '';
        example = lib.literalExpression or lib.literalExample ''
          {
            x86_64-linux.default.program = "''${config.packages.hello}/bin/hello";
          }
        '';
      };
    };

    perSystem = mkPerSystemOption
      ({ config, system, ... }: {
        options = {
          apps = mkOption {
            type = types.lazyAttrsOf appType;
            default = { };
            description = ''
              Programs runnable with nix run <literal>.#<name></literal>.
            '';
            example = lib.literalExpression or lib.literalExample ''
              {
                default.program = "''${config.packages.hello}/bin/hello";
              }
            '';
          };
        };
      });

  };
  config = {
    flake.apps =
      mapAttrs
        (k: v: v.apps or { })
        config.allSystems;

    perInput = system: flake:
      optionalAttrs (flake?apps.${system}) {
        apps = flake.apps.${system};
      };

  };
}

and still get all the same results.

Ah ok :+1:
I'm a bit cautious about making option declarations dynamic, even though adHoc = true shows that it's possible in at least some cases. I think one problem may be the docs generation. Only "static" modules show up in the docs. Once you declare submodule options via a module added in config, they won't be picked up.
So I really think it'd have to be

Something in the style of mkRenamedOptionModule

or, basically, turn the whole apps.nix (or packages.nix or ...) module into a function and parameterize it to abstract all the specifics.

  config = {
    flake.apps =
[...]

Nitpicking, but this part has been replaced by config.transposition.apps = { };

@roberth Created https://github.com/hercules-ci/flake-parts/pull/64 for this


[Messages - Feature Request] - change the widget bar to an icon rather than flashing 'MESSAGES'

Love the new Messages app.  But think it would be more elegant if the notification on the widget bar was a simple envelope icon, rather than a flashing 'MESSAGES' bit of text.  It does not need to flash or be so large.   The user will easily spot the appearance of an envelope ICON in the widget area.

I bet someone will complain it's not obvious enough if we change it, but I appreciate it doesn't look that great.
Maybe it should be a setting

I was also thinking this, that it could be a setting. I was thinking of a bell tingling left and right. But I'm not even sure if I can manage that.
Also, I have my watch/LCD to only react to the button or touch, but it seems that when I have messages it's lighting up more (but the message has already disappeared). Anyway, mightb be unrelated. I'll try to figure out the pattern.
I will create some new icons and app-detections, I will also try to work on this

This change to an icon would also mean that the alert widget doesn't interfere with the watchface theming.
For example, the colouring and flashing affects the appearance of the cliock face, which I'm assuming is unintended.

I worked on this and I have a test available, but it broken on some other codepart I think.
@gfwilliams when working with icons you pointed me to "use the Image Converter with crop + inverted + transparency". I got some new icons from icon8, but wanted to know if you have the icon-size in pixels you were using, and also, do you need to enable the compression at this point in the image convertor. I am not sure.

the colouring and flashing affects the appearance of the cliock face, which I'm assuming is unintended.

Thanks - that'd be worth filing a bug for cliock on. cliock's probably not setting up the colours properly each time it renders.
@jeroenpeters1986  I just used the '30px' versions - there are certain types of B&W icons8 icons that come in that size, and that seemed fine. I don't use compression on them as they're so small it's not really worth it :)

Thanks @gfwilliams, I downloaded them as 24 and that works too now but that was just my guess. I will update them to 30px.
Because I'm adding new icons it might be worth compressing, but I don't know if the decompression time is worth it. Do you have any insights on that?

I don't know if the decompression time is worth it. Do you have any insights on that?

I'd say don't bother - if you look at the total number of characters you're putting in, you're saving maybe only 10%. The way it's done all the images are stored in flash anyway, so it's not like it will be using up RAM

Right :-) Then I hope I can make a new PR today. Just one other question: is "Messages" only for the integration with phones? If so i would like to change the icon more time to https://img.icons8.com/dusk/452/push-notifications.png and the small (default) icon to https://img.icons8.com/ios-filled/452/push-notifications.png

It would come down to this

For the icon, you could use it with other devices but I think mainly it is for phones. However I think on the Bangle don't people expect the messages app to have an icon like it is at the moment?
For the bell - that may be the same icon alarms use when set though? I guess they could be changed...
Just in future - if you type g.dump() in the web IDE it'll give you a nice '.png' screenshot that you can save/copy/paste - way easier than having to take photos ;)

Thanks @gfwilliams that would help for the screenshots! I dont know how to use this on the WebIDE though.
I have checked, the bell for alarms is indeed a solid black icon, but it doesn't move. It is not that different from alarms, that is right. I didn't find a better one at the moment, but I could use one that has only outlines, or maybe even a yellow one (not sure if that would be easily seen when the LCD is off).
The new icon I was thinking about makes it look like a phone pushes it message to the watch I think, but the current one is OK too. The only thing I had 'against' it was the red dot, that might seem to indicate there was a notification already.
I appreciate the time you take to provide me with feedback, thanks!

Fixed with 1084


[Frontend] Support capturing dynamically-shaped arrays from outer scopes in Python programs

Context: Catalyst supports Jax dynamically-shaped arrays. The current version has a notable limitation: body loop programs do not allow mixing captured dynamically-shaped arrays with the argument ones even if they are of the same dimension. This is because we effectively duplicated dimension variables for the loop-body arguments.
As an illustration, the loop body of the below program takes a as an argument array and x as a captured array. The experimental_preserve_dimensions flag has the default value of True
@qjit(abstracted_axes={1: 'n'})
def g(x, y):

  @catalyst.for_loop(0, 10, 1, experimental_preserve_dimensions=True)
  def loop(_, a):
    return a * x

  return jnp.sum(loop(y))

a = jnp.ones([1,3], dtype=float)
b = jnp.ones([1,3], dtype=float)
g(a, b)

Description of the Change:
This PR sets the following semantic of loops, depending on the value of the already-existing experimental_preserve_dimensions flag:

True (the default): all dynamic dimension variables will be handled as Jaxpr constants. So

Mixing argument and captured arrays is possible.
No dimension modification is allowed inside loops.

False would handle all the dimensions as Jaxpr implicit arguments.

Mixing argument and captured arrays is not possible.
Dimension modification within the loops are allowed.

[sc-60521]
Benefits:
Possible Drawbacks:
Related GitHub Issues:

Hi @rauletorresc! Since this fixes a bug in the dynamic shape array in v0.7.0, do we want to cherry pick this into the v0.7.0-rc branch?
cc @dime10 and @erick-xanadu for thoughts.

Makes sense. I'll proceed once the discussion is finished :)

@josh146 : what bug is fixed?

@erick-xanadu it is a bit blurry, but I view the current issue with dynamic shape support in v0.7.0 (that it doesn't support capturing dynamic shapes from outer scopes in python programs) as a bug.
So would be in favor of this being merged in as a bug fix to that behaviour in v0.7.0-rc.
Since this has already been merged into main, we will need to cherry pick this commit into v0.7.0-rc.

Regardless of what we call it, I agree it should be merged into the release.


How to access v speed data from a vplist object

See https://rawgit.com/enram/timamp-etl/read-data/src/2_vp_to_csv.nb.html at the bottom:
I can access v data for a single vp file:
bioRad::fetch(vp_files[1], quantity = "v")

But if I want to access it for 4 vp files (= vplist object):
bioRad::fetch(vp_files, quantity = "v")

I get the dens values back instead of v (which is not even the first attribute), even though according to the bioRad documentation, the fetch function should work on 3 class types:

Arguments
x: a vp,vplist or vpts object
quantity: a profile quantity, one of "HGHT","u","v","w","ff", "dd","sd_vvp","gap","dbz","eta", "dens","DBZH","n","n_all","n_dbz","n_dbz_all".

What am I doing wrong or is this a bug in bioRad? /cc @plieper @adokter

This seems like a bioRad issue.  Fixed in this release https://github.com/adokter/bioRad/releases/tag/0.2.4

Great!


Update outdated links in Javadoc

Now that https://www.winzip.com/wz54.htm is redirected to the winzip product page, we should update these links.

Hi @Glavo
Please rebase on git master to pick up a fix which should allow this PR to pass all build checks. Sorry about that.

Hi @Glavo
Please rebase on git master to pick up a fix which should allow this PR to pass all build checks. Sorry about that.

Done.


Design : Implement LFU cache in Java

https://leetcode.com/problems/lfu-cache/

Assign me this issue. I will solve this problem.


.*: Add new http-grace-period flag

This PR adds a new CLI flag to components which serve HTTP, called --http-grace-period.
Also refactors existing code and introduces a new HTTP server package, to increase the clarity of the run.Group scheduling.
cc @bwplotka @FUSAKLA
Signed-off-by: Kemal Akkoyun<EMAIL_ADDRESS>
[x] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end-user.

Changes

Adds new --http-grace-period CLI flag to components which serve HTTP.
Removes scheduleHTTPServer function and introduces a new package to handle HTTP serving.

Verification

make local-test
./scripts/quickstart.sh

@bwplotka Yes, definitely. Great idea, I'll add a grace period and draining logic for gRPC as well in another PR.

you need to sign commits + tests

This is great! I really like the new package and grace period is definitely good thing to have :+1:
Sorry for the delay, I was short of time lately.


Update README.md to remove 'debian/ubuntu' #10255

Changing Linux(Debian/Ubuntu) to just Linux as Debian based Linux flavors no longer install and won't continue based on comments by ficristo here https://github.com/adobe/brackets/issues/10255#issuecomment-243854796
Ultimately this has a work around but I don't see how to edit the wiki pages on adobe/brackets.  I'll be opening an issue with that as the ask which is to change the wiki pages to make it clear you can install on Debian.
I'm unsure what version of CEF is used for brackets here, but it does appear maintained if it's this one;
https://bitbucket.org/chromiumembedded/cef/
With that being said, they have a similar issue and have it as "WONTFIX"
https://bitbucket.org/chromiumembedded/cef/issues?q=libgcrypt
So pretty much unless someone finds and fixes there issue for them either the .deb will no longer work on debian os's that dont come packed with libgcrypt11 so all of them.

Hi @jacebenson,
could you sign our CLA? See http://dev.brackets.io/brackets-contributor-license-agreement.html

Signed just now.

On Nov 7, 2016, at 3:26 AM, Pete Nykänen<EMAIL_ADDRESS>wrote:
Hi @jacebenson,
could you sign our CLA? See http://dev.brackets.io/brackets-contributor-license-agreement.html
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Signed just now.

Thank you.
But personally I'm for WONTFIXing this.
I think the "Debian/Ubuntu" is a way to say that we produce only .deb packages so other platforms are not supported. If you remove it, it will seems that we support more platforms which is not correct.
Linux builds are build from the linux-1547 branch which use the 1547 version of CEF.
To fix the libgcrypto we have to update CEF version and probably merge this one https://github.com/adobe/brackets-shell/pull/501
PS: I have some PR on brackets-shell, which are already available in the repo, to build with a newer version of CEF, but we need support from Adobe to reach a conclusion. And sincerly with brackets-electron available I would like to simply switch to it: https://github.com/adobe/brackets/issues/12857.

@ficristo changing to electron would be cool but I was under the impression that wasn't going to happen per your comment before #10255 was locked.  If it did that'd be awesome.  I've been playing with atom as I jump around from windows to linux and like the same editor.  I'll keep watching for this change but I am not holding my breath.

@jacebenson have you checked out zaggino/brackets-electron? It has (near) feature parity with the CEF version and it's maintained by one of our contributors. I think that switching at this point wouldn't be so farfetched.

I don't know if we will switch to electron officially (I'm totally in favor for it), but the fork of @zaggino is very well alive. And, especially if you are a Linux user, I strongly advice to switch to it.
Regarding this PR, I think it will make things a bit more confusing, so I close it for now.


Modify return value for credentials of service instances

I would like to share my results.
Issue
Related with

https://github.com/cloudfoundry-incubator/app-autoscaler/issues/253
https://github.com/cloudfoundry-incubator/app-autoscaler-release/issues/54

Problem
CloudFoundryServiceInfoCreator class in Spring Framework does not handle null.
Approach
Because the Spring framework does not handle nulls, I modified the following:
app-autoscaler/servicebroker/lib/routes/binding.js
...
switch(statusCode){
  case 200:
  case 201:
    commitTransaction(t, res, statusCode, {credentials: {}});
    return;
...

I tested it and it works fine.
$ cf env spring-music
Getting env variables for app spring-music in org cloudlab / space dev as admin...
OK

System-Provided:
{
 "VCAP_SERVICES": {
  "autoscaler": [
   {
    "credentials": {},
    "label": "autoscaler",
    "name": "autoscaler1",
    "plan": "autoscaler-free-plan",
    "provider": null,
    "syslog_drain_url": null,
    "tags": [],
    "volume_mounts": []
   }
  ]
 }
}

$ cf app spring-music
Showing health and status for app spring-music in org cloudlab / space dev as admin...
OK

requested state: started
instances: 4/4
usage: 512M x 4 instances
urls: spring-music.app.domain
last uploaded: Thu Jul 6 09:02:18 UTC 2017
stack: cflinuxfs2
buildpack: java_buildpack

     state     since                    cpu    memory           disk           details
#0   running   2017-07-07 11:03:44 AM   0.3%   474.5M of 512M   156.6M of 1G
#1   running   2017-07-07 11:14:30 AM   0.2%   449.4M of 512M   156.6M of 1G
#2   running   2017-07-07 11:19:50 AM   0.1%   381.5M of 512M   156.6M of 1G
#3   running   2017-07-07 11:25:10 AM   0.3%   395.1M of 512M   156.6M of 1G

@7CHANHO  have you signed CLA ?

@boyang9527 Yes! I submitted a CLA and received a reply that it was updated.

Thanks @7CHANHO
LGTM

LGTM