[Question] How do I remove event listener?

Hi:) I have a question. How do I remove event listener?
When I tried to remove event listener I met some errors.
pub fn run() {
    let window = web_sys::window().expect("no global `window` exists");
    let document = window.document().expect("should have a document on window");
    let body = document.body().expect("document should have a body");

    let main = &document
        .query_selector(&".main".to_owned())
        .unwrap()
        .unwrap();

    let handler = Box::new(|| {
        web_sys::console::log_1(&"click".into());
    }) as Box<Fn()>;
    let cb: Closure<Fn()> = Closure::wrap(handler);
    (main.as_ref() as &web_sys::EventTarget)
        .add_event_listener_with_callback(&"click".to_owned(), cb.as_ref().unchecked_ref())
        .unwrap();
    cb.forget();
    // bellow code is meaningless sample code
    (main.as_ref() as &web_sys::EventTarget)
        .remove_event_listener_with_callback(&"click".to_owned(), cb.as_ref().unchecked_ref()) // ---> cb is already moved by forget.
        .unwrap();
}

This is because cb's ownership is already moved forget.
What should I do to remove this event listener?
Then I did some investigation to solve it, i bellow code.
This code does not call forget, but it works fine.
Why does not this need forget ??? Why is not closure dropped???
https://github.com/utkarshkukreti/draco/blob/master/src/element.rs#L522-L531

Why does not this need forget ??? Why is not closure dropped???

Because of the last line of the code you linked to:
https://github.com/utkarshkukreti/draco/blob/master/src/element.rs#L531
Storing it in self.closure prevent it from dropping unless that self get dropped!

A good question here! Could this perhaps be a case where the JsValue from cb.as_ref() is stored separately from the Closure<T> itself? That way you can pass it to removeEventListener later on and deouple it from the lifetime of the closure.
Although I may be missing some background as well? Or I may be missing some context as to why forget is being used and such.

@limira @alexcrichton Thanks for your quick response. I'll give it a try :)

Sorry, I was mistaken. forget is called here.
https://github.com/utkarshkukreti/draco/blob/dc6a74195f5c2c2fd5676a4207554ad1ae9677b8/src/mailbox.rs#L35

I am glad if an example of remove_event_listener is added. Close for now. thanks :)

@alexcrichton sorry.. I can not find better solution yet.I tried to store cb.as_ref() as &JsValue to use remove listener later.However it required static lifetime because it is pointer. For now, I forced lifetime with mem::transmute::<&JsValue, &'static JsValue>(cb.as_ref()); to static, because it is already leaked. It made the compilation successful, but it is so ugly..Do you have any idea to solve this.
I did some investigation. But It seems that nobody manage this properly..? 🤔
https://github.com/rustwasm/wasm-bindgen/blob/master/examples/todomvc/src/view.rs#L120
I think If the Callback.forget()  return ownership, it solve this issue. But was it impossible?
Thanks.
pub struct Listener {
    cb: RefCell<Option<&'static JsValue>>,
}

pub fn run() {
    let mut listner = Listenr {
        cb: RefCell::new(None)
    }
    ...
    let handler = Box::new(|| {
        web_sys::console::log_1(&"click".into());
    }) as Box<Fn()>;
    let cb: Closure<Fn()> = Closure::wrap(handler);
    let mut cb_ref: &'static JsValue;
    unsafe {
      cb_ref = mem::transmute::<&JsValue, &'static JsValue>(cb.as_ref());
    }
    (main.as_ref() as &web_sys::EventTarget)
        .add_event_listener_with_callback(&"click".to_owned(), cb_ref.unchecked_ref())
        .unwrap();
    listner.cb.replace(Some(cb_ref));
    cb.forget();
    ...
}

@bokuweb Why are you using cb.forget()?
The purpose of cb.forget() is to keep the closure alive forever (so it will never be removed).
If you simply don't call cb.forget() then it should work:
pub fn run() {
    let handler = Box::new(|| {
        web_sys::console::log_1(&"click".into());
    }) as Box<Fn()>;

    let cb: Closure<Fn()> = Closure::wrap(handler);

    (main.as_ref() as &web_sys::EventTarget)
        .add_event_listener_with_callback(&"click".to_owned(), cb.as_ref().unchecked_ref())
        .unwrap();

    ...

    (main.as_ref() as &web_sys::EventTarget)
        .remove_event_listener_with_callback(&"click".to_owned(), cb.as_ref().unchecked_ref())
        .unwrap();
}

The above code registers the listener and then immediately removes it.
You probably don't want to remove it immediately, in that case you can return the Closure (and leave it up to the caller to remove it).
However, returning the Closure is pretty cumbersome, so instead let's create a Listener struct which makes things easy:
struct Listener {
    element: web_sys::EventTarget,
    name: &'static str,
    cb: Closure<Fn()>,
}

impl Listener {
    fn new<F>(element: web_sys::EventTarget, name: &'static str, cb: F) where F: Fn() + 'static {
        let cb = Closure::wrap(Box::new(cb) as Box<Fn()>);

        element.add_event_listener_with_callback(name, cb.as_ref().unchecked_ref()).unwrap();

        Self { element, name, cb }
    }
}

impl Drop for Listener {
    fn drop(&mut self) {
        self.element.remove_event_listener_with_callback(self.name, self.cb.as_ref().unchecked_ref()).unwrap();
    }
}

Here I created a Listener struct. When you call Listener::new it will add the event listener, and when it is dropped it will automatically remove the event listener.
You can use it like this:
// When listener is dropped it will remove the listener
let listener = Listener::new(main, "click", || {
    web_sys::console::log_1(&"click".into());
});

If you don't want the listener to be removed right away, you can return it from the function:
fn run() -> Listener {
    Listener::new(main, "click", || {
        web_sys::console::log_1(&"click".into());
    })
}

This creates the Listener inside of the run() function, and then transfers ownership to whoever called the run() function:
// When the listener is dropped it will remove the listener
let listener = run();

You could also put the Listener into a struct (which moves ownership into the struct). This sort of "moving of ownership" is very common in Rust, so it's important to understand it.
It's also possible to move ownership into a closure! Here is an example which adds a listener and then 1000 milliseconds later removes it:
let listener = Listener::new(main, "click", || {
    web_sys::console::log_1(&"click".into());
});

let callback = move || {
    drop(listener);
};

let cb = Closure::wrap(Box::new(callback) as Box<Fn()>);
web_sys::window().unwrap().set_timeout_with_callback(cb.as_ref().unchecked_ref(), 1000);
cb.forget();

Notice the move keyword, that causes listener to be transferred into the callback closure. When the callback closure is called, it will then drop the listener (which then removes the event listener).
Right now wasm-bindgen has a lot of clunky syntax that makes everything more complicated than it should be. Here's the same example, but with stdweb:
let listener = main.add_event_listener(|_: ClickEvent| {
    console!(log, "click");
});

set_timeout(move || {
    listener.remove();
}, 1000);

There are some plans to make wasm-bindgen easier to use, but we're not there just yet.

@Pauan Cool 😄 Thanks for your quick and kind response 👍 I'll try it!! Thanks :)

I know this is many years later but I'm having this same problem.

The purpose of cb.forget() is to keep the closure alive forever (so it will never be removed).

If cb.forget() is not run, then rust doesn't pass the closure to javascript and the event is immediately removed by the rust borrow checker - is this correct? If so, since cb.forget() must be run, how can I keep ownership cb to use for remove_event_listener_with_callback since running cb.forget() moves cb ?
@bokuweb how did you end up solving it?

@JamyGolden When running in fn main() using the Listener struct above

It's better to use gloo_events::EventListener, which standardizes and improves the Listener struct.

I get the following the the browser console

Yes, that's because JS is calling the closure after the closure has been dropped in Rust.

If cb.forget() is not run, then rust doesn't pass the closure to javascript and the event is immediately removed by the rust borrow checker since rust runs until the end of fn main()- is this correct?
If so then cb.forget() must be run so it doesn't get immediately cleaned up - perhaps there's some fundamental thing I'm missing.

The closure is always passed to JS. When the Closure is dropped, then it will clean up the closure's memory, the same as every other type in Rust. After the closure is dropped, it is an error to call that closure from JS.
In addition to that, the Listener struct has special Drop behavior which removes the event listener when the Listener is dropped. If you don't want that then you'll have to keep it alive in some way.

There are many ways to keep things alive in Rust, the simplest is std::mem::forget which permanently leaks memory.
Instead of permanently leaking memory, you can wrap your type in ManuallyDrop which allows you to control when the data is dropped.

However, instead of using std::mem::forget or ManuallyDrop... you most likely want to use thread_local:
thread_local! {
    static MY_EVENT: EventListener = EventListener::new(...);
}

This creates a global variable that lives forever, so it leaks memory just like std::mem::forget.
If you want to clean the memory up, you can wrap it in RefCell:
thread_local! {
    static MY_EVENT: RefCell<Option<EventListener>> = RefCell::new(None);
}

Now you can mutate the global variable:
// Create the event listener
MY_EVENT.with(|event| event.replace(Some(EventListener::new(...))));

// Clean up the existing event listener
MY_EVENT.with(|event| event.replace(None));

This is a very common pattern for mutating global variables in Rust.


🚧Add auth requests to integration requests

I have done the items below . . .

[X] I have updated the title without removing the 🚧 emoji.

Description
This issue is to implement an easy way to authenticate to GitHub when making requests using the GitHub API.
Currently, when not authenticating the HTTP request, you can only execute a maximum of 60 requests per hour.
Currently, when authenticating the HTTP request, you can execute a maximum of 5000 requests per hour when doing a user -> server request.  This includes user to a personal account or the organization your personal account owns.
Any requests that exceed that limit is rejected with a 403(FORBIDDEN) response.
References:

Rate Limit Reference

Local Test Execution Credential Storage(Windows Users Only):
The problem:
The problem here is that during development, you want to execute the integration tests locally to verify that things are working correctly.  This easily gets exceeded when not authenticating the HTTP requests is what currently is being done.  Increasing the limit from 60 to 5000 will prevent development from being halted due to not being able to perform requests.
First Step:
We can solve this problem by authenticating but will require some work.  First we need to create a simple console application that will give us the ability to easily create and retrieve credentials into the Windows Credential Manager.  This application will be simple.  It will allow the passing of arguments which will be the target (credential name) that is storing the user name and password.  If the credential exists, then the password will be returned.  If it does not exist, it will display the console window to ask for a user name and password to store into the windows credential manager.  This ability will allow windows users that are executing the integration tests for the very first time, to create the credentials to be stored in the windows credential manager.  After the first time, the application will not ask to enter the credentials because they exist and they will automatically be retrieved from the windows credential manager to be used in the requests.
Second Step:
To help automate the auto pulling of credentials every time the tests are executed, we can create a custom XUnit attribute named FactWithToken and TheoryWithToken and a IntegrationTestsWithTokenBase class.
The IntegrationTestsWithTokenBase class will have a simple static property named Token that can be used in the tests that the unit tests.  The unit test classes will inherit from IntegrationTestsWithTokenBase.
When the tokens are constructed, they will use the application mentioned in the First Step to set a static property on the IntegrationTestsWithTokenBase class.  This will occur before each unit test executes which means the token will be usable in each test.
Use the files in the zip below to get started:
SourceCode.zip
CI/CD Workflow Credential Storage:
For this scenario, all that needs to be done is to use the GITHUB_TOKEN in the workflow which will authenticate and allow the 5000 requests per hour limit when running the workflow.   For this to happen, we need to add more inputs to the workflow to allow this to occur.
Acceptance Criteria
This issue is finished when:

[ ] Unit tests added
[ ] All unit tests pass

ToDo Items

[ ] Priority label added to this issue.  Refer to the Priority Type Labels section below.
[ ] Change type labels added to this issue.  Refer to the Change Type Labels section below.
[ ] Issue linked to the correct project.
[ ] Issue linked to the correct milestone.
[ ] Draft pull request created and linked to this issue.

Issue Dependencies

KinsonDigital/SWCM#1
#48

Related Work
No response
Additional Information:
Change Type Labels

Change Type
Label

Bug Fixes
https://github.com/KinsonDigital/VersionMiner/labels/🐛bug

Breaking Changes
https://github.com/KinsonDigital/VersionMiner/labels/🧨breaking changes

Enhancement
https://github.com/KinsonDigital/VersionMiner/labels/enhancement

Workflow Changes
https://github.com/KinsonDigital/VersionMiner/labels/workflow

Code Doc Changes
https://github.com/KinsonDigital/VersionMiner/labels/📑documentation%2Fcode

Product Doc Changes
https://github.com/KinsonDigital/VersionMiner/labels/📝documentation%2Fproduct

Priority Type Labels

Priority Type
Label

Low Priority
https://github.com/KinsonDigital/VersionMiner/labels/low priority

Medium Priority
https://github.com/KinsonDigital/VersionMiner/labels/medium priority

High Priority
https://github.com/KinsonDigital/VersionMiner/labels/high priority

Code of Conduct

[X] I agree to follow this project's Code of Conduct.

Issue Closed without implementation
Reason:
Investigation revealed that you cannot enter information into windows credentials and a new approach has to be designed.


Consider transitioning peripheral access crates to this organization

There are two peripheral access crates that the crates in this repository depend on, but that are not currently living under this organization nrf52 and nrf52840. Would the authors consider transitioning those crates to the nrf-rs organization?
If we do transition those repositories, nrf52 should be renamed to nrf52832.
cc @jamesmunns, @wez, @jscarrott

If we decide to move these crates here, we should also consider merging them into one repository, as they can likely share build infrastructure (like that Bash script I made for nrf52) between them.
Prior art: https://github.com/adamgreig/stm32-rs

For now, I have moved the peripheral access crate to this organization. I will also rename it as @hannobraun suggested above.
Also :+1: from me for merging them as a separate task.

Blocked, as I cannot rename items as I don't have admin permissions for repos in this orga yet. CC @wez

I can do that

Awesome!


[Test UI] [Feature Request] Allow message for skipped() test function

@connor4312
Issue Type: Feature Request
In Pester, tests can be skipped/inconclusive for reasons, for instance, because other tests precluded the need, or a flaw in a test made this test be inconclusive, or because a dependent test did not complete successfully.
Today I have to express these as error messages, I would prefer to be able to express it as part of the skipped() method using the same nomenclature as error, and also have a highlight for skipped messages that is a warning color or a gray color.

VS Code version: Code - Insiders 1.61.0-insider (0c83ca1ced83259971d80890d93abbe19cbfc992, 2021-09-15T05:16:32.507Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No
Extensions (45)

Extension
Author (truncated)
Version

vscode-log-viewer
ber
0.12.2

markdown-checkbox
bie
0.3.2

vscode-opennewinstance
chr
0.0.12

esbuild-problem-matchers
con
0.0.2

vscode-eslint
dba
2.1.25

vscode-generate-getter-setter
DSK
0.5.0

gitlens
eam
11.6.0

filter-lines
ear
1.0.0

EditorConfig
Edi
0.16.4

prettier-vscode
esb
8.1.0

copilot
Git
1.4.2678

remotehub
Git
0.14.0

vscode-pull-request-github
Git
0.30.0

todo-tree
Gru
0.0.214

vscode-test-explorer
hbe
2.21.1

vscode-drawio
hed
1.6.2

change-case
hjd
1.0.2

git-graph
mhu
1.30.0

vscode-bicep
ms-
0.4.613

vscode-docker
ms-
1.16.1

csharp
ms-
1.23.15

vscode-dotnet-runtime
ms-
1.2.0

remote-containers
ms-
0.195.0

remote-ssh-nightly
ms-
2021.9.19620

remote-wsl
ms-
0.58.2

azure-account
ms-
0.9.8

powershell-preview
ms-
2021.9.1

test-adapter-converter
ms-
0.1.2

vscode-paste-image
mus
1.0.4

indent-rainbow
ode
8.0.0

docthis
oou
0.8.2

vscode-jest
Ort
4.1.2

pester-test
psp
0.0.0-source

quicktype
qui
12.0.46

vscode-commons
red
0.0.6

vscode-yaml
red
0.22.0

vscode-sort-json
ric
1.20.0

even-better-toml
tam
0.14.2

vscode-inline-values-powershell
Tyl
0.0.5

errorlens
use
3.4.0

vscode-icons
vsc
11.6.0

codetour
vsl
0.0.58

gistfs
vsl
0.3.0

gitmoji-vscode
Vtr
1.0.7

better-align
wwm
1.1.6

Maybe a good solution is to add a "Show Only Skipped Tests" item on the dropdown when the "More Filters..." icon is clicked. Thanks.


openSUSE 15: Incorrect checksums for netstandard-targeting-pack

openSUSE 15: Incorrect checksums for netstandard-targeting-pack
same as #3867 / #3853
in #3853 openSUSE is mentioned, but the issue was not resolved, at least not in repository https://packages.microsoft.com/opensuse/15/prod/
when trying to install dotnetcore SDK (openSUSE 15.1 using YaST), following error occurs:
The expected checksum of file /var/tmp/AP_0xdKLXst/netstandard-targeting-pack-2.1.0-x64.rpm
is 45e199caf1151a750d11d9c5c7669d6e23d8dbb33da54d1d90bde55745996480,
but the current checksum is fa194a8c12913dcec85c8d24bfc91686a7b93128b4c05346df16e2c641e2ba41.

Thanks for filing, this repros for me too.
When I run this on an openSUSE Leap 15.1 Docker container, the error looks like this, and unblocking using the fa19 option (to confirm installing the bad fa19 checksum) lets me continue. That should be OK as a workaround for now:
Warning: Digest verification failed for file 'netstandard-targeting-pack-2.1.0-x64.rpm'
[/var/tmp/AP_0xRcp0hk/netstandard-targeting-pack-2.1.0-x64.rpm]

  expected 45e199caf1151a750d11d9c5c7669d6e23d8dbb33da54d1d90bde55745996480
  but got  fa194a8c12913dcec85c8d24bfc91686a7b93128b4c05346df16e2c641e2ba41

Accepting packages with wrong checksums can lead to a corrupted system and in extreme cases even to a system compromise.

However if you made certain that the file with checksum 'fa19..' is secure, correct
and should be used within this operation, enter the first 4 characters of the checksum
to unblock using this file on your own risk. Empty input will discard the file.

Unblock or discard? [fa19/...? shows all options] (discard):

Another workaround is to install the RPM directly via URL to avoid the checksum validation:
$ sudo yum install -y https://packages.microsoft.com/opensuse/15/prod/netstandard-targeting-pack-2.1.0-x64.rpm

I'll try to (internally) find the right person to fix this and report back.

We ran the fix on this package (delete + reupload to refresh the expected checksum). Unfortunately, it caused a more general problem with the openSUSE 15 repo, which I've filed https://github.com/dotnet/core/issues/4085 to track. When I bypass that issue, the checksum is fine, so I'm closing this issue as resolved.

thanks @dagood !


Added required Clojars and made link to docs more obvious.

Clojars is required. jcenter is not enough. Updated docs and made link more obvious. Repetition is king.
Related issues:
https://github.com/clojurephant/clojurephant/issues/68
Contributor Checklist

[x] Review Contributing Guidelines.

[x] Commits contain discrete changes, messages include context about why the change was made and reference the relevant issues.

[-] Provide functional tests. (under modules/clojurephant-plugin/src/compatTest)

[x] Update documentation for user-facing changes. (under docs/)

[x] Ensure all verification tasks pass locally. (./gradlew check)

[x] Ensure CI builds pass on all Java versions. (watch the checks tab once the PR is opened)
TIP: If troubleshooting a CI failure, look for the build scan URL near the bottom of the Gradle output.

Thanks again!


Possible secret leak into error from url.Parse.

Possible secret leak into error from url.Parse.
https://github.com/cristalhq/otp/blob/main/otp.go#L79
In case of invalid url url.Parse returns error with full string in it, that can leak OTP secret into logs.
This either should be highlighted in docs or plugged-in with custom error messages instead of the one that comes from url.Parse.
Redacted example of error
parse "otpauth://totp/user@domain.com:00000000-0000-0000-0000-000000000000?digits=6&secret=***&period=30&algorithm=SHA1&issuer=user%40domain.com\n": net/url: invalid control character in URL

Sounds like this is the simplest fix https://github.com/golang/go/issues/53993#issuecomment-1488889449
Feel free to send a PR.

simplest fix

Custom error or documentation?

Custom error sounds better (not everyone reads docs and understand problem with url.Parse, well, I did this bug 🤷 )

Also, we've https://pkg.go.dev/net/url#URL.Redacted which can be used in error message text.

URL.Redacted

In my use-case it seems that issuer is also leaking some personal info like email, so if redacting issuer and domain also needs to be hidden. (Makes a bit more complicated).


Uncaught TypeError: Cannot read property 'transition_opacity' of undefined

Host OS | Raspbian 10 Buster
Supervisor Version | supervisor-2021.03.9
HA Core Version | core-2021.3.4
Python Version | 3.8.7
HACS Version | 1.11.3
Logger: frontend.js.latest.202103026
Source: components/system_log/init.py:190
First occurred: 12:47:18 PM (3 occurrences)
Last logged: 5:54:04 PM
https://domain.name/hacsfiles/lovelace-media-art-background/media-art-background.js:1:102 Uncaught TypeError: Cannot read property 'transition_opacity' of undefined

Year plus = this should be removed from HACS listing

It would be better if people would help fix bugs themselves instead of just believing every random open source dev should fix every single issue themselves.
I have many projects, I commit to GitHub almost every single day. Obviously not every single project can get my full attention.


Thundering heard

memoize doesn't protect against a cache miss storm and can take down a high traffic site quite easily
E.g.
http://www.percona.com/blog/2010/09/10/cache-miss-storm/
http://en.wikipedia.org/wiki/Thundering_herd_problem

@confuser if I understand problem accurately it surely protects.
Firstly JS is single threaded, there's no way for two clients try to access same item at same time. In all cases it'll be one event after another, and second and latter ones will always get cached result.
It's only asynchronous requests, where such vulnerability may take place, but memoizee is bulletproof against that. After first request is initialized, all latter requests which are after same thing are put on hold until that one resolves. There's no scenario when same request is invoked multiple times because previous one didn't resolve yet.
If you still feel I miss something, please elaborate. Thanks!


[TUBEMQ-126] Increase the unflushed data bytes control

Add related API operations of unFlushDataHold field and statistical processing

+1

+1


conflict in headers

[CC] main.c
In file included from main.c:3:0:
espincludes.h:39:6: error: conflicting types for 'ets_isr_attach'
void ets_isr_attach(int intr, void *handler, void *arg);
^
In file included from /home/aldo/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/include/os_type.h:28:0,
from main.c:2:
/home/aldo/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/include/ets_sys.h:67:6: note: previous declaration of 'ets_isr_attach' was here
void ets_isr_attach(int i, ets_isr_t func, void *arg);
^
Makefile:109: set di istruzioni per l'obiettivo "main.o" non riuscito
make: *** [main.o] Errore 1
maybe there was an update in the sdk??

I've commented out in espincludes.h the line with the ets_isr_attach declaration. Now "make" works

Why did you close this?
Is it fixed?
Did it turn out to be not neccessary?

i'm restarting from scratch because of inconsistencies changing the esp8266 board. incidentally a 1m board was able to return something, while a 4m one does not produce any output in the console. i'm going to do some experiments to gain more feeling with this kind of projects.
anyway YES, even in the second attempt i've commented out the line in espincludes.h to complete the make process, but the result was not encouraging after the upload.


Add new filtering rules

Originally created by Antoine Nguyen on 2012-10-21T10:09:27Z
Check the RFCs to see if other useful rule types (or extensions) exist.

This issue was moved to modoboa/modoboa-sievefilters#1


Filter Component(s)

While in many (most?) cases, it is a better UX to arrange data in nested drill downs, using templated pages, in some cases, filters make more sense.
There is some functionality described in the docs but it is a bit of a hacky workaround.
Example Use Case:

A big table of information on one page, filtered for some subset of rows.
eg we have an orders table, but I just want to show rows where payment_status=failed for date=2023-05-04 and send that link to a colleague

Acceptance criteria:

User can apply multiple filters at once
Hooks up to search path parameters
Works with all major charts. Could be via .filter(...)
Create UI elements allowing a user to toggle filter
Functionality for the following types

strings

exact matches
contains / does not contain
regex
multi select?

numbers

match
min
max
ranges

dates

match
min
max
ranges

booleans

Open Questions:
There are quite a lots of considerations to design the best UX here.  Or should users manually decide which bits of data are filtered
Should this be a single component, or be a suite of differing inputs <Range> <Select> <MultiSelect> <DatePicker> etc

from evidence doc, i don't see SQL query can be parameterized. Will this be supported by the Filter Components?

See https://github.com/evidence-dev/evidence/issues/728

<Dropdown/> component released in https://github.com/evidence-dev/evidence/pull/993
Docs: https://docs.evidence.dev/components/dropdown


added correct initialisation for MHA

https://github.com/keras-team/keras/issues/15411
This should fix the problem that the activity regularizer in the multi head attention is not getting set. For further information, check the open issue linked above.

@googlebot I signed it!


HTTPRequest returns a result with OPTIONS but not POST

When I make an HTTP request to my server, which handles CORS, the browser first sends an OPTIONS request, and after that sends my request. A sample program is attached.
But my program receives ResultEvent.RESULT after the OPTIONS, instead of after the POST.
I can see this in the Chrome Dev Tools. I can also see that the POST succeeds and produces expected data.
HTTPTest.zip

... the result data happens to be XML, if that's interesting.

I will take a quick look at this shortly. I am using HttpService also

I should mention too that this is meant for Javascript, and not SWF.

Hi Fred, I took another look at this. It's actually working in terms of the sequence I think, but not decoding the xml to the requested:
service.resultFormat = HTTPService.RESULT_FORMAT_OBJECT;
you can print the result in the result handler with
resultEvent.message.body
instead of resultEvent.result
I switched it to:
RESULT_FORMAT_E4X
and that makes the attempt to create the result as XML
but gives:
[RPC Fault faultString="Error #1088: The markup in the document following the root element must be well-formed." faultCode="Client.CouldNotDecode" faultDetail="null"]
because the XML seems to be missing a root tag:
falsefalseSESSION_NO_SUCH_CUSTOMER
There might still be bugs or things to improve, but I think it's working for the most part.

Extra info: I think the relevant parts of this are not yet implemented, which may be the cause:
https://github.com/apache/royale-asjs/blob/develop/frameworks/projects/MXRoyale/src/main/royale/mx/rpc/http/AbstractOperation.as#L1038
I can look into this more when I have time, unless someone else gets there first.

I added a fix that works for the example provided. Please check the implementation with examples of more complex content if you can and update this issue, preferably with an example of an XML string that does not decode correctly if you see anything that continues to fail. If everything is as it should be, feel free to close the issue.


PDI-18618 | Elastic Search Bulk Insert step Support for ElasticSearch 7.x

Deprecating Elastic search bulk insert inside CE

:x: Build failed in 6m 55s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/elasticsearch-bulk-insert/core

:ok_hand: All tests passed!
Tests run: 8, Failures: 0, Skipped: 0    Test Results

Errors:
Filtered log (click to expand)

script returned exit code 1

:information_source:  This is an automatic message

:x: Build failed in 4m 14s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
plugins/elasticsearch-bulk-insert/core

:ok_hand: All tests passed!
Tests run: 8, Failures: 0, Skipped: 0    Test Results

Errors:
Filtered log (click to expand)

script returned exit code 1

:information_source:  This is an automatic message


Add ZSH framework support

This file enables loading the repository as a plugin by oh-my-zsh compatible frameworks.
The big advantage to this is that frameworks like antigen and zgen will handle automatically cloning the repository, adding the checkout's directory to the user's $PATH, and also will periodically git pull to keep them up to date without the user having to remember to do it.

This is a bit too exotic and I'm inclined to not accept this contribution since I can't maintain it and not many software are distributed like this.


Fix Ansible-lint issues without rule var-naming[no-role-prefix] on skip_list

cf. https://github.com/osism/issues/issues/829

Ready to merge


Cannot use VisualFSharp.sln with Preview 4 bits

"Error occurred while restoring NuGet packages: The operation failed as details for project FSharp.Core could not be loaded."

The F# language service does not appear to be kicked off; all files are plaintext.

Can't reproduce this on @KevinRansom's machine. ¯_(ツ)_/¯

Can't reproduce on my machine anymore. Ergh

@cartermp I've seen this once when I noticed that the native cache wasn't fully build yet, which can take hours with big updates. It shouldn't matter (Fusion should just resolve to unjitted assemblies and then JIT on demand should kick in), but it could explain why it once reproed and then not anymore.


Refactoring report generation module a bit

NOT READY TO MERGE YET
Generate report using ModelMapper and Groovy instead XSLT
Features

New plugin system

Enrich plugins - you can preprocess test results. An example load some info about tests from TMS
Tab plugins - each report tab it's plugin now. You can add your own tabs to report
Widget plugins - overview now contains widgets - each tab plugin can provide widget

Group suites by name (from different files)

Not implemented yet

Migrations (we going to change migrations logic in separate PR)
Attachments copying (use old provider, will be removed soon)
Environment (use old provider, will be removed soon)
Plugins in report face

Problems

Ignore start/stop times for test suites. It will be fixed in next releases (most probably in 2.0)

Increase performance
4 times faster, 10 times less memory usage
Before:

After:

a bit. :100:

@vania-pooh done. Thanks!

We going to merge this PR, release 1.4.7, and start huge refactoring of plugin system

Wow, looks great!
What about that fancy "plugin system"? Is it possible to contribute them at some point?

Group suites by name (from different files) -- can you give more info?

@pupssman Allure 1.4.7 release main purpose was to prepare for using plugins without changing report itself. During the next iterations @baev and @eroshenkoam will add more plugin-related stuff and will also change XML.

What about that fancy "plugin system"

It's first step to new plugin system. Using plugins you can customize report (add new tabs, widgets etc). Will be available since Allure 2.0

Group suites by name (from different files) -- can you give more info?

Test suites with the same name will be merged into one in the report.

Is it released, guys?

@pupssman yep
https://github.com/allure-framework/allure-core/releases

That thing says pre-release. Is it on central?

@pupssman yep

It is strange, but 1.4.7 and 1.4.5 reports built from same data have different run time:

@pupssman seems like different rounding

@baev indeed so. But why? Whill that difference build up for many tests?

Whill that difference build up for many tests?

Nope. I guess it's the same number rounded up in 1.4.5, and rounded down in 1.4.7. So, you can check it - just compare run time at xunit.json


Add Muen port

These changes port the Solo5 kernel to run on top of the Muen Separation Kernel.
All necessary hardware interfaces are implemented as PV drivers using facilities provided by the Muen platform with the exception of the block interface.
To test this with MirageOS the following pins are needed:
opam pin add solo5-kernel-muen git://github.com/codelabs-ch/solo5#muen
opam pin add ocaml-freestanding git://github.com/codelabs-ch/ocaml-freestanding#muen
opam pin add mirage git://github.com/codelabs-ch/mirage#muen
The Mirage changes add "muen" as a new platform. Thus unikernels can be configured as follows:
mirage configure -t muen
After building the unikernel it must be copied over to the Muen policy object directory for inclusion in the final system image:
objcopy -Obinary tests/test_hello/test_hello.muen <muen_workdir>/policy/obj/unikernel
On the Muen-side the devel-mirage branch has to be used.
Simple unikernels that do not require network access, e.g. test_hello, can be tested using Bochs and the Mirage/Solo5 Muen system policy:
make SYSTEM=xml/mirage-solo5.xml emulate COMPONENTS="libmutime libdebuglog sm time dbgserver"
More involved scenarios that require network access can be run on real hardware, in this example a Lenovo T430s:
$ make SYSTEM=xml/mirage-solo5-net.xml iso
The Solo5 kernel port was tested by running all Solo5 test programs on Bochs and on real hardware. Additionally, the static_website_tls unikernel from mirage-skeleton was built using Mirage with the above mentionend pins and deployed to hardware and used to locally serve the Muen project website see here.

@Kensan A first pass of reading through your changes looks good to me. I'm now going to deliberate on how this affects the multi-arch refactoring on the guest side and will get back to you. I expect there'll need to be some tweaks, but not much.

@Kensan The kernel-side multi-arch refactoring is now up for comment in #192. As expected this does not affect the Muen port much, so you should be able to easily rebase atop #192 once it is merged. I'll take another pass at reviewing your changes as a whole shortly.

@mato Great, thanks for the heads up. I rebased the patches and there were only minor fixups necessary. I pushed the result to a separate branch for now.

@Kensan Why is the LDMXCSR in fpu_init() required? Given that CR4.OSXMMEXCEPT should be set by the monitor (or guest in the virtio case) there should be no need to mask those exceptions, or am I missing something?

@mato Setting CR4.OSXMMEXCPT enables the SIMD floating-point exceptions. Thus, unmasked SSE exceptions will be delivered which means #XM must be handled by the OS, see Intel SDM Vol. 3A, section 2.5. When the SIMD exceptions are masked in MXCSR the hardware takes a default action and continues the calculation. Without masking the action Solo5 would need to handle them explicitly by taken the appropriate action on #XM.
Note that apparently OS X Hypervisor.Framework also needs explicit MXCSR initialization, see this comment. The initial value of MXCSR can differ depending on the hypervisor due to deviations in how the the FPU state storage area is initialized. As it is not automatically managed by VMX/part of the VMCS each hypervisor must do it "manually".

@Kensan Having now read through the Intel SDM sections relating to FPU/SSE and other processor extensions, I think the intent is that it is the guest side's responsibility to initialise the FPU and SSE control registers (CR0.MP, CR0.EM, CR0.NE, CR4.OSFXSR, CR4.OSXMMEXCEPT and MXCSR) to whichever state the guest code expects/supports.
This means that (I think) we're doing it wrong and should move all FPU/SSE-related initialisation code into kernel/cpu_x86_64.c. This includes:

the existing code (partly) enabling the FPU/SSE through the initial VCPU state defined in ukvm/ukvm_cpu_x86_64.h (for the ukvm target)
kernel/virtio/boot.S (for the virtio target)
adding code to explicitly set MXCSR to 0x1f80 for all targets (ie. what you did only for muen)

The intent here is to set the relevant state in one place, and one place only. This should not be the hypervisor/monitor since that does not know what the guest supports (or not).
What do you think? Also @djwillia?

@mato I agree that it is more robust to initialize the FPU uniformly across all supported hypervisors, so your proposed solution sounds good to me.
Regarding the placement of FPU initialization: I do not know ARM FPU features well enough but would it make sense to declare fpu_init() on the same layer/level as cpu_init() in kernel.h?

@Kensan I think CPU and FPU (and traps/exceptions) are fairly tightly coupled, so if we have a fpu_init() it should be called from (and defined in) cpu_<arch>.c, not at the top-level scope.

@mato Ok, sounds good. Thanks for the explanation.

I still don't really understand why it can be the guests full responsibility to set up the MXCSR; doesn't the hypervisor need to be able to set this state to switch between guests that set it differently?
I had moved it out to see if it was possible to eliminate all cpu-specific bits from the guest and push them to ukvm in the Hypevisor.framework branch, but since it seems necessary to have some of the fpu init in the guest, I agree it's better to put it all together.

On Tuesday, 25.04.2017 at 10:15, Dan Williams wrote:

I still don't really understand why it can be the guests full responsibility to set up the MXCSR; doesn't the hypervisor need to be able to set this state to switch between guests that set it differently?

My guess is that is done "magically" by the hardware at
VMLAUNCH/VMRESUME/VMEXIT time. I searched through the entire Intel SDM and
found nothing explicit about FP state in the virtualization chapters.

FPU state is not automatically managed by VMX. Thus each hypervisor must handle it explicitly, e.g. using XSAVE/XRSTOR with a storage area per guest. Since MXCSR is saved/restored to this memory region the initial value depends on how the XSAVE storage area is set up initially.
If for example the FPU area is simply zeroized (as is done on Muen and apparently Hypervisor.Framework), then all flags in MXCSR will be clear and SSE exceptions will be delivered to the guest. On the other hand, if the hypervisor explicitly sets up specific fields like MXCSR in the storage area, then the guest FPU execution environment will look different.

thanks @Kensan, that clears things up.  So, it looks like, if we wanted the monitor to "do it for the guest" in the ukvm case, we could do the entire setup from the monitor via KVM_SET_FPU for Linux/KVM and hv_vcpu_write_fpstate for Hypervisor.framework for a consistent initial state; then the guest would not even have to do anything to MXCSR.
But it's probably a good idea to have the virtio backend set up the floating point (including MXCSR) to a known state.  I think it's fine for the ukvm backend to do the same, since we have other reasons for not being able to remove all HW-ness from the guest (like not being able to trap processor exceptions through KVM).

I tested the rebased changes on Muen and everything works as expected. From my side, the updated changes are ready for review.

Fixed an incorrect indentation (tab vs. spaces).

@mato Glad you like the changes especially that you think the refactoring is a benefit not only for the Muen port.

I presume you are the copyright holder of all the Muen-specific code added in this PR?
(Aside: We should probably implement some kind of Signed-Off-By: policy, annoying as it is).

Yes, that is the case. I can add a Signed-off-by line to all commits if you prefer.

How can I test this? Could we add some kind of support to tests/run-tests.sh that would be able to run the tests on Muen itself?

Apart from test_blk and test_ping_server all test can be executed on Muen running on Bochs. We have been able to boot Muen under QEMU using nested virtualization but unfortunately it is very unstable and not usable at the moment. Running it on real hardware is a bit challenging because the it is highly platform-specific, as in one needs to provide a precise hardware description to the Muen build process.

What would be required to do this?

To run the tests under Bochs one basically needs to install the dependencies listed on the project website plus a fairly recent Bochs version (>=2.6.5). The SPARK tools are only required if one wants to perform the formal proofs.
Is there a specific setup you have in mind that you would like to implement so the Muen-specific code is covered by tests?

@Kensan:

Yes, that is the case. I can add a Signed-off-by line to all commits if you prefer.

Given that we don't have such a policy right now, I don't think there's any
point. I just wanted to check that you're happy with contributing the code
under the current attribution in AUTHORS.

Apart from test_blk and test_ping_server all test can be executed on Muen running on Bochs. We have been able to boot Muen under QEMU using nested virtualization but unfortunately it is very unstable and not usable at the moment. Running it on real hardware is a bit challenging because the it is highly platform-specific, as in one needs to provide a precise hardware description to the Muen build process.

(Recapping some IRC discussion)
KVM nested virtualization has improved quite a bit in Linux 4.10 and 4.11,
so it may be worth trying.

Is there a specific setup you have in mind that you would like to implement so the Muen-specific code is covered by tests?

Not sure yet, so let's not hold up this PR waiting for that to happen.
We can make do with CI only doing build testing for now.

With a bunch of help from @Kensan, I've finally managed to test these changes and things work as advertised following @Kensan's instructions in the PR.
Next steps for integrating Muen support in Mirage:

PR for the changes to mirage/ocaml-freestanding (@Kensan)
An initial version of solo5-kernel-muen published to OPAM (@mato)
A new version of ocaml-freestanding with the changes in (1) published to OPAM, adding | solo5-kernel-muen as a dependency (@mato)
PR for the changes to mirage/mirage (@Kensan)
(at some point after that) "Formal" releases of Solo5, Mirage with documentation for the Muen port.

Merging this now so that we can proceed with the above and also to get the refactoring in this PR into master.
/cc @avsm @djwillia

What an awesome PR! Thanks a lot from the NetHSM project!


Dynamic Creation of Tabs

I apologize - I think this is already being worked on (#499) but I can't quite tell from the dynamic_navs branch if it enables the specific functionality I am looking for or not.  I'm trying to have a navset_tab_card that is dependant on what boxes are checked from a input_checkbox_group (actual use case is displaying tabs for each equation selected from an equation bank).
So, essentially like this example program copied below except that I only want the respective dynamic tabs (A,B,C,D) shown once they are checked off in the checkbox. In this example they are displayed all the time.
Thanks in advance!

from shiny import App, render, ui

tab_bank = {
    "Tab A": "Tab A",
    "Tab B": "Tab B",
    "Tab C": "Tab C",
    "Tab D" : "Tab D"
}

app_ui = ui.page_fluid(
        ui.row(
            ui.column(8,ui.output_ui("dyn_ui_nav")),
            ui.column(4,
                ui.navset_tab_card(
                    ui.nav("Tab Bank",
                        ui.input_checkbox_group("selected_tabs","Choose your tabs:",tab_bank,
                        ),
                    ),
                ),
            ),
        ),
)

def server(input, output, session):
    @output
    @render.ui
    def dyn_ui_nav():
        tabs = ui.navset_tab_card(
                ui.nav(
                    "Static Tab",
                    ui.markdown("Static Text Here Giving Instructions")
                ),
                ui.nav(
                    "Tab A",
                    ui.input_numeric("Tab_A","Input:",1,min=1,max=5)
                ),
                ui.nav(
                    "Tab B",
                    ui.input_numeric("Tab_B","Input:",2,min=1,max=5)
                ),
                ui.nav(
                    "Tab C",
                    ui.input_numeric("Tab_C","Input:",3,min=1,max=5)
                ),
                ui.nav(
                    "Tab D",
                    ui.input_numeric("Tab_D","Input:",4,min=1,max=5)
                )
            )
        return tabs

app = App(app_ui, server)

This is sort of a brute force inelegant solution but will better demonstrate the functionality I think would be nice.
from shiny import App, render, ui

tab_bank = {
    "Tab A": "Tab A",
    "Tab B": "Tab B",
    "Tab C": "Tab C",
    "Tab D" : "Tab D"
}

app_ui = ui.page_fluid(
        ui.row(
            ui.column(8,ui.output_ui("dyn_ui_nav")),
            ui.column(4,
                ui.navset_tab_card(
                    ui.nav("Tab Bank",
                        ui.input_checkbox_group("selected_tabs","Choose your tabs:",tab_bank,
                        ),
                    ),
                ),
            ),
        ),
)

def server(input, output, session):
    @output
    @render.ui
    def dyn_ui_nav():
        tab_keys = input.selected_tabs()
        print(input.selected_tabs())
        #req(tab_keys)
        lookup_tabs = [tab_bank[key] for key in tab_keys]

        dynamic_tabA = None
        dynamic_tabB = None
        dynamic_tabC = None
        dynamic_tabD = None

        if "Tab A" in tab_keys:
            dynamic_tabA="Tab A"
        if "Tab B" in tab_keys:
            dynamic_tabB="Tab B"
        if "Tab C" in tab_keys:
            dynamic_tabC="Tab C"
        if "Tab D" in tab_keys:
            dynamic_tabD="Tab D"

        tabs = ui.navset_tab_card(
                ui.nav(
                    "Static Tab",
                    ui.markdown("Static Text Here Giving Instructions")
                ),
                ui.nav(
                    dynamic_tabA,
                    ui.input_numeric("Tab_A","Input for Tab A:",1,min=1,max=5)
                ),
                ui.nav(
                    dynamic_tabB,
                    ui.input_numeric("Tab_B","Input for Tab B:",2,min=1,max=5)
                ),
                ui.nav(
                    dynamic_tabC,
                    ui.input_numeric("Tab_C","Input for Tab C:",3,min=1,max=5)
                ),
                ui.nav(
                    dynamic_tabD,
                    ui.input_numeric("Tab_D","Input for Tab D",4,min=1,max=5)
                ,
                )
        )

        return tabs

app = App(app_ui, server)

My solution to this would be the following. I think you're on the right track but the bit I think you missed is that whenever a shiny function takes *args or *kwargs you can pass a list to it This also illustrates a couple of good habits with Shiny:

Whenever you find yourself repeating UI code, it's worth extracting that code into a function. This is good both because it makes your code sturdier, but also because it tends to give you a clue as to how you should solve the problem. In this case extracting out the numeric_tab provides a clue that we want to iterate over the names and values of something.

When generating things it's usually a good default to store the results of the generation step in a list. In this case we're generating tabs so it's a good idea to generate them, stick them in a list or htmltools.TagList and then pass them to navset_tab_card at the end.

from shiny import App, render, ui

tab_bank = {"A": "Tab A", "B": "Tab B", "C": "Tab C", "D": "Tab D"}

app_ui = ui.page_fluid(
    ui.row(
        ui.column(8, ui.output_ui("dyn_ui_nav")),
        ui.column(
            4,
            ui.navset_tab_card(
                ui.nav(
                    "Tab Bank",
                    ui.input_checkbox_group(
                        "selected_tabs",
                        "Choose your tabs:",
                        tab_bank,
                    ),
                ),
            ),
        ),
    ),
)

def numeric_tab(name, value):
    return ui.nav(f"Tab {name}", ui.input_numeric(name, "Input:", value, min=1, max=5))

def server(input, output, session):
    @output
    @render.ui
    def dyn_ui_nav():
        tab_dict = {"A": 1, "B": 2, "C": 3, "D": 4}
        tabs = [
            numeric_tab(key, value)
            for key, value in tab_dict.items()
            if key in input.selected_tabs()
        ]

        static_tab = ui.nav(
            "Static Tab", ui.markdown("Static Text Here Giving Instructions")
        )

        tabs.insert(0, static_tab)

        tabset = ui.navset_tab_card(*tabs)
        return tabset

app = App(app_ui, server)

Wow - thanks, this is immensely helpful. I didn't realize I could pass a list into the ui.navset_tab_card -- that is really a game changer.  I knew I must be missing something obvious. Thanks so much!

One other note here. I'm going to work on a solution but in case anyone else has a quick elegant one. These methods end up dumping/resetting all inputs any time the checkbox changes.  For example, if adding tab B and changing the input in tab B, once tab C gets added, tab B automatically resets.  I understand why this is the case but solving it currently eludes me. I think the solution is something like having global start values for the different input features of any tab and then updating them while the tab is active but trying to implement that solution and it still keeps resetting. Will post again if I figure it out. Thanks!

Ah yes for that you probably want to use conditional panels.
https://shiny.rstudio.com/py/api/ui.panel_conditional.html

Thank you - I'll look into that option. I originally started down that path as my first choice method but got stuck when there was an object type mismatch (conditional panel outputs as tags vs. ui.navs) but I will read/try more. Thanks for the help!


Port find and edit functions to trivia

Pull Request Test Coverage Report for Build 20

0 of 110 (0.0%)  changed or added relevant lines in 8 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-4.3%) to 76.225%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/address/logic/parser/AddressBookParser.java
0
2
0.0%

src/main/java/seedu/address/model/TriviaBundle.java
0
3
0.0%

src/main/java/seedu/address/model/ModelManager.java
0
4
0.0%

src/main/java/seedu/address/model/card/QuestionContainsKeywordsPredicate.java
0
7
0.0%

src/main/java/seedu/address/logic/parser/FindCCommandParser.java
0
7
0.0%

src/main/java/seedu/address/logic/commands/FindCCommand.java
0
9
0.0%

src/main/java/seedu/address/logic/parser/EditCCommandParser.java
0
22
0.0%

src/main/java/seedu/address/logic/commands/EditCCommand.java
0
56
0.0%

Totals

Change from base Build 15:
-4.3%

Covered Lines:
1571

Relevant Lines:
2061

💛  - Coveralls


Fails to build from source (Rust 1.41.1)

Steps to reproduce
Run the following commands in a terminal.
$ git clone https://github.com/rust-analyzer/rust-analyzer.git && cd rust-analyzer
$ cargo xtask install --server

Expected results
rust-analyzer builds successfully from source.
Actual results
The build fails with the following output.

```
   Compiling xshell-macros v0.1.6
   Compiling ungrammar v1.1.4
   Compiling libc v0.2.80
   Compiling crc32fast v1.2.1
   Compiling proc-macro2 v1.0.24
   Compiling anyhow v1.0.34
   Compiling walkdir v2.3.1
error[E0658]: use of unstable library feature 'matches_macro'
  --> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/xshell-macros-0.1.6/src/lib.rs:25:10
   |
25 |     if !(matches!(literal, TokenTree::Literal(_)) && literal_text.starts_with('"')) {
   |          ^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/65721
error[E0658]: use of unstable library feature 'matches_macro'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/ungrammar-1.1.4/src/lexer.rs:122:5
|
122 |     matches!(c, '\' | ''')
|     ^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/65721
error[E0658]: use of unstable library feature 'matches_macro'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/ungrammar-1.1.4/src/lexer.rs:125:5
|
125 |     matches!(c, ' ' | '\t' | '\n')
|     ^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/65721
error[E0658]: use of unstable library feature 'matches_macro'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/ungrammar-1.1.4/src/lexer.rs:128:5
|
128 |     matches!(c, 'a'..='z' | 'A'..='Z' | '_')
|     ^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/65721
error[E0658]: use of unstable library feature 'matches_macro'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/ungrammar-1.1.4/src/parser.rs:68:16
|
68 |             if matches!(node_data.rule, DUMMY_RULE) {
|                ^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/65721
error[E0658]: use of unstable library feature 'matches_macro'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/ungrammar-1.1.4/src/parser.rs:102:9
|
102 |     if !matches!(p.grammar[node].rule, DUMMY_RULE) {
|         ^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/65721
Compiling miniz_oxide v0.4.3
error[E0658]: use of unstable library feature 'proc_macro_span'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/xshell-macros-0.1.6/src/lib.rs:161:45
|
161 |                 ident.set_span(ident.span().resolved_at(span).located_at(span));
|                                             ^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/54725
error[E0658]: use of unstable library feature 'proc_macro_span'
--> /home/michael/.cargo/registry/src/github.com-1ecc6299db9ec823/xshell-macros-0.1.6/src/lib.rs:161:63
|
161 |                 ident.set_span(ident.span().resolved_at(span).located_at(span));
|                                                               ^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/54725
error: aborting due to 3 previous errors
For more information about this error, try rustc --explain E0658.
error: could not compile xshell-macros.
warning: build failed, waiting for other jobs to finish...
error: aborting due to 5 previous errors
For more information about this error, try rustc --explain E0658.
error: could not compile ungrammar.
warning: build failed, waiting for other jobs to finish...
error: build failed
</details>

## Version information
I'm using rustc and cargo from my distribution (Debian buster).
```$ rustc --version
rustc 1.41.1
$ cargo --version
cargo 1.42.1

Theory
I suppose my rustc version is too old to build rust-analyzer from source (since the matches! macro was only stabilised in 1.42). This comment confirms that only the latest stable version of rustc is supported.
It would be good to document this. The Users' manual, from which my steps above are taken, doesn't mention this; neither could I find it in the developer's docs.

My second half of the comment is collapsed in the Details section for some reason. Here it is again, for ease of reading.
Version information
I'm using rustc and cargo from my distribution (Debian buster).
rustc 1.41.1
$ cargo --version
cargo 1.42.1

Theory
I suppose my rustc version is too old to build rust-analyzer from source (since the matches! macro was only stabilised in 1.42). This comment confirms that only the latest stable version of rustc is supported.
It would be good to document this. The Users' manual, from which my steps above are taken, doesn't mention this; neither could I find it in the developer's docs.

You're right, only the latest compiler version is supported. This should be checked here, I'm not sure why it's not working for you.
Do you want to submit a PR (to fix the version check and/or to update the docs)?

Filed #6961 to document this. Looks like the version check didn't work because xtask itself fails to compile.


Messages still doesn't collapse to bottom of page

Issue Type: Bug
Run a query such as create database. Collapse messages
Expected:

Messages goes to bottom of the editor since there's no content
Actual:
Messages stays 1/3 up the screen. Smallest it'll go is 25%
It's confusing as below it is empty so it looks like a bug

Azure Data Studio version: Azure Data Studio 1.2.4 (1ebfd0235690ad044ed2874a02e65188f5fea01c, 2018-11-02T21:36:55.143Z)
OS version: Darwin x64 18.2.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (8 x 2200)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
16.00GB (1.81GB free)

Process Argv
/Applications/Azure Data Studio.app/Contents/MacOS/Electron

Screen Reader
no

VM
0%

Extensions (2)

Extension
Author (truncated)
Version

vscode-sanddance
dan
0.0.1

sql-vnext
Mic
0.8.0

I fixes one issue which was allowing messages to collapse down with respect to results. But there is a different request here which has never been a feature which is allowing the entire results grid to collapse down; which is a feature request that I can handle when I merge in my query editor refactor.

Here is a more recently reply on this issue that I'll capture here since this is the active tracking bug.

snipped from https://github.com/microsoft/azuredatastudio/issues/5498
if the query returns enough results to fill the available screen space then the resultgrid should be resizable to fill that space. If the query doesn't return enough results to fill the screen then the messages pane will occupy the available space. There is more discussion of this behavior in #3177. Please let me know if that doesn't address your question.

I agree that the current behavior is confusing. We had a fix that collapsed the Message to the bottom even when the resultset didn't fill the available area, but that change had several side-effects and needed to be reverted. We're planning to move the Messages into its own tab soon, so we decided to wait for that change rather than try to correct the previous attempt at fixing this.

This is fixed in the June release.


Panic in WASM

Rev: 5897bb6
When running the example in WASM  it panics with the following error message.
panicked at 'wgpu error: Validation Error

Caused by:
    In a RenderPass
      note: encoder = `<CommandBuffer-(0, 1, Gl)>`
    In a set_push_constant command
    Provided push constant is for stage(s) ShaderStages(VERTEX), however the pipeline layout has no push constant range for the stage(s) ShaderStages(VERTEX)

This still does run
settings: InfiniteGridSettings {
            shadow_color: None,
            ..Default::default()
        },


Bump rules_rust version

We need to use a version of rules_rust that includes https://github.com/bazelbuild/rules_rust/pull/252 in order to fix a breakage in the federation tests (https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/1209#df505afb-20a4-4056-ad06-2fa973dbc6c9).

cc @hlopko


CellStyleGenerator is not invoked for editor cells

I have a CheckboxRenderer for a Boolean property in a Grid. I want it to be centered so I added a CellStyleGenerator to add a custom style.
The style is added to "v-grid-cell" elements but not to "v-grid-editor=cells" cells.

I think this might be upto Grid's normal behavior. CheckboxRenderer is not rendered in edit row, the editor uses the normal edit widget etc. If you think this is a problem or you want to request specific CellStyleGenerator added for Editor as well, then you should open issue concerning this in github.com/vaadin/framework/issues


[SPARK-48758][Core] Race condition between executor registration and heartbeat

What changes were proposed in this pull request?
We found a race condition in our prod jobs when executor finished registration but when the it starts to heartbeat, the driver tells the executor is still unknown. We proposed to sync the executor registration status directly between the CoarseGrainedSchedulerBackend and the HeartbeatReciever to prevent the race condition.
Why are the changes needed?
It caused by the HeartbeatReciever is only hearing any registered executor from CoarseGrainedSchedulerBackend  through the message bus, and by the nature of the asynchronous message delivering mechanism of message bus, there is no guarantee of how long it can take between message posting and message receiving. In our prod failure job case, the time is longer than 2min (the interval between executor finished registration and started the heartbeat), so it caused the inconsistent states of which executors were registered between HeartbeatReciever and CoarseGrainedSchedulerBackend
Does this PR introduce any user-facing change?
No
How was this patch tested?
Unit test and we've been running this fix in our production for a while and no failure from this race condition happened any more.
Was this patch authored or co-authored using generative AI tooling?
No

Can you update the PR title? The current title looks more like a Jira ticket name. For a PR title, it's better to clearly reflect what this PR does.


New Work : Dataset Download and Analysis

How to download dataset ?
Here is the link of the dataset --> https://www.kaggle.com/datasets/moltean/fruits
If you haven't registered for the kaggle website kindly signup by the choices provided and then download the dataset. Here is the image how to download the dataset.

Tasks
Analyze Class Distribution:
Perform an analysis of the dataset to identify the number of images per fruit category.
Create visualizations (e.g., bar charts) showing the distribution of images across all categories to highlight any imbalances.
Noise Reduction:
Apply noise reduction techniques (e.g., Gaussian blur, median filtering) to clean up any unwanted noise from the images if any.
Balance the Dataset:
Ensure that every class has a more uniform distribution of images by either oversampling minority classes or undersampling overrepresented ones.
How to submit PR ?

Download the dataset and perform all the tasks as told.
While submitting you have to give a title and a detailed description of your method as well by using appropriate screen shots. Title's starting should be the same as that of the issue for example I have give this as NEW WORK, so your PR should have This title "New Work : Dataset analysis " something like that.
After that there is a check list it looks like this Empty Check list --> -[ ] and Filled check list --> -[ X ]. So while Submitting fill the Checklist by copying it from here and pasting it in your PR description and fill the check list with word "X" between the square brackets.
Please link your branch with this issue so that it will automatically closed when it will be merged successfully.
Please assign me as a reviewer for the review of your work and also while submission the PRs label should be as same as that of the issue.

I have done all the tasks but how to save this new dataset its quite large though.
No worries you can try save this dataset at your google drive and provide it into PR and set the permission in such a way that is accessible to anyone with this link. It is mandatory for successful submission.
Checklists

[ ] Analyzed the class distribution
[ ] Dataset got balanced
[ ] Noise Reduction accomplished

Interested assign it to me

Assign this to me

Assigned to both of You @runningman145 @Hotchapu13. Please follow the instructions shown in the description,

Interested please assign it to me

Assigned to @akhilesh1709 please proceed as per given instructions.

It's a very large data set indeed

@runningman145 yeah it is a very large one but try to do it in chunks and merge the preprocessed data into one

@eeshan15 the data set has to be saved in Google Drive only?!

@eeshan15 the data set has to be saved in Google Drive only?!

Like anywhere it doesn't matter the only thing is cleaned data set should be accessible to everyone that's all


Fix Readme

This is a quick change to fix the server ID for the Discord badge.

Oh! Thank you very much @Rover656!


[Bug] $('.your.element').api('is loading') is not return a boolean value

$('.your.element').api('is loading') is not return a boolean value.

This has been fixed in next release
https://github.com/Semantic-Org/Semantic-UI/blob/next/src/definitions/behaviors/api.js#L290


css for email prompt

It's difficult to style the "enter email address" popup because there aren't css classes and because there are a lot of inline styles.
For instance, here's what I did but I don't like it because it is fragile:
.dxc-login-dlg > div > div {
	display: flex;
	flex-direction: column;
	row-gap: 20px;
}

.dxc-login-dlg > div > div input {
	font-size: 20px !important;
	height: auto !important;
	border-radius: 4px;
}

.dxc-login-dlg > div > div > div {
	display: flex;
	column-gap: 20px;
}

.dxc-login-dlg button {
	font-size: 1em;
	padding: 10px 20px;
	border: 1px solid #2c7958;
	border-radius: 8px;
	background-color: #ffffff;
}

At a minimum, can a class be added to:

and the inline styles removed?
But additionally, can classes be added to all of the elements, in particular the
 wrapper around the buttons?
Also, "enter email address" is an
 but there isn't an h2 or h1 on the page so that breaks accessibility. In addition, there isn't any label text for the input control, which is another accessibility problem. You can solve both of those things by changing it to:

  Enter email address
  <input type="email" etc...>

And removing the h3.
I'd be happy to do a pull request but I have no idea where this code is.
Here's what I'd like the html to be:

. <-- added div so it isn't transparent

        <form>

            Enter email address
            <input type="email" name="email" autocomplete="on" autofocus="true"<EMAIL_ADDRESS>>

        </form>

          <button type="submit">Submit</button>
          <button>Cancel</button>

Also, I think another line of explanation is needed. If you were a user and went to a website for the first time and the first thing you see is "enter email address", would you? It would be nice if there were a mechanism to allow the website to add a paragraph to this popup.
(In addition, a little javascript is needed because this isn't capturing the TAB key so the user can tab out of the dialog box. But that's a different issue.)

Thanks for this feedback, it's very valuable with your suggestions and I'll see what I can do with the default UI in the upcoming version, using this feedback.
For complete control over the login dialog, you can deactivate the default UI using db.cloud.configure() and set { customLoginGui: true } and then subscribe to db.cloud.userInteraction from your app to display your own components the way you want. You could use the default-ui source as a template. It's written in Preact but I hope it could be used as a reference when implementing a custom UI in any framework.


Reversing the dependency from UPF to SMF

The dependency is at UPF and it waits for SMF to be running and create configs.ref and from there it fetches the smf-ipaddress. Instead if SMF waits for both the UPFs then SMF will be able to fetch the dnn and ue-subnet mask information from upf.

This is being addressed in the branch https://github.com/OPENAIRINTERFACE/oai-operators/tree/oai-new-config.


Beforeunload.render(): A valid React element (or null) must be returned.

When using component without children elements (<Beforeunload onBeforeunload={this.handleBeforeunload}/>) render method return undefined, which is not permitted in React.
To fix the problem render method should looks like this:
render () {
    return this.props.children || null
}

Fixed in 1.0.3 😄


bump nexucis deps

This PR bumps the version of the package @nexucis/fuzzy and @nexucis/kvsearch. The change is basically a deletion of the source maps that was contained in this package.
Fix #10674
Signed-off-by: Augustin Husson<EMAIL_ADDRESS>

:+1:


Add expert rules

Closes #14

Codecov Report

Merging #18 (74195e0) into main (119614f) will increase coverage by 0.45%.
The diff coverage is 75.07%.

:exclamation: Current head 74195e0 differs from pull request most recent head ab46766. Consider uploading reports for the commit ab46766 to get more accurate results

@@            Coverage Diff             @@
##             main      #18      +/-   ##
==========================================
+ Coverage   88.04%   88.50%   +0.45%
==========================================
  Files          12       13       +1
  Lines        5196     5543     +347
==========================================
+ Hits         4575     4906     +331
- Misses        621      637      +16

Impacted Files
Coverage Δ

src/config.rs
0.00% <0.00%> (ø)

src/main.rs
0.00% <ø> (ø)

src/lib.rs
76.70% <37.02%> (ø)

src/builder.rs
82.78% <70.50%> (-0.87%)
:arrow_down:

src/predict.rs
82.39% <82.79%> (-2.74%)
:arrow_down:

src/expert.rs
99.66% <99.66%> (ø)

src/consequence.rs
99.69% <100.00%> (+<0.01%)
:arrow_up:

src/panel.rs
98.91% <100.00%> (+0.30%)
:arrow_up:

src/report.rs
100.00% <100.00%> (ø)

tests/main.rs
100.00% <100.00%> (ø)

... and 7 more

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


NullReferenceException when trying to sub with streaming subscriptions

Expected Behavior
Receive messages in the registered handler when using streaming subscriptions.
Actual Behavior
Running version 1.14 of the Dapr runtime and using the master branch of the .NET SDK, i receive a NullRefrenceException when trying to subscribe to a topic using the new Messaging Client.
The call to messagingClient.SubscribeAsync never returns, and gives me an error which i traced back to a NullReferenceException on response.EventMessage in PublishSubscribeReceiver.cs line 252.
== APP ==       System.NullReferenceException: Object reference not set to an instance of an object.
== APP ==          at Dapr.Messaging.PublishSubscribe.PublishSubscribeReceiver.FetchDataFromSidecarAsync(AsyncDuplexStreamingCall`2 stream, ChannelWriter`1 channelWriter, CancellationToken cancellationToken)
== APP ==          at Dapr.Messaging.PublishSubscribe.PublishSubscribeReceiver.FetchDataFromSidecarAsync(AsyncDuplexStreamingCall`2 stream, ChannelWriter`1 channelWriter, CancellationToken cancellationToken)
== APP ==          at Dapr.Messaging.PublishSubscribe.PublishSubscribeReceiver.SubscribeAsync(CancellationToken cancellationToken)
== APP ==          at Dapr.Messaging.PublishSubscribe.DaprPublishSubscribeGrpcClient.SubscribeAsync(String pubSubName, String topicName, DaprSubscriptionOptions options, TopicMessageHandler messageHandler, CancellationToken cancellationToken)
== APP ==          at Worker.Services.WorkerService.ExecuteAsync(CancellationToken stoppingToken) in C:\Users\WesleyB\Projects\StrykerOrchestrator\Worker\Services\WorkerService.cs:line 37
== APP ==          at Microsoft.Extensions.Hosting.Internal.Host.TryExecuteBackgroundServiceAsync(BackgroundService backgroundService)

In WireShark i can see the GRPC call to the sidecar, and i also receive logging from the sidecar:
time="2024-11-22T13:54:48.3234217+01:00" level=info msg="Subscribing to pubsub 'task-queue' topic 'myTopic'" app_id=worker scope=dapr.runtime.pubsub.streamer type=log ver=1.14.4
time="2024-11-22T13:54:55.3082658+01:00" level=info msg="Unsubscribed from pubsub 'task-queue' topic 'myTopic'" app_id=worker scope=dapr.runtime.pubsub.streamer type=log ver=1.14.4

Even in Redis i can see a subscriber group, which says the messages have been delivered.
Steps to Reproduce the Problem
pubsub.yaml:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: task-queue
spec:
  type: pubsub.redis
  version: v1
  metadata:
  - name: redisHost
    value: localhost:6379
  - name: redisPassword
    value: ""
  - name: consumerID
    value: "{appId}"
  - name: concurrency
    value: "1"
  - name: maxInFlightMessages
    value: "1"
  - name: logReceiveMessageErrors
    value: "true"

Run the streaming subscription example.

Release Note

RELEASE NOTE:

@Aimless321 @WhitWaldo I too have similar observation , I am surprised if SubscribeAsync  will be a blocking call, I am looking at SubscribeAsync as am observer who will get triggered as and when events occur on the broker, is this what it is designed for?

It's not intended to be blocking. I'm hoping to get a PR completed later this afternoon that remedies the issues listed above.

It's not intended to be blocking. I'm hoping to get a PR completed later this afternoon that remedies the issues listed above.

Can you also check the Data property initialization as this is needed by us to cascade the message to next sub-system after transforming it, if you can tell if this can be done, it will help us making some decisions
Thanks in advance Whit

It's not intended to be blocking. I'm hoping to get a PR completed later this afternoon that remedies the issues listed above.

Can you also check the Data property initialization as this is needed by us to cascade the message to next sub-system after transforming it, if you can tell if this can be done, it will help us making some decisions
Thanks in advance Whit

I've got a PR pending review that'll fix the reported issues above.
@tommorvolloriddle Could you either get into more detail about what you're referring to here or consider opening a separate issue for it?

Thanks for looking into @WhitWaldo! ❤

@tommorvolloriddle Could you either get into more detail about what you're referring to here or consider opening a separate issue for it?

I think what he meant was that the Data propery on the TopicMessage doesn't get initialized.
Meaning that the delegate receives a TopicMessage where the data is empty.
https://github.com/dapr/dotnet-sdk/pull/1415/files#diff-af797fa530e2e099d0d82534043e1bcbce120190a792181bf69c708cdd72f581R283-R290
I tested locally with:
var message =
                new TopicMessage(response.EventMessage.Id, response.EventMessage.Source, response.EventMessage.Type,
                    response.EventMessage.SpecVersion, response.EventMessage.DataContentType,
                    response.EventMessage.Topic, response.EventMessage.PubsubName)
                {
                    // Added this line
                    Data = new ReadOnlyMemory<byte>(response.EventMessage.Data.ToByteArray()),
                    Path = response.EventMessage.Path,
                    Extensions = response.EventMessage.Extensions.Fields.ToDictionary(f => f.Key, kvp => kvp.Value)
                };

@Aimless321 and @tommorvolloriddle  Unfortunately, the spec doesn't indicate that's ever a condition that should come up (though it does), so it feels like a runtime bug. I'll file an issue on it once I'm able to dig into more about why it happens, but in the short term.. per this line in the PR, if the event message isn't populated (which it only shouldn't be in the initial response back in theory), you won't see it show up for processing in your handler.

It doesn't feel like a runtime bug to me.
In my debugging the response from the sidecar correctly included the data. But it is never passed into the TopicMessage object, that is created inside the dotnet-sdk.
So since the delegate you register only receives the TopicMessage, there is no way to access it.
In short:
The response received from the sidecar does have the data, but the TopicMessage object passed to the delegate does not have it.

@Aimless321 and @tommorvolloriddle Unfortunately, the spec doesn't indicate that's ever a condition that should come up (though it does), so it feels like a runtime bug. I'll file an issue on it once I'm able to dig into more about why it happens, but in the short term.. per this line in the PR, if the event message isn't populated (which it only shouldn't be in the initial response back in theory), you won't see it show up for processing in your handler.

I meant exactly what @Aimless321 meant, In my handler I do not have Data property, in the example here on line 51 the response is happens to be empty as Data property isn't initialized. I presume the Data property itself contains the original published payload.
Data property in turn Span inside it, is required for my usecase to process and transform the payload to cascade it to next subsystems. Therefore the the request is, if we can initialize Data property while creating TopicMessage object inside FetchDataFromSidecarAsync method I will get the original published payload I did something like this as @Aimless321 has illustrated
var message =
    new TopicMessage(response.EventMessage.Id, response.EventMessage.Source, response.EventMessage.Type,
        response.EventMessage.SpecVersion, response.EventMessage.DataContentType,
        response.EventMessage.Topic, response.EventMessage.PubsubName)
    {
        Path = response.EventMessage.Path,
        Extensions = response.EventMessage.Extensions.Fields.ToDictionary(f => f.Key, kvp => kvp.Value),
        Data = response.EventMessage.Data.ToByteArray()
    };

I was more referring to the null response as a runtime bug. The spec indicates there should always be either an initial_response or an eventdata provided back and that there shouldn't be null values provided. This is what I understood your original report to be.
You're both spot on - I didn't notice that the TopicMessage was missing assignment of the Data property. I've added this accordingly.
Thank you @tommorvolloriddle and @Aimless321 ! This has be added to the latest commit.

I was more referring to the null response as a runtime bug. The spec indicates there should always be either an initial_response or an eventdata provided back and that there shouldn't be null values provided. This is what I understood your original report to be.
You're both spot on - I didn't notice that the TopicMessage was missing assignment of the Data property. I've added this accordingly.
Thank you @tommorvolloriddle and @Aimless321 ! This has been added to the latest commit.

Thank you @WhitWaldo

@WhitWaldo  I did a quick check with the changes you have made on your private branch. It seems to me that the null check in the foreach statement should allow the iteration to continue rather than returning the control to the caller, with this change now the control is returned back to the caller and the subscription stops, can you check this behavior?

@WhitWaldo I did a quick check with the changes you have made on your private branch. It seems to me that the null check in the foreach statement should allow the iteration to continue rather than returning the control to the caller, with this change now the control is returned back to the caller and the subscription stops, can you check this behavior? Doing something like this:
  if (response?.EventMessage is null)
  {
      continue;
  }

Allows the subscription to continue

Haha, this is why you don't code tired. You're quite right.

@WhitWaldo I did a quick check with the changes you have made on your private branch. It seems to me that the null check in the foreach statement should allow the iteration to continue rather than returning the control to the caller, with this change now the control is returned back to the caller and the subscription stops, can you check this behavior? Doing something like this:
  if (response?.EventMessage is null)
  {
      continue;
  }

Allows the subscription to continue

Haha, this is why you don't code tired. You're quite right.

Haha, wish you a good night's sleep :)


Updated metadata envoy route name

The issue resolved by this Pull Request:
Resolves RHOAIENG-5348
Description of your changes:

Updated the metadata envoy route name to avoid the issue with creation of pipeline server when the project name is longer than 31 chars.
This is the route name before the change - https://ds-pipeline-metadata-envoy-dspa-MYPROJECT.apps.clustername.domain.com/  , when the project name is longer than 31 chars pipeline server fails to create. Updated the route to this format - https://ds-pipeline-md-myproject.apps.clustername.domain.com/ which allows the project name to have more chars.

Testing instructions
Deploy DSPO and create a DSPA instance. The metadata envoy route should be as shown in the below format-
https://ds-pipeline-md-myproject.apps.clustername.domain.com/
Checklist

[X] The commits are squashed in a cohesive manner and have meaningful messages.
[X] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[X] The developer has manually tested the changes and verified that the changes work

A new image has been built to help with testing out this PR: quay.io/opendatahub/data-science-pipelines-operator:pr-650
An OCP cluster where you are logged in as cluster admin is required.
To use this image run the following:
cd $(mktemp -d)
git clone git@github.com:opendatahub-io/data-science-pipelines-operator.git
cd data-science-pipelines-operator/
git fetch origin pull/650/head
git checkout -b pullrequest dbfedb6ffec8f69df29d946a63c82d6681c3e2e3
oc new-project opendatahub
make deploy IMG="quay.io/opendatahub/data-science-pipelines-operator:pr-650"

More instructions here on how to deploy and test a Data Science Pipelines Application.

Change to PR detected. A new PR build was completed.
A new image has been built to help with testing out this PR: quay.io/opendatahub/data-science-pipelines-operator:pr-650


Notebooks 1.0 //  IMPORTANT NOTICE Images under gcr.io/kubebuilder/ Will Be Unavailable Soon

If your project uses gcr.io/kubebuilder/kube-rbac-proxy: it will be affected.
Your project may fail to work if the image cannot be pulled. You must move as soon as possible, sometime from early 2025, the GCR will go away.
The usage of the project kube-rbac-proxy was discontinued from Kubebuilder and Operator-SDK. It was replaced for similar protection using authn/authz via Controller-Runtime's feature WithAuthenticationAndAuthorization.
:point_right: For more information and guidance see the discussion https://github.com/kubernetes-sigs/kubebuilder/discussions/3907
Here's the usage in kubeflow/kubeflow/components/notebook-controller:
https://github.com/kubeflow/kubeflow/blob/4275d99754ac91f6cf5654b03824a73825e9fe55/components/notebook-controller/config/default/manager_auth_proxy_patch.yaml#L1-L25

/label project/notebooks-v1 kind/bug area/controller

Commented on the issue:
$ grep -r kube-rbac-proxy
components/notebook-controller/config/default/manager_auth_proxy_patch.yaml:      - name: kube-rbac-proxy
components/notebook-controller/config/default/manager_auth_proxy_patch.yaml:        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.0
components/notebook-controller/config/rbac/kustomization.yaml:# the auth proxy (https://github.com/brancz/kube-rbac-proxy)
components/profile-controller/config/default/manager_auth_proxy_patch.yaml:      - name: kube-rbac-proxy
components/profile-controller/config/default/manager_auth_proxy_patch.yaml:        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.11.0
components/profile-controller/config/rbac/kustomization.yaml:# the auth proxy (https://github.com/brancz/kube-rbac-proxy)
components/tensorboard-controller/config/default/manager_auth_proxy_patch.yaml:        - name: kube-rbac-proxy
components/tensorboard-controller/config/default/manager_auth_proxy_patch.yaml:          image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
components/tensorboard-controller/config/rbac/kustomization.yaml:  # the auth proxy (https://github.com/brancz/kube-rbac-proxy)
components/pvcviewer-controller/config/default/manager_auth_proxy_patch.yaml:      - name: kube-rbac-proxy
components/pvcviewer-controller/config/default/manager_auth_proxy_patch.yaml:        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
components/pvcviewer-controller/config/rbac/auth_proxy_client_clusterrole.yaml:    app.kubernetes.io/component: kube-rbac-proxy
components/pvcviewer-controller/config/rbac/auth_proxy_role.yaml:    app.kubernetes.io/component: kube-rbac-proxy
components/pvcviewer-controller/config/rbac/auth_proxy_role_binding.yaml:    app.kubernetes.io/component: kube-rbac-proxy
components/pvcviewer-controller/config/rbac/auth_proxy_service.yaml:    app.kubernetes.io/component: kube-rbac-proxy

We need to review the following three occurrences as we don't care about the other components:
components/notebook-controller/config/default/manager_auth_proxy_patch.yaml:      - name: kube-rbac-proxy
components/notebook-controller/config/default/manager_auth_proxy_patch.yaml:        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.0
components/notebook-controller/config/rbac/kustomization.yaml:# the auth proxy (https://github.com/brancz/kube-rbac-proxy)


Renew SSL certificate of the demo site

The SSL certificate of the demo site expired a few days ago.

Thanks for noting it. I was moving countries and couldn't find time for this. It's fixed already.


handle examples in docs

It would be lovely to have proper rust highlighting and handling in doc examples.  e.g. when editing
//! ```
//! let x = 1;
//! ```

I would love to have rust indentation and syntax highlighting on the example code.

cc @pnkfelix didn't you have some setup that could somehow do this?

This should be similar to how the lisp symbols are highlighted in the regular elisp buffers.


Hi hootlex

How can i use this package i'm new to laravel,please help me
thank you

@man9035206 do you have the package installed following the instructions here and you're just looking for examples?

I am also looking for example blades. Didn't want to start a issue over it but some example blades would be nice for a noob like me

I don't see how example views will help you use the package. If you have a specific question feel free to open a new issue.


7-Zip

There was a problem during the uploading of LiquidCrystal_I2C plus TinyWireM.7z.
You cannot upload that type of file. The only allowed extensions are doc, gif, jpg, mpg, pdf, png, txt, zip, c, h, cpp, ino, pde.

Please add support for 7-Zip files.  Everything about the format is superior to ZIP files.

Hi @Coding-Badly.
The reason I ask is because, as time has passed, it seems like there has not been a strong adoption of the 7z format. I would argue that only allowing .zip files is beneficial in the context of the Arduino forum because if we allow people to use less common compression types when sharing things on the forum, this will result in that content being less accessible to many forum members.

Of course.

...there has not been a strong adoption of the 7z format...

The adoption has been zero.  The forum doesn't allow the format.

...content being less accessible...

For those living with slow internet speeds, which is the vast majority of the world, the smaller content will be more accessible.

The adoption has been zero. The forum doesn't allow the format.

I meant adoption by the entire world. Not adoption specifically on the Arduino Forum.

the smaller content will be more accessible.

How common is it for people to share archives via forum attachments that are large enough for the difference in size between the two formats to be meaningful? I don't recall many instances of it.

I meant adoption by the entire world.

A fallacy.  Lovely.
I'm not going to waste my time knocking down straw men.


Change jdk distro for CI/CD

Change JDK distro to SapMachine for CI/CD

Thanks @dspenchev, we are looking forward also the adopt the SAPMachine JDK in the XSK Dockerfiles as well :)


Support SSL for MongoDB Server connections

Should be provoided using the pluggable Socket

I cannot implement this properly until we have the resources to set this up. Also in combination with replica sets.


Fixed Cross-platform scripting -- Switch based on platform

Fixes https://github.com/MicrosoftDocs/vsts-docs/issues/2440

@gfoidl Thank you for your contribution. We have had an issue with the public vsts-docs repo, but they are resolved now and I am incorporating the outstanding changes. For some PRs (such as this one) that were opened after the issue began, I am closing the PR, and manually incorporating the changes in our private repo, with a link to this PR in the commit message. Any new PRs will be merged in the regular fashion. Thank you for your contribution.


[stable/fluent-bit] Update fluent-bit to 1.0.5

What this PR does / why we need it:
Update fluent-bit to 1.0.5.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] DCO signed
[ ] Chart Version bumped
[ ] Variables are documented in the README.md

/lgtm
On Mon, Mar 25, 2019, 06:13 Kubernetes Prow Robot<EMAIL_ADDRESS>wrote:

Hi @ialidzhikov https://github.com/ialidzhikov. Thanks for your PR.
I'm waiting for a helm https://github.com/orgs/helm/people member to
verify that this patch is reasonable to test. If it is, they should reply
with /ok-to-test on its own line. Until that is done, I will not
automatically test new commits in this PR, but the usual testing commands
by org members will still work. Regular contributors should join the org
https://github.com/orgs/helm/people to skip this step.
Once the patch is verified, the new status will be reflected by the
ok-to-test label.
I understand the commands that are listed here
https://go.k8s.io/bot-commands?repo=helm%2Fcharts.
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/helm/charts/pull/12494#issuecomment-476170094, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAWkNmvH4Z_jU95QNkjo8ohU-cKUy4Meks5vaL2DgaJpZM4cGvOh
.


Fresh install, upgrade nuxt to latest, get infinite loops on /register and /forgot-password

All routes are working properly, but when trying to execute a /register or /forgot-password action, I get thousands of warnings per second and the browser crashes:

When I try to login again, the new user is created, so that process runs fine.

Unable to reproduce, can you show what errors (not warnings) are you getting? the errors tab in your screenshot indicates you have 2 errors.
Also are you getting any errors in the terminal where you run the nuxt server?

So I rebuilt the Laravel set-up (which was also fresh) and the errors disappeared. Unfortunately I cannot reproduce it also, but happy that it works now.


Deleted actions remain in diagram after refresh

After "refresh diagram" has been clicked, trying to delete an action either by right clicking on the action in the state or in the sidebar will result in the action being removed from the sidebar but remaining in the state diagram. If the action was deleted from the sidebar, you will still be able to interact with and edit it in the diagram editor. If it was deleted through the diagram editor, it will not be possible to edit but can still be connected to other states. The deleted action is not present in the model JSON.

Just for my own notes, resizing the state shape will sort of fix the problem (although everything else in the state is shifted up by the height of the deleted action), and deleting an action after a state has been resized works normally.


Welcome to add a provider to kvrpc:)

kvrpc is a universal rpc layer for arbitrary kv database:
https://github.com/zhiqiangxu/kvrpc

Do you mean that we need to think about implementing kvrpc interface?

Do you mean that we need to think about implementing kvrpc interface?

Yes, any vendor just needs to implement kvrpc.KVDB interface in order to be integrated into kvrpc:)

that is fine, but I think that the main domain for goukv is to be just a wrapper for other stores but to make an external interface it should be in another repo i.e goukv-service, there we can implement the rpc, redis, ... etc.

that is fine, but I think that the main domain for goukv is to be just a wrapper for other stores but to make an external interface it should be in another repo i.e goukv-service, there we can implement the rpc, redis, ... etc.

Right, it can be in another repo like goukv-service, or just as a provider in kvrpc :)

Yep!


Macros

void updateMacroButton(int buttonNumber, int macroOffset, bool isPressed, bool isRunning) {

If I am reading this correctly then the button text and the button color should change when a macro button is pressed
From what I can tell they never change from TFT_DARKGREY and WHITE

Ill take a quick look at it but I will not have access to an ATEM till next week so it might be a bit before its fixed. Can you at least confirm the macro is running?

Its good that you caught this as it also helped to identify a couple of other  problems. The first I noticed was that if the code had worked the macro button status would never have been reset after a button push. The second issue is that since the handler is capturing RELEASE the buttonWasPressed code fires multiple times for single button press (TOUCH and RELEASE). So I need to either move the RELEASE event to a separate handler or fix the buttonWasPressed code to consider the event.type. Im also not a big fan of capturing TAP as it appears a tap will often generate both a touch and tap event leading to multiple events.

Maybe the answer they gave me here will help
https://github.com/m5stack/M5Core2/issues/120

After two years I was finally able to get the GitHub desktop to work on my M1 Mac Mini. It's nice to be able to do much of the work on my mac vs trying to do everything on my Pi development platform. Editing all the code in the Arduino ide was painful.


03-2023_Update

@vpchung we are gonna test it. I added several new terms.

It looks like it worked!