Add Image from File and Memory ( from bytes )

Image for file
f = open("path)
page.add(Image(src=f)

Add also binary image example base64 image

Do I understand correctly that you would like the convenience of not having to do the base64 encoding yourself if Image is given a file-like object?

@FeodorFitsner, I can take this is you are happy with the approach that src accepts either a str or a file-like object?

File-like object sounds like a great idea. The question is should we save it to "assets" under temp name and use that URL or convert to base64 and push through WebSocket? What would be more effective?

My quick take is that converting it to base64 means that the file only comes from disk and then goes over the WebSocket ("2 transfers"), but with the asset approach we might take it from disk, save it to disk, and send it over the network ("3 transfers"). Of course the first also has the base64 encoding, but I have grown up thinking that that kind of CPU operation is always faster than going over the network. 🤷🏻♂
Well, maybe that is splitting hairs a bit too much, and my main argument would be just against saving temp files to assets, as that seems "not neat".

Ok, so how about:
src accepts str or file-like, and saves the file-like to assets, src_base64 accepts bytes or file-like to be base64 encoded, with warning in the docs about the file size (if not already there). Or is this getting too fancy?
Alternative could be e.g. src_file, which could decide which method to use based on the file size (or just use assets for everything).

I say that how to display bit image

Closing in favour of https://github.com/flet-dev/flet/issues/651


CommonCircuitData serialization 2

This is more or less a second attempt at #590.
Summary of changes

Implement methods for CommonCircuitData innards in plonky2::util::serialization.
Add a new GateSerialization trait to be implemented by the user, and make the write_common_circuit_data and read_common_circuit_data take an implementor as an argument. This trait's implementation handles the details of how to distinguish between different gate types.
Add the as_any hack with GateRef by creating a wrapper trait AnyGate with a blanket implementation over all implementors of Gate. This makes implementing the write_gate method realistic
Add a macro impl_gate_serializer that the user can use to auto-implement the GateSerializer trait given a list of the gates they wish to use.

Why so convoluted?
Since the deserializer needs to be able to tell what gates it's reading, the serializer needs to serialize as if the Arc<dyn Gate>s were variants of a tagged enum (or something equivalent). We want to avoid something like GateKind from #590 since we want to allow the user to add their own gates, so the tagging has to happen on the user's side.
In order for that to happen, the we need some runtime reflection - hence the as_any hack. The macro is a convenience so the user doesn't have to implement this themselves.
I'm not sure if there's a way to go about this without the as_any hack, since the serializer has to be able to case on the underlying type in order to produce the metadata necessary for deserialization.

As this approach been abandoned? I was thinking on iterating further from this

I haven't worked on it since then, so feel free.

@Nashtare I think Plonky2 can only support a rather limited form of circuit serialization, since it doesn't support dynamic gates whose constraints aren't known until runtime. I'm not sure how useful it would be given that limitation? But if there's a clear use case then we can move forward with this.

@dlubarov I was thinking of using it in the context of offline preprocessing, similarly to verification keys for SNARKs provided as serialized files, that are then loaded at runtime. This could be used for instance for AllRecursiveCircuits, to remove the need for the heavy offline preprocessing when bootstrapping a node.
To a larger extent, any application using plonky2 could use a similar approach.
I may have missed something obvious that makes this approach infeasible / impractical though.

Hi @Sladuca @dlubarov. I apologize for the delay, I've been busy with other priorities, but I finally got a PoC for global serialization. I'm getting for the AllRecursiveCircuits of the empty_txn_list example (degrees 9 to 19), a serialization time of about 26sec, and deserialization time of about 12sec. There are probably some additional tweaks that can be done to speed this up further.
I had to do several design choices that I'm not super happy with to be able to serialize generators, hence if you're interested by this, I'll gladly clean it up and open a draft PR for getting your inputs.

I haven't pushed anything yet, wanted to clean it up before. I'll do it in the coming days, let me ping you when it's ready!

@Sladuca You can have a look here: plonky2/serialization.
Given that I am keeping in the empty_txn_list test the old all_circuits to compare with, instead of deserializing from a file, running time may blow up if the test starts using your SWAP. With enough RAM, serialization time for this is about 12 sec, and deserialization takes about 16sec.
I insist there are still several things to cleanup / optimize, so I'll gladly take any comments / suggestions you may have!

This one has been handled #981 and subsequent PRs.


 One of my endpoint callbacks is attempting to write a response through the ResponseWriter object it is passed, but a crash happens in Pistache::DynamicStreamBuf::overflow before the first byte can be sent down the wire.
This is the problem code by the looks of it:
DynamicStreamBuf::int_type
DynamicStreamBuf::overflow(DynamicStreamBuf::int_type ch) {
    if (!traits_type::eq_int_type(ch, traits_type::eof())) {
        const auto size = data_.size();
        if (size < maxSize_) {
            reserve(size * 2);
            *pptr() = ch;
            pbump(1);
            return traits_type::not_eof(ch);
        }
    }

    return traits_type::eof();
}

What appears to be happening is size is zero before anything has been allocated. When the reserve(size * 2) is called to grow the buffer by doubling it, it doesn't actually allocate anything because size is still zero. The following line dereferences the null pointer in *pptr(). If I modify size when zero to be 100 just prior to the allocation, it works fine.
Maybe reserve(max(size, 1) * 2); would have been better?
This is my stack trace:
#0  Pistache::DynamicStreamBuf::overflow(this = 0x7fffe67f8b10, ch = 72) at /home/kip/Projects/Pistache/src/common/stream.cc:53
#1  std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long)() at :0
#2  std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)() at :0
#3  std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)() at :0
#4  Pistache::Http::operator<<(os = @0x7fffe67f80c0: <incomplete type>, version = Pistache::Http::Version::Http11) at /home/kip/Projects/Pistache/src/common/http_defs.cc:162
#5  Pistache::Http::(anonymous namespace)::writeStatusLine(version = Pistache::Http::Version::Http11, code = Pistache::Http::Code::Bad_Request, buf = ) at /home/kip/Projects/Pistache/src/common/http.cc:52
#6  Pistache::Http::ResponseWriter::putOnWire(this = 0x7fffe67f8a30, data = , len = 105) at /home/kip/Projects/Pistache/src/common/http.cc:643
#7  Pistache::Http::ResponseWriter::send(this = 0x7fffe67f8a30, code = Pistache::Http::Code::Bad_Request, body = , mime = ) at /home/kip/Projects/Pistache/prefix/include/pistache/http.h:507
#8  MyService::EndpointDispatchHandler<&MyService::Endpoint_AddSong>(this = 0x7fffffffda80, ClientRequest = , Response = ) at ../../Server/Source/MyService.cpp:173
#9  std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)> Pistache::Rest::Routes::bind<void, MyService, Pistache::Rest::Request const&, Pistache::Http::ResponseWriter, MyService*>(void (MyService::*)(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter), MyService*)::{lambda(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)#1}::operator()(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter) const(__closure = 0x5555559107d0, request = , response = ) at /home/kip/Projects/Pistache/prefix/include/pistache/router.h:257
#10  std::_Function_handler<Pistache::Rest::Route::Result (Pistache::Rest::Request const&, Pistache::Http::ResponseWriter), std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)> Pistache::Rest::Routes::bind<void, MyService, Pistache::Rest::Request const&, Pistache::Http::ResponseWriter, MyService*>(void (MyService::*)(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter), MyService*)::{lambda(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)#1}>::_M_invoke(std::_Any_data const&, Pistache::Rest::Request const&, Pistache::Http::ResponseWriter&&)(__functor = , __args#0 = , __args#1 = ) at /usr/include/c++/7/bits/std_function.h:302
#11  std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)>::operator()(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter) const(this = 0x555555910790, __args#0 = , __args#1 = ) at /usr/include/c++/7/bits/std_function.h:706
#12  Pistache::Rest::Route::invokeHandler<Pistache::Rest::Request, Pistache::Http::ResponseWriter>(this = 0x555555910770, args#0 = , args#1 = ) at /home/kip/Projects/Pistache/include/pistache/router.h:84
#13  Pistache::Rest::Router::route(this = 0x5555559103d0, req = , response = ) at /home/kip/Projects/Pistache/src/server/router.cc:321
#14  Pistache::Rest::Private::RouterHandler::onRequest(this = 0x5555559103c0, req = , response = ) at /home/kip/Projects/Pistache/src/server/router.cc:221
#15  Pistache::Http::Handler::onInput(this = 0x5555559103c0, buffer = 0x7fffe67fa9c0 "POST /v1/songs HTTP/1.1\\r\\nHost: <IP_ADDRESS>:6440\\r\\nUser-Agent: curl/7.58.0\\r\\nAccept: */*\\r\\nX-API-Token: soiled\\r\\n\\r\\n", len = 111, peer = ) at /home/kip/Projects/Pistache/src/common/http.cc:768
#16  Pistache::Tcp::Transport::handleIncoming(this = 0x555555910a70, peer = ) at /home/kip/Projects/Pistache/src/common/transport.cc:152
#17  Pistache::Tcp::Transport::onReady(this = 0x555555910a70, fds = ) at /home/kip/Projects/Pistache/src/common/transport.cc:79
#18  Pistache::Aio::SyncImpl::handleFds(this = 0x55555590aaf0, events = ) at /home/kip/Projects/Pistache/src/common/reactor.cc:183
#19  Pistache::Aio::SyncImpl::runOnce(this = 0x55555590aaf0) at /home/kip/Projects/Pistache/src/common/reactor.cc:143
#20  Pistache::Aio::SyncImpl::run(this = 0x55555590aaf0) at /home/kip/Projects/Pistache/src/common/reactor.cc:156
#21  Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}::operator()() const(__closure = 0x7fffe0001248) at /home/kip/Projects/Pistache/src/common/reactor.cc:464
#22  std::__invoke_impl<void, Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}>(std::__invoke_other, Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}&&)(__f = ) at /usr/include/c++/7/bits/invoke.h:60
#23  std::__invoke<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}>(std::__invoke_result&&, (Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}&&)...)(__fn = ) at /usr/include/c++/7/bits/invoke.h:95
#24  std::thread::_Invoker<std::tuple<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>)(this = 0x7fffe0001248) at /usr/include/c++/7/thread:234
#25  std::thread::_Invoker<std::tuple<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}> >::operator()()(this = 0x7fffe0001248) at /usr/include/c++/7/thread:243

I have a bug fix for that.  I asked you to peer review it on slack earlier :)

Or irc....

Hey man. Yes, I tried to respond to you but you went offline. I'm about to head out now but link me again.

I merged PR #297.  Please refresh your pistache and try again.

Nice job Dennis. Problem solved.

Hey Dennis. It looks like we may have a regression. I see the above code is crashing again. size is zero again prior to the call to reserve. This is current as of commit 447cedbe871d78ed4856329bdd7169947d086f56.
#0  Pistache::DynamicStreamBuf::overflow(this = 0x7fffe67f89a0, ch = 72) at /home/kip/Projects/Pistache/src/common/stream.cc:57
#1  std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long)() at :0
#2  std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)() at :0
#3  std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)() at :0
#4  Pistache::Http::operator<<(os = @0x7fffe67f7f70: <incomplete type>, version = Pistache::Http::Version::Http11) at /home/kip/Projects/Pistache/src/common/http_defs.cc:162
#5  Pistache::Http::(anonymous namespace)::writeStatusLine(version = Pistache::Http::Version::Http11, code = Pistache::Http::Code::Bad_Request, buf = ) at /home/kip/Projects/Pistache/src/common/http.cc:52
#6  Pistache::Http::ResponseWriter::putOnWire(this = 0x7fffe67f88c0, data = , len = 111) at /home/kip/Projects/Pistache/src/common/http.cc:643
#7  Pistache::Http::ResponseWriter::send(this = 0x7fffe67f88c0, code = Pistache::Http::Code::Bad_Request, body = , mime = ) at /home/kip/Projects/Pistache/prefix/include/pistache/http.h:508
#8  MyService::EndpointDispatchHandler<&MyService::Endpoint_AddSong>(this = 0x7fffffffda80, ClientRequest = , Response = ) at ../../Server/Source/MyService.cpp:176
#9  std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request, Pistache::Http::ResponseWriter)> Pistache::Rest::Routes::bind<void, MyService, Pistache::Rest::Request const&, Pistache::Http::ResponseWriter, MyService*>(void (MyService::*)(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter), MyService*)::{lambda(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)#1}::operator()(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter) const(__closure = 0x555555942df0, request = , response = ) at /home/kip/Projects/Pistache/prefix/include/pistache/router.h:348
#10  std::_Function_handler<Pistache::Rest::Route::Result (Pistache::Rest::Request, Pistache::Http::ResponseWriter), std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request, Pistache::Http::ResponseWriter)> Pistache::Rest::Routes::bind<void, MyService, Pistache::Rest::Request const&, Pistache::Http::ResponseWriter, MyService*>(void (MyService::*)(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter), MyService*)::{lambda(Pistache::Rest::Request const&, Pistache::Http::ResponseWriter)#1}>::_M_invoke(std::_Any_data const&, Pistache::Rest::Request&&, Pistache::Http::ResponseWriter&&)(__functor = , __args#0 = , __args#1 = ) at /usr/include/c++/7/bits/std_function.h:302
#11  std::function<Pistache::Rest::Route::Result (Pistache::Rest::Request, Pistache::Http::ResponseWriter)>::operator()(Pistache::Rest::Request, Pistache::Http::ResponseWriter) const(this = 0x555555942dc0, __args#0 = , __args#1 = ) at /usr/include/c++/7/bits/std_function.h:706
#12  Pistache::Rest::Route::invokeHandler<Pistache::Rest::Request, Pistache::Http::ResponseWriter>(this = 0x555555942dc0, args#0 = , args#1 = ) at /home/kip/Projects/Pistache/include/pistache/router.h:81
#13  Pistache::Rest::Router::route(this = 0x5555558fb510, req = , response = ) at /home/kip/Projects/Pistache/src/server/router.cc:444
#14  Pistache::Rest::Private::RouterHandler::onRequest(this = 0x555555956bd0, req = , response = ) at /home/kip/Projects/Pistache/src/server/router.cc:324
#15  Pistache::Http::Handler::onInput(this = 0x555555956bd0, buffer = 0x7fffe67fa9f0 "POST /v1/songs HTTP/1.1\\r\\nHost: <IP_ADDRESS>:6440\\r\\nUser-Agent: curl/7.58.0\\r\\nAccept: */*\\r\\nX-API-Token: soiled\\r\\nContent-Length: 61\\r\\nContent-Type: application/x-www-form-urlencoded\\r\\n\\r\\n{\\n    \\"reference\\" : "..., len = 241, peer = ) at /home/kip/Projects/Pistache/src/common/http.cc:767
#16  Pistache::Tcp::Transport::handleIncoming(this = 0x555555956c10, peer = ) at /home/kip/Projects/Pistache/src/common/transport.cc:152
#17  Pistache::Tcp::Transport::onReady(this = 0x555555956c10, fds = ) at /home/kip/Projects/Pistache/src/common/transport.cc:79
#18  Pistache::Aio::SyncImpl::handleFds(this = 0x555555952770, events = ) at /home/kip/Projects/Pistache/src/common/reactor.cc:183
#19  Pistache::Aio::SyncImpl::runOnce(this = 0x555555952770) at /home/kip/Projects/Pistache/src/common/reactor.cc:143
#20  Pistache::Aio::SyncImpl::run(this = 0x555555952770) at /home/kip/Projects/Pistache/src/common/reactor.cc:156
#21  Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}::operator()() const(__closure = 0x7fffe0001248) at /home/kip/Projects/Pistache/src/common/reactor.cc:464
#22  std::__invoke_impl<void, Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}>(std::__invoke_other, Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}&&)(__f = ) at /usr/include/c++/7/bits/invoke.h:60
#23  std::__invoke<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}>(std::__invoke_result&&, (Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}&&)...)(__fn = ) at /usr/include/c++/7/bits/invoke.h:95
#24  std::thread::_Invoker<std::tuple<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>)(this = 0x7fffe0001248) at /usr/include/c++/7/thread:234
#25  std::thread::_Invoker<std::tuple<Pistache::Aio::AsyncImpl::Worker::run()::{lambda()#1}> >::operator()()(this = 0x7fffe0001248) at /usr/include/c++/7/thread:243

Hey Dennis. I will see what I can do, but it may take some time to prepare a unit test.
What I can tell you is that whatever is responsible for initializing size was doing so to zero. I can also confirm the same segfault behaviour with head at the call to reserve as of writing now.
Changing the call from reserve(size * 2); to `reserve(std::max(size, 1LU) * 2); does fix the problem.

Hey Dennis. It appears to still be happening at the same line. I confirm that when I patch the reserve() call to my suggestion above it's fine. Here is a stack trace;
(gdb) bt full
#0  0x00005555567c244e in Pistache::DynamicStreamBuf::overflow(int) (this=0x7ffff0f51910, ch=72)
    at /home/kip/Projects/Pistache/src/common/stream.cc:110
        size = 0
#1  0x00007ffff6aab6db in std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long)
    () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007ffff6a9bf54 in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) ()
    at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff6a9c2c7 in std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) ()
    at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x000055555676647d in Pistache::Http::operator<<(std::ostream&, Pistache::Http::Version)
    (os=..., version=Pistache::Http::Version::Http11)
    at /home/kip/Projects/Pistache/src/common/http_defs.cc:166
#5  0x000055555672da4f in Pistache::Http::(anonymous namespace)::writeStatusLine(Pistache::Http::Version, Pistache::Http::Code, Pistache::DynamicStreamBuf&)
    (version=Pistache::Http::Version::Http11, code=Pistache::Http::Code::Bad_Request, buf=...)
    at /home/kip/Projects/Pistache/src/common/http.cc:52
        os = <incomplete type>
#6  0x000055555673468f in Pistache::Http::ResponseWriter::putOnWire(char const*, unsigned long)
    (this=0x7ffff0f51830, data=0x7fffe400e1f0 "{\n   \"code\" : 400,\n   \"details\" : \"expected song reference containing only alphanumeric or underscore characters\",\n   \"summary\" : \"Bad Request\"\n}\n", len=146) at /home/kip/Projects/Pistache/src/common/http.cc:654
        os = <incomplete type>
        connection =
    std::shared_ptr<Pistache::Http::Header::Connection> (use count 10277, weak count -402295809) = {get() = 0x7ffff0f51000}
        control = (unknown: -252374896)
--Type <RET> for more, q to quit, c to continue without paging--c
        buffer = {data_ = "\006\000\000\000\000\000\000\000\000", length_ =<PHONE_NUMBER>10, isDetached_ = false}
        fd = 32767
#7  0x0000555555733276 in Pistache::Http::ResponseWriter::send(Pistache::Http::Code, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Pistache::Http::Mime::MediaType const&) (this=0x7ffff0f51830, code=Pistache::Http::Code::Bad_Request, body="{\n   \"code\" : 400,\n   \"details\" : \"expected song reference containing only alphanumeric or underscore characters\",\n   \"summary\" : \"Bad Request\"\n}\n", mime=...) at /home/kip/Projects/Pistache/prefix/include/pistache/http.h:513

This issue can be close, it fixed


Remove test_help_long_description_from_docstring

Related to #6133

View a preview at https://prompt.ws/r/Azure/azure-cli/6134
This is an experimental preview for @microsoft users.


Resolving [BUG #4438] :

Context
Fises #4438 Impossible to run "yarn run orthanc:up" --> "docker-compose: not found"

Changes & Results

Following this community post : https://community.ohif.org/t/how-to-solve-this-error-data-source-connection-error-error-request-failed-please-ensure-the-following-data-source-is-configured-correctly-or-is-running-orthanc-server/1750/3
Modifying root "package.json", Platform/App "package.json and Platform/app/.webpack

Testing
All run well with the modifying code

Checklist
PR

[] My Pull Request title is descriptive, accurate and follows the
semantic-release format and guidelines.

Code

[] My code has been well-documented (function documentation, inline comments,
etc.)

Public Documentation Updates

[] The documentation page has been updated as necessary for any public API
additions or removals.

Tested Environment

[] OS:
[] Node version:
[] Browser:

I think this is addressed in latest master, and release/3.9 branches


implement the model

@SeskoDk is there anything i can support you? because i think most of the other tickets await this to be merged :scream_cat:


blank pop-up window "Hello, JavaFX 17.0.1, running on Java 19.0.1" + WARNING: Timeout while waiting for app reactivation

As for https://openjfx.io/openjfx-docs/#maven,
after running  on macOS Sonoma,
mvn javafx:run

confront
com.sun.glass.ui.mac.MacApplication lambda$waitForReactivation$6
WARNING: Timeout while waiting for app reactivation

and blank pop-up window
Hello, JavaFX 20.0.2, running on Java 20.0.2

 Seems relevant to https://stackoverflow.com/questions/77223963/javafx-window-takes-a-while-to-load-and-getting-an-error-in-eclipse. However, when I try to follow  javafx-sdk-20.0.2
https://bugs.openjdk.org/browse/JDK-8315657
<javafx.version>20.0.2</javafx.version>

instead of
https://github.com/openjfx/samples/blob/f44ca19e4178ee01663d7a2ae8a5da8e58eee1fa/HelloFX/Maven/hellofx/pom.xml#L13
The issue persists with
Hello, JavaFX 20.0.2, running on Java 20.0.2

The original issue exists MacOS Monterey as well.
blank pop-up window
Hello, JavaFX 20.0.2, running on Java 20.0.2

but without
-- com.sun.glass.ui.mac.MacApplication lambda$waitForReactivation$6
-- WARNING: Timeout while waiting for app reactivation

This is successful "Hello World". Sorry for this.


Beginners usage docs [skip ci]

This is mainly a rewrite of the "USAGE.md" docs. It is now written to be a minimal but complete example run with both germline and somatic analysis. However, I think we should change it to be the best-practice commands later.

Docs now have complete recommended commands for a complete analysis.
The possible parameters are moved into a separate PARAMETERS.md.
The parameters are divided based on the workflow script they apply to.
The tsv documentation is renamed to INPUT.md which also includes the recommended directory structure when using the --sampleDir option.
Customised profile is removed as we don't really explain how that would be done and it's not really intended for a regular user.

PR checklist

[x] PR is made against dev branch
[x] This comment contains a description of changes (with reason)
[x] Documentation in docs is updated
[x] CHANGELOG.md is updated
[x] README.md is updated

@alneberg OK for you to merge that?


Who made that docker on god

Bro i was trying to build this project the whole DAY and i just threw it all away and rewrote it and it is working finally!!!!!!!!!! how were you able to write such a bad dockerfile i feel bad for you

What problems did you encounter, in the instructions are just commands that must be entered one by one to run, there you have to login to your tg account, so this is the solution.
Session is thrown through volum to not build again if you are logged out or something like that.
What exactly is wrong with dockerfile

i cant tell but the thing that it creates a directory bio.session when a file bio.session is needed is creating conflicts and is wrong in so many ways. sorry for agressive issue but bro i was so frustrated. thanks for writing this script tho, i just think that docker is unnecesarry in so small projects

and yup volum must be a directory, not a file

Docker is used here to make starting and stopping as easy as possible

i cant tell but the thing that it creates a directory bio.session when a file bio.session is needed is creating conflicts and is wrong in so many ways. sorry for agressive issue but bro i was so frustrated. thanks for writing this script tho, i just think that docker is unnecesarry in so small projects

in last commit i move session file to session folder and now docker do not create folder instead file

and yup volum must be a directory, not a file


Hungarian translation

This pull requests adds the translation file for Hungarian. I haven't added Hungarian to the list of available languages though. That still needs to be done. Could you do that? Or should I look into it?

I'll add it to the list


Add static-checks make target and goimport the code.

Description

Wasted too much time this weekend on merge conflicts caused by file moves + goimports.  Lets fix that.
Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Don't know why this is failing on semaphore; passes locally on the same commit :-/


scikit-rf 1.2.0

Destination channel: defaults
Links

PKG-5267
Upstream repository
Upstream changelog/diff

Explanation of changes:

Set version and sha256
Update download URL
Clean up test section
Linter fixes

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_5e1kqt5w9f/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:59: invalid_url: https://scikit-rf.readthedocs.io/ : Not reachable: 403
===== Final Report: =====
1 Error and 0 Warnings were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_0ckjskztaa/clone` failed. (See above for error)
The following problems have been found:
===== ERRORS =====

clone/recipe/meta.yaml:59: invalid_url: https://scikit-rf.readthedocs.io/ : Not reachable: 403
===== Final Report: =====
1 Error and 0 Warnings were found


Add table aws_rds_describe_pending_maintenance_actions

References
Add any related links that will help us understand the resource, including vendor documentation, related GitHub issues, and Go SDK documentation.
https://docs.aws.amazon.com/cli/latest/reference/rds/describe-pending-maintenance-actions.html
https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribePendingMaintenanceActions.html
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#USER_UpgradeDBInstance.Maintenance.Viewing
Important to know when maintenance will occur and why.

Hey @leandrotocachelis , thanks for raising this issue! As pending maintenance actions are always associated with a DB instance or DB cluster, we're planning on adding a new column, pending_maintenance_actions, to the existing DB instance and DB cluster tables. We'll also add some examples in the table docs for each of the tables in order to show how to query/use those columns.


last invoie number updates on each post update

Invoice number settings should be update only on first save / insert
Bailout on update

Closed via e97126ef608291b1344cb76dfbbae596b28312e6


Do not generate MVC attributes unless necessary

Fixes https://github.com/aspnet/AspNetCore/issues/8161

Related: https://github.com/aspnet/websdk/pull/540


[SPARK-13594][SQL] remove typed operations(e.g. map, flatMap) from python DataFrame

What changes were proposed in this pull request?
Remove map, flatMap, mapPartitions from python DataFrame, to prepare for Dataset API in the future.
How was this patch tested?
existing tests

cc @rxin @yhuai

Test build #52244 has started for PR 11445 at commit 86ec0ff.

Test build #52244 has finished for PR 11445 at commit 86ec0ff.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52244/
Test FAILed.

Merged build finished. Test FAILed.

Test build #52273 has started for PR 11445 at commit bf4b9d5.

Test build #52273 has finished for PR 11445 at commit bf4b9d5.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52273/
Test FAILed.

Test build #52285 has started for PR 11445 at commit d0a69fa.

Test build #52285 has finished for PR 11445 at commit d0a69fa.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52285/
Test FAILed.

Test build #52287 has started for PR 11445 at commit 5e711e3.

Test build #52287 has finished for PR 11445 at commit 5e711e3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/52287/
Test PASSed.

Thanks - merging this in master.

This change surprised me as a user of Pyspark on the 2.0.0-Snapshot. Thanks for documenting this well. Since I usually use the Scala API, it was not clear to me that Pyspark didn't support the Datasets API yet (i.e., df.rdd.flatMap(...) returns a PythonRDD as-opposed to a Dataset)

@rxin
As we're not planning to implement DataSets in Python is there a plan to revert this Jira ?


Fix: Remove error on field when user starts typing or makes a change.

created additional issue to fix those warnings:
https://github.com/SoftwareBrothers/admin-bro/issues/714

Closing because I'm not sure why eslint-disable react-hooks/exhaustive-deps needed to be disabled and this PR is already old


Use Debounce for search stuck in loading useQuery

Discussed in https://github.com/tannerlinsley/react-query/discussions/2402

Originally posted by irsyaadbp June 25, 2021
i implement use debounce with useQuery is stuck in loading, but if i change to state its working
i already try if just call the function getSalesList use debounce and without useQuery its working too.
its just happen when i use useQuery, is there something wrong in my code?
hooks for useDebounce
import { useEffect, useState } from "react";

export default function useDebounce(value, delay) {
  // State and setters for debounced value
  const [debouncedValue, setDebouncedValue] = useState(value);
  useEffect(
    () => {
      // Update debounced value after delay
      const handler = setTimeout(() => {
        setDebouncedValue(value);
      }, delay);
      // Cancel the timeout if value changes (also on delay change or unmount)
      // This is how we prevent debounced value from updating if value is changed ...
      // .. within the delay period. Timeout gets cleared and restarted.
      return () => {
        clearTimeout(handler);
      };
    },
    [value, delay] // Only re-call effect if value or delay changes
  );
  return debouncedValue;
}

custom hooks for useQuery
export function useSales({
  name = "sales-list",
  params = {},
  options = {},
} = {}) {
  const { data, isLoading, isError, error, refetch } = useQuery(
    [name, { ...params }],
    ({ queryKey }) => getSalesList({ params: queryKey[1] }),
    {
      ...options,
      onSuccess: (dataQuery) => {
        if (options?.onSuccess) {
          return options?.onSuccess(dataQuery);
        }
      },
      onError: (err) => {
        if (err.message.toLowerCase().includes("expired")) {
          return Alert.alert(
            "Warning",
            "Your sesion is expired, please relogin",
            [{ text: "OK", onPress: logout }]
          );
        }
        if (options?.onError) {
          return options.onError(err);
        }

        const errorMessage = error?.response?.status
          ? error?.response?.data?.message ||
            "Something wrong, please try again later"
          : error?.message;
        Alert.alert("Warning", errorMessage);
      },
    }
  );

  return { data, isLoading, isError, error, refetch };
}

and this is my code for implement debounce for search
  const [search, setSearch] = useState("");
  const debounceSearch = useDebounce(search, 500);

  const { data, isLoading, isError, error, refetch } = useSales({
    params: {
      keyword: debounceSearch,
    },
  });
```</div>

let's keep this in the discussions please


Fix bug in DPU Platform Info

We need to create a new instance of the PlatformInfo struct to ensure the NewIntelDetector is added.
Additionally, fix a small bug in determining a device is an Intel DPU. The Intel IPU pci Class/Vendor/Product should be:
Network controller Intel Corporation Infrastructure Data Path Function

@bn222 PTAL

since Sal is on PTO. Let's merge this in and fix the issues above in a seperate PR.

/lgtm

/override ci/prow/e2e-dpu-operator-tests

/override ci/prow/e2e-dpu-operator-tests


Rat-dependent linarith functionality

As of #1711 ring can deal with fractions, so it should be possible to take the next step and let linarith deal with fractions.  For example,
import Mathlib.Tactic.Linarith

example (h : 0 < x) : 0 < x / 2 := by linarith

See progress at  #3797.


Loading spinner

NHS design system discussion
Example

Journeys used on
The blue spinner appears on most journeys.
The green 'loading' spinner on P5 User Access
Related
GOV.UK Design System discussion

A different spinner is used on the native splash screens...


UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open '/usr/local/lib/node_modules/degit/dist/help.md'

On Fedora 31, standard install of npm install -g degit
nodejs v12.15.0
[vagrant@localhost ~]$ which degit
/usr/local/bin/degit
[vagrant@localhost ~]$ ls -l /usr/local/bin/degit
lrwxrwxrwx. 1 root root 32 Feb 19 15:03 /usr/local/bin/degit -> ../lib/node_modules/degit/bin.js
[vagrant@localhost ~]$ degit --help
(node:2423) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open '/usr/local/lib/node_modules/degit/dist/help.md'
    at Object.openSync (fs.js:440:3)
    at Object.readFileSync (fs.js:342:35)
    at main (/usr/local/lib/node_modules/degit/dist/bin.js:5514:5)
    at Object.<anonymous> (/usr/local/lib/node_modules/degit/dist/bin.js:5627:1)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Module.require (internal/modules/cjs/loader.js:848:19)
    at require (internal/modules/cjs/helpers.js:74:18)
(node:2423) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:2423) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Version 2.6.0 doesn't have the error.

ah, whoops. I know why this happened — should get a chance to fix it later today

I am getting the following error in<EMAIL_ADDRESS>❯ degit --help
(node:57494) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open '/Users/jonathan/.config/nvm/10.17.0/lib/node_modules/degit/dist/help.md'
    at Object.openSync (fs.js:443:3)
    at Object.readFileSync (fs.js:343:35)
    at main (/Users/jonathan/.config/nvm/10.17.0/lib/node_modules/degit/dist/bin.js:5514:5)
    at Object.<anonymous> (/Users/jonathan/.config/nvm/10.17.0/lib/node_modules/degit/dist/bin.js:5627:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
(node:57494) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:57494) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I have the same problem. Is there anyone to deal with this?

@assoft
Sorry my bad english.
The file lies on the directory above @jrop already made a request for fix pull 179.
Although it might be better to copy the file to dist.

Instead of code change, can we move the help.md file into dist directory during build. we can leverage rollup-plugin-copy for copying the help.md. What do you think? we will definitely need this feature
plugins: [     copy({       targets: [         { src: 'help.md', dest: 'dist' }       ]     })   ]
Let me know, I can give a PR

I'm getting this too.
It appears the help.md is not in the right place.
As a workaround, just avoid using the --help option.

This still appears to be an issue?

This issue among others are fixed in community driven fork https://github.com/tiged/tiged. :slightly_smiling_face: More info here: https://github.com/Rich-Harris/degit/issues/258
Maintainers (and stars) welcome. :blush:


Add sentry logging & performance monitoring

Trello: https://trello.com/c/3FkpwYwD
This PR adds sentry logging & performance monitoring.
Includes updating tablib via poetry - this was because I tried updating the sentry-sdk package via poetry and for some reason it updated tablib even though it's not a dependency of sentry-sdk. I left it as I figure it's good to update, but if we'd prefer to keep it at the current version I can undo it.

 Backend Sentry

 Backend Sentry

@jbothma I confirmed this works by intentionally raising an ImportError exception (https://sentry.io/share/issue/35193bdc233c49c5b0ff8791164bb3c0/) under the development environment.

@jbothma I confirmed this works by intentionally raising an ImportError exception (https://sentry.io/share/issue/35193bdc233c49c5b0ff8791164bb3c0/) under the development environment.


Add telemetry for meltano state command

Update meltano.cli.state to support new style snowplow telemetry.
Spun out from https://github.com/orgs/meltano/discussions/392

We're not doing this in favor of

https://github.com/meltano/meltano/issues/6041


Rate limits for AsyncClient

Hey guys, first and foremost I really appreciate the SDK/wrapper you and the community have built.
I am wondering if there's an easy way to implement some rate limiting besides adding a blocking time.sleep call.
I don't have much experience with async_http client so it could be from me but i have spent some decent time digging around. Thanks again for the wonderful wrapper

hi, so you would use something like aiolimiter at the the top of your function.
hope this helps.


[deploy] Can be Scalable High Availability with Shared Resources and Alerts ?

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
I hope Uptime-Kuma supports high availability deployment solutions, so that when a node of Uptime fails, the alert system does not cause paralysis. When multiple Uptimes are running, alerts only notify once, not multiple times. They share a database and settings.
✔ Solution
Unclear how to implement
❓ Alternatives
No response
📝 Additional Context
No response

Similar to https://github.com/louislam/uptime-kuma/issues/3124


Napari annotation

annotation widget for napari-spatialdata

As discussed with @melonora, here is a list of the following tasks to finalize the annotation widget:

[ ] the annotations saved with the annotation widget are saved in the GeoDataFrame columns. These currently cannot be visualized by napari (we need to replicate the code used for the DaskDataFrame columns).
[ ] we need an extra widget for visualizing the obs of the table or the shapes/points dataframe. This widget should enable the modification of the dataframe column so that the user can add text annotation (like the specific name of an annotated region), or the name of the annotator itself

Codecov Report
Attention: Patch coverage is 19.76744% with 138 lines in your changes are missing coverage. Please review.

Project coverage is 71.37%. Comparing base (586fb23) to head (e28310b).

Files
Patch %
Lines

src/napari_spatialdata/_annotationwidgets.py
17.92%
87 Missing :warning:

src/napari_spatialdata/_view.py
20.96%
49 Missing :warning:

src/napari_spatialdata/_viewer.py
33.33%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #210      +/-   ##
==========================================
- Coverage   75.83%   71.37%   -4.47%
==========================================
  Files          18       19       +1
  Lines        2003     2173     +170
==========================================
+ Hits         1519     1551      +32
- Misses        484      622     +138

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

I will create a barebone PR at the moment and implement the table widget afterwards.

After discussion with @melonora, better to start by merging https://github.com/scverse/napari-spatialdata/pull/233 and then proceed by copying over the part on the annotation table from this PR.


Boostrap addon?

Hi @topnimble just a comment here, I will provide more detail for this Addon tomorrow morning 🙏


Minor adjustments to help with Powershell versions

Closes #83

Seems to be fine as is, let's stick to the preinstalled powershell for now and get back to this when an issue arises.


When multiple toasts are added, only the last one expires

Hi
First of all, great library. It makes designing according to accessibility principles so, so easy (and fun, too!).
During designing my app, I've noticed that when you add multiple Toast with duration property set to ToastContainer, only the last item gets deleted. All of them should get deleted after the set duration.
Here's a minimal working example illustrating what I'm talking about. I've created my app using create-react-app:
import React from 'react';
import {
  Button,
  Toast,
  ToastContainer
} from '@salesforce/design-system-react';

class App extends React.Component {
  state = {
    toasts: []
  }

  addToast = () => {
    const toastsCopy = [...this.state.toasts]
    toastsCopy.push(
      <Toast
        labels={{
          heading: 'Lorem ipsum'
        }}
        duration={1000}
        onRequestClose={() => this.deleteToast(this.state.toasts.length - 1)}
      />
    )
    this.setState({
      toasts: toastsCopy
    })
  }

  deleteToast = id => {
    const toastsCopy = [...this.state.toasts]
    toastsCopy[id] = null
    this.setState({
      toasts: toastsCopy
    })
  }
  render() {
    return (
      <div className="App">
        <Button
          label="Show toast"
          onClick={() => this.addToast()}
        />
        <ToastContainer>
          {this.state.toasts}
        </ToastContainer>
      </div>
    )
  }
}

export default App;

The possible workaround is to override the default behavior - do not use the duration property, but implement deleting an item using setDuration yourself.

Bumping, as requested by welcome bot.


Integration Test - Release - 2019/02/06 15:53:19

Auto create for integration test. CommentIssueFlow

#pri1

Just type '#backlog'

Hi Sandra, thanks for your input on this issue!
You can add this issue to the backlog by typing #backlog,
or close it by typing #please-close. For more options,
see https://aka.ms/issue-management.

#pri2

I hope you enjoy typing things like #backlog !

#backlog

#please-close

Hi jim!
Have fun typing things like #pri1


Invisible buttons due to wrong font color

    > I cannot reproduce this error. I have deleted the wan/wan6 interface. (or removed the switch port "wan" from the wan/wan6 interface) I then added the switchport "wan" to the lan bridge. VLAN tagging also works. The only thing I'm noticing right now is that with Luci there is problem to set the IP address from static to dhcp on br-lan.

Notes from things I worked on last night are below:
My 'things going horribly wrong' comment on Luci was a simple static IP address change. So might not just be change from static to DHCP.  More exploring on that might be good.
I do notice that the IP address change warning dialog has no visible clickable button though. The colors for two invisible buttons ('Cancel' button.btn and 'Apply with revert after connectivity loss' button.btn.cbi-button-action.im) shows as #FFFFF instead of #212322.  That is theme OpenWRT2020, whereas the BootStrap themes seems to be fine.
Re can't reproduce the 'network loop' issue I continue to see when adding WAN, this is an interesting one. Can you paste your /etc/config/network so I can test an identical config as well as diff the config where I can reproduce?  Also confirm you are running the same code you linked for me to test please.
Originally posted by @JJWatMyself in https://github.com/openwrt/openwrt/issues/11579#issuecomment-1362910795

I think the issue is in this file:
https://github.com/openwrt/luci/blob/master/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css
Potentially line 723 (Maybe also 729, 734) is where I think the white on white issue exists.  I think it should be #212322 instead?
color: #fff;

.cbi-button-action.important,
.cbi-page-actions .cbi-button-apply,
.cbi-section-actions .cbi-button-edit {
	color: #fff;
	background: #37c;
}

.cbi-button-positive.important,
.cbi-page-actions .cbi-button-save {
	color: #fff;
	background: #595;
}

.cbi-button-negative.important {
	color: #fff;
	background: #a22;
}

.cbi-page-actions .cbi-button-apply + .cbi-button-save,
.cbi-page-actions .cbi-button-negative + .cbi-button-save {
	background: #fff;
	color: #595;
}

I also am not sure where the color for button.btn is but it also had the same issue.
Reproduced by changing IP address and the warning screen that follows.

Can you please take pictures and attach them? Otherwise I don't think anyone can help you figure out what the problem is.

@feckert I think I have figured out the problem and is in the comment above you post.

Is this now a problem, that we should solve? If yes then please open a pullrequest and if not then please close this issue.


need an complier api, to add a new ModuleKind export

maybe just export moduleEmitDelegates( in src\compiler\emitter.ts) , so I can rewrite it ,to export some modules  such as Unreal.js (it's module loader is not same to es6 amd system umd commonjs)

#5595 will help support this, but we won't necessarily have an extension point when we initially publish it.

it's module loader is not same to es6 amd system umd commonjs

You are probably right and I have no experience from it but their readme says (Full) access to existing javascript libraries via npm, bower, so I think commonjs might just work :rose:

@gastrodia does @basarat's post more or less solve your issue? I think several other issues might better cover the suggestion here.

yep I have solve it by commonjs ,thanks a lot @basarat  and I also expect an complier api to custom ModuleKind export in typescript 2.1


Publisher issues

I pulled the code to try and submit a fix but the tests keep failing - even on a clean clone - so I decided to write an issue here.
Issue 1
Under publisher.js on line 99 it uses urlJoin to create a URL to PUT to pact-broker. The issue here is related to data.provider and data.consumer which are both objects. You have to retrieve the actual name by using data.provider.name and data.consumer.name otherwise the URL built will look like
/pacts/provider/[Object%20object]/consumer/[Object%20object]/version/2.0

Issue 2
When there's a failure there's no way to know what happened. On publisher.js line 114 pass back the response object when the promise is rejected.
Thanks

@mefellows is this related to the change you did/deployed this morning?

Looks like it, but not 100% (off the top of my head). There is a unit test associated with it but it's clearly insufficient. I'll investigate this evening if I can.

Sorry to be a pain but there's only issue addressed on that commit
On Tue, 21 Jun 2016, 19:11 Matt Fellows<EMAIL_ADDRESS>wrote:

Closed #12 https://github.com/pact-foundation/pact-node/issues/12 via
014cea1
https://github.com/pact-foundation/pact-node/commit/014cea1ba475359c4ae4d87736ab7c6cb7447bff
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pact-foundation/pact-node/issues/12#event-698757946,
or mute the thread
https://github.com/notifications/unsubscribe/AA2h9Lt2M5GGpCmAyfaSrYzZWAB_9UXRks5qN6q1gaJpZM4I6bRU
.

Issue 1, do you mean?

Yup
On Tue, 21 Jun 2016, 19:13 Matt Fellows<EMAIL_ADDRESS>wrote:

Issue 1, do you mean?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pact-foundation/pact-node/issues/12#issuecomment-227384578,
or mute the thread
https://github.com/notifications/unsubscribe/AA2h9CVsa7K0rngx6kqq3-a1qQEQn9cFks5qN6tOgaJpZM4I6bRU
.

All good, WIP mate :)

@mefellows @mboudreau somehow version 4.4.3 didn't get published. Can someone act on it? I have a project here needing this change.

@tarciosaraiva The fix branch is building.  Waiting to go green before merging and deploying the latest.  Keep your pants on ;)

I think this is good now. Cheers

👍


Second openvpn server not routed correctly

Important notices
Our forum is located at https://forum.opnsense.org , please consider joining discussions there in stead of using GitHub for these matters.
Before you ask a new question, we ask you kindly to acknowledge the following:

[ X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[ X] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Hi,
I have a "licensed" OPNSense VM in Azure.
I configured an OpenVpn server on tcp port 443 with certificate only authentication.
Most clients have CSO.
Now I configure a second OpenVpn server with same CA and server certificate.
I expose it on udp on a different port because I finished first server ip space and because some clients cannot use tcp port 443.
But, no matter what I do, ip packets arrive at second openvpn interface but then they are blocked/not routed.
I am pretty sure because I have tested with a packet capture and I see ping requests arrive in the opnsense interface but they stops there.
I have searched forums and tried:

using pass all firewall rule
disabling reply-to in firewall rules
enabling openvpn interfaces
then disabling dynamic openvpn gateway
using firewall groups

No workaround worked.
Can you tell me if it is a bug or what should I try?
Thanks,
Mario

I've only seen similar behaviour when cso's aren't properly used and iroute is missing (in which case openvpn doesn't know where to send the traffic).

Oh forgot to say that I disabled some cso for testing. Anyway I will check iroute now.


Runtime error in Feature Extraction

Hi @TixiaoShan, I am able to compile LIO-SAM, launch run.launch with no errors, and during playback of casual_walk.bag I encounter the following error:
[ INFO] [1611676482.395435673]: ----> Feature Extraction Started.
terminate called after throwing an instance of 'std::length_error'
  what():  vector::_M_default_append

I checked master.log and see the following error (no other errors are present):
[rosmaster.threadpool][ERROR] 2021-01-26 10:54:45,107: Traceback (most recent call last):
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/threadpool.py", line 218, in run
    result = cmd(*args)
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rosmaster/master_api.py", line 210, in publisher_update_task
    ret = xmlrpcapi(api).publisherUpdate('/master', topic, pub_uris)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1243, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.7/xmlrpclib.py", line 1283, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1316, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1493, in parse_response
    return u.close()
  File "/usr/lib/python2.7/xmlrpclib.py", line 800, in close
    raise Fault(**self._stack[0])
Fault: <Fault -1: 'publisherUpdate: unknown method name'>

any thoughts on what could be happening? I am using Ros Melodic on Ubuntu 18.04 LTS

issue present in master.log appears to be related to ros/ros_comm#572, leading me to believe it has something to do with recent system/ROS updates.

issue present in master.log appears to be related to ros/ros_comm#572, leading me to believe it has something to do with recent system/ROS updates.


BigQuery Java API: NPE on com.google.cloud.bigquery.StandardTableDefinition.fromPb(StandardTableDefinition.java:298)

Environment details

Specify the API at the beginning of the title (for example, "BigQuery: ...") : BigQuery
General, Core, and Other are also allowed as types
OS type and version:  Any OS
Java version: 1.8
google-cloud-java version(s):
com.google.cloud
google-cloud-bigquery
1.110.0

Steps to reproduce
NOT ABLE TO REPRODUCE
Code example

Page<Table> tables = bigquery.listTables(datasetId, BigQuery.TableListOption.pageSize(1));
Iterable<Table> table_iterator = tables.iterateAll();
for (Table table : table_iterator){
if (table.getDefinition().getType().toString().equalsIgnoreCase("TABLE")) {
                                           System.out.println("table");
                                        }
}

Stack trace
Caused by: java.lang.NullPointerException: Null pointer - Got unexpected time partitioning {"field":"XXXXX"} in project XXXXXX in dataset XXXXX in table XXXXX java.lang.NullPointerException: Name is null
        at com.google.cloud.bigquery.StandardTableDefinition.fromPb(StandardTableDefinition.java:298)
        at com.google.cloud.bigquery.TableDefinition.fromPb(TableDefinition.java:151)
        at com.google.cloud.bigquery.TableInfo$BuilderImpl.<init>(TableInfo.java:188)
        at com.google.cloud.bigquery.Table.fromPb(Table.java:624)
        at com.google.cloud.bigquery.BigQueryImpl$21.apply(BigQueryImpl.java:847)
        at com.google.cloud.bigquery.BigQueryImpl$21.apply(BigQueryImpl.java:844)
        at com.google.common.collect.Iterators$6.transform(Iterators.java:786)
        at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47)
        at com.google.cloud.PageImpl$PageIterator.computeNext(PageImpl.java:72)
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)

Any additional information below
This issue occurs on a few tables in Prod which I am not able to replicate in Dev.
The rpc call has the partition type as null but the TimePartitioning object in the response pb is not null which is leading to an NPE at this point.
https://github.com/googleapis/java-bigquery/blob/b539f95965ddba6ce4fc5b6712ce1e38b8286bd7/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java#L276

@chetanmeda I tested it many times but still not able to reproduce that error,
does this happening with every partition table or specific table ? if yes, could you please provide response pb ?

@pmakani  A table created with the API google-api-services-bigquery does not define partition type as an Enum.
Trying creating a table with the below code.
Table tablePb = new Table();
    `Table tablePb = new Table();

    tablePb.setType("TABLE");

    TableSchema tableSchemaPb = new TableSchema();
    TableFieldSchema tableFieldSchema1 = new TableFieldSchema();
    tableFieldSchema1.setName("stringField");
    tableFieldSchema1.setType("STRING");
    TableFieldSchema tableFieldSchema2 = new TableFieldSchema();
    tableFieldSchema2.setName("booleanField");
    tableFieldSchema2.setType("BOOL");
    TableFieldSchema tableFieldSchema3 = new TableFieldSchema();
    tableFieldSchema3.setName("timestampField");
    tableFieldSchema3.setType("TIMESTAMP");
    List<TableFieldSchema> tableFieldSchemaList= new ArrayList<TableFieldSchema>();
    tableFieldSchemaList.add(tableFieldSchema1);
    tableFieldSchemaList.add(tableFieldSchema2);
    tableFieldSchemaList.add(tableFieldSchema3);
    tableSchemaPb.setFields(tableFieldSchemaList);
    tablePb.setSchema(tableSchemaPb);
    TimePartitioning timePartitioning = new TimePartitioning();
    timePartitioning.setField("timestampField");
    timePartitioning.setType(null);

    tablePb.setTimePartitioning(timePartitioning);

    TableReference tableReference = new TableReference();
    tableReference.setProjectId("bigquerty-poc");
    tableReference.setDatasetId("legacy_views");
    tableReference.setTableId("try_1_part");
    tablePb.setTableReference(tableReference);

     try {

         bigquery
                 .tables()
                 .insert(tableReference.getProjectId(), tableReference.getDatasetId(), tablePb)
                 .execute();
     }
     catch (Exception e){
         e.printStackTrace();
     }

}`

bigquery above is an instance of com.google.api.services.bigquery.Bigquery.
Table created using code like above ( timePartitioning.setType(null) ) is a valid partitioned tabled and works perfectly. But the new API as Timepartitioning.Type as Enum which causes the exception.
So just like https://github.com/googleapis/java-bigquery/blob/b539f95965ddba6ce4fc5b6712ce1e38b8286bd7/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java#L117 , the code at https://github.com/googleapis/java-bigquery/blob/b539f95965ddba6ce4fc5b6712ce1e38b8286bd7/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java#L276 needs to be made backward compatible.

So, this is an odd behavior, and the backend is allowing nulls but probably should not.  I've filed an internal issue (155198865) to see if this can be corrected or documented in the backend.
The important thing to note here is that the behavior (setting a null partitioning type) is undefined, and shouldn't be used.  We can consider allowing it through the manual library, but I'd like to confirm what the intent is internally (document or restrict) for unset types before we address this in this library.

@shollyman  The backend should allow nulls because setting TimePartitioning type as "DAY" is not mandatory requirement. So In the above table creation code, omitting
timePartitioning.setType(null);
will cause the same issue. So it was more of a non-mandatory internally assigned parameter being made mandatory on the new library. It is always a "DAY" internally. So it need not be set explicitly.
The new library can expect it to be mandatorily assigned, but cannot always expect a value to be returned for TimePartitioning.Type because most of the tables created using java library did not need it. More of what the client java library is expecting as mandatory behaviour should become non-mandatory behaviour. This issue is causing the new client library to be unusable for us and we have to revert to using google-api-services-bigquery directly.
Can this change for TimePartitioning.Type to be able to accept null Types while reading a Table be done so that we can continue using google-cloud-bigquery.

@pmakani  - Thanks for the PR , Let me know it will get merged and when will we  get the latest jar out if it

@stephaniewang526  - Any idea when we can expect the latest  jar ? https://repo.maven.apache.org/maven2/com/google/cloud/google-cloud-bigquery/1.111.1/

It should be release on Monday, 5/4.

@stephaniewang526  - Thanks for the update

@stephaniewang526  -  i couldn't see latest jar ? is the build happened ?

https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/ please find the latest jar, 1.111.3 here.


Fix for latest tag in commit image builds for OAI

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind bug

/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
Per commit image builds has to have 'latest' tag as well
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/lgtm
/approve


Feature: Add quote endpoint support

This adds support for the "Global Quote" function.
https://www.alphavantage.co/documentation/#latestprice

I'm going to merge this! The failing tests are because the API key is secret and only gets applied when I run the tests, but I've manually checked it out myself. Thank @jzatt for your contribution to the project!

Coverage decreased (-25.0%) to 75.0% when pulling a1e166e2f3e0965ec9a8725452d0959f9bc88981 on jzatt:feature/add-quote-endpoint-support into 77d626c29d8259b8f894d1ff15ba54c977c8f25d on zackurben:master.


[BUG] Backing Image Creation with Multiple Copies Fails in Loop

Describe the bug
When attempting to create a backing image  from export from a longhorn volume with minimum number of copies : 3, only one of them is successful. The other two enter a loop of starting, in-progress, and failed states.

To Reproduce

Create a Longhorn volume with size 512MB (named 512)
Mount the volume to a pod
Write 200MB test data to the volume
Create a backing image with following settings:

Creation method: "Export from a Longhorn volume"
Minimum number of copies: 3

Only one backing image copy successfully reaches Ready state
The remaining two copies are stuck in a continuous loop: starting -> in-progress -> failed -> starting

    status:
  checksum: bed698b86339680e63bb887e3fc080c05beed52bfde3a8d2a9df577de4fdb93f8ad9018a317442f48bd6945b85c58d0d2828077e2d18d7a86cf590d438e29f7e
  diskFileStatusMap:
    cc376e72-1b18-49a3-a543-a6457a3ec75f:
      lastStateTransitionTime: "2024-12-13T08:11:17Z"
      message: found mismatching realSize 235278336 reported by backing image manager
        backing-image-manager-b2c6-cc37 in disk cc376e72-1b18-49a3-a543-a6457a3ec75f,
        the realSize recorded in status is 235282432
      progress: 100
      state: failed

Expected behavior
The export from a longhorn volume should function normally without any issues.
Support bundle for troubleshooting
backingimage.zip
Environment

Longhorn version: master-head
Impacted volume (PV):
Installation method (e.g. Rancher Catalog App/Helm/Kubectl):
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version:

Number of control plane nodes in the cluster:
Number of worker nodes in the cluster:

Node config

OS type and version: SLES-15sp6
Kernel version:
CPU per node:
Memory per node:
Disk type (e.g. SSD/NVMe/HDD):
Network bandwidth between the nodes (Gbps):

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster:

Additional context

https://github.com/longhorn/longhorn/issues/8757
https://github.com/longhorn/longhorn/issues/9882

Workaround and Mitigation

#9882 has a similar error message.

Thank you for the update. After discussing with @ChanYiLin , I have tested it on Ubuntu and the tests passed, but I observed issues on SLES.

Assigned to @ChanYiLin. Let's investigate the issue next Monday.

It seems in different OS
the way we calculate the real size may be inconsistent across different node

@ChanYiLin Can we only compare the checksums and don't need to check the actual size?

@derekbit Yes we can
I am setting up the environment to see if these files do have the same checksum but have different size ?

Real size may change
Reproduce step

create a SLE-15sp6 machine
truncate -s 512M backing.img
dd if=/dev/urandom of=./backing.img bs=1M count=200  write 200MB
Use the same function in backing-image-manager to get the real size

func GetFileRealSize(filePath string) (int64, error) {
	var stat syscall.Stat_t
	err := syscall.Stat(filePath, &stat)
	if err != nil {
		return 0, err
	}
	fmt.Printf("stat: %+v\n", stat)

	// 512 is defined in the Linux kernel and remains consistent across all distributions.
	return stat.Blocks * 512, nil
}

it is 209715200 (409600 * 512) and the checksum is ed4a4...64afd

stat: {Dev:51715 Ino:8607485 Nlink:1 Mode:33188 Uid:1000 Gid:100 X__pad0:0 Rdev:0 Size:209715200 Blksize:4096 Blocks:409600 Atim:{Sec:1734687389 Nsec:83605762} Mtim:{Sec:1734688211 Nsec:991684382} Ctim:{Sec:1734688211 Nsec:991684382} X__unused:[0 0 0]}
res: 209715200

ec2-user@ip-172-31-5-160:~> sha512sum backing.img
ed4a49eb74c79b8efd98ca09ad0d507feb6690bf30514ba7f8245eba74b98e33223d3985959f7f7bda6dbcb3f8f422ddd671b52f690b2532ecb098c08ce64afd  backing.img

However, when I scp it to the local (Ubuntu 22.04)
The results changed, it is 409608 * 512 = 209719296  but the checksum is the same ed4a49...64afd

stat: {Dev:66306 Ino:18878413 Nlink:1 Mode:33204 Uid:1000 Gid:1000 X__pad0:0 Rdev:0 Size:209715200 Blksize:4096 Blocks:409608 Atim:{Sec:1731926988 Nsec:648243012} Mtim:{Sec:1734688315 Nsec:297577766} Ctim:{Sec:1734688315 Nsec:297577766} X__unused:[0 0 0]}
res: 209719296

jacklin@jacklin:~/Desktop$ sha512sum backing.img
ed4a49eb74c79b8efd98ca09ad0d507feb6690bf30514ba7f8245eba74b98e33223d3985959f7f7bda6dbcb3f8f422ddd671b52f690b2532ecb098c08ce64afd  backing.img

And the du  results are different as well

jacklin@jacklin:~/Desktop$ du -h backing.img
201M	backing.img

ec2-user@ip-172-31-5-160:~> du -h backing.img
200M	backing.img

Hi @roger-ryao
Can you help to verify if this is fixed, thanks!

Verified on master-head 20241226

longhorn master-head https://github.com/longhorn/longhorn/commit/7cd6412137171db36e06eeae82e97364558a877d
longhorn-manager master-head https://github.com/longhorn/longhorn-manager/commit/1b30ba25aab7ee808e6537dac34642342d84c53f

Verified on v1.8.x-head 20241226

longhorn v1.8.x-head https://github.com/longhorn/longhorn/commit/ede8f46a75704352e33fbc45b01f14fa2770a827
longhorn-manager v1.8.x-head https://github.com/longhorn/longhorn-manager/commit/4b11061e857945b7482c2a5d8b0ee12889981d8a

The test steps
https://github.com/longhorn/longhorn/issues/9976#issue-2737946220
Result Passed


GetRefByhash() will query a label's ref with hash value rather than lset.Hash().

GetRef() computes label's Hash in a.head.series.getByHash(lset.Hash(), lset).
But we find a case that (1) label's Hash will be used twice in a function and (2) there will be a hash cache to speed up some operations in future. So Hash may be computed in advance.
For case (1) GetRefByhash will query a label's ref with hash value rather than lset.Hash().
Full details will be found in Cortex's PR https://github.com/cortexproject/cortex/issues/4915
Please @alanprot @yeya24 help to review.

Feels a bit borderline - I understand you are projecting a 5% improvement when using an optional Cortex feature - but in line with the original point of adding GetRef().
We could just replace GetRef with GetRefByHash, rather than adding the extra entry-point. (Or, you could have GetRef() call GetRefByHash() to save duplication.)

thanks for your advice. I have replaced GetRef with GetRefByHash.
Refer to hash cache , right now Cortex's activeSeries is counted in another single struct apart from in-memory series struct.  Anyway , this PR has no relation with this hash cache, it's my fault to mislead you.


Upgrade option

I just decided to upgrade my packages with ./vcpkg.exe upgrade --no-dry-run and I lost all my ports, just because of a some dependency that can't build of assimp.
Proposed solution
Make the upgrade iterative, a.k.a remove port -> upgrade -> next port

Use --keep-going, duplicate of #17922 and possible fix in https://github.com/microsoft/vcpkg-tool/pull/308


rdMolStandardize.LargestFragmentChooser select an incorrect largest fragment

Describe the bug
Function rdkit.Chem.MolStandardize.rdMolStandardize.LargestFragmentChooser select an incorrect largest fragment.
To Reproduce
from rdkit import Chem
from rdkit.Chem.MolStandardize import rdMolStandardize
mol = Chem.MolFromSmiles('CNC[C@@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O.c1cc2c(cc1C(=O)O)oc(n2)c3cc(cc(c3)Cl)Cl')
largest_Fragment = rdMolStandardize.LargestFragmentChooser()
largest_mol = largest_Fragment.choose(mol)
print(Chem.MolToSmiles(largest_mol), "Mw:", Descriptors.MolWt(largest_mol), "NumAtoms:", largest_mol.GetNumAtoms())

--------output--------
NC[C@H](O)[C@@H](O)[C@H](O)[C@H](O)CO Mw: 195.215 NumAtoms: 13
# This is a wrong result

from rdkit import Chem
from rdkit.Chem import rdmolops
mol = Chem.MolFromSmiles('CNC[C@@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O.c1cc2c(cc1C(=O)O)oc(n2)c3cc(cc(c3)Cl)Cl')

mol_frags = rdmolops.GetMolFrags(mol, asMols = True)
largest_mol = max(mol_frags, default=mol, key=lambda m: m.GetNumAtoms())
print(Chem.MolToSmiles(largest_mol), "Mw:", Descriptors.MolWt(largest_mol), "NumAtoms:", largest_mol.GetNumAtoms())

--------output--------
O=C(O)c1ccc2nc(-c3cc(Cl)cc(Cl)c3)oc2c1 Mw: 308.12 NumAtoms: 20
# This is a correct result

Expected behavior
These two results should be equal.
Configuration (please complete the following information):

RDKit version:  2021.03.3
OS: Centos
Are you using conda? Yes
conda install rdkit -c conda-forge

The largest fragment chooser includes hydrogens as part of the "larger"
>>> Chem.AddHs(Chem.MolFromSmiles("CNC[C@@H]([C@H]([C@@H]([C@@H](CO)O)O)O)O")).GetNumAtoms()
30
>>> Chem.AddHs(Chem.MolFromSmiles("c1cc2c(cc1C(=O)O)oc(n2)c3cc(cc(c3)Cl)Cl")).GetNumAtoms()
27

So under this definition, the result is "correct" although I think it may be incorrect for the operation at hand.

The C++ port of MolVS done by Susan closely follows the original MolVS implementation, where the atom count includes hydrogens:
RDKit:
https://github.com/rdkit/rdkit/blob/6b5784c74a70c78a673d739554545d9b5501c57d/Code/GraphMol/MolStandardize/Fragment.cpp#L198
MolVS:
https://github.com/mcs07/MolVS/blob/d815fe52d160abcecbcbf117e6437bf727dbd8ad/molvs/fragment.py#L228
If you change the testing code above to include Hs in the count, you will get the same results as using LargestFragmentChooser:
largest_Fragment = rdMolStandardize.LargestFragmentChooser(True)
largest_mol = largest_Fragment.choose(mol)
print(Chem.MolToSmiles(largest_mol), "Mw:", Descriptors.MolWt(largest_mol), "NumAtoms:", Chem.AddHs(largest_mol).GetNumAtoms())
CNC[C@H](O)[C@@H](O)[C@H](O)[C@H](O)CO Mw: 195.215 NumAtoms: 30

mol_frags = Chem.GetMolFrags(mol, asMols = True)
largest_mol2 = max(mol_frags, key=lambda m: Chem.AddHs(m).GetNumAtoms())
print(Chem.MolToSmiles(largest_mol2), "Mw:", Descriptors.MolWt(largest_mol2), "NumAtoms:", Chem.AddHs(largest_mol2).GetNumAtoms())
CNC[C@H](O)[C@@H](O)[C@H](O)[C@H](O)CO Mw: 195.215 NumAtoms: 30

I do agree that this may be quite misleading, and I would probably add a parameter to only consider heavy atoms.
@greglandrum @bp-kelley what's your opinion?

I completely agree that we should document how largest is calculated, and I'll go ahead and do that.
The current approach compares the number of atoms, then the molecular weight, then the SMILES.
I, however, disagree that it should just be number of heavy atoms or just MW (or number of heavy atoms and then MW): I think that the largest fragment in [NH4+].[Cl-] is clearly the [NH4+].
We can argue what should be returned for [OH2].O=O. The current code returns [OH2], but there's a case to be made for O=O. I don't think it's terribly important as long as it's well documented, but we could change.

@greglandrum Thanks for taking care of the documentation. I agree with you that the current method is sensible and a good default. If you agree, when time allows would add a constructor where a LargestFragChooserParams can be passed, in analogy with other MolStandardize classes, keeping the legacy constructor with the preferOrganic parameter for backwards compatibility. The LargestFragChooserParams woud have three booleans with the respective defaults:

preferOrganic = false
allAtomsCount = true
heavyAtomsCount = false

if allAtomsCount and heavyAtomsCount are set to false, only MW would be used, rather than being used only for ties.
if either is set to true, that would be used as first criterion.
If both are set to true, the allAtomsCount would be used as first criterion.
@greglandrum let me know if you agree, then I'll put it on my to-do list.

@ptosco I agree with those changes. How about I make them at the same time I do the documentation?

@greglandrum I can do both documentation and the change on Saturday 11th Dec. If you have time earlier than that, feel free to go ahead on do it.


Pecos

Issue #, if available:
1827
Description of changes:
Add PECOS as a custom model to AutoGluon.
Adds a PecosModel custom model object and PecosInterface object to interact with PECOS through command-line tools.
Also contains a run.py file to demonstrate how the model can be used in-conjunction with AutoGluon.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Just published a few new commits. Some notes on this "revision":

During development I realized that I need to fundamentally change how I call PECOS in order to use it to process text input with AutoGluon, since AutoGluon automatically pre-processes text features before training and testing. I will make this change in a future PR since this code will technically still work on tabular data (though I don’t expect PECOS to perform well without text inputs)
I had to rename the pecos directory to pecos_tabular in order to avoid conflicting names with relative imports (the pecos module we import/call is also called ‘pecos’). Sorry for the messy diff that results
All other comments were addressed, including:

Removing explicit naming of cat_features/text_features/num_features, use FeatureMetadata instead
Remove text features entirely for now
Formatting fixes
Importing constants like R_INT, R_BOOL, etc
Stop preprocessing y in _preprocess
Make model_type a hyperparam
Use relative imports
Add a time_limit
Remove random seed
Add version cap to PECOS
Add unit tests
Thanks for the feedback on rev 1!

Thanks for the revision @noahj08! Could you look into why the PECOS unit test is failing? https://github.com/awslabs/autogluon/actions/runs/3185772278/jobs/5195752047#step:4:1687
If this can be fixed that will make the 2nd round of review easier since I can move straight to benchmarking.

I had to rename the pecos directory to pecos_tabular in order to avoid conflicting names with relative imports (the pecos module we import/call is also called ‘pecos’). Sorry for the messy diff that results

I'm not quite sure why this would be necessary. Worst case scenario you can do import pecos as _pecos to avoid collisions. Ideally pecos/ would be a nice directory name.
If this was truly an issue we should have seen it with catboost since we call import catboost within catboost/catboost_model.py, but this works without issue.

I'm not quite sure why this would be necessary. Worst case scenario you can do import pecos as _pecos to avoid collisions. Ideally pecos/ would be a nice directory name.

Revisited this - I still don't think I can name the directory pecos. Unlike with the catboost model, we are running the pecos library from the command line. The command to run pecos from the PecosInterface look like this: python3 -m pecos.apps.text2text.train.
When I use relative imports to run this code in a directory named pecos, the command I run looks like python3 -m pecos.run, and I get the error pecos.apps module does not exist due to the name conflict. I am not sure how I could get around this other than renaming the code directory.

I'm not quite sure why this would be necessary. Worst case scenario you can do import pecos as _pecos to avoid collisions. Ideally pecos/ would be a nice directory name.

Revisited this - I still don't think I can name the directory pecos. Unlike with the catboost model, we are running the pecos library from the command line. The command to run pecos from the PecosInterface look like this: python3 -m pecos.apps.text2text.train.
When I use relative imports to run this code in a directory named pecos, the command I run looks like python3 -m pecos.run, and I get the error pecos.apps module does not exist due to the name conflict. I am not sure how I could get around this other than renaming the code directory.

Gotcha, that makes sense. I suppose it is fine as it is then

Benchmarking this branch on a sample of 10 datasets, you can reproduce results via running this code:
https://github.com/Innixma/autogluon-benchmark/blob/master/examples/train_ag_tiny.py
and editing config1 and config2:
    config1 = dict(
        name='GBM',
        fit_args={
            'hyperparameters': {'GBM': {}},
        },
    )
    from autogluon.tabular.models.pecos_tabular.pecos_model import PecosModel
    config2 = dict(
        name='PECOS',
        fit_args={
            'hyperparameters': {PecosModel: {}},
        }
    )

Results:
     name                task_name  test_score   time_fit  time_predict eval_metric  test_error  fold  repeat  sample  task_id problem_type
0     GBM                     wilt    0.978166   0.592907      0.004127     roc_auc    0.021834     0       0       0   146820       binary
1     GBM                 credit-g    0.807619   0.358318      0.011728     roc_auc    0.192381     0       0       0   168757       binary
2     GBM                  jasmine    0.877181   0.638222      0.025533     roc_auc    0.122819     0       0       0   168911       binary
3     GBM                 madeline    0.903035   0.953085      0.006725     roc_auc    0.096965     0       0       0   190392       binary
4     GBM               eucalyptus   -0.763752   1.622462      0.010539    log_loss    0.763752     0       0       0   359954   multiclass
5     GBM              qsar-biodeg    0.948016   0.494164      0.006107     roc_auc    0.051984     0       0       0   359956       binary
6     GBM                      pc4    0.933594   0.454187      0.005441     roc_auc    0.066406     0       0       0   359958       binary
7     GBM                      kc1    0.786837   0.457706      0.004599     roc_auc    0.213163     0       0       0   359962       binary
8     GBM                  segment   -0.199786   1.927116      0.004838    log_loss    0.199786     0       0       0   359963   multiclass
9     GBM  Internet-Advertisements    0.967545   2.554853      0.250002     roc_auc    0.032455     0       0       0   359966       binary
10  PECOS                     wilt    0.614293   2.989111      1.256844     roc_auc    0.385707     0       0       0   146820       binary
11  PECOS                 credit-g    0.650000   2.679966      1.271916     roc_auc    0.350000     0       0       0   168757       binary
12  PECOS                  jasmine    0.772394   4.292119      1.451271     roc_auc    0.227606     0       0       0   168911       binary
13  PECOS                 madeline    0.551241   6.048249      1.617987     roc_auc    0.448759     0       0       0   190392       binary
14  PECOS               eucalyptus   -1.146890   5.497149      1.242149    log_loss    1.146890     0       0       0   359954   multiclass
15  PECOS              qsar-biodeg    0.797222   2.746031      1.265541     roc_auc    0.202778     0       0       0   359956       binary
16  PECOS                      pc4    0.579427   2.842677      1.271110     roc_auc    0.420573     0       0       0   359958       binary
17  PECOS                      kc1    0.655115   2.815633      1.263598     roc_auc    0.344885     0       0       0   359962       binary
18  PECOS                  segment   -0.814216   5.409791      1.268010    log_loss    0.814216     0       0       0   359963   multiclass
19  PECOS  Internet-Advertisements    0.911270  26.414598      3.977463     roc_auc    0.088730     0       0       0   359966       binary

Take-aways:

Inference speed is quite slow (not unusable, but still slow)
Test scores are quite poor compared to LightGBM across all datasets.

wilt: LightGBM has 0.97 AUC, PECOS has 0.65 AUC.
segment: LightGBM has 0.2 logloss, PECOS has 0.81 logloss.

As a next step, an example dataset should be provided where PECOS (as implemented in this PR via use in AutoGluon) meaningfully competes with existing models to justify its inclusion, or a description of what would need to be added for it to meaningfully compete. If text support needs to be added, please provide a text dataset either publicly or privately that PECOS is supposed to do well on with proper implementation for ease of tracking text support progress of PECOS in AutoGluon.

Added support for text data and vectorized the preprocess method in the latest commit.
New results on benchmark are copied below. We see that PECOS performance is better - it very slightly outperforms GBM on the kc1 task. We don't expect PECOS to be great at these tasks; PECOS is meant for solving extreme classification problems with thousands of labels or more. I am sending an internal-only dataset offline where AutoGluon clearly outperforms the other algorithms in AutoGluon.
Integrating this PR enables AutoGluon to solve a new domain of problems; it adds considerable value to the framework.
     name                task_name  test_score   time_fit  time_predict eval_metric  test_error  fold  repeat  sample  task_id problem_type
0   PECOS                     wilt    0.813151   3.515500      1.612471     roc_auc    0.186849     0       0       0   146820       binary
1   PECOS                 credit-g    0.747143   3.320124      1.603239     roc_auc    0.252857     0       0       0   168757       binary
2   PECOS                  jasmine    0.814564   3.968651      1.723619     roc_auc    0.185436     0       0       0   168911       binary
3   PECOS                 madeline    0.540084   4.666079      1.718924     roc_auc    0.459916     0       0       0   190392       binary
4   PECOS               eucalyptus   -0.962728   7.613407      1.615996    log_loss    0.962728     0       0       0   359954   multiclass
5   PECOS              qsar-biodeg    0.893651   3.489304      1.632812     roc_auc    0.106349     0       0       0   359956       binary
6   PECOS                      pc4    0.865017   3.549638      1.654120     roc_auc    0.134983     0       0       0   359958       binary
7   PECOS                      kc1    0.789892   3.511672      1.621228     roc_auc    0.210108     0       0       0   359962       binary
8   PECOS                  segment   -0.588283   6.144801      1.580236    log_loss    0.588283     0       0       0   359963   multiclass
9   PECOS  Internet-Advertisements    0.953438  11.147243      2.585245     roc_auc    0.046562     0       0       0   359966       binary
10    GBM                     wilt    0.978166   1.521617      0.021018     roc_auc    0.021834     0       0       0   146820       binary
11    GBM                 credit-g    0.807619   0.898730      0.029716     roc_auc    0.192381     0       0       0   168757       binary
12    GBM                  jasmine    0.877181   1.623613      0.050219     roc_auc    0.122819     0       0       0   168911       binary
13    GBM                 madeline    0.903035   2.149817      0.023113     roc_auc    0.096965     0       0       0   190392       binary
14    GBM               eucalyptus   -0.763752   4.365198      0.026870    log_loss    0.763752     0       0       0   359954   multiclass
15    GBM              qsar-biodeg    0.948016   1.087405      0.022294     roc_auc    0.051984     0       0       0   359956       binary
16    GBM                      pc4    0.933594   1.503057      0.021492     roc_auc    0.066406     0       0       0   359958       binary
17    GBM                      kc1    0.786837   1.501772      0.025907     roc_auc    0.213163     0       0       0   359962       binary
18    GBM                  segment   -0.199786  15.058131      0.020986    log_loss    0.199786     0       0       0   359963   multiclass
19    GBM  Internet-Advertisements    0.967545   4.548597      0.392050     roc_auc    0.032455     0       0       0   359966       binary

Linter is currently failing - behavior is not replicating when I run the linter locally. Will investigate more tomorrow

Fixed lint check - issue was that I needed to merge with upstream :).
A multimodal test is now failing due to a Bad Request error when trying to read from S3. This does not seem like it would be related to my changes; my changes are in the tabular module, where all tests pass. I could not fix the issue within the time I allocated for this today, so I will need to revisit this another day. Copying the error below for reference.
Downloading /home/noahjaco/.automm_unit_tests/datasets/petfinder_for_unit_tests.zip from s3://automl-mm-bench/unit-tests-0.4/datasets/petfinder_for_unit_tests.zip...
download failed due to ClientError('An error occurred (400) when calling the HeadObject operation: Bad Request'), retrying, 4 attempts left
Downloading /home/noahjaco/.automm_unit_tests/datasets/petfinder_for_unit_tests.zip from s3://automl-mm-bench/unit-tests-0.4/datasets/petfinder_for_unit_tests.zip...
download failed due to ClientError('An error occurred (400) when calling the HeadObject operation: Bad Request'), retrying, 3 attempts left
Downloading /home/noahjaco/.automm_unit_tests/datasets/petfinder_for_unit_tests.zip from s3://automl-mm-bench/unit-tests-0.4/datasets/petfinder_for_unit_tests.zip...
download failed due to ClientError('An error occurred (400) when calling the HeadObject operation: Bad Request'), retrying, 2 attempts left
Downloading /home/noahjaco/.automm_unit_tests/datasets/petfinder_for_unit_tests.zip from s3://automl-mm-bench/unit-tests-0.4/datasets/petfinder_for_unit_tests.zip...
download failed due to ClientError('An error occurred (400) when calling the HeadObject operation: Bad Request'), retrying, 1 attempt left
Downloading /home/noahjaco/.automm_unit_tests/datasets/petfinder_for_unit_tests.zip from s3://automl-mm-bench/unit-tests-0.4/datasets/petfinder_for_unit_tests.zip...
________________________________________________________________________ ERROR collecting tests/unittests/others/test_data_augmentation.py ________________________________________________________________________
tests/unittests/others/test_data_augmentation.py:26: in <module>
    from ..predictor.test_predictor import verify_predictor_save_load
<frozen importlib._bootstrap>:1007: in _find_and_load
    ???
<frozen importlib._bootstrap>:986: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:680: in _load_unlocked
    ???
../../../final-ag/lib/python3.9/site-packages/_pytest/assertion/rewrite.py:168: in exec_module
    exec(co, module.__dict__)
tests/unittests/predictor/test_predictor.py:38: in <module>
    "petfinder": PetFinderDataset(),
tests/unittests/others/unittest_datasets.py:24: in __init__
    download(
src/autogluon/multimodal/utils/download.py:268: in download
    raise e
src/autogluon/multimodal/utils/download.py:210: in download
    response = s3.meta.client.head_object(Bucket=s3_bucket_name, Key=s3_key)
../../../final-ag/lib/python3.9/site-packages/botocore/client.py:530: in _api_call
    return self._make_api_call(operation_name, kwargs)
../../../final-ag/lib/python3.9/site-packages/botocore/client.py:960: in _make_api_call
    raise error_class(parsed_response, operation_name)
E   botocore.exceptions.ClientError: An error occurred (400) when calling the HeadObject operation: Bad Request

Regarding this contribution: I'm waiting for v0.7 to release to simplify the amount of testing needed when creating the model contrib example repo and moving forward with this contribution, thanks!

Closing as the contrib example repo was deprioritized relative to other tasks. In future hopefully we can create a contrib example repo to allow for easier contribution of more specialized models such as PECOS. For now, I will close this PR.


[GSSOC'23] Voice Assistant AI Bot: Empowering Conversations with OpenAI Integration

Aim
The aim of the AI Bot project is to create a voice assistant that can understand user input, generate responses using the OpenAI API, and provide both textual and auditory feedback.
Details
The script will have the following features:

Voice Input and Recognition: Users can interact with the AI Bot by speaking through a microphone. The script utilizes the speech_recognition library to record audio and convert it into text for further processing.

OpenAI Integration: The project integrates with the OpenAI API to generate responses based on user input. The script sends the user's text as a prompt to the OpenAI API and receives a response, which is then displayed and spoken by the AI Bot.

Text Display and Audio Output: The script includes a graphical user interface (GUI) created using tkinter. The responses generated by the AI Bot are displayed in a text box within the GUI, allowing users to read the responses. Additionally, the pyttsx3 library is used to convert the responses into audio, providing auditory feedback to the users.

Conversation Logging: The script saves the conversation between the user and the bot in a text file named "conversation.txt". Each user input and the corresponding AI response are logged with a timestamp, allowing users to review the conversation history.

pls assign this to i have the work ready with me @avinashkranjan

Go Ahead @slayerrr12


Move static analysis plugins from reporting to build

Moving the static code analysis plugins maven-checkstyle-plugin and
maven-pmd-plugin from the reporting to the build section and executing
them in the validate phase has the advantage to actively prevent code
style issues to ever be committed rather then passively react to them
after the report section has been run (not part of the current CI
script and build instructions anyway).
Some notes:

PMD's RedundantThrows is no longer available. I can research the stackoverflow.com post again if you absolutely need a reference.
Renaming tests ending in TestCase to Test and making the prefix Mock a suffix has been done for convenience.
Some Javadoc comments in the form of "The [field name]" are poor. Leave a line comment is you have suggestions.

Coverage decreased (-0.1%) to 77.046% when pulling b33c20cab9e96ad89168569de08916a0b1539f38 on krichter722:checkstyle into b1498c9877d751f8bc4635a6f252ebdfcba28518 on apache:master.

While I understand your concern, I am not going to accept your request:

It changes no less than 38 files, which is way above the limit for a meaningfull code review.
The static analysis plugins are in the reporting section for a reason. They are not intended to be running in the normal build, because they are slowing down turnaround times.

Please close your request.
Thanks,
Jochen

Closing.


Debug Physics Display

Hey, there. A way to be able to see what (and where) physics meshes are currently in-game would be a nice feature to add.
Also, some more debug stats in general would be nice (number of draw calls, number of objects in existence as well as on-screen, number of scripts running, peak and average FPS, etc). And yeah, it's possible to make these additional stats oneself, but it'd still be nice to have them in the engine.

If you refer to visual debugging of collision shapes, I believe this feature has been implemented in the current master branch.
Regarding your other suggestions, feel free to open a new issue with some more details about what exactly would be useful.

if visual debugging of collision shapes is already implemented can anybody tell me where to find it ?

Probably in the editor settings.

in the remote debug menu in the same list of buttons as play, stop, etc.
On Tue, Feb 16, 2016 at 11:37 AM, Rémi Verschelde<EMAIL_ADDRESS>wrote:

Probably in the editor settings.
—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/888#issuecomment-184703553.

Okay, should have found it by myself.... Thak you!!


Browserstack optimisations

So actually there problems was as follows -
The driver was not being stopped, so it kept the test in running state until the BrowserStack 90 seconds Timeout and the BrowserStack Binary was being killed before the drive was being quit. Hence, some of the requests in the test were failing.
Sometimes, in case of sessions running in parallel with same key, it cannot spawn two different binaries with only key parameter, user needs to use local-identifier for each instance of binary.

Hey, no problem :)

But I still see firefox 66.0 tests failing, can someone verify the same test working on their local machine nerxt-webdriver setup? :)

The firefox tests failing looks like a bug that was breaking next/dynamic, I just submitted a PR here that should address it.

Oh okay, thanks


fix the msg

fix the msg of function:assertJobIsPresent  and assertJobIsAbsent

I decline this change because it is wrong.
Here is snippet from Python documentation:
"All the assert methods (except assertRaises(), assertRaisesRegexp()) accept a msg argument that, if specified, is used as the error message on failure (see also longMessage)."
(https://docs.python.org/2/library/unittest.html)


⚠ Bofrost.fr has degraded performance

In c67bcc1, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1578 ms

Resolved: Bofrost.fr performance has improved in c9db674 after 8 minutes.


Tag range to create changelog

In my case I would like to create changelogs not only for the last release but also for hotfixes further back in time.
%%{init: { 'gitGraph': {'showCommitLabel': false}} }%%
    gitGraph
       commit tag:"1.0.0"
       commit tag:"1.1.0"
       branch hotfix/1.1.x order:2
       checkout main
       commit tag:"..."

       checkout main
       commit tag:"..."

Here it would help me if instead of a tag, I could specify a range over which the changelog is generated.
I still determine the necessary tag area for me about an extra script.
I use it like this:
name: Create GitHub Release Draft

on:
  push:
    tags:
      - [0-9]+.[0-9]+.[0-9]+

jobs:
  release-draft-with-changelog:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Get previous tag
        id: previousTag
        run: |
          name=$(git --no-pager tag --sort=-v:refname --merged ${{ github.ref_name }} | sed -n 2,2p)
          name=${name:=$(git rev-list --max-parents=0 HEAD)}
          echo "previousTag: $name"
          echo "::set-output name=name::$name"

      - name: Update CHANGELOG
        id: changelog
        uses: sitepark-com/changelog-action@main
        with:
          token: ${{ github.token }}
          fromTag: ${{ github.ref_name }}
          toTag: ${{ steps.previousTag.outputs.name }}

      - name: Create Release
        uses: ncipollo/release-action@v1
        with:
          allowUpdates: true
          draft: true
          name: ${{ github.ref_name }}
          body: ${{ steps.changelog.outputs.changes }}
          token: ${{ secrets.GITHUB_TOKEN }}

@NGPixel, any chance we can see this merged anytime soon? 🙂

This is a great addition to support prereleases and hotfixes

@sitepark-veltrup not sure it's only on my end but CHANGELOG.md file doesn't get updated anymore, the output is good and going with the new release tho.

@sitepark-veltrup this is the action log:

@sitepark-veltrup not sure it's only on my end but CHANGELOG.md file doesn't get updated anymore, the output is good and going with the new release tho.

I myself don't use the feature to write the CHANGELOG.md but only use it to create Github release drafts. Therefore I don't have a test scenario.
But I think I found the reason and committed a fix.

This looks awesome. Any chance it's likely to be merged soon?
Cheers,
Joey