How to get an absolute URI

How can I create an absolute URL including the scheme, host and port?
The pathFor() method of the Slim router only creates URLs with a leading slash.

Are you using the PHP built-in webserver? It seems $_SERVER['SCRIPT_NAME'] is used to determine the base path. When running the PHP buit-in web server. this path is relative.

No, this is an Apache and PHP FPM setup. Apache talks to the FPM process using a TCP connection

What do you see when you output $_SERVER? Particularly in the SCRIPT_NAME and REQUEST_URI parts?

This is printed by the PHP FPM process:
[USER] => www-data
  | [HOME] => /var/www
  | [SCRIPT_NAME] => /test.php
  | [REQUEST_URI] => /test.php
  | [QUERY_STRING] =>
  | [REQUEST_METHOD] => GET
  | [SERVER_PROTOCOL] => HTTP/1.1
  | [GATEWAY_INTERFACE] => CGI/1.1
  | [REMOTE_PORT] => 38876
  | [SCRIPT_FILENAME] => /...../slim.demo.aimeos.org/public/test.php
  | [SERVER_ADMIN] =><EMAIL_ADDRESS>  | [CONTEXT_DOCUMENT_ROOT] => /...../slim.demo.aimeos.org/public
  | [CONTEXT_PREFIX] =>
  | [REQUEST_SCHEME] => http
  | [DOCUMENT_ROOT] => /....../slim.demo.aimeos.org/public
  | [REMOTE_ADDR] => ...
  | [SERVER_PORT] => 80
  | [SERVER_ADDR] => <IP_ADDRESS>
  | [SERVER_NAME] => slim.demo.aimeos.org
  | [SERVER_SOFTWARE] => Apache/2.4.18 (Ubuntu)
  | [SERVER_SIGNATURE] => <address>Apache/2.4.18 (Ubuntu) Server at slim.demo.aimeos.org Port 80</address>
  |
  | [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  | [HTTP_COOKIE] => PHPSESSID=...
  | [HTTP_ACCEPT_LANGUAGE] => de,en-US;q=0.8,en;q=0.6
  | [HTTP_ACCEPT_ENCODING] => gzip, deflate
  | [HTTP_DNT] => 1
  | [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  | [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
  | [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
  | [HTTP_CONNECTION] => keep-alive
  | [HTTP_HOST] => slim.demo.aimeos.org
  | [proxy-nokeepalive] => 1
  | [SCRIPT_URI] => http://slim.demo.aimeos.org/test.php
  | [SCRIPT_URL] => /test.php
  | [FCGI_ROLE] => RESPONDER
  | [PHP_SELF] => /test.php

This is the result when printed by mod_php in Apache:
[HTTP_HOST] => servername.tld
  | [HTTP_CONNECTION] => keep-alive
  | [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
  | [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
  | [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  | [HTTP_DNT] => 1
  | [HTTP_ACCEPT_ENCODING] => gzip, deflate
  | [HTTP_ACCEPT_LANGUAGE] => de,en-US;q=0.8,en;q=0.6
  | [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  | [SERVER_SIGNATURE] => <address>Apache/2.4.18 (Ubuntu) Server at servername.tld Port 80</address>
  |
  | [SERVER_SOFTWARE] => Apache/2.4.18 (Ubuntu)
  | [SERVER_NAME] => servername.tld
  | [SERVER_ADDR] => <IP_ADDRESS>
  | [SERVER_PORT] => 80
  | [DOCUMENT_ROOT] => /var/www/html
  | [REQUEST_SCHEME] => http
  | [CONTEXT_PREFIX] =>
  | [CONTEXT_DOCUMENT_ROOT] => /var/www/html
  | [SERVER_ADMIN] =><EMAIL_ADDRESS>  | [SCRIPT_FILENAME] => /var/www/html/test.php
  | [REMOTE_ADDR] => ...
  | [REMOTE_PORT] => 38880
  | [GATEWAY_INTERFACE] => CGI/1.1
  | [SERVER_PROTOCOL] => HTTP/1.1
  | [REQUEST_METHOD] => GET
  | [QUERY_STRING] =>
  | [REQUEST_URI] => /test.php
  | [SCRIPT_NAME] => /test.php
  | [PHP_SELF] => /test.php

There doesn't seem to be much difference besides inside PHP FPM, more information is available.

(string) $request->getUri()
It won't include the port if it runs on the standard 80 or 443 ports, though. If it is that important maybe you can build something up with UriInterface::getScheme(), UriInterface::getHost(), UriInterface::getPort(), UriInterface::getPath() and UriInterface::getQuery()

$request->getUri() only returns the current URL. What we need is to generate an absolute URL for the next page and pathFor() doesn't seem to do that. So what's the way to do this in Slim?

@aimeos no since PHP doesn't care about the base url, this is something that you will have to do in your user code.

@geggleto Seems like a missing feature as all other frameworks (Laravel, Symfony resp. Lumen, Silex, etc.) can generate absolute URIs on request without bothering the application code with the details.
To me, the simplest solution is to change getBasePath() to getBaseUrl() here:
https://github.com/slimphp/Slim/blob/7aabd47614448326ecb3908eec2a6440f36b50b9/Slim/App.php#L359
https://github.com/slimphp/Slim/blob/7aabd47614448326ecb3908eec2a6440f36b50b9/Slim/App.php#L323

@aimeos it possibly could be... I have never actually wanted to use an absolute URL in a production app as I just use href="/...route/".
We could add something like this for 4.x. If you feel the need for it open a pr on the 4.x branch as I am sure it will be gladly accepted. :)

@geggleto It's useful for generating Open Graph's og:url and og:image tags. They can't be relative URLs, so you will have to manually generate them by appending root url + path to image.
I know it's not hard to do yourself but others might find this issue on Google. People using twig or other templating engines can also just define a function or macro that build the absolute path using the solutions above.


Correction of arguement/variable

--footer_text errors on container start, requesting - instead of  _

Already merged someone else's PR for this, good catch and thanks anyway!


docs(SearchExampleStandardCustom): functional component

Converted into a functional component

Codecov Report

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

@@           Coverage Diff           @@
##           master    #3795   +/-   ##
=======================================
  Coverage   99.84%   99.84%
=======================================
  Files         185      185
  Lines        3251     3251
=======================================
  Hits         3246     3246
  Misses          5        5

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 125fda7...3a53b03. Read the comment docs.


win32: Don't rely on timeout at all

Same issue as #2314, but this time seen in Julia. Having a timeout here is fundamentally unsound. There is no guarantee that the kernel will ever schedule the thread holding the lock. We need to rely on the pool threads to exit eventually (if they don't, that's a different bug that this can't work around - especially since we already don't do the termination for windows store apps). However, to prevent thread pool threads from blocking process exit, don't attempt to shut down BLAS if the process is about to exit - the kernel will kill all our resources anyway. After this patch, the problematic code section is only called if the dll is manually unloaded, which I think is
a) A much rarer use case and
b) even more important that we don't interrupt pool threads in the middle of work that that host application may want to look at later.
cc @Jehan

@Keno So the WaitForSingleObject() won't happen in the normal use case in the end? If so, that's ok. Otherwise I can't agree with it since it would block the process forever in case of bugs or whatever. Even the 5s of our original patch, we had to lower it because GIMP ended up taking up to 10 minutes to start because of it. (cf. #2339).
This being said, we now have a new bug (a crash of GIMP) from some people, which apparently comes from these patchs we made (since this is the only difference between 2 installers we had of version 2.10.14), though we still haven't figured out why and how.
https://gitlab.gnome.org/GNOME/gimp/issues/4385
If your patch makes this whole section of the code not being called anymore and letting the kernel handling thread termination, then I guess it could make our problem go away.

It won't be called on process termination anymore, but it will still be called if FreeLibrary is called. I cannot guarantee that there aren't any other bugs here which will cause hangs in the latter case, but if so, any such bugs should be addressed on its own merits. There is no way to ensure that the thread we'd be killing here isn't in a critical section, so by fiddling with the timeout you're only moving around who sees the crashes.

Probably best to confirm that the GIMP plugin does not get unloaded (and/or does not unload OpenBLAS) after the initial "are you there"...

If this patch does cause hangs in the GIMP plugin, I'd like to know about it, so we can try to fix it properly. The bottom line here is that the fix to #307 did not address the underlying issue and turned a deterministic hang into a non-deterministic crash/hang/corruption depending on system contention. I tried the original reproducer from #307 and cannot reproduce the hang, but as I said, I wouldn't be entirely surprised if there was still incorrect code somewhere else that did cause a hang when openblas is unloaded. Nevertheless a deterministic hang is a million times easier to debug than non-deterministic corruption, so if we do see a hang, let's root cause it properly and fix it in the proper place.

Actually, give me a second before trying it, I made a small typo in this patch.

Hanging after getting a thread blown away looks a lot like #2341 (though I am still not entirely convinced that the changed proposed there is the right thing to do)

I just tried building OpenBLAS with this patch, and it causes GIMP to hang at startup (it hangs immediately, before even opening the console window for verbose messages):

There is no guarantee that the kernel will ever schedule the thread holding the lock

Actually, it's potentially worse than that: kernel documentation for this says that it guarantees it will never again schedule the thread since it's already called TerminateThread on them (https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-best-practices#best-practices-for-synchronization)
I don't think #2341 is related, since that appears to be Linux, and this is a Win32-only patch.

I just tried building OpenBLAS with this patch, and it causes GIMP to hang at startup

Ok, in that case it would be good to know how GIMP uses OpenBLAS, so we can try to fix the underlying issue here. A minimal reproducer would be ideal of course. In the meantime, perhaps, we can just apply the first commit win32: Don't run cleanup if we're about to exit anyway, which should not cause any issues (though I'd appreciate confirmation thereof).

Right, #2341 is Linux-only... from https://github.com/xianyi/OpenBLAS/issues/1720#issuecomment-412193503 it is probably the Levin-matting tool in the GIMP's GEGL library that causes a load/unload cycle of OpenBLAS on startup.

#1720 looks to me like probably basically the same issue as here, except Windows has a loader lock, which makes many more things difficult. The documentation for DllMain has some nice diagrams to explain why the code here is expected to cause deadlocks. In particular, it says that if another thread tries to exit while there's another thread waiting on it from inside the DllMain function, that will always deadlock (until the timeout returns). If I'm reading the docs correctly, the solution is to instead use a separate Event to signal cleanup completion (and use WaitForMultipleObjects on either one getting signaled).

Part of my problem (apart from not being a Windows programmer) is that I do not quite understand where the deadlock would occur - when it should only ever be the master thread waiting on others to exit. From my very limited understanding, perhaps using WaitForMultipleObjects with the pool.killed event as the second object (to avoid an infinite wait time) and then instead of the evil TerminateThread just doing a second round of WaitForMultipleObjects for anything not reaped on the first try might work ?

So it turns out our last issue was on our side (some shaddy issue of wrong CFLAGS or something; we are not even sure ourselves). The code as it is currently works for us.
So I would say, in any case, please don't merge this patch (as it just locks GIMP forever). I understand what you are saying @Keno, and in theory you are right that you should not assume that a long wait means there is a problem (maybe it's an expected long wait) so an infinite timeout could theoretically be right.
Yet in practice (as can be seen by our practical case), this is a very bad idea IMO. Yes it probably means there is another bug and you should definitely hunt this root bug. But anyway there may always be other bugs (we all make bugs!), so I think that if possible a library should never have any kind of code which may lock the process forever by design (unless this is exposed to the library user; i.e. if there were an API to select the timeout, then on our side, we would set a low timeout and other people would be free to set an INFINITE one).

from #1720 (comment) it is probably the Levin-matting tool in the GIMP's GEGL library that causes a load/unload cycle of OpenBLAS on startup.

I confirm. GIMP doesn't use OpenBLAS directly, only through GEGL, which uses OpenBLAS only for its Levin-matting operation. Since we load GEGL at startup, it is indeed probably where a load/unload of OpenBlas must happen.

@Jehan can you check if GIMP works with just the dllinit.c part of Keno's patch (which supposedly does not change behaviour on FreeLibrary) ? At the very least I would like to avoid turning this into a popularity contest between Julia and GIMP...

@martin-frbg

At the very least I would like to avoid turning this into a popularity contest between Julia and GIMP...

Obviously I agree. I am all for all Free Software to improve together. 🙂

can you check if GIMP works with just the dllinit.c part of Keno's patch (which supposedly does not change behaviour on FreeLibrary) ?

I guess it will because this was not part of our problem (but that's just a very wild guess). Anyway this should actually be asked to @jernejs. He is the one who maintains our Windows installer/build.
@jernejs Would it be possible to make this test when you have some time?

Part of my problem (apart from not being a Windows programmer)

That seems like the opposite of a problem :P I’m cursed with the opposite affliction: having only passing knowledge of the OpenBLAS scheduler.
But to summarize, that WaitForObject call is actually (guaranteed) to behave the same as calling Sleep(nthreads * TIMEOUT) because it’s happening inside the DllMain lock (each thread must acquire that lock before it can exit). So 50 ms isn’t great for anyone, but 5s or INFINITE are clearly worse. The workaround Microsoft suggests is to wait on some other object. AFAICT, there’s no existing signal to indicate that the thread has finished executing blas_memory_free, and is now waiting for the DllMain lock (currently running on thread one) to return so that it can also exit and set its state to signaled.

After reading https://docs.microsoft.com/de-de/windows/win32/dlls/dynamic-link-library-best-practices it seems clear to me that the first part of this PR (to not attempt to shut down threads on process exit) is correct. I am even more confused about what to do in the case of an immediate DLL unload while threads are still barely starting up - the available documentation appears to do little more than pronounce this a fundamentally unsafe situation and enumerate
possible reasons for a subsequent crash or deadlock. Perhaps starting the blas_thread_shutdown() function with a few seconds sleep() might help to reduce the risk ??

Furthermore, from https://devblogs.microsoft.com/oldnewthing/?p=25283 (last paragraph) it appears that to "properly wait until the thread finishes in dll unload" is not possible when that wait is initiated from DllMain (thread cannot exit before it has sent DLL_THREAD_DETACH, which it cannot do while the DLL_PROCESS_DETACH handler is still running). So blas_thread_shutdown() in any of its recent forms would probably be safe to invoke from the "other" code before it tries to unload the openblas dll (and also as part of our internal fork handler if necessary), but should not be called during any form of complete shutdown, be it dll unload or program exit. Not sure if we could get away with just doing nothing on DLL_PROCESS_DETACH in the unload case as well,
or if this would cause a leak in the GIMP scenario ?

Calling sleep won’t help, because the other threads are waiting on the lock currently held by the main thread.
Ignoring it on program exit should be fine, since the other threads should be already killed anyways.
Ignoring it on dll unload might be OK, but you’d have to leak any resources that could ever be examined by another thread (because you don’t know if it’s simultaneously accessing it). It’s unclear to me if Windows will leak the DLL memory, if it it’ll unmap that (causing the other threads to fault if they try to run after shutdown)
I thought of one possible solution, but I’m surprised no other post has mentioned this (though it is tricky). Since the issue is that the LoadLibrary ref count might reach zero before all worker threads have started, the startup routine could acquire an extra handle to itself (increment the ref count). The last worker to start could then release (FreeLibrary) that extra ref count. That would defer the free until all threads are out of the loader lock. A few complications though:

LoadLibrary needs to acquire the loader lock, so that might just hang and might not be usable
The FreeLibrary call (final DllMain call) might now happen on one of the worker threads (so returning from that call would fault), so it actually needs to call FreeLibraryAndExit thread from yet another thread spawned from that point
Alternatively, there’s a flag to disable FreeLibrary entirely (GET_MODULE_HANDLE_EX_FLAG_PIN), but again, unclear when you can call this without hanging for it to (re)acquire the loader lock
But if those function hang, then it could instead poke the memory directly to change the ref count??

Hmm. Looks like a rather involved way to invoke undefined behaviour ? (Though I saw something similar discussed on stackoverflow https://stackoverflow.com/questions/39241400/cleaning-up-threads-in-a-dll-endthreadex-vs-terminatethread)

A quick test (replacing the openblas.dll in the current official GIMP package on a Windows system) does not show any obvious leaks or other shortcomings from not attempting any cleanup in the DLL unload case - certainly nothing catastrophic.

I don't think any of the behavior I mentioned was undefined, I just noted that some of the functions may require the loader lock, which could be guaranteed to hang. From Google, it appears that others have used GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, hInst, &hMod) here. The free-in-a-worker-thread trick is then also fairly straightforward: in the last worker thread to start up, schedule a call on the threadpool to run FreeLibraryWhenCallbackReturns. I think this is somewhat mentioned at https://devblogs.microsoft.com/oldnewthing/20151225-00/?p=92711 and https://devblogs.microsoft.com/oldnewthing/20131105-00/?p=2733 and https://devblogs.microsoft.com/oldnewthing/20131107-00/?p=2713, but I don't see him spell it out?
PS. Here's the text of Daniel's comment from that last link detailing the race condition present in that solution (while the direct blog link is now dead, it was recoverable on the wayback machine):
The code for ProxyFreeLibraryAndExitThread actually contains a serious race condition
If the two last threads call it at the same time, its possible that:
  1. thread A first calls InterlockedExchange (receives 1), so goes to the ExitThread branch.
  2. before it goes any further thread B gets active goes to InterlockedExchange, receives 0 and call FreeLibraryAndExitThread
  3. Thread A now would like to continue, but it's code has been dropped in the meantime...

However, this should not be a problem given the plan I outlined above.

To clarify I am not claiming that what you outlined would invoke "defined" undefined behaviour, just that there does not seem to be any official documentation stating that this is the recommended, guaranteed way to address this problem. So we might again end up with something that happens to work right now but causes insiduous problems with some later version/patchlevel of windows ?
(Of course your solution would be much more elegant than the trivial approach of just doing nothing, hoping that windows does the right thing)

Not doing anything is relying on a race condition (that the worker threads are currently sleeping and will never awake after the DLL is unmapped from memory—that's nearly the same one that's sometimes seen to fail now). The approach I outlined should only be relying on simple defined behaviors (reference counting) and is presumably also the underlying implementation for the Win32 ThreadPool https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadpoolcallbacklibrary


Messages not deleted from WorkQueuePolicy stream when replicas > 1

It may be that I misunderstand the meaning of the Replicas configuration for a stream. For demo purposes, I have a NATS cluster with two servers running JetStream.
First I created a stream called FOO using the Work Queue retention policy and set the number of replicas to 2.
Stream FOO was created

Information for Stream FOO created 2021-05-21T15:32:16-04:00

Configuration:

             Subjects: FOO.*
     Acknowledgements: true
            Retention: File - WorkQueue
             Replicas: 2
       Discard Policy: Old
     Duplicate Window: 2m0s
     Maximum Messages: unlimited
        Maximum Bytes: unlimited
          Maximum Age: 0.00s
 Maximum Message Size: unlimited
    Maximum Consumers: unlimited

Cluster Information:

                 Name: local
               Leader: nats1
              Replica: nats2, current, seen 0.00s ago

State:

             Messages: 0
                Bytes: 0 B
             FirstSeq: 0
              LastSeq: 0
     Active Consumers: 0

I then created a pull-based consumer called TEST, that pulls from the FOO.test subject.
Information for Consumer FOO > TEST created 2021-05-21T15:36:52-04:00

Configuration:

        Durable Name: TEST
           Pull Mode: true
      Filter Subject: FOO.test
         Deliver All: true
          Ack Policy: Explicit
            Ack Wait: 30s
       Replay Policy: Instant
     Max Ack Pending: 20,000
        Flow Control: false

Cluster Information:

                Name: local
              Leader: nats2
             Replica: nats1, current, seen 0.01s ago

State:

   Last Delivered Message: Consumer sequence: 0 Stream sequence: 0
     Acknowledgment floor: Consumer sequence: 0 Stream sequence: 0
         Outstanding Acks: 0 out of maximum 20000
     Redelivered Messages: 0
     Unprocessed Messages: 0

I then published a single message to the FOO.test subject and confirmed it was sitting in the stream and was unprocessed by the consumer.
❯ nats s report
Obtaining Stream stats

+----------------------------------------------------------------------------------+
|                                  Stream Report                                   |
+--------+---------+-----------+----------+-------+------+---------+---------------+
| Stream | Storage | Consumers | Messages | Bytes | Lost | Deleted | Replicas      |
+--------+---------+-----------+----------+-------+------+---------+---------------+
| FOO    | File    | 1         | 1        | 43 B  | 0    | 0       | nats1*, nats2 |
+--------+---------+-----------+----------+-------+------+---------+---------------+

❯ nats c report
? Select a Stream FOO
Consumer report for FOO with 1 consumers

+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+
| Consumer | Mode | Ack Policy | Ack Wait | Ack Pending | Redelivered | Unprocessed | Ack Floor | Cluster       |
+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+
| TEST     | Pull | Explicit   | 30.00s   | 0           | 0           | 1 / 100%    | 0         | nats1, nats2* |
+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+

Finally, I pulled the message from the TEST consumer and acknowledged it. The message is removed from the consumer but remains on the stream.
❯ nats con next FOO TEST
[15:40:11] subj: FOO.test / tries: 1 / cons seq: 1 / str seq: 1 / pending: 0

hello

Acknowledged message

❯ nats c report
? Select a Stream FOO
Consumer report for FOO with 1 consumers

+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+
| Consumer | Mode | Ack Policy | Ack Wait | Ack Pending | Redelivered | Unprocessed | Ack Floor | Cluster       |
+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+
| TEST     | Pull | Explicit   | 30.00s   | 0           | 0           | 0           | 1         | nats1, nats2* |
+----------+------+------------+----------+-------------+-------------+-------------+-----------+---------------+

❯ nats s report
Obtaining Stream stats

+----------------------------------------------------------------------------------+
|                                  Stream Report                                   |
+--------+---------+-----------+----------+-------+------+---------+---------------+
| Stream | Storage | Consumers | Messages | Bytes | Lost | Deleted | Replicas      |
+--------+---------+-----------+----------+-------+------+---------+---------------+
| FOO    | File    | 1         | 1        | 43 B  | 0    | 0       | nats1*, nats2 |
+--------+---------+-----------+----------+-------+------+---------+---------------+

I expected the message to also be removed from the stream since this is a work queue stream. I confirmed that the message is removed from the stream when replicas is set to 1.
Is this a bug or am I misinterpreting the replicas configuration?
Thanks for your help.

I will investigate, but do not create R2 streams pls

I can confirm I can reproduce this one


task(improve): Improvements ref fixed port values in the code

Motivation:

Make the propose of the number/port clear
Create constants for const/fixed values

Closing because the changes are now in https://github.com/aerogear/data-sync-ui/pull/70


HV-1302: @SafeHtml should support adding additional protocols

Can one of the admins add this person to the trusted builders? (reply with: "add to whitelist" or "ok to test")

Hi Øyvind, thanks a lot for sending this PR. It seems though Marko bet you doing this change, there is already PR #714. I suggest to continue discussion over there, as it's a bit more complete (doc update, fluent DSL update).


Shippable continuous integration

https://www.shippable.com/
Shippable allows us to specify custom docker images.
(their own default environment is also a public docker image)
http://docs.shippable.com/en/latest/custom_images.html
They support a framebuffer for browser tests
http://docs.shippable.com/en/latest/config.html#services
It's free. If we wanted more parallel builds, it's only $12/year.
https://www.shippable.com/pricing.html

drone.io would also work.  Neither directly comment on pull requests, but drone at least can trigger builds on pull requests (haven't looked into shippable yet).  There are things online about how to set up a docker image that comments back on the triggering event on github.

@willscott @klazizpro Managing our own Jenkins setup seems to be a lot of work, and server costs are surprisingly high for GCE. Do you think it's worth moving over to drone.io or shippable? I'm pretty worried about the amount of time we're sinking into what is a rather fragile Jenkins config.
From a first glance, it seems that drone.io is an option for us to run it on our own GCE instance instead of Jenkins. Shippable would take the load totally off of GCE.
From my initial explorations I like shippable's UX best.

+1 for Shippable. I'd be interested in working with Lalon/Lally on trying
to use our existing Dockerfiles on Shippable during the coding party next
month
On Tue, Jan 27, 2015 at 3:54 PM, iislucas<EMAIL_ADDRESS>wrote:

@willscott https://github.com/willscott @klazizpro
https://github.com/klazizpro Managing our own Jenkins setup seems to be
a lot of work, and server costs are surprisingly high for GCE. Do you think
it's worth moving over to drone.io or shippable? I'm pretty worried about
the amount of time we're sinking into what is a rather fragile Jenkins
config.
From a first glance, it seems that drone.io is an option for us to run it
on our own GCE instance instead of Jenkins. Shippable would take the load
totally off of GCE.
From my initial explorations I like shippable's UX best.
—
Reply to this email directly or view it on GitHub
https://github.com/uProxy/uproxy/issues/805#issuecomment-71754575.

Done!


Fix returning e.g. bool from variable functions

Just ran into this, I'm going to deploy it as a hotfix

Thanks! I'll add a test on Monday. I've deployed this on both the mid & beta modules.


Not all documented parameters are included in the action.yml

Only a subset of the inputs documented are actually allowed in the action.yml, resulting in the following warning when I use customParameters, versioning, and other parameters:
##[warning]Unexpected input 'customParameters', valid inputs are ['unityVersion', 'targetPlatform', 'projectPath', 'buildName', 'buildsPath', 'buildMethod']

versioning seems to throw this warning as well:
uses<EMAIL_ADDRESS>with:
  versioning: Semantic

##[warning]Unexpected input 'versioning', valid inputs are ['unityVersion', 'targetPlatform', 'projectPath', 'buildName', 'buildsPath', 'buildMethod']

Excellent point. We'll have to do this across all unity-actions.


Optimizing sessions

Hello,
With Django's built-in sessions, I can do the following for perf. optimization:
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
OR
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
Is there anything similar with user_sessions?

There's no such feature available.


{ OR: [] } condition is ignored when combined with other conditions

Bug description
In view of logics, an empty OR condition ({ OR: [] }) should return nothing. For simple cases, this is correctly implemented by Prisma. (cf. https://github.com/prisma/prisma/issues/4784#issuecomment-779845616 )
However, if the { OR: [] } condition is combined with others, it seems that the { OR: [] } condition is ignored, and the query wrongly returns some data.
How to reproduce
Reproduction repro: https://github.com/uhyo/prisma-or-0-repro
In below code, Prisma should return nothing as the condition is an AND with { OR: [] } and another condition. However, it may return a non-empty result set.
// ...Prepare data in DB...
const where = {
  AND: [
    {
      email<EMAIL_ADDRESS>    },
    {
      OR: []
    }
  ]
} satisfies Prisma.UserWhereInput;

const users = await prisma.user.findMany({
  where
});
console.log(users); // [ { id: 1, email<EMAIL_ADDRESS>name: 'User 1' } ]
// This assertion fails. Buggy
console.assert(users.length === 0, "Still no records should be returned");

Expected behavior
Prisma should do maths correctly and always return nothing for the above query.
Prisma information
See the above repro repository.
Environment & setup

OS: Linux
Database: Above repro uses SQLite, the issue is also reprodusible with PostgreSQL. Other DBs not tested
Node.js version: v16.17.0

Prisma Version
prisma                  : 4.8.1
@prisma/client          : 4.8.1
Current platform        : debian-openssl-1.1.x
Query Engine (Node-API) : libquery-engine d6e67a83f971b175a593ccc12e15c4a757f93ffe (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli d6e67a83f971b175a593ccc12e15c4a757f93ffe (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core d6e67a83f971b175a593ccc12e15c4a757f93ffe (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt d6e67a83f971b175a593ccc12e15c4a757f93ffe (at<EMAIL_ADDRESS>Format Wasm             : @prisma/prisma-fmt-wasm 4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe
Default Engines Hash    : d6e67a83f971b175a593ccc12e15c4a757f93ffe
Studio                  : 0.479.0

This issue is reproducible, and still present in<EMAIL_ADDRESS>


Reduce the number of Schema to fundamental types

Problem
Currently If one needs to match on Schema these are the number of options they need to deal with -
        a match {
          case Schema.Primitive(standardType, annotations) => ???
          case enum: Schema.Enum[_]                        => ???
          case record: Schema.Record[_]                    => ???
          case collection: Schema.Collection[_, _]         => ???
          case Schema.Transform(_, _, _, _, _)             => ???
          case Schema.Optional(_, _)                       => ???
          case Schema.Fail(_, _)                           => ???
          case Schema.Tuple(_, _, _)                       => ???
          case Schema.EitherSchema(_, _, _)                => ???
          case Schema.Lazy(_)                              => ???
          case Schema.Meta(_, _)                           => ???
          case Schema.Dynamic(_)                           => ???
          case Schema.SemiDynamic(_, _)                    => ???
        }

I think we can reduce them to some fundamental types that are completely orthogonal. For eg: Tuple, Option and Either can be implemented using Record and Enum. Similarly, Transform Lazy Meta Dynamic and SemiDynamic seem to leak implementation detail rather than just the schema of the type.
I propose that we reduce the public schema types to more fundamental ones only.
Would love to know what everyone thinks about it.

I'm onboard with this, conceptually. However, we do have some issues to resolve:

Many formats have explicit support for Option (e.g. nullable columns in SQL, optional fields in protobuf, etc.). Codecs need the ability to know the meaning of null. Possibly typeId in Transform node could allow us to hold onto that.
Meta and SemiDynamic should be gone. As for Dynamic schema, some backends can directly store JSON-like content. While we can describe JSON-like content with a recrusive schema, it may be more difficult for backends to process.
Laziness is necessary for recursive schemas.

Another important thing is that if we delete some of these then it has to be gone from all the different zio-schema types. For example if we don't want to have an explicit Either then don't have it in Schema, in DynamicValue, etc. I had the opposite problem while working on zio-flow, that schema had Either and DynamicValue not, for example and then converting from/to dynamic values was loosing information.
Also keep in mind that transformations cannot be serialized so if there is any chance that two cases (let's say either vs an arbitrary sum type) needs to be differentiated that cannot be done only by transformations. Not sure if there are anything like this in the library.
Also it's possible that now that we have type IDs, some of these problems are easier to solve.


Update soc_b9x_init and soc_b9x_restore function

Updated soc_b9x_init and soc_b9x_restore functions
Updated west.yml

The following west manifest projects have been modified in this Pull Request:

Name
Old Revision
New Revision
Diff

hal_telink
https://github.com/telink-semi/hal_telink/commit/ee363b2e82f2c06be7152530c3287b14522ea3b9 (develop)
https://github.com/telink-semi/hal_telink/commit/4ec4a267591b10ec652551e57bd5550c7fd3de37 (telink_update_B92_clock_init_macros)
<EMAIL_ADDRESS>

Note: This message is automatically posted and updated by the Manifest GitHub Action.


change favicon

I want to change the favicon .Please assign this issue to me under GSSOC

Hello! I would like to contribute to this project and improve the] icons section. Is this issue still open or has it been assigned? GSSOC23I believe I can make valuable contributions in enhancing the design and functionality of the icons. Thank you!

Not assigned yet , lemme assign to you and make the valuable.

@amanjaiman1  thanks for assingned me i have start working on this ASAP

Hey @amanjaiman1 ideally this should be assigned to me ..i opened this issue
Kindly unassign the other person

@S-ishita sorry for that , now i also assigned you, ok!


[ffigen] Generate enum getters for struct members

Fixes #1407 where enums in structs were still being generated as integers. This works by changing the bindings like so:
final class MyStruct
  @ffi.Int()
-  external int enumMember;
+  external int _enumMember;
+
+ MyEnum get enumMember => MyEnum.fromValue(_enumMember);
}

And of course, this PR respects any enums set to be generated as integers instead of actual enums by keeping the current behavior.
I wasn't sure exactly what to do about cases like these:
enum Enum1 { ... }

struct Struct1 [
  Enum1* enum1;
}

ffigen still generates Pointer<Int> instead of Pointer<Enum1>, but I'm not sure I see a way to get a Pointer out of it.  Since fromValue is static, you can't even have a generic extension method in dart:ffi or package:ffi. Maybe an extension can be generated by ffigen? Something like:
@ffi.Enum()
enum Enum1 { ... }

/// Pointer is changed to accept enums marked with `@ffi.Enum()`
extension on Pointer<Enum1> {
  Pointer<Int> get _underlying => Pointer.fromAddress(address);

  Enum1 get value => Enum1.fromValue(_underlying.value);
}

For now, the standard workaround of using Enum1.fromValue manually will work fine, and if we do go down that route, it won't be a breaking change.

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

@dcharkes Noticed this in the CI logs. Seems unrelated but it seems like it's causing the Publish and Health checks to fail.
Validating package:jnigen 0.10.1 (dir=/home/runner/work/native/native/pkgs/jnigen):jnigen
pubspec:
  - version: 0.10.1
changelog:
- Add backticks to code references in doc comments.
dart pub publish --dry-run
  Resolving dependencies...
  Because jnigen depends on jni from path which requires the Flutter SDK, version solving failed.

  Flutter users should use `flutter pub` instead of `dart pub`.
Notice: pub publish dry-run failed; add the `publish-ignore-warnings` label to ignore

Similar error for the Coverage check:
Dart test VM: Because every version of objective_c from path depends on flutter from sdk which doesn't exist (the Flutter SDK is not available), objective_c from path is forbidden.
So, because ffigen depends on objective_c from path, version solving failed.

Flutter users should use `flutter pub` instead of `dart pub`.
...
Compage coverage for pkgs/ffigen/lib/src/code_generator/compound.dart: null vs null

I put a new test specifically for the lines I changed in compound.dart, so maybe the dart pub get error is stopping the CI from computing the coverage properly?

coverage: 91.227%. first build
when pulling 05df76b95e7c5be100c8ee56592e188a1d0c931a on Levi-Lesches:enum-in-struct
into 4eaec5a18977e215b3d37a6293564d1911137cef on dart-lang:main.

This prevents using myStruct._enumMember.address in @Native external leaf calls. Maybe we should consider generating enumMemberAsInt instead? It's a bit of a compromise as it pollutes the API of the struct. If you have other ideas, let me know.

I was also thinking about this when first implementing it, but I guess it's simpler/safer to keep the struct field public for now. I changed that in the latest commit.

Yeah that makes sense. We don't allow enums in NativeType type arguments.
If we generated extension types instead of enums and addressed dart-lang/sdk#54944, then we could have Pointer<Enum1>. And then we'd also need to add support in dart:ffi to index into Pointer<Pointer<Enum1>> to get a Pointer<Enum1>. And then we could generate extension methods in FFIgen for those.
Though, at that point, we might as well support external Enum1 enumMember; and do the unwrapping in dart:ffi. 😄 Which would then also address the asInt duplicate field issue. 😄

I think it makes the most sense long-term to natively support enums in dart:ffi itself rather than trying to rely on extension types, since the whole point of wanting an enum is to be able to get exhaustive switches which iirc extension types can't support. That would basically mean moving all the .fromValue/.value logic further into dart:ffi and out of the generated code, but shouldn't make a difference from the user's point of view. But I think we should still keep those two public so users can get their own integers and use .fromValue.

Maybe add at least a test case that exercises the current behavior where users have to manually get the int out of a Pointer<Int> pointerToEnum struct field and call the enum fromValue.

Done -- added some enum logic to test/native_test that involves a struct with an enum, a pointer to an enum, and an array of enums. Then all that logic again for an enum that was set to generate as an integer.

Yep, these are known issues with those checks not understanding the existence of Flutter.

Seems like a simple flutter pub get before running the main workflow would help?

Fixed a bug with some enums as-int still using .value, and changed existing abstract class enums to sealed. That is technically breaking so I added it to the Changelog but it seems more correct

Should be! Given how I've missed a few cases in the past I'd appreciate if you could write up some test header files and verify that they generate as expected, but I've been doing that with unit tests and manual testing and it should be good, in both standard and as-int cases

@Levi-Lesches The code apparently isn't formatted.

Sorry about that, formatted now


Fix render_view() for use CI Output Class

Change render_view() for use CI Output Class instead echo.
This change allow use pseudo variables by default such as {elapsed_time}.
It's related to #3

Hello Albertone,
As we can see in the doc:
https://www.codeigniter.com/userguide3/libraries/output.html
I think that the set_output() method should be used in a very specific context
and the use of this method could trigger some weird behaviors
If you want to display "elapsed_time", instead of {elapsed_time}, you can write:
benchmark->elapsed_time();?>
Vince

Hi @vmoulin78,
I was reading the warning about set the output manually; the warning also says that must be the last thing in the controller like the library does, and therefore the controller does too.
Another option that we have is use the method append_output() because when the actual echo $output; the $output from Output Class is null. This method has not any warning about his use.
The purpose for preserve the use the Output Class instead of the echo, as well as use benchmarking pseudovariables, is use the caching system because Output Class is also responsible for caching the web pages.
About use  echo $this->benchmark->elapsed_time(); I tried but I can´t get show the result. When I use it, it display literally {ellapsed_time}. How are you use it?
Thank you for your attention.
About use  echo $this->benchmark->elapsed_time(); I tried but I can´t get show the result. When I use it, it display literally {ellapsed_time}. How are you use it?
Thank you for your attention.

Hi Albertone,
I will do some tests about the different methods of the Output library.
Vince

Hi Albertone,
I modified the library.
Now, it works.
Vince


Pynetbox documentation seems broken

Hi guys,
Just to let you know that the Documentation is empty: https://pynetbox.readthedocs.io/en/latest/endpoint.html

Hey, thanks for the heads up. They should be working again.


Add CLI feature implementation.

Implement output in CLI table format.
Added 'status' command.
Added 'operator' sub-commands (init, seal, unseal) for system operations.
Added api implementation.
Implemented CLI commands for read, write, delete, and list operations.
Implemented CLI commands for auth and login operations.

https://github.com/Tongsuo-Project/RustyVault/issues/28


Installed version can't be started without adminrights

I choice to use the install (x64) version, so i can get updates and can use the secure Windows program files folder.
But if i start SyncTrayzor.exe then only the window open but close before any text is displayed.
If i run the same exe with adminrights, then all works.
Windows10 x64 with only the normal Windows account and UAC.
Also no error displayed, just program closed.

Can you look at the logs? They'll be in C:\Users\<You>\AppData\Roaming\SyncTrayzor\logs. If you could post the bit corresponding to you attempting to start SyncTrayzor, that would be helpful.

Okay will do it when i'm home at friday

SyncTrayzor.log
Installed version can`t start even with admin permissions! There's my log attached

@xoxefdp This is a different issue. Please open your own issue.

Here the log:
SyncTrayzor.log
I think the problem is, that Syncthing ask at installtion for adminrights and i choice the default install path "C:\Program Files\SyncTrayzor" but now, as not elevated user the following fails (because of group policies):
DefaultSyncthingPath: C:\Users\beerisgood\AppData\Roaming\SyncTrayzor\syncthing.exe
Why SyncTrazor want copy and start syncthing.exe from AppData and not from installed path "C:\Program Files\SyncTrayzor" ?
If i want apply a update, i would start it with elevated rights to do but this way break on secure environments cause startable binarys from %AppData% are blocked - Malware behaviour

Syncthing auto-updates itself, and it needs to be able to do this without admin rights. Therefore I need to run the syncthing executable from a location which the user has write access to, i.e. AppData.
I need to get the Syncthing executable from somewhere, and so it's put in Program Files by the installer, and copied to AppData when SyncTrayzor starts for the first time.
If you need to run the Syncthing executable from another location, change File -> Settings -> Syncthing -> Syncthing Custom Path.
The actual error you are getting however is
2018-07-06 17:23:52.9126 #32232 [Error] SyncTrayzor.Bootstrapper: An unhandled AppDomain exception occurred. Terminating: True System.IO.FileLoadException Die Datei oder Assembly "System.Transactions.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Dieses Programm wurde durch eine Gruppenrichtlinie geblockt. Wenden Sie sich an den Systemadministrator, um weitere Informationen zu erhalten. (Ausnahme von HRESULT: 0x800704EC) System.ServiceModel.Description.ServiceDescription CreateDescription(System.Collections.Generic.IDictionary`2[System.String,System.ServiceModel.Description.ContractDescription] ByRef)    bei System.ServiceModel.ServiceHost.CreateDescription(IDictionary`2& implementedContracts)
   bei System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)
   bei System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
   bei CefSharp.Internals.BrowserProcessServiceHost..ctor(JavascriptObjectRepository javascriptObjectRepository, Int32 parentProcessId, Int32 browserId, IJavascriptCallbackFactory callbackFactory)
   bei CefSharp.ManagedCefBrowserAdapter.OnAfterBrowserCreated(IBrowser browser)
   bei CefSharp.Internals.ClientAdapter.OnAfterCreated(ClientAdapter* , CefRefPtr<CefBrowser>* browser) System.IO.FileLoadException: Die Datei oder Assembly "System.Transactions.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Dieses Programm wurde durch eine Gruppenrichtlinie geblockt. Wenden Sie sich an den Systemadministrator, um weitere Informationen zu erhalten. (Ausnahme von HRESULT: 0x800704EC)

This seems to have nothing to do with running Syncthing from AppData - it seems that SyncTrayzor is unable to load a particular .NET Assembly (System.Translations.dll), because that's blocked by a group policy. I'm afraid I don't know why that assembly in particular would be blocked by a group policy (it seems that we can load other assemblies just fine).

That doesnt make sense. If i choice the installed version, which needs admin rights then i will allow the app admin rights if a update is required.
AppData is a very bad idea for security and no other programs i know, do that.
I change the path, but still SyncTrayzor close without admin rights.
Also i dont block any .NET but maybe the file is located in a folder, SRP dont have a whitelist entry for

Again, the location of Synching is not relevant to your prbloblem.
Synching's update mechanism requires it to be somewhere the user can write to. I'm sorry if that doesn't make sense to you, but that's how it is and I can't change it. I agree on the security aspect, which is why SyncTrayzor installs itself into Program Files. Synching however does things differently so I need to accommodate that. Plenty of applications have chosen to install into AppData, for example Chrome.
However, I suggest you focus on the actual issue here, which is not related to AppData.

I found that i block user write access to "C:\Windows\Microsoft.NET\assembly" in SRP.
After unblock that, SyncTrayzor start without adminrights.
Can you maybe say what SyncTrayzor do with that folder?

As I Tom's you before, you can place Synching in Program Files yourself, and tell SyncTrayzor to use that copy. You are then responsible for keeping that updated.

That folder is part of .NET. SyncTrayzor uses .NET. I don't think you can block random parts of C:\Windows and expect Windows to keep working...

Alright. Thanks for helping!
I will recheck the "recommend" SRP rules.
Changing path for Syncthing works. No more starting Syncthing.exe from C:\Users%username%\AppData\Roaming\SyncTrayzor
I close the issue now. Maybe a notice in readme for other users which have the same problem would be nice


Prepare release 0.55.1

Describe changes
Prepare release 0.55.1
Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[x] If my change requires a change to docs, I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] I have based my new branch on develop and the open PR is targeting develop. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.
[x] If my changes require changes to the dashboard, these changes are communicated/requested.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Other (add details above)

@stefannica @wjayesh please glance through the release notes for the DB recovery statement.

Changes aligned with PR authors, all check green - removing fake change and proceed


Add 'public' visibility to AWS integration test template

A new integration test has been added to Gaffer which requires an additional Accumulo visibility:
SchemaHidingIT requires a "public" visibility

Merged into develop.


Multiple tracks to be centrally loaded

We have a use case where we would like to "pre-load" tracks for the users. This will be a mix of GFFs and BAMs. We would like them to appear as separate tracks, and perhaps even be configured to display in different colours etc. At the moment, the admin users can load only GFFs centrally by using "Import features"; however, all information gets collapsed into the same track. This would be such a useful feature. Thank you.

Thanks @garrettjstevens  - I have a couple of additional questions though.
If we pre-load some tracks by appropriately setting our config.json, what happens when we (admin) upload 1 more GFF via "Import Features"? I suppose they are loaded in a different track. May you confirm?
Also, if we (wicked admins) decided to import another set of features (GFF) via "Import Features" again, do these latter get collapsed into the same track?

Anything added via the "Import Features" menu item under the Apollo menu will get added to the Apollo track (shows up as "Annotations ()" in the track selector. That track will always show up when Apollo is loaded, even if it has nothing in it. If there are already features there, the imported features get added to the existing features in the Apollo track.
Any tracks added to the config.json will show up as separate tracks in the track selector.

Thanks @garrettjstevens !


Atmos tutorial's make build step fails

Describe the Bug
When I run make build on the tutorial, I get a build error. The error message tells me that it found a preexisting AWS CLI installation. The AWS CLI is not currently installed on my machine.
Expected Behavior
The make build step described in the Atmos Tutorial complete correctly.
Steps to Reproduce
Steps to reproduce the behavior:

Clone the repo with git clone git@github.com:cloudposse/tutorials.git
Run make init
Run make build

Logs
Sending build context to Docker daemon  123.4kB
Step 1/19 : ARG VERSION=latest
Step 2/19 : ARG OS=debian
Step 3/19 : ARG CLI_NAME=tutorials
Step 4/19 : FROM cloudposse/geodesic:$VERSION-$OS
 ---> 7d51f804e7a4
Step 5/19 : RUN mv /usr/local/bin/aws /usr/local/bin/aws1 &&     update-alternatives --install /usr/local/bin/aws aws /usr/local/bin/aws1 1
 ---> Using cache
 ---> 53210a954c12
Step 6/19 : ARG AWS_CLI_VERSION=2.1.34
 ---> Using cache
 ---> 81735b57b4d7
Step 7/19 : RUN AWSTMPDIR=$(mktemp -d -t aws-inst-XXXXXXXXXX) &&     curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-${AWS_CLI_VERSION}.zip" -o "$AWSTMPDIR/awscliv2.zip" &&     cd $AWSTMPDIR &&     unzip -qq awscliv2.zip &&     ./aws/install -i /usr/share/aws/v2 -b /usr/share/aws/v2/bin &&     update-alternatives --install /usr/local/bin/aws aws /usr/share/aws/v2/bin/aws 2 &&     rm -rf $AWSTMPDIR
 ---> Running in 727d66b23fed
Found preexisting AWS CLI installation: /usr/share/aws/v2/v2/current. Please rerun install script with --update flag.
The command '/bin/sh -c AWSTMPDIR=$(mktemp -d -t aws-inst-XXXXXXXXXX) &&     curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-${AWS_CLI_VERSION}.zip" -o "$AWSTMPDIR/awscliv2.zip" &&     cd $AWSTMPDIR &&     unzip -qq awscliv2.zip &&     ./aws/install -i /usr/share/aws/v2 -b /usr/share/aws/v2/bin &&     update-alternatives --install /usr/local/bin/aws aws /usr/share/aws/v2/bin/aws 2 &&     rm -rf $AWSTMPDIR' returned a non-zero code: 1
make[1]: *** [/home/acox/src/wisp/tutorials/build-harness/modules/docker/Makefile.build:12: docker/build] Error 1
make: *** [Makefile:24: build] Error 2

Environment (please complete the following information):
Anything that will help us triage the bug will help. Here are some ideas:

OS: WSL (Microsoft Windows [Version 10.0.19041.1052]) with Ubuntu (Ubuntu 20.04.2 LTS)

@oddietaco Thanks for opening + apologies on this one! Our geodesic image version is pointing at debian-latest which means we're always keeping up-to-date, but of course things can break. The latest geodesic now installs AWS CLI V2 by default, which means we no longer need to install it as part of the cloudposse/tutorials image. We've since removed that in #8 and we're now properly building that image here so you can skip building it yourself: https://hub.docker.com/r/cloudposse/tutorials/tags?page=1&ordering=last_updated
I'm going to close this as I believe those two things address this. Please feel free to reopen if I'm mistaken or open a new issue and ping me if you run into something else!


Update DG class diagram

Codecov Report

Merging #226 (1f4bf2b) into master (d9d4e07) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #226   +/-   ##
=========================================
  Coverage     73.88%   73.88%
  Complexity      777      777
=========================================
  Files           109      109
  Lines          2527     2527
  Branches        271      271
=========================================
  Hits           1867     1867
  Misses          586      586
  Partials         74       74

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d9d4e07...1f4bf2b. Read the comment docs.


Map mouse button3+button4 to something

I have a mouse with 5 buttons : the standard 3 plus two more on the side. I've successfully mapped button4 and button5 to ctrl+(left/right) to shift between spaces. The only functionality that's preventing me from moving away from the trackpad still is the ability to go back to the previous page in a browser.
Ideally, Id like to map a combination like mouse scroll button (button3) + button4 to cmd+[. Is this possible, and if so, can someone please share a sample json of the same?
Thanks

I've been trying to pour over the docs today to figure out if this is possible...so far as I can tell it isn't possible to make the "to" key be a combination or sequence of keys. Please someone let us know if this isn't the case


Make --state-root-hash optional and query the newest one automatically when not provided

For example when I'm running casper-client get-dictionary-item the --state-root-hash is required which sometimes is kind of irritating that I need to get the newest one by running another command.
We can make it optional and let the user know what happens under the hood.
Make sense @darthsiroftardis @Fraser999 @bpr ? :)

after some discussion, the engineering team is not aligned on doing this work.

As discussed with @bpr I checked all the methods and listem them below:

this methods rely on block-identifier and as help says if not provided the last block added to the chain as known at the given node will be used - so we can consider them as user-friendly

get-block
get-block-transfers
list-deploys
get-era-summary
get-account
get-auction-info

this methods requires both state-root-hash & block-identifier- maybe we can as well use the last state-root-hash and last block-identifier if arguments won't be provided?

query-global-state
query-balance

this method requires only state-root-hash - maybe we can as well use the last state-root-hash if argument won't be provided?

get-dictionary-item

can't solve in 1.X, can be solved in 2.0 cc: @darthsiroftardis

The casper-client is inconsistent, for the time being, I want to fix the 3 inconsistent end points and provide the state root hash in the response, to avoid confusion.  With 2.0, and update to the client will be required once the RPC is changed.  Please proceed with the modifications.


09/10/2018 17:54 : Create Pull Request for branch master -> prTesting1_2018091017

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Error with ruby 2.2.2p95

When I reload the webapp I'm getting:
Waiting for restart (please reload the app in your web browser)...
Loading byebug...
rake aborted!
NoMethodError: undefined method `start_client' for Byebug:Module
/vendored_gems/ruby/2.2.0/gems/ruby-debug-passenger-0.2.0/lib/tasks/debug.rake:54:in `block in <top (required)>'
Tasks: TOP => debug
(See full trace by running task with --trace)

In the console, and
undefined method `wait_connection=' for Byebug:Module (NoMethodError)

In the browser.
I'm using Rails 4.2.5, Ruby 2.2.2p95 and nginx/1.8.0 Phusion_Passenger/5.0.15.
Any clues? Thanks in advance.

Sorry, I haven't used Rails for about 3 years and the Byebug support was added by someone else (#2).

I am having the same issue with ruby 2.0.0p594 rails 4.1.14 and byebug 8.2.2

I'm not maintaining this any more because I don't use Ruby any more - so you might want to contact Byebug's author to see if he's willing to help / take over maintenance.

Hello @davejamesmiller
Can U say why stop using rails?
One comment please :)

My company uses PHP. I experimented with Rails for a few months in my spare time because I was looking for a better framework, but then found Laravel and have been using that ever since.

@davejamesmiller  thanks a lot
Laravel is good
PHP is good too
PHP syntax is bad )))


Gradle: Use lazy property to get build directory

Gradle plugins are supposed to use lazy evaluation when fetching the build
directory since it can change at runtime, but we were using the non-lazy
getter. It is deprecated starting in Gradle 8.3; switch to the appropriate
lazy property.

Current dependencies on/for this PR:

main

PR #1346   👈

This comment was auto-generated by Graphite.


Node is not visible

"version": "0.13.0"
code: await page.click('.s_btn');
This button is invisible which CSS attribute is 'display: none'.
So how can I trigger the button？

@jydchanglong you can click it with javascript:
await page.evaluate(() => {
  document.querySelector('.s_btn').click();
});

@aslushnikov  I have the same issue, but using the evaluate function doesn't work as the page is re-evaluated and I should re-do every single step...is there any way to select an element only if displayed?


fix(versions): update Activiti/activiti-cloud-api versions into develop

UpdateBot pushed maven dependency: org.activiti.dependencies:activiti-dependencies to: 7.1.189

UpdateBot commands:
updatebot push-version --kind maven org.activiti.dependencies:activiti-dependencies 7.1.189 org.activiti.api:activiti-api-dependencies 7.1.189 org.activiti.core.common:activiti-core-common-dependencies 7.1.189


Don't return "application/json" when respnse JSON start with arry by HTTP trigger

I use PHP on Azure Functions with HTTP trigger.
Azure Functions has an issue when Function responses JSON object that start with array.
I expect to get response with "application/json" Content-Type when I send like this request, but Function returns "application/xml".
[JSON example]
[
  {
    "faceId": "2e2a4644-7b63-4af8-bfde-2076e48603cd",
    "faceRectangle": {
      "top": 135,
      "left": 514,
      "width": 59,
      "height": 59
    }
  },
  {
    "faceId": "3b072d97-117a-4b7c-906f-8074a4fb32f8",
     "faceRectangle": {
       "top": 106,
       "left": 165,
       "width": 55,
       "height": 55
    },
  }
]

Such JSON format is returned by Face API(Detect) of Microsoft Cognitive Services.
https://dev.projectoxford.ai/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236

I was able to reproduce this behavior - something does seem wrong here. @mamaso do you have time to look into this? If a JSON array payload is returned from a PHP script, we should be handling it correctly, as we do when a JSON object is returned.

Yep I'll take a look.


Added python solution to 22.GenerateParenthesis

Python solution to 22.GenerateParenthesis. Resolves #120

Great work 🔥


OHLC conversion loses time data

This is not a bug nor a feature, it is more of a question about implementation
I am working with the "forex.analytics" library (https://www.npmjs.com/package/forex.analytics) which primarily works with OHLC formatted data. Now, there does not seem to be a defined way of how to structure OHLC data (different libraries use different structures) but the structure used by this library has some flaws I believe:

No timestamp is stored in the current OHLC structure
Data is stored in an object of arrays

The structure that is used by the "forex.analytics" library seems more intuitive to me (other than the fact that volume seems to be missing):
[
  {
    open: 1.113990,
    high: 1.113990,
    low: 1.113890,
    close: 1.113890,
    time:<PHONE_NUMBER>
  },
  ...
]

Is there any reason why OHLC data is structured as it is in this library? Are there any advantages? And is there a reason why there are no timestamps recorded?

Thanks!


[?] How to load YOLOv3 predictions into FiftyOne for analysis

Hello,
I got predictions when testing a Yolo v3 model trained on a custom dataset.
https://drive.google.com/file/d/1fK06fBDGBkBqI0HDb-jPgNRWm25h-SjZ/view?usp=sharing
I would like to know how to input my prediction dataset into Fiftyone, and what format is expected for the prediction (file locations in folders, what the files contain, etc.)
Thank you very much!

Hi @valentindbdg 👋
Check out this section of our docs for details on creating a FiftyOne dataset from YOLO-formatted TXT files containing model predictions.
If your model doesn't output predictions in that specific format, you can always write a simple Python loop to load your model's predictions into a FiftyOne dataset.

Thank you for your answer @brimoor

If your model doesn't output predictions in that specific format, you can always write a simple Python loop to load your model's predictions into a FiftyOne dataset.

My model does not output predictions in Yolo format unfortunately, here is an example of my output file:
https://drive.google.com/file/d/1NGRv0OX8tWmFhh7B-WF9SOCCFFY5_TjL/view?usp=sharing
In the description it is said:
Bounding box coordinates should be relative values
in [0, 1] in the following format:
[top-left-x, top-left-y, width, height]
Are the values relative to the image size (width and height) ? Any idea (formula) to get those values with my output?
Thank you in advance for your answer!


HTTPアクセスログをとる

s3に出す
.ebextensions/05_accesslog.config
とかでいいか？
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/environments-cfg-loadbalancer-accesslogs.html

sorry i was confusing that i am in the my project...


Allow unsafe tasks

Otherwise the following message is displayed:

Template uses unsafe feature: tasks
Introduced in copier v8.0.0 (https://github.com/copier-org/copier/pull/1171)

Currently failing until https://github.com/OCA/oca-addons-repo-template/pull/199, there are also things to be decided in https://github.com/OCA/oca-addons-repo-template/issues/200


Add play links to the readme of examples

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Nice improving.
/lgtm

Nice
/approve


Marina shows incorrect balance when using custom script accounts

If i send LBTC funds from the marina main account to a customscript one, then the balance in the homepage is wrong.
The balance of the view should show the one of the main account, but instead it shows the balance of every accounts, in fact instead of considering the spent funds as outcoming, i see them as incoming funds (for the customscript one).
To make a parallel with the marina provider, it seems like it is showing the balance coming from marina.getBalances() instead of the one returned by marina.getBalances([marinaMainAccountID]).

Acutally the balances should show all utxos from all account mixed, that arr "auto-spendabale"

the spent funds as outcoming, i see them as incoming funds

This seems the actual bug instead. Are you sure you are mistaking the change as the outcoming funds?

Actually the balances should show all utxos from all account mixed, that are "auto-spendabale"

the spent funds as outcoming, I see them as incoming funds

This seems the actual bug instead. Are you sure you are mistaking the change for the outcoming funds?

This seems the actual bug instead. Are you sure you are mistaking the change as the outcoming funds?

Well, not sure it is a bug... the funds that are shown as incoming rather than outcoming are those deposited to the contract address of the customscript account. It's not a bug because they are outcoming for the main account, but incoming for the custom one since the funds have been moved across 2 accounts basically.

Acutally the balances should show all utxos from all account mixed, that arr "auto-spendabale"

Oh, I supposed it was showing only those of the main account since the UI basically lets to interact only with that account. Showing the balances of all accounts might be ok, but then leads to the kind of "confusion" described just above in case of cross-account transactions.

UI basically lets to interact only with that account.
The UI (and marina.sendTransaction) let you interact with ALL accounts, as long the utxos are "auto-spenadable"

have been moved across 2 accounts basically.

regardless of which account is, the utxo if NOT auto-spendable shound NOT be shown in UI, and not picked up by coinselction via UI or marina.sendTransaction
Last time I tried, what I saw as "incoming" was the L-BTC change (confidential), I never seen the locked coveanant amount, so worth make a test again, can't replicate. (to be clear change should NOT be shown as incoming either, but I see why now it's happening with mutli-asset custom tx)

on approach could be that we ALWYAS assume that incoming payment to change addresses MUST not be shown.
But could happens someone is giving out the change address as an incoming address and we do not show that in the incoming payment?
ie. all those +9.. in the following screenshot are my change outputs

related to #374


updated to gradle version 7.2

Hmm looks like updating to 7.2 is causing some issues

which is... odd, change the build (in the github actions yaml) to be called with --info, perhaps then we'll get more insight into the problem.

Might be this:
https://github.com/gradle/gradle/issues/1916#issuecomment-298325759

We never did figure out exactly what was causing this to fail.  I'm closing it for now.


update fabric qc report

Coverage remained the same at 64.701% when pulling a0067d49c8ac4ed4b3f299701e6aa433646773ad on leslieaula:dev into f4af27036afd06a0f12d2ff5e1d8b575e798c0c9 on danliris:dev.


support g4ad.xlarge and g4ad.2xlarge instance types

Add g4ad.xlarge and g4ad.2xlarge EC2 instance types.
Requested in https://github.com/pulumi/pulumi-aws/issues/1674

Hi @con5cience
My apologies for being so slow here - I have rebased your PR and brought this into another PR to ensure it is mergable #1856
Thanks again
Paul


Quickheal antivirus finds Trojan.Ebowla while running nvmsetup

Report for - Internet Security Virus Protection
Thursday, 16 February, 2017, Time 14:14:17
Internet Security Version - 17.00
Virus database - 15 February 2017

Detected: Trojan.Ebowla in
C:\Users\admin\AppData\Roaming\nvm\is-V2QRA.tmp
Action taken: Repaired

Operating system and version:
Windows 10

nvm debug output:

nvm ls output:

How did you install nvm? (e.g. install script in readme, homebrew):

What steps did you perform?

What happened?

What did you expect to happen?

Is there anything in any of your profile files (.bashrc, .bash_profile, .zshrc, etc) that modifies the PATH?

If you are having installation issues, or getting "N/A", what does curl -v nodejs.org/dist/ print out?

@aino-gautam nvmsetup isn't a thing that exists - and this project doesn't work on Windows (unless you're using BashOnWindows). Would you please fill out the issue template?

@ljharb my bad.. wrong repo .. recreating it on nvm-windows


Readme for generated directory tree

As new user I would like to read some introduction which learn me key concepts behind generated directory tree. Some simple example like super-simple todolist application will be very helpful for newbie.

We should probably just add user docs to dry-rb.org

Agree. @swistaczek, just FYI, docs are still a big to-do for this, but please reach out if you have any questions in the meantime.

Hi @swistaczek,
A year after your original post, I guess you should be an expert in dry-web-roda or you stopped to use it at all.
A month ago I shared a ToDo app built with dry-web-roda. It is available here, comes with a step by step document and you can see it working here. I don't remember, but I think I took the idea from this issue because I was already liked your post.
In the document you will find:

The folder structure of a dry-web-roda app
DB migrations, repositories and relations
Authentication
Authorization
The use of the Roda flow plugin to call dry-transactions and its output processing
Operations called in each step of the transactions
Scoping data for the current user by policies scopes (idea was taken from Pundit)
Input validation with  dry-validation
Showing the current user in layout
Transactions for add and complete your tasks

If you need to use sprockets in a dry-web-roda app, perhaps you are migrating a Rails app (like me). I published my code in this post.
Disclaimer: this is not an official document, it's only the way that I'm using this gem right now. Of course, I tried to follow the standards and the good practices that I learned reading the code of dry-rb, berg and rom-rb.

Hey @alejandrobabio!
Thanks for your work! I will definitely check out this application and give my feedback. Unfortunately, recently I have not written a larger application in Ruby for a long time, time has dashed me towards the scala and kotlin. It's time to check what's new in the "old" box :).


[HUDI-1575][RFC-56] Early Conflict Detection For Multi-writer

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@hudi-bot run azure

@prasannarajaperumal could you take another look at this RFC before we merge it?  I'm going to move on to reviewing the implementation in #6133 .

Hi @yihua and @pratyakshsharma . Really appreciate for your attention here! Address the comments. PTAL :)

@zhangyue19921010 Thanks for addressing the comments. Why are some code changes involved? Could you properly rebase this PR on the latest master?

ooooh. Sorry for that. Just rebased the master branch. PTAL

Thanks all for your efforts here!


Import only one columns and maintain the current data in the table

I have a table of documents and I want import only one column and add to the current data, without lost the rest of columns.
I think is a good option when you need export, do several process with the data, and then import to crate.
Thk.

hi @robertoabril
as @seut already mentioned in the email, this is not possible right now. however, UPDATE using subselect is in our backlog already.


Slow Performance with Type Inference on JSX Element

Version
TypeScript 4.2.4
TypeScript 4.3.0-dev.20210417
Expected Behaviour
Any changes made to the Box component have fast validation and auto-completion for associated attributes.
Actual Behaviour
TypeScript validation and auto-completion is slow.
Description
I have been investigating the current trend to create a generic React element which will pass through an element property and  associated attributes and call React.createElement. An approach similar to this is used by several prominent projects such as Material UI and Github Primer. I wanted to ensure that TypeScript will infer the correct attributes from the given element property. The code I wrote does work, however it does appear to have a significant performance impact.
Related
This issue may be related to these issues: #34801, #43485, #42010, #14729, #38583.
Example
A small, reproducible example can be found at: https://github.com/scottwillmoore/react-box. You can also experiment with it in CodeSandbox. The CodeSandbox version has some differences.
The meat of the TypeScript can be seen below:
import React from "react";

type ElementType = keyof JSX.IntrinsicElements;

type ElementProperties<T extends ElementType> = JSX.IntrinsicElements[T];

type WithElement<T extends ElementType> = {
    element: T;
} & ElementProperties<T>;

type WithChildren = {
    children?: React.ReactNode;
};

type BoxProperties<T extends ElementType> = WithElement<T> & WithChildren;

function Box<T extends ElementType>({ element, children, ...properties }: BoxProperties<T>) {
    return React.createElement(element, properties, children);
}

export default function App() {
    return (
        <Box element="a" href="#">
            Hello, world!
        </Box>
    );
}

Quick update, I have changed the implementation to:
type Join<T, U> = T & Omit<U, keyof T>;

type As = React.ElementType;

type AsProps<T extends As> = React.ComponentPropsWithoutRef<T>;

type WithAs<T extends As> = Join<{ as: T }, AsProps<T>>;

type WithChildren = {
    children?: React.ReactNode;
};

type BoxProps<T extends As> = WithAs<T> & WithChildren;

function Box<T extends As>({ as, children, ...properties }: BoxProps<T>) {
    return React.createElement(as, properties, children);
}

export default function App() {
    return (
        <Box as="a" href="#">
            Hello, world!
        </Box>
    );
}

This is based on the Chakra UI implementation and it appears to significantly speed up the validation and auto-completion. It also does not work if you exclude Join, which I feel shouldn't make a difference...
Even when simplified to:
type BoxProps<T extends As> = { as: T } & Omit<React.ComponentPropsWithoutRef<T>, never>;

As soon as the Omit is removed, the inference does not work. Does anyone know why this may occur?

Check times:
TS 3.7 - 1.0s
TS 3.8 - 1.1s
TS 3.9 - 1.5s
It seems pretty stable both before and after.  Note that even 3.7 is pretty slow for this amount of code.

#41821 doesn't help.

Oh sorry, I should've mentioned it is less of a performance regression, but more of an area for improvement since this pattern appears quite popular in several popular React component libraries. I will look into #41821, it does look similar. Also, did you have any idea why omission of Omit from my second example appears to cause type inference to not work?

No worries, checking for regressions is just a normal part of perf investigations.
Just to set expectations, ElementType / As is a huge union and that will almost always lead to perf problems.  I'll look in case something is improvable in this particular code, but, as you saw in the bugs you linked, this has already received a lot of attention.
I'm not very familiar with these types, so you'll need to be more specific with your question about emit.  I tried using your second implementation with the replacement for BoxProps that you suggested and then removed the href attribute from the <Box> element and completion suggested adding it back.  Did you mean something else?

Here's a simpler version, but I still don't know why there's an error:
type ComponentProps<T extends "symbol"> =
    T extends string
        ? JSX.IntrinsicElements[T]
        : never;

function F<T extends "symbol">(p1: Pick<ComponentProps<T>, keyof ComponentProps<T>>, p2: ComponentProps<T>) {
    p1 = p2; // Fine
    p2 = p1; // Error
}

That is really weird, thank you for looking into this issue. I think I follow your logic, if T extends "symbol", the compiler does not know that T extends string is implied and therefore p2: ComponentProps<T> where T extends "symbol" conditionally becomes never. I still don't quite understand how Omit fixes this, but I had some free time to have a quick look through other TypeScript issues and found this issue #36981 which led me to this pull request #42524, which may, or may not be related.

Dunno why or how, but for me I just picked the intrinsic elements that I am most likely to use and that fixed the sluggish performance
type Elements = Pick<
  JSX.IntrinsicElements,
  'a' | 'div' | 'button' | 'span' | 'article' | 'form' | 'input'
>;

Taking a look at this in 5.4, I added 300 lines of this to the project
void <Box element="a" href="#"></Box>;

and check time was 1.44 seconds. Going from 300 lines of it to ~6,000 lines of it, the check time increased to 4.32 seconds, implying a per-element cost of 0.48ms. That seems a little on the high side but not really in the "defect" level of performance considering that Box has to compute the fairly intensive question of "What are all the possible HTML elements and their respective attributes?".


GroupBy agg rejects a dict argument

I'll start with the code snippet and the errors:
    import pandas as pd
    df = pd.DataFrame(data=[range(10), ['a'] * 5 + ['b'] * 5]).T
    df.columns = ["value", "category"]
    agg_dict = {col: "sum" for col in df.columns}
    df.groupby("category").agg(agg_dict)

tests/test_pandas.py:324: error: Incompatible types in assignment (expression has type "List[str]", variable has type "Index")  [assignment]
tests/test_pandas.py:326: error: Argument 1 has incompatible type "Dict[Any, str]"; expected "Union[Union[Callable[..., Any], str, ufunc], List[Union[Callable[..., Any], str, ufunc]], Dict[Hashable, Union[Union[Callable[..., Any], str, ufunc], List[Union[Callable[..., Any], str, ufunc]]]]]"  [arg-type]

So there are a several different things happening here:

For starters, I am unable to assign a List[str] to df.columns. Not really related to the issue in the title, but might as well fix this at the same time.
When I create agg_dict, I would expect the type to be Dict[Hashable, str], since in a lot of places we are treating the column data type as Hashable. This may be dependent on the broader issue of an Index needing to be a generic type.
Even if I override the type of agg_dict to Dict[Hashable, str] this still is not accepted by agg(). There may be a covariance thing at play here, it may need to be Mapping instead of Dict, but I haven't investigated this too closely yet.

There's enough things going on here that I didn't want to just start changing things around in the annotations before I could pinpoint exactly what we should be changing.

I think the fix here is to do the following in _typing.pyi:
Currently:
AggFuncTypeDictSeries: TypeAlias = dict[Hashable, AggFuncTypeBase]
AggFuncTypeDictFrame: TypeAlias = dict[
    Hashable, Union[AggFuncTypeBase, list[AggFuncTypeBase]]
]

Change Hashable to HashableT, and I think this will fix it.

That didn't seem to do it - it actually appears to be my third bullet point above - Dict is invariant, so you cannot pass any Hashable, while Mapping, which is what I changed it to, is covariant, so any sub-type of Hashable will suffice. PR coming

In general, the issue with using Mapping is whether any Mapping will actually work.  The alternative is to just remove the types from dict[Hashable,str] so it becomes dict.

I don't think an untyped dict is necessary here and comes with the disadvantage of basically losing the type checking. Is it possible that someone passes a Mapping that isn't supported? I'd have to look at the code, but as long as pandas is just looping through keys, and not invoking dictionary-specific methods like .keys() or .values(), the code would likely work with any Mapping. And plus, practically speaking, not sure it is necessary to protect against something that probably isn't going to happen. If we do, we can always create a new Protocol that is invariant but sub-classes from Mapping or something like that. So TLDR - I think it's more important to have logical types for the case that is actually likely to happen, and proper type checking for that case, even if it opens up the possibility of a false negative.
The part that I think is actually worth exploring more is enumerating all of the string literals from here: https://github.com/pandas-dev/pandas/blob/main/pandas/core/groupby/base.py
@Dr-Irv - Re HashableT - turns out it was necessary, but in conjunction with a covariant type like Mapping


Remove unnecessary dependencies

I want to use your library (.NET Standard 2.0) but it adds some dependencies that are not necessary and I don't want them in my project.
https://github.com/mxjones/RedBus/blob/master/src/Redbus/Redbus/Redbus.csproj
You can remove this block and it will compile fine.
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="System.Reflection.Emit.LightWeight" Version="4.3.0" />
    <PackageReference Include="System.Dynamic.Runtime" Version="4.3.0" />
    <PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
  </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

Hi,
Ah right - thanks for this, didn't realise this wasn't required...I will take a look into this and remove those if they are not required!
Cheers!

Removed these in 1.0.7


No way to stop registration thread once it has started

Need to add capability to stop registration process once it has been started, currently no way without existing the tool.

Added in d5867ad2a664cfe14b41d340d6b50bc090d03d8c


XLMForMaskedLM

Hi, I am currently training a BERT model using facebook XLM framework. I use the script in this repo to convert XLM format to PyTorch format. Is it possible to implement an XLMForMaskedLM which is just like BertForMaskedLM but use XLM trained BERT instead?

You can do that using XLNetLMHeadModel and custom masks as shown in the run_generation example.
But note that XLNet is rather bad on short text input completions as I discussed in https://github.com/huggingface/pytorch-transformers/issues/846#issuecomment-514228565

#846 (comment)

Thanks for your reply! However, I mean the XLM version of BERT, instead of XLNet. Is it also convenient to do that for XLM?
Thanks!

Oh, right! You can just use XLMWithLMHeadModel with an input sequence containing XLM masked token tokenizer.mask_token (which is <special1> for XLM).


Abort further routing on given response from first backend

Hi, I am trying to implement some custom logic based on given example:

Calling first backend which returns array of sales
When the array is empty I would like to not continue further routing (next requests depend on response from first backend)

How I could achieve such functionality in order to save up resources and short circuit response.

Hi @tosikszymon ,
You might have a look at CEL: https://www.krakend.io/docs/endpoints/common-expression-language-cel/#example-check-if-the-backend-response-has-a-specific-field-or-abort
You can check the response of the backend and mark the backend as failed (if the condition evaluates to false), so the sequential won't trigger.


Turkish characters does not appear

When I click Print button "İ,Ö,Ü,Ç,Ğ,ı,ğ,ş" chars appear like "???". How I fix it?

As you can see in the attachment, I translated the phrase "This is a coded version with Google Translate." in Turkish and your own sentence with reported characters. Everything seems to appear correctly ...
SnappyGrav Plugin.pdf

Please, I ask both of you, you could run this command line:
wkhtmltopdf INPUT.HTML output.pdf

where INPUT.HTML is an html file that contains characters that are not shown.

I have another question, I installed the plugin and snappygrav {{snappygrav (page.rout A)}} I've added the tag, but nothing appears when I click the export button.
https://www.minesfaculty.com/mad/maden-muh-giris.html

I ran the command with wkhtmltopdf and in the resulting PDF everything appears as it should and all greek characters show up. Could it have something to do with the language code of the website? Mine is "el" for Greek. Maybe it somehow causes th conversion to fail?

I've just released a release that fixes the bug. It will soon be available on GPM.


*: bump Go version to 1.13

Something is up with the k8 dep.

<EMAIL_ADDRESS>is an invalid reference for Go 1.13. When bumping k8s.io/client-go we should now point to<EMAIL_ADDRESS>(from https://github.com/kubernetes/client-go/blob/master/INSTALL.md#add-client-go-as-a-dependency).


Scrolling Issue on v72

Hi I wrote this up on the wrong plugin (symbol-finder), so here goes in the right spot. When I go to the UI for Symbol swapper I am unable to scroll to the bottom of the list. I can kinda get to it if I am scrolling down and it is rubber banding while I click on the just peeking out select list. Have included a gif

@custa1200 I finally got a chance to fix this issue, please update to the latest version and let me know if it works for you.

Fixed


970: Taint nodes even if reboot is currently blocked

If using the --prefer-no-schedule-taint flag, apply the taint even if the reboot is currently blocked. This will make it less likely for Pods to get scheduled to nodes that are pending a reboot, once the blocking Pods / alerts are cleared.

Resolves #970

I am not convinced this is a view everyone will have.
I believe some ppl will prefer adding the preferNoSchedule taint, while some others will consider that the taint shouldn't be liberally applied on all nodes including the ones that can't reboot.
I don't like the fact to change the rebootasrequired loop through a variable. It makes it very hard to understand the loop in terms of maintenance in the long run. On top of that, most of the reasons ppl would have adjusted the rebootasrequired over time was for personal preference: "In my case, I would like to do x before y". It all made sense for some ppl, while it didn't make sense for some others.
I truely belive your case makes sense. Yet, I am not certain that it's the case for everyone.
Two choices:

I will contact a few ppl, see what they think.
We start to work on a change that makes the rebootasrequired loop more flexible.

I truely belive your case makes sense. Yet, I am not certain that it's the case for everyone.

I definitely agree with you here, and making it a configurable behaviour change makes the most sense to me as well. I'll wait for your feedback on the discussions and am happy to chip in on implementation changes if needed.

I truely belive your case makes sense. Yet, I am not certain that it's the case for everyone.

We are exploring using kured in our k8s environment which is hosting a Jenkins infrastructure, meaning the Jenkins controller spins up ephemeral pods acting as Jenkins agent which run various CI pipelines.
We can't evict those Jenkins pods as killing off the agent pod basically kills the Jenkins build.
For our use-case we would like to:

Taint the node to prevent any further Jenkins pods scheduling on it. (--prefer-no-schedule-taint=weave.works/kured-node-reboot)
Wait for all Jenkins pods to finish their workload. (--blocking-pod-selector=jenkins=agent)
Continue with reboot etc...

This PR will make this use-case feasible and will be much appreciated.


Feature/warning info and error messaging

Updates UX for the system status messages that are displayed to the user to match Lyndsay's Figma designs.
Also changes the messaging when a file cannot be reloaded -- moves the warning out of the data upload modal and into a status message to conform to other status messages. Previously, this warning persisted in the modal, even when the file had been re-uploaded. Now the status message goes away once the file is replaced.
Old styling examples

New styling examples

Comparison of data source reload errors: before & after

Are there any other alert or console.error or failure type things around we could switch to using this? If you could do a quick check to see just to make sure we are always presenting this awesome UI that would be great. If it ends up being a lot or tedious creating an issue in the backlog works too

I can definitely add the alerts to this one. For the other console errors etc I suspect there might be ones where I'd need some guidance about whether/what to show the user (w UX?) so I might make a separate ticket for that

Hey I looked through the different types of zarr download and it all looks pretty good! The only issues were 1) we dont support download tracking for local zarrs on desktop. Which is not relevant to this PR I think. and 2) that the error message for local zarr paths or unsupported cloud paths on web is not on this format yet HERE  and HERE. (with photo at bottom)
Desktop:

Local Zarr Download  ( Download starts but no error message / completion message ) Not supported
Remote Public Download (Good) - Download Tracked
Remote Private Download (Good) - network error
Canceled download ( good )  - Canceled By User

Web

Local Path Zarr (Not Good)
Remote not https aws path ( Good)
Remote Path (Good) - Download Tracked
Cancel download (Good)   - Canceled By User

Only missing one I saw:

that the error message for local zarr paths or unsupported cloud paths on web is not on this format yet

This one is already fixed here; the throw automatically converts to a status message.
For the other one you linked (handleLocalZarrFile), the most consistent solution would be to also throw an error the way handleZarrFile does instead of its current return. I've been hesitant to add state calls in there since it seemed like we tend to avoid that in services, but I'm not sure if that's an actual standard or that we just haven't needed to do it yet.


Translate Readme into English

Привет!
This is a very interesting concept, and we'd love to learn more.
It would be easier to get feedback from the community if the README were available in Russian as well as English. Thanks!

Yes, we are going to provide readme in english shortly as well as an
article explaining more later
On Tue, 15 Mar 2016 at 02:20, Kyle Wiens<EMAIL_ADDRESS>wrote:

Привет!
This is a very interesting concept, and we'd love to learn more.
It would be easier to get feedback from the community if the README were
available in Russian as well as English. Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/badoo/soft-mocks/issues/1.

Thanks!


Add support for graceful shutdown on SIGINT and SIGTERM

Currently on Mac and Docker, the only way for me to shut down the running server is to manually kill the process. This is not ideal for production environments. This feature was added to adapter-node with this issue https://github.com/sveltejs/kit/issues/9540

@RFHold yeah its a good point

This is causing me problems with docker, as the container will totally ignore docker's stop signal. Docker always sends a SIGINT signal then wait 30s before killing the container.
This causes me 2 issues:

Stopping the container is slow, as I need to always wait 30s until docker kill the container.
I don't get any graceful shutdown, as any in-progress request is killed

I created PR #69 to handle system signals, @gornostay25 please review and merge.


[Feature Request] MOOK Generator basic thrust damage

Could you please give the MOOK Generator a field that translates to basic thrust damage.
Currently the Dmg field only translates to Basic Swing.

You can enter both in the damage field by separating them with /
1d-1/2d
And it will split into thrust and swing damage.

Great! I was so clueless!


Stored procedure responsible for Profile status transitions now covers all cases

Summary
Co-authored-by: Jakub Hrozek<EMAIL_ADDRESS>Fixes #3087
Change Type
Mark the type of change your PR introduces:

[X] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[X] Reviewed my own code for quality and clarity.
[X] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[X] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 50.095%. remained the same
when pulling 58da1e14f4dc8619b52ab86e5c1b5c18221a0dc7 on issue-3087
into f6b5176c8ac3771e3fb259db372c6d3db5cb047e on main.