support cancellation of generation

Part 1 of #268
(best reviewed by commit)
This updates the bot runnables to stream their outputs and detect if the output should be cancelled or not.
The implementation is slightly different for the different runnable types based on how they function:

simple runnable

Just stream the tokens and check after each token if cancellation is necessary

agent runnable

stream the steps and check after each step if cancellation is necessary. Agents don't stream individual tokens, only steps

assistant runnable

let OpenAI tell us if another run is running and then cancel that run. Also handle the state when a run get's cancelled during processing.

Setting the cancellation status has been left for a future PR. The current mechanism uses the 'chat.metadata' dict to store a cancellation status.
Safety
This is pretty well covered by tests and I have tested it locally. The cancellation checks are only executed every 1s so it won't add much load to the DB.

I'm curious if you considered just cancelling the celery task that's being used to get the response from the LLM and what your thoughts on that was? I think we should be able to do the following:

store the task id that's used to get an LLM response in the chat metadata.
When the chat is cancelled, we can look up the current task id, stop that one and start the new task.

Curious what your thoughts are?

I'm curious if you considered just cancelling the celery task that's being used to get the response from the LLM and what your thoughts on that was? I think we should be able to do the following:

store the task id that's used to get an LLM response in the chat metadata.
When the chat is cancelled, we can look up the current task id, stop that one and start the new task.

Curious what your thoughts are?

I did consider that but there are a few downsides:

it requires more plumbing (storing task ID's etc)
it's not recommended by Celery except for tasks that are hung
in some cases (e.g. assistants) we want to take some action when a task is cancelled (cancel the OpenAI run)


Iphone 7 & 7 plus support

How much more for the 7 & 7+ to be supported??

It has been said for a long time iPhone 7 only has 10.1 and below support

Was kindly asking a question, didn't want a hostile situation.

Didn't mean to be hostile haha

If User = 10.1.1 then
While being built
(wait)
wend
endif
if user = 10.2 < then
user = Boned
endif

sysname: Darwin
nodename: iPhone
release: 16.3.0
version: Darwin Kernel Version 16.3.0: Tue Nov 29 21:40:08 PST 2016; root:xnu-3789.32.1~4/RELEASE_ARM64_T8010
machine: iPhone9,4
missing offset, prob crashing
2017-01-26 14:20:23.272130 yalu102[230:7770] found corruption 38503

Probably no hope for iOS 10.2 jb iPhone 7 plus


add post 'Extend Falco inputs by creating a Plugin: Register the plugin'

Signed-off-by: Issif<EMAIL_ADDRESS>
What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind user-interface

/kind content

/kind translation

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area blog

/area documentation

/area videos

What this PR does / why we need it:
Second post about, with details about how to propose a plugin to the registry
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Issif
To complete the pull request process, please assign fntlnz after the PR has been reviewed.
You can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

LGTM label has been added.  Git tree hash: e14772b7ba3092ba0235ad60e5a079b77f06a2fa

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: danpopnyc, Issif
To complete the pull request process, please assign fntlnz after the PR has been reviewed.
You can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Issif
To complete the pull request process, please assign fntlnz after the PR has been reviewed.
You can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

LGTM label has been added.  Git tree hash: c41940744281b45811ad40a38fa302c0886ce4d8

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: danpopnyc, Issif
To complete the pull request process, please assign fntlnz after the PR has been reviewed.
You can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: danpopnyc, Issif
To complete the pull request process, please assign fntlnz after the PR has been reviewed.
You can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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


netflix vpn crackdown

Anyone else had problems recently with this setup?  I've only been running these docker images a few weeks, worked fine, until a few days ago...now, I can still search for/see US titles, but can't actually play them anymore.  Only US titles are affected, anything local works perfectly fine.

It's ont Netflix who blocked VPN on US ?

About three days ago I tested using Digital Ocean VPS in San Francisco
using Google Chrome as was able to switch catalogues between UK and US.
There is some lag in catalogue refresh it seems after your re-point DNS, so
it isn't instant. It might help logging it with another device, which
hasn't been logged in to Netflix for a bit (e.g. iOS, ATV, etc.).
Pick a title which you know isn't in your local catalogue (see,
http://netflixukvsusa.blogspot.co.uk/), switch DNS, clear DNS cache and
browser gunk, wait and don't forget to switch off IPv6.
-- ab1
On 21 January 2016 at 05:47, lesnox<EMAIL_ADDRESS>wrote:

It's ont Netflix who blocked VPN on US ?
—
Reply to this email directly or view it on GitHub
https://github.com/ab77/netflix-proxy/issues/57#issuecomment-173463749.

I think Netflix blocked Ramnode IP Range.

GO to ovh ! The VPS is not so expensive and we can have a located ip ;)

Is OVH working for Netflix?

Yes !!! :)  have one 2,99€ /HT
Envoyé de mon iPhone

Le 22 janv. 2016 à 17:57, newsera<EMAIL_ADDRESS>a écrit :
Is OVH working for Netflix?
—
Reply to this email directly or view it on GitHub.

Looks like as of yesterday, they've added Amazon (or at least a subset of it that I was using) to the block list.

Doesn't work on DigitalOcean anymore either

That is unfortunate. All my testing seems to suggest it is still working fine, but perhaps Netflix have started blocking individual IPs within DO allocations.
Perhaps try a different provider, like AWS EC2 with an elastic IP or Microsoft Azure (free 30 day trial).
Also, if you set up HE TunnelBroker IPv6 tunnel, it is likely you will get the Netflix US catalogue by default. This is an odd one, but it seems to be the case with my setup in London, using Chrome browser.

On 1 Feb 2016, at 18:49, Owen Williams<EMAIL_ADDRESS>wrote:
Doesn't work on DigitalOcean anymore either
—
Reply to this email directly or view it on GitHub.

@ab77 : like I said, amazon is blocked.
Until/unless netflix reduces their attack rate, its likely turning into a long term game of whack-a-mole.
Best bet is to do what I'm doing, which is installing something on a US resident's home network. I put haproxy with sni configs on an openwrt box at one, and a raspberry pi with similar haproxy config at another. From there, a reverse ssh tunnel using autossh back to the client end (need dynamic dns service or static IP) and you're golden. They aren't going to be killing IP's with 2-3-4 netflix accounts hooking through, just the ones that are feeding hundreds. Remember that it doesn't need to be a fast connection, since they are blocking via the authentication/control servers (very low data volume), not the data servers, which means that you can continue to pull the data directly off the CDN.
Should be able to easily substitute in your choice of proxy software like sniproxy. I use haproxy mainly because it is a standard package for most linux distros (i.e. openwrt, raspbian), and known to work with chromecast. Don't know if anything has changed, but last thing I heard was that chromecast and sniproxy don't get along particularly well; https://github.com/dlundquist/sniproxy/issues/64

That approach seems reasonable, as long as you can find willing US
residents :)
On 2 February 2016 at 14:16, lbdroid<EMAIL_ADDRESS>wrote:

@ab77 https://github.com/ab77 : like I said, amazon is blocked.
Until/unless netflix reduces their attack rate, its likely turning into a
long term game of whack-a-mole.
Best bet is to do what I'm doing, which is installing something on a US
resident's home network. I put haproxy with sni configs on an openwrt box
at one, and a raspberry pi with similar haproxy config at another. From
there, a reverse ssh tunnel using autossh back to the client end (need
dynamic dns service or static IP) and you're golden. They aren't going to
be killing IP's with 2-3-4 netflix accounts hooking through, just the ones
that are feeding hundreds. Remember that it doesn't need to be a fast
connection, since they are blocking via the authentication/control servers
(very low data volume), not the data servers, which means that you can
continue to pull the data directly off the CDN.
Should be able to easily substitute in your choice of proxy software like
sniproxy. I use haproxy mainly because it is a standard package for most
linux distros (i.e. openwrt, raspbian), and known to work with chromecast.
Don't know if anything has changed, but last thing I heard was that
chromecast and sniproxy don't get along particularly well;
dlundquist/sniproxy#64 https://github.com/dlundquist/sniproxy/issues/64
—
Reply to this email directly or view it on GitHub
https://github.com/ab77/netflix-proxy/issues/57#issuecomment-178593166.

Not that difficult, they have a population of over 320 million.

Feel free to re-build and test again, it is working again (at least for now).
-- ab1


chore: update deps and move vue to devDeps, fix #350

Closes #350
Apparently the problem was due to the package installing vue as dependency, thus causing some kind of conflict
Moving it to devDeps and re-building the package with Vue 3.2 solved the problem for me, run tests and it's all green

Hi @IlCallo
Thank you for raising an issue and fix. Can you try to remove yarn.lock and re-install dependencies again to confirm this problem?

I did it multiple times when testing the problem, to no avail

@neighborhood999 the problem is still present with latest releases
I rebased my branch on latest changes and added vue as peerDependency too
The problem may also be caused by this

2 version of Vue compiler are present, one required by Vue dep and the one is direct
Vue3 actually serves it's compiler via vue/compiler-sfc since 3.2, but apparently the used rollup plugin search for the direct dependency
Vue libraries compiled with compiler version <3.2 aren't compatible with apps using Vue 3.2, the duplicated compiler version in the yarn.lock may be the cause of my issue
Having vue as direct dependency is against best practices and can cause problems, can you test this and merge it if everything still works for you?
Otherwise I'll just republish it with the fix under my company scope

@neighborhood999 the problem is still present with latest releases I rebased my branch on latest changes and added vue as peerDependency too
The problem may also be caused by this
2 version of Vue compiler are present, one required by Vue dep and the one is direct Vue3 actually serves it's compiler via vue/compiler-sfc since 3.2, but apparently the used rollup plugin search for the direct dependency Vue libraries compiled with compiler version <3.2 aren't compatible with apps using Vue 3.2, the duplicated compiler version in the yarn.lock may be the cause of my issue
Having vue as direct dependency is against best practices and can cause problems, can you test this and merge it if everything still works for you? Otherwise I'll just republish it with the fix under my company scope

Sorry for the reply lately. I thought moving the Vue as the peerDependencies is make sense. I left a review, please help change and I will publish the beta version for test.

Done

Published<EMAIL_ADDRESS>please give it try.

Yep, it's working
Pay attention, as you're releasing beta packages under the "latest" tag, instead of "beta" one

Thank you for testing. You're right, it's my fault, I forgot to add the beta tag when I publish.


PVAYLADEV-861: Migration for modified configuration properties to ensure backwards compatibility

As per review comment, the modified configuration properties

signer.ocsp-cache-path (formerly in proxy-section)
signer.enforce-token-pin-policy (formerly in proxy-section)
need to have migration set up for any possible local configuration overrides present in currently installed systems. The migration scripts run after package installation will move any local configuration for these properties under the signer-section so that it is visible to the modified SystemProperties.

Cover for scenarios (migration script removes non-effective configuration with old keys):

no existing configurations → no values found, does nothing
only one of the 2 values configured → migration done separately for each, only one found, only one migrated, old configuration removed
both values configured → both values found and migrated, old configurations removed
existing values in both old and new sections → values under new section replaced with values under old section, old (non-effective) configurations removed


Add View.description

@constantinpape I added a new field to View.class: String description with default null. This is useful in order to add more info without making the View name too long. The description is printed when the user selects the view. Could you add this to the python API for creating a new view and also when adding a new image (which has a default view, which could have a description).

Hi @tischi,
the current situation in python and the spec is the following:
we have support for a description field associated with the source (so image, segmentation, spots,  but not with the views.
The description for sources can already be set from python, e.g. here.
So for supporting description in views we have different options:

We add description to view in addition to the description in source. (And then add a new argument in python, e.g. view_description)
Or we remove description in source and add it to view.

I am not sure if we have a use for a description associated with source; if not I would favor option 2 to keep everything simpler and avoid confusion between the two description fields.
What do you think?

Interesting...
I could not find a field for description of a DataSource in the Java code....
I however did find a field for description for Transformation, but with a TODO: "add to spec" (maybe we can open another issue for this?)
Since every source will anyway have a default view attached to it, I would also favour only having a description for View, to keep it simpler.

I however did find a field for description for Transformation, but with a TODO: "add to spec" (maybe we can open another issue for this?)

Yep, that sounds like a separate issue.

Since every source will anyway have a default view attached to it, I would also favour only having a description for View, to keep it simpler.

I agree. I will implement this and ping you once it's there.

I have implemented it but not fully tested. Just reopen this if you run into issues @tischi.


[Debugger] on MacOS - Java: Could not detect GDB's interpreter mode

Describe the bug
I cannot connect to a debugging target on macOS Big Sur (11.0.1)
To Reproduce

Click 'Create a new connection to a debugging target' on the Debugging Targets pane of the Debugger window in Ghidra
Select "IN-VM gnu gdb local debugger" and enter path to gdb executable ( /usr/local/bin/gdb )
Press connect

Expected behavior
Ghidra creates a connection to GDB
Screenshots

Attachments
Exception:
java.util.concurrent.CompletionException: java.io.IOException: Could not detect GDB's interpreter mode
---------------------------------------------------
Build Date: 2020-Dec-27 1528 CST
Ghidra Version: 9.3
Java Home: /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
JVM Version: Oracle Corporation 11.0.2
OS: Mac OS X 10.16 x86_64
Workstation: johnnys-mbp.domain

Environment (please complete the following information):

OS: macOS 11.0.1
Ghidra Version: 9.3 build DEV
Java Version: 11.0.2

Thanks for the information - need a little bit more to track this down.  What version of gdb are you running for starters?  Does it support the "new-ui" command?

@d-millar
GDB 10.1:
gdb --version
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Does it support the new-ui command?

Yes, it appears so:
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin20.1.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
*(gdb) new-ui
Usage: new-ui INTERPRETER TTY*

Just verified this works on Linux with GDB 10.1, but I don't have a macOS environment ready to go. I'd need a bit more information about the exception...
Does the error happen immediately, or after a 10-second timeout?
Best I can tell, it was thrown on Line 561 of GdbManagerImpl.java. If you add e as the "cause" parameter, rebuild, retry, and then post the complete stack trace, I might be able to figure it out.

Does the error happen immediately, or after a 10-second timeout?

The error occurs after a 10-second timeout every time
I added e as the "cause" parameter and rebuilt. Here is the trace from application.log
2020-12-28 15:05:42 DEBUG (Pty) New Pty: /dev/ttys002 at (144,147)
2020-12-28 15:05:43 DEBUG (GdbManagerImpl) Terminating agent.gdb.manager.impl.GdbManagerImpl@49492091
2020-12-28 15:05:43 ERROR (GdbModelTargetSession) Could not get GDB version java.util.concurrent.CompletionException: java.lang.IllegalStateException: GDB is terminating
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:371)
	at agent.gdb.manager.impl.GdbManagerImpl.terminate(GdbManagerImpl.java:680)
	at agent.gdb.manager.impl.GdbManagerImpl$PtyThread.run(GdbManagerImpl.java:136)
Caused by: java.lang.IllegalStateException: GDB is terminating
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:369)
	... 2 more

2020-12-28 15:05:43 DEBUG (PtyThread) STDOUT,null reader exiting because java.io.IOException: Underlying input stream returned zero bytes
2020-12-28 15:05:52 ERROR (DebuggerConnectDialog) Could not connect: java.util.concurrent.CompletionException: java.io.IOException: Could not detect GDB's interpreter mode

Here is the change I made to add e as the cause parameter:
diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
index 5fd9d018f..0b3d32b01 100644
--- a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
+++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
@@ -558,7 +558,7 @@ public class GdbManagerImpl implements GdbManager {
                                iniThread.hasWriter.get(10, TimeUnit.SECONDS);
                        }
                        catch (InterruptedException | ExecutionException | TimeoutException e) {
-                               throw new IOException("Could not detect GDB's interpreter mode");
+                               throw new IOException("Could not detect GDB's interpreter mode", e);
                        }

Thanks for the extra info. The log is actually more useful than just the stack trace :) . The "reader exited" line indicates we couldn't read the first line of output from GDB. This means either our use of PTYs on macOS is not quite working, GDB crashed before we got the first line, or your launch command is incorrect. Do which gdb and verify your GDB launch command in the dialog matches.
If it does, then I'd like to examine the exception caught and logged at GdbManagerImpl:137. If you add e as a parameter to Msg.debug, the log will include the stack trace.

Wow, well I can re-create the problem, but gdb on osx is a bit of a nightmare now.  For starters, looks like you may have to codesign the executable after installing, and at least the homebrew version doesn't appear to support Mach-O binaries by default.  Not sure about macports. @JohnyCurran: Any chance you've built your version of gdb from the Apple source and already codesigned it?

@nsadeveloper789
The gdb path is correct:
$ which gdb
/usr/local/bin/gdb

Here is the new log:
2020-12-29 12:30:15 DEBUG (Pty) New Pty: /dev/ttys003 at (141,145)
2020-12-29 12:30:16 DEBUG (GdbManagerImpl) Terminating agent.gdb.manager.impl.GdbManagerImpl@12dbd36f
2020-12-29 12:30:16 ERROR (GdbModelTargetSession) Could not get GDB version java.util.concurrent.CompletionException: java.lang.IllegalStateException: GDB is terminating
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:371)
	at agent.gdb.manager.impl.GdbManagerImpl.terminate(GdbManagerImpl.java:680)
	at agent.gdb.manager.impl.GdbManagerImpl$PtyThread.run(GdbManagerImpl.java:136)
Caused by: java.lang.IllegalStateException: GDB is terminating
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:369)
	... 2 more

2020-12-29 12:30:16 DEBUG (PtyThread) STDOUT,null reader exiting because java.io.IOException: Underlying input stream returned zero bytes java.io.IOException: Underlying input stream returned zero bytes
	at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)
	at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
	at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
	at java.base/java.io.InputStreamReader.read(InputStreamReader.java:185)
	at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
	at java.base/java.io.BufferedReader.readLine(BufferedReader.java:326)
	at java.base/java.io.BufferedReader.readLine(BufferedReader.java:392)
	at agent.gdb.manager.impl.GdbManagerImpl$PtyThread.run(GdbManagerImpl.java:111)

2020-12-29 12:30:25 ERROR (DebuggerConnectDialog) Could not connect: java.util.concurrent.CompletionException: java.io.IOException: Could not detect GDB's interpreter mode

Here's my diff:
diff --git a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
index 5fd9d018f..21db3bd51 100644
--- a/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
+++ b/Ghidra/Debug/Debugger-agent-gdb/src/main/java/agent/gdb/manager/impl/GdbManagerImpl.java
@@ -134,7 +134,7 @@ public class GdbManagerImpl implements GdbManager {
                        }
                        catch (Throwable e) {
                                terminate();
-                               Msg.debug(this, channel + "," + interpreter + " reader exiting because " + e);
+                               Msg.debug(this, channel + "," + interpreter + " reader exiting because " + e, e);

@d-millar
Unfortunately, I have neither built gdb from source nor codesigned it. My gdb was installed through homebrew. If it would be helpful I can build gdb (from here?), codesign it, and try again

I think the actual problem is the Mach-O format.  Before you do anything else, try running your version of gdb on your target from the command line.  Am betting even money it's unhappy.  If not, then I think I need to do more digging on my end.  If so, that link is the right one!

Seems like you're on to something with the file formats:
$ file `which ls`
/bin/ls: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/ls (for architecture x86_64):	Mach-O 64-bit executable x86_64
/bin/ls (for architecture arm64e):	Mach-O 64-bit executable arm64e
$ gdb /bin/ls
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin20.1.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
"0x7ffeea1ba730s": not in executable format: file format not recognized
(gdb)

You may have to manually extract the Mach-o file you want to debug from the Universal Binary container file.

Yeah, unfortunately, that doesn't help you out in this case.  The binaries extracted by something like lipo are still unrecognized by the brew version of gdb.

Okay so I wrote a tiny C program, compiled it with clang, and tried to launch it with gdb. Crashes completely when I try to run it:
Clang:
$ clang --version
Apple clang version 12.0.0 (clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

source:
#include<stdio.h>
#include<stddef.h>

char *series_sum(const size_t n);

int main() {
    printf("%s", series_sum(0));
}

char *series_sum(const size_t n) {
    if (n == 0) return "0.00";
}

when I load to GDB:
$ clang -o s seriesSum.c
seriesSum.c:12:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
$ file s
s: Mach-O 64-bit executable x86_64
$ gdb s
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin20.1.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from s...
(No debugging symbols found in s)
(gdb) run
Starting program: /Users/johnny/cprograms/s
[New Thread 0x2803 of process 72451]
[New Thread 0x1903 of process 72451]
../../gdb/target.c:2149: internal-error: void target_mourn_inferior(ptid_t): Assertion `ptid == inferior_ptid' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

Ghidra still crashes with same error as the original issue.
Is this not a Ghidra issue then? Is it a MacOS gdb problem?
@d-millar Should I compile & sign my own gdb?

I must concede I don't think I have a complete grasp of the real problem, but I can give you my best guess.  Googling for the error message we're getting, you find things like this reference:
[(https://stackoverflow.com/questions/52529838/gdb-8-2-cant-recognized-executable-file-on-macos-mojave-10-14)]
Obviously, this is an older version of MacOS and an older version of gdb, but, given the move away from gdb toward lldb since Mavericks, I would not be surprised if the problem is similar or the same.  Natively compiled MacOS executables, of course, use the Mach-O file format, and may be further packed into Universal Binaries, as noted by @ryanmkurtz.  If changes are made to the build chain that have not been matched by changes in gdb with regard to the format, gdb is likely to fail.  I do not actually no whether the version maintained by homebrew or macports can, in fact, handle Mach-O binaries built on, say, Big Sur.  It's possible they can, and we're just missing some setting that tells gdb what to do.  Will keep looking into this, but honestly I don't know.
The simplest setup with the fewest possible paths to failure would be to repeat what you've done, i.e. compile a very simple program with Clang.  Make sure the output is a single Mach-O (rather than a Universal Binary).  Build gdb from the opensource.apple.com, and sign the resulting executable.  Then test the result and cross your fingers.
I'm sure there may be issues after that related to Ghidra, but, sadly, this is not really a Ghidra problem.  This is more of a MacOS vs gdb issue.  Ghidra debugger at its core is only a wrapper around the native functionality, and, if the native debugger fails, Ghidra can do little to save it.
Which isn't to say, we're uninterested in the results here - we definitely are.  We were hoping the current versions of lldb would work with the gdb machine interface, but it appears Apple is moving away from support for GDB/MI in favor of the LLDB.Framework API.  Support for this in Ghidra will entail writing a new lldb model - probably a month or so of dedicated work - so anything we can do to get interim versions running on MacOS would be a huge win.
Appreciate all your efforts on this!

I think it's both-and in terms of the problems. Since GDB can run well enough to get a REPL, Ghidra should have at least been able to connect, but Ghidra doesn't appear even to receive GDB's first line of output. For that issue, it seems like a simple I/O problem with the Pty. That said, if GDB isn't a viable solution on macOS, anyway, figuring out the I/O issue won't get us much mileage.
In the hopes that we find the magic setting for GDB, we can try using some of the unit tests to test the Pty theory:
https://github.com/NationalSecurityAgency/ghidra/blob/debugger/Ghidra/Debug/Debugger-agent-gdb/src/test/java/agent/gdb/ffi/linux/PtyTest.java
FWIW, even on Linux, these tests can be iffy. If you have Eclipse set up, you can run them the usual way. They're even iffier under Gradle (who knows why?), but you can do that without Eclipse:
gradle Debugger-agent-gdb:test --tests=agent.gdb.ffi.linux.PtyTest

Our dependency graph for tests in Gradle is a little obtuse, so be patient while it builds. I don't think that command will produce an HTML report, but there should be few enough tests that you can just examine the console output.

Thank you everyone for all of your help on this, I greatly appreciate it.
@d-millar
I uninstalled gdb through brew brew uninstall gdb
So on opensource.apple.com, the latest GDB version I could find was from 2012. I did download that tarball ( https://opensource.apple.com/tarballs/gdb/gdb-1824.tar.gz ) But I could not get it to build on my machine (Is there a more up-to-date source from Apple I missed?)
So I downloaded the 10.1 source from http://ftp.gnu.org/gnu/gdb/gdb-10.1.tar.gz and built & code signed (self-signed cert) the binary successfully. Unfortunately, no dice on launching gdb. (Same source & Mach-O binary as previous comment). Log looks to be the same:
2020-12-30 12:00:09 DEBUG (Pty) New Pty: /dev/ttys002 at (160,161)
2020-12-30 12:00:09 DEBUG (GdbManagerImpl) Terminating agent.gdb.manager.impl.GdbManagerImpl@1a435b6f
2020-12-30 12:00:09 ERROR (GdbModelTargetSession) Could not get GDB version java.util.concurrent.CompletionException: java.lang.IllegalStateException: GDB is terminating
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:371)
	at agent.gdb.manager.impl.GdbManagerImpl.terminate(GdbManagerImpl.java:681)
	at agent.gdb.manager.impl.GdbManagerImpl$PtyThread.run(GdbManagerImpl.java:136)
Caused by: java.lang.IllegalStateException: GDB is terminating
	at ghidra.async.AsyncReference.dispose(AsyncReference.java:369)
	... 2 more

2020-12-30 12:00:09 DEBUG (PtyThread) STDOUT,null reader exiting because java.io.IOException: Underlying input stream returned zero bytes
2020-12-30 12:00:19 ERROR (DebuggerConnectDialog) Could not connect: java.util.concurrent.CompletionException: java.io.IOException: Could not detect GDB's interpreter mode

@nsadeveloper789
I don't have eclipse set up - Running the tests under gradle throws lots of IllegalAccessExceptions (and then hangs at 99% executing), see output:
$ gradle Debugger-agent-gdb:test --tests=agent.gdb.ffi.linux.PtyTest
Starting a Gradle Daemon, 2 incompatible and 1 stopped Daemons could not be reused, use --status for details

> Task :Debugger-agent-gdb:test
:Debugger-agent-gdb:test started: Wed Dec 30 12:05:38 CST 2020
Test Machine Name: Unknown.domain
Root Test Dir: build
Test Output Dir: /Users/johnny/ghidradebugger/build/output
Test Temp Dir: /Users/johnny/ghidradebugger/Ghidra/Debug/Debugger-agent-gdb/build
Test Report Dir: /Users/johnny/ghidradebugger/Ghidra/Debug/Debugger-agent-gdb/build/JUnit/reports
Java Debug Port: 18344
Listening for transport dt_socket at address: 18344
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/Users/johnny/.gradle/caches/modules-2/files-2.1/org.python/jython-standalone/2.7.1/942c3294840dc9dfb3528d775f4d02a6d57c421f/jython-standalone-2.7.1.jar) to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

agent.gdb.ffi.linux.PtyTest > testForkIntoNonExistent STANDARD_OUT
    New Pty: /dev/ttys003 at (97,98)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/Users/johnny/.gradle/caches/modules-2/files-2.1/org.python/jython-standalone/2.7.1/942c3294840dc9dfb3528d775f4d02a6d57c421f/jython-standalone-2.7.1.jar) to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.RuntimeException: errno=2: No such file or directory
        at agent.gdb.ffi.linux.PtySessionLeader.checkErr(PtySessionLeader.java:47)
        at agent.gdb.ffi.linux.PtySessionLeader.run(PtySessionLeader.java:60)
        at agent.gdb.ffi.linux.PtySessionLeader.main(PtySessionLeader.java:31)

agent.gdb.ffi.linux.PtyTest > testSessionBash STANDARD_OUT
    New Pty: /dev/ttys003 at (97,98)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/Users/johnny/.gradle/caches/modules-2/files-2.1/org.python/jython-standalone/2.7.1/942c3294840dc9dfb3528d775f4d02a6d57c421f/jython-standalone-2.7.1.jar) to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.lang.RuntimeException: errno=2: No such file or directory
        at agent.gdb.ffi.linux.PtySessionLeader.checkErr(PtySessionLeader.java:47)
        at agent.gdb.ffi.linux.PtySessionLeader.run(PtySessionLeader.java:60)
        at agent.gdb.ffi.linux.PtySessionLeader.main(PtySessionLeader.java:31)
<============-> 99% EXECUTING [19m 55s]
> :Debugger-agent-gdb:test > 1 test completed
> :Debugger-agent-gdb:test > Executing test agent.gdb.ffi.linux.PtyTest

I'll update this output if the test finishes

It won't finish. I probably need a timeout there, too :) No matter. This definitely found the Ghidra part of the problem. It deals in trying to connect the GDB subprocess to the Pty. For whatever reason, it thinks the Pty doesn't exist. (See PtySessionLeader:60 as reported in the stack trace). I'm assuming this didn't show up in the application log, because it gets printed to stderr (we're in the subprcess at this point, preparing to execve, so we can't use the application log). This is not an issue I'm prepared to resolve at the moment, though the comment on Line 58 might be a clue. Unfortunately, I forgot to note the URL where I read about this.

FWIW, we've discussed the idea of writing an alternative connector that accessed GDB/MI over SSH. If we were to move forward with that, and it were successful, it would likely overcome this Pty issue.

FWIW, we've discussed the idea of writing an alternative connector that accessed GDB/MI over SSH. If we were to move forward with that, and it were successful, it would likely overcome this Pty issue.

Appreciate all your work looking into this. I'll keep the issue open as something to reference for whichever implementation route you choose to take (Unless you deem it suitable to close - I'm no maintainer so I have no decision making power here). For me, I'll continue on in Linux userland for running GDB for now

Appreciate all your work looking into this. I'll keep the issue open as something to reference for whichever implementation route you choose to take (Unless you deem it suitable to close - I'm no maintainer so I have no decision making power here). For me, I'll continue on in Linux userland for running GDB for now

I'm having this issue too.
Some thoughts:

macports gdb lives (for me) in a different location, and perhaps not what one expects:

$ port  contents gdb|tail -n +2|xargs -n 1 -I {} find '{}'  -perm +111 -type f
    /opt/local/bin/ggdb
    /opt/local/bin/ggdb-add-index

Don't forget (patronisingly) that SIP needs tweaking for debugging support -- either csrutil disable or csrutil enable --without debug to taste
Gdb requires codesigning.  Alternatively, running it as root works (but is moderately stupid, especially with an untrusted binary...but then you should be doing it all in a VM anyway, with plenty of snapshots and probably no network access, right?)
The version of gdb I have (10.2) can't deal with phat Mach-O binaries. lipo -thin x86_64 /Path/To/App.app/Contents/MacOS/App -output /tmp/App and then move the new thin binary in place. Swap x86_64 for aarch64 if relevant. Hope that the target doesn't independently check its own .app bundle.
I then found that using GDB/MI over SSH "just worked" with Ghidra.

Going with 5 :)
That said, support for lldb is well-under way.  Doesn't save you from the codesigning issue, however, if you're attaching the debugger vice launching the executable directly.


improv(cli): change key prompts to password

Since we're pasting keys in the terminal, it feels better to do it if the fields are password instead of plain text.
Without these changes:

With these changes:

Thanks @tjoar definitely needed


debug mode - stack length polyfill, or something like that.

Need debug mode. In this mode the stack generation is turned on. Otherwise it is turned off, so you won't be able to get stack. Another possible solution to add stack length settings, so it can be set to 0. I am not sure how much an overhead the stack generation is, but it is better to turned off in production, except if we want detailed error messages with backtrace.

Hmm I think the default should be debug mode, and in production devs should be able to turn off stack generation. So the current settings are okay. Decreasing the stack length is possible, increasing is not possible in many browsers.

Closing in favor of #84


fix Operator reconciliation for external Central DB

Description
I deployed Central via the Operator in a PR, and it was stuck crash-looping because the x509 cert for Central DB was given Scanner DB's data. This needs to be populated with Central DB data.
This was correct for some time until this PR https://github.com/stackrox/stackrox/pull/3322
Checklist

[x] Investigated and inspected CI test results
~[ ] Unit test and regression tests added~
~[ ] Evaluated and added CHANGELOG entry if required~
~[ ] Determined and documented upgrade steps~
~[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)~

Testing Performed
Deploy Central via the Operator created by this PR and see that it no longer crash loops due an incorrect x509 cert (perhaps it crashes due to some other reason, but this PR does not care about that 😄). Along with this, you can see central-db-tls's cert.pem is correctly for Central DB. You can copy and paste it from the OpenShift console and then run something like openssl x509 -in cert.pem -text to look at the contents of the cert. You will see something along the lines of Subject: OU=CENTRAL_DB_SERVICE, CN=CENTRAL_DB_SERVICE: Central DB/serialNumber=XXXXXXXXXXXXXX and
X509v3 Subject Alternative Name:
                DNS:central-db.stackrox, DNS:central-db.stackrox.svc

Hoping this is just some flake:
    endpoints_test.go:199:
        	Error Trace:	/go/src/github.com/stackrox/stackrox/tests/endpoints_test.go:199
        	            				/go/src/github.com/stackrox/stackrox/tests/endpoints_test.go:129
        	            				/go/src/github.com/stackrox/stackrox/tests/endpoints_test.go:515
        	Error:      	Should be true
        	Test:       	TestEndpoints/service-only_TLS_port_with_no_client_cert
        	Messages:   	expected error to be of type x509.HostnameError, was: *net.OpError (dial tcp [::1]:18444: connect: connection refused)

/retest


Submitted CP checkpoint does not correspond to the model architecture in the current version

Run:  python cp_test.py --task $TASK --polyvore_split nondisjoint --test_batch 96 --data_dir $DATA_DIR --checkpoint $CHECKPOINT
Output
/Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension: dlopen(/Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/torchvision/image.so, 0x0006): Symbol not found: __ZN2at4_ops19empty_memory_format4callEN3c108ArrayRefINS2_6SymIntEEENS2_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6DeviceEEENS6_IbEENS6_INS2_12MemoryFormatEEE
  Referenced from: <3F789787-FE38-3CE7-8599-064BDD0416EE> /Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/torchvision/image.so
  Expected in:     <98993E81-78F8-3504-938B-4D1F9450D4C6> /Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/torch/lib/libtorch_cpu.dylib
  warn(f"Failed to load image Python extension: {e}")
Use OutfitTransformer Embedding for recommendation.
/Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.
  warnings.warn(
Traceback (most recent call last):
  File "/Users/user_name/Desktop/OutfitTransformer/cp_test.py", line 75, in <module>
    model, input_processor = load_model(args)
  File "/Users/user_name/Desktop/OutfitTransformer/src/models/load.py", line 56, in load_model
    recommendation_model.load_state_dict(state_dict)
  File "/Users/user_name/.pyenv/versions/3.9.16/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1604, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for RecommendationModel:
        Missing key(s) in state_dict: "embedding_model.text_encoder.embeddings.position_ids".

Having the same problem as well. Seems like the provided checkpoints do not match with the model's architecture


master/scheduler: support bound multi sources for dm-workers

What problem does this PR solve?

Issue Number: close https://github.com/pingcap/tiflow/issues/4687
What is changed and how it works?

Support bind multi-sources for one worker
Support starting several relay sources on one worker.

Check List
Tests

Unit test
Integration test

Code changes

Has exported function/method change
Has exported variable/fields change
Has interface methods change

Side effects

Possible performance regression
Increased code complexity
Breaking backward compatibility

Related changes

Need to update the documentation

Release note
support scheduler bound multi-sources for dm-workers

replaced by https://github.com/pingcap/tiflow/pull/5077


Added colab example

Closes #78
This PR depends on #68

When I tried running this I got an error on !pip install mosaicml:
ERROR: Could not find a version that satisfies the requirement mosaicml (from versions: none)
ERROR: No matching distribution found for mosaicml

When I tried running this I got an error on !pip install mosaicml:
ERROR: Could not find a version that satisfies the requirement mosaicml (from versions: none)
ERROR: No matching distribution found for mosaicml

I think make sure you're using >=3.8 for python, as 3.7 support hasn't been officially released to pypi yet.  That's my guess

Makes sense - I'll revisit this PR later then.

If possible, would love to have an integration test on this example.  I think it'd likely be very useful to make sure out examples don't go out of date

@Averylamp great point, added a test.


[Consider] Default globbing of srcs, settings, resources, etc

Dotnet has several default globs for items in the project file.
In bazel, globbing appears to only be executed at build file evaluation time, and the glob function appears to not be usable as a default value for attrs.
Potential solutions to implement dotnet defaults:

turn dotnet_* rules into macros

this might be awkward because it would always produce other targets, i.e. the user specifying target_name would result in target_name_srcs and target_name_settings and target_name_resources in order to glob the input directory properly. This might overall be an advantage so that those items can be treated differently for xml doc generation and resource genration though.

implement automated build file generation so the user doesn't care

For now, given that automated build file generation is planned in the "Usable" milestone in #84, I'm going to leave this issue in the backlog.

already implemented.


Update requirements.txt

I look like the crf-with-adabound was deleted.

I apologize for the inconvenience.
Currently, I work on updating dependencies.

I decided to close this issue because #37 includes this PR.
Thanks very much for your great contribution. 😸


feat: require approval

Fixes or implements VF-XXX
Brief description. What is this change?

Implementation details. How do you make this change?

Setup information

Deployment Notes

Related PRs

branch
PR

other_pr_production
link

other_pr_master
link

Checklist

[ ] this is a breaking change and should publish a new major version
[ ] appropriate tests have been written

bors +r

bors r+

bors r+

bors merge


Fix rlp version

fix #253
This patch adapts the rlp version to latest devp2p.
https://github.com/ethereum/pydevp2p/blob/v0.9.2/requirements.txt

Oh, sorry. In Travis CI, the coverage test resulted in errors.
There is a missing dependency because latest tinyrpc uses geventwebsocket in a specific way.
To solve the dependency, it is necessary to specify [websocket] when installing tinyrpc.
pip install tinyrpc[websocket]
I will fix this soon.


[GitLab] How to find a MR list whose author is mine

Extension – GitLab
Author: @tonka3000
Describe the feature and the current behavior/state.
I can't use My Merge Requests command to filter through author

Hi @404J ,
You can do the by type author=<username> in the search bar. Most of the GitLab filters are supported that way. You can also use author!=<username> to get the opposite result.

Raycast has no native feature for that, so there is no auto-completion or something for now (see #88 or #87).
Greetings
Michael

Get it! @tonka3000


Add available(iOS 13) to remaining ConnectMocks classes

This adds @available(iOS 13.0, *) tags to the rest of the classes in ConnectMocks that don't have it. Currently generating mocks on iOS results in a broken build.

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

Woops this is a dupe of https://github.com/bufbuild/connect-swift/pull/129

Just merged #129, thank you for this @eddiekaiger!


Polish attributes API

Follow up to #16.  See https://github.com/atlas-engineer/prompter/pull/16#issuecomment-1582689618.
The attributes API suffers from bit rot.
What needs to be tweaked:

attributes-default, attributes-keys-default and friends are poorly names, because they sound like they return the "default" of the attribute (which makes no sense), while it's the default attribute that's returned.  Better names would be default-attribute, etc.
Futures start being computed in object-attributes.  Can we defer to later?  Can we add an option to choose when to compute it?
object-attributes should return attribute objects instead of the ad-hoc lists.
We've used list because of how attributes are declared in the object-attributes methods, but really there is no need to keep lists, we can very well use lists to declare opaque attribute objects, which then would have a proper API and which upstream would not destructure manually.
Considering the above, we need a better way to handle attribute options.  Nyxt uses position 3 and 4 in the declaration for width calculation and styling.  It should be stored in the new attribute object, but where?  In a plist / hash-table?  We need a way to refer to these options in a non-conflicting way: let's keep in mind that other libraries may have options with the same naming but different value.  So we could index by package-prefixed symbols.  Example

(defmethod prompter:object-attributes ((buffer buffer) (source prompter:source))
  (declare (ignore source))
  `(("URL" ,(render-url (url buffer)) :html "..." :width 3)
    ("Title" ,(title buffer) :width 2)
    ("ID" ,(id buffer))))

would return an attribute object with slot options set to ((nyxt:html "...") (nyxt:width 3)), or something like that.
@aartaka What do you think?  I remember you arguing in favour of positional options.

attributes-default, attributes-keys-default and friends are poorly names, because they sound like they return the "default" of the attribute (which makes no sense), while it's the default attribute that's returned.  Better names would be default-attribute, etc.

Agreed!

Futures start being computed in object-attributes.  Can we defer to later?  Can we add an option to choose when to compute it?

To allow even lazier evaluation and getting attribute values only when these are required? I don't see the immediate benefit, but that sounds good.

object-attributes should return attribute objects instead of the ad-hoc lists.

Ad-hoc lists are so easy to work with 😞 But yeah, you're right here.

We've used list because of how attributes are declared in the object-attributes methods, but really there is no need to keep lists, we can very well use lists to declare opaque attribute objects, which then would have a proper API and which upstream would not destructure manually.

Yes!

Considering the above, we need a better way to handle attribute options.  Nyxt uses position 3 and 4 in the declaration for width calculation and styling.  It should be stored in the new attribute object, but where?  In a plist / hash-table?  We need a way to refer to these options in a non-conflicting way: let's keep in mind that other libraries may have options with the same naming but different value.  So we could index by package-prefixed symbols.  Example

(defmethod prompter:object-attributes ((buffer buffer) (source prompter:source))
  (declare (ignore source))
  `(("URL" ,(render-url (url buffer)) :html "..." :width 3)
    ("Title" ,(title buffer) :width 2)
    ("ID" ,(id buffer))))

If I got you right, you're suggesting returning a single attribute object from the prompter:object-attributes, with all the contents somehow indexed inside it. How about:

Returning a list of attribute objects,
And then having attribute to have a value slot and name slot,
With more slots added by the application-specific attribute subclass.

This way we have both :width ... :html ... plists (initargs for a singular attribute), simple data model (lists of predictable attributes), and the lazy computation direly necessary for this API.

@aartaka What do you think? I remember you arguing in favour of positional options.

I don't remember why I did, but right now I'm on the side of having more structure 😅

Returning a list of attribute objects,

And then having attribute to have a value slot and name slot,

With more slots added by the application-specific attribute subclass.

Oh yes!  That makes total sense, I can't see why I didn't think of subclassing, I guess my nose was still stuck to the list-based API! :p


Live Reload Implemented

Hello,
I have enabled the Live Reload feature in ElectronNET CLI with new command "debug". This feature helps me a lot to increase my development when I need to test my methods with an electron window.
To view the video demo please click on this http://somup.com/cYej1tha0Q link
To enable the LiveReload you have to set the LiveReload variable to true see the below code in Startup.cs
public async void ElectronBootstrap()
 {
 var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions {
                Width = 1500,
                Height = 940,
                Show = true,
                LiveReload = true,
                DarkTheme = true
 });
await browserWindow.WebContents.Session.ClearCacheAsync();
browserWindow.OnReadyToShow += () => browserWindow.Show();
browserWindow.SetTitle("LiveReload Demo");
}

If you like this feature to be apart of ElectronNET please approve and merge and I create an actual demo video for step by step how to enable live reload with ElectronNET.
Thank yous

@GregorBiswanger

You removed important code in ElectronNET.Host/main.js - Please integrate again and see that your solution runs with it

Will do that asap

@syedadeel2 If it helps you, here are a few tips for live reload in this issue >> #305

@syedadeel2 If it helps you, here are a few tips for live reload in this issue >> #305

Thank you, I'll take care of that - just a little busy with office stuff once finish I will push the new changes asap. Thank you once again.

I think I have a solution how we can enable a reload feature with less code... so that you only need a command like electronize start /watch - The best thing to do is contact me via the gitter..

I think I have a solution how we can enable a reload feature with less code... so that you only need a command like electronize start /watch - The best thing to do is contact me via the gitter..

Sure, I'll contact you asap. whats the URL for Gitter?

I think I have a solution how we can enable a reload feature with less code... so that you only need a command like electronize start /watch - The best thing to do is contact me via the gitter..

Sure, I'll contact you asap. whats the URL for Gitter?

nevermind I found it.

https://gitter.im/ElectronNET/community - write me a dm @BFreakout

starting work on this now...

I write you on gitter...

I write you on gitter...

Yes, I saw that I have already fixed and finished the Live-Reload with /watch and only 1 file get changed lesser code :) going to push tonight after testing.


[BUG] bar chart cause memory crash in chrome after last chrome update ( updat 60)

Bar chart was working fine on chrome , but today when chrome install last update ( Version 60.0.3112.90 (Official Build) (64-bit) )
it start crash with message of " Not enough memory"
doughnut still works fine but bar is not

Can you build a jsfiddle that crashes in Chrome 60?

I'm using it on salesforce, and after investigation it seems happen only on salesforce Lightning component
I create sample component which cause crash:
component:
`<aura:component controller="chartReportExtension" implements="lightning:actionOverride,force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes"  access="global">
<ltng:require  scripts="{! $Resource.Chart}"
      afterScriptsLoaded="{!c.jsLoaded}" />

<aura:handler name="init" value="{!this}" action="{!c.doInit}" />

<div aura:id="canvas-holder" style="width:40%">

  <canvas aura:id="chart-area" />

`
controller:
`({
doInit: function(component, event, helper) {
},
jsLoaded : function(component, event, helper) {
console.log("1");
var config = {
type: 'bar',

  data: {

     datasets: [{

        data: [

             100,

               50,

             20,

             110,

              10,

          ],

        backgroundColor: [

            '#18335C','#1FB1C9','#ADCDC1','#D7C77E', '#0066ff'

          ],

         label: 'Dataset 1'

      }],

     labels: [

           "Red",

        "Orange",

         "Yellow",

          "Green",

          "Blue"

      ]

}
};
    console.log("2");

   var ctx = component.find("chart-area").getElement().getContext("2d");

console.log("3");
var myDoughnut = new Chart(ctx, config);
console.log("4");
}
})`
I created same example as html file ( without salesforce) and it is working fine
but with lightning salesforce it crash

I don't use Salesforce Lightning and without any live test case, it will be hard to guess what's going on. We would need more error logs and know exactly where it crashes and why.

The warning :: "[Violation] 'requestAnimationFrame' handler took 474ms" message is just chrome warning about the length of time render took.
@sundusSabbah have you reported this issue to Salesforce? It sounds like something in their environment causes problems.

the crash seems to happen during loading library, because as you see in the example I added console.log statements but none of these statements are executed

Closing due to lack of test case and because I think this is a salesforce issue


Plot SNR vs d_z

We'd like to plot the output SNR against the radial offset $d_z$. The plot should tell us the level at which the SNR stabilizes with a threshold of SNR_threshold = 100. Notice that there are many parameters that could be vary here, but let's try to keep it consistent. Potential things to vary:

Noise level
d_z range
Observing frequency
Dish diameter (primary mirror)
After this exercise we should know, roughly, what are the best combinations between $d_z$ and observing frequency.

I plotted the SNR vs d_z for 3 different levels of noise.  the d_z is increased from 0 to 10 with a 0.5 increment. note that the y axis is logarithmic. from this is easy to see how the snr falls-off as the telescope gets more and more defocused.  we also can see how different frequencies are affected differentely.

here is another one where I increase the d_z from -5 to 5 with a 0.2 increment.

Could you plot only the portion positive for $d_z$? adding the $-d_z$ I do not think includes more information since it should be the same.
What surprises me is the fact that different frequencies do not differ that much? or I am thinking this wrong?
Perhaps we should think about how to properly compute the SNR as well ...

Also, since we know this from optics, what is the expected size of the out-of-focus beam given a certain frequency and $d_z$? With this information we could perhaps select the area (in squared degrees) for the SNR?

Here is the graph showing only the positive d_z.

Could you plot only the portion positive for dz? adding the −dz I do not think includes more information since it should be the same. What surprises me is the fact that different frequencies do not differ that much? or I am thinking this wrong? Perhaps we should think about how to properly compute the SNR as well ...

My interpretation is that for very high values of d_z the results shouldn't change much because we are getting the whole beam regardless, and for very high values, we are getting mostly noise, so we should only care for what happens in the middle. In this case for example we can see there is a significant difference in the d_z in which the SNR goes lower than 100 which I think is interesting.
Regarding the calculation of SNR, in the case of the simulation we can exactly what's  signal and what noise so we can calculate the exact SNR and use that as a baseline. Im not sure how to estimate it from real data though, in some applications you can estimate by dividing the mean by the variance of the data, but im not sure that is valid for our purposes.


Connected component 2d

Adding "proper" spot finding i.e. the connected component analysis

Reported here


[CARBONDATA-3413] Fix io.netty out of direct memory exception in arrow integration

problem : io.netty out of direct memory exception in arrow integration
cause: In ArrowConverter, allocator is not closed
solution: close the allocator in arrowConverter.
Also handle the problems in test utility API
Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[ ] Any interfaces changed? NA

[ ] Any backward compatibility impacted? NA

[ ] Document update required? NA

[ ] Testing done
done. Updated UT.

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

@kumarvishal09 : please check

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/3447/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/3650/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/11714/

LGTM, @kumarvishal09 please review once

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/3490/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/3694/

Build Success with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/11760/

LGTM


#34 | Add. Address Hierarchy in Patient Registration

Co-authored by - Riya Kumari & Deepti Rawat

Please check if village/subdistrict can be mapped automatically from the Bahmni login location! or make Village/City as mandatory field.

Please check if village/subdistrict can be mapped automatically from the Bahmni login location! or make Village/City as mandatory field.

Yes, village/subdistrict is now mapped automatically from the Bahmni login location


nz-input is not a known element

Version
0.7.0-beta.4
Environment
ubuntu 16.04
Reproduction link
https://ng-zorro-antd-setup-zdi8wf.stackblitz.io
Steps to reproduce
just create a basic  nz-input
What is expected?
nz-input  to work
What is actually happening?
nz-input is not working
Other?
I was following the documentation https://ng.ant.design/#/components/form to create a form with some  nz-input  but it seems that the components didn't exist anymore

you have to specify verison of ng zorro now

@vthinkxie  by default it installs 0.6.15 (using npm), when changing 0.7.0-beta4, the less file does appear. In the documentation the English nor the Chinese version say anything about changing the package version, even though the URL route says "0.7.x", I could make a PR to update the docs in both version if you are cool with that. I love this project and I know how annoying is people reporting the same thing over and over. What do you think?

Hi @albe-rosado , we will make 0.7.0 be the default version in days, thanks for your advice.

@vthinkxie thanks to you guys for this project!


[MODULE] Add exercises and review DPO and ORPO module

This PR is to finalise module 2 for release on December 6.

Thanks.


fix: encoding issues

When creating a bin, via the browser, encoding problems occurred.
Indeed, the browser did not send the form in utf8, but in probably another encoding.
This could cause encoding problems, especially on the display.
To solve this problem, the use of a form-data accompanied by
an charset-accept and a http-equiv ContentType proved to be efficient.
Closes: #100.

It should be noted that it is neither the accept-charset nor the http-equiv content-type that solved the problem.
This is the form-data enctype that solves the bug. But I still preferred to put them on.

Commit message should be amended, the form is sent in pure ascii using the "Quoted-Printable" binary to text-ascii encoding (see rfc2045).
Attached, a wireshark dump. The interesting bytes are 48 25 43 33 25 41 39 6c 6c 6f which are ascii characters for H%C3%A9llo. That's it, 25 43 33 25 41 39 is literally %C3%A9 which is the Quoted-Printable of UTF-8 é.
anglit.pcapng.gz

More findings, dumps are attached
russian.zip
Firefox uses Quoted-Printable even when Base64 would be shorter
Edge does the same
cURL sends the body encoded in latin-1 even if the input text was UTF-8 encoded


Update badges in README.md

Fix incorrect badge link, add badge for dependabot, and temporary comment out gemnasium badge.

This change is

:lgtm:


Source Sync 🔄

Pulls in Changes from the Source Template

https://github.com/onwidget/astrowind/pull/217
https://github.com/onwidget/astrowind/pull/221

.deploy

.deploy

.deploy


fix[elasticsearch]: add node to voting configuration exclusions list when the cluster is horizontal scaling in

… list when the cluster is horizontal scaling in

/cherry-pick release-0.9

/cherry-pick release-0.8


Sovrin 0.1.138

Includes all changes of 0.1.137 (Fix some tests) + fix for travis config.

@dhh1128
I can answer on second question.
Yes it should be renamed. I will do it in future update.


Ignore existing commands when installing cash-global

Is there a way to force the installation of commands when using cash-global? I saw nothing in docs and couldn't find the source to see if there was anything I could try.

I didn't make a way for this, as this would create path conflicts and unexpected behavior.
What is an example use case?

I have ls installed via git tools, but not added to my path (so I cannot use it in regular cmd, but the do work in the git-enabled terminal). When trying to install, it says they already exist and skips them. How does it check if it is installed? Where in the code is that written?

It actually checks path, I believe with the windows where command, so it appears to be in your path.

I understand. I ended up just adding the git /usr/bin directory to the path, which means I don't get to use cash, but at least it keeps my box DRY :wink: But I love the idea of cash, keep up the great work!


Material!

New Duarte-approved look.
I removed most of the superfluous type, namely the italic headings (light, bold, and semibold), since there's no instance of them being used nor can I think of any future situation that they would be (strong italic also got the cut since that's bad typographic practice). Kept the normal weight though since it's the body font.

Thanks for this. Merged.


Documents are not accurate on how to activate account

On the page for activating your windows developer account for visual studio, it says to click the link
https://developer.microsoft.com/ and then click signup. In the picture it shows Signup being part of a Store menu selection.
there is no such selection on it and no where to click sign up. Can you please update how you would do this please?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9339facb-e027-7d83-b1ab-b4c4363a109b
Version Independent ID: c9000f86-0aa5-59ff-d3e0-a0e649708b88
Content: Windows Developer Account Benefit in Visual Studio Subscriptions
Content Source: subscriptions/vs-windows-dev.md
Product: visual-studio-family
Technology: vs-subscriptions
GitHub Login: @evanwindom
Microsoft Alias: v-evwin

@evanwindom -- I am unable to assign this issue to you, and it requires an assignee.

Caity it is, then.
From: William Anton Rohm<EMAIL_ADDRESS>Sent: Wednesday, June 17, 2020 6:14 PM
To: MicrosoftDocs/visualstudio-docs<EMAIL_ADDRESS>Cc: Evan Windom<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/visualstudio-docs] Documents are not accurate on how to activate account (#5457)
@evanwindomhttps://github.com/evanwindom -- I am unable to assign this issue to you, and it requires an assignee.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/visualstudio-docs/issues/5457#issuecomment-645709589, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHWYGGPS4Q2C2IJ5GRSB5GLRXFS4JANCNFSM4NZ4SLAQ.

@MichaelMacc - I apologize for the delay on this.  It turns out the path to the sign up page changed.  We've updated the article to reflect the new path, and should have the behavior of the tile in the benefits portal updated soon as well.  Thanks for flagging this issue for us.

#please-close


Update release.yml clang version

Updated the release.yml Clang version to 16, to avoid build issues.
This had got forgotten from #136 .

Can you please rebase from the upstream branch? I've squashed some of the commits 🤗

Can you please rebase from the upstream branch? I've squashed some of the commits 🤗

Doing it right now.

@ashvardanian fixed now.

:tada: This PR is included in version 3.8.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


How to get duration next to files?

Howdy. Would it be possible to have an option so when I hit shift + enter that the names of the loaded files loaded have their duration (hh:mm:ss) appended? It would greatly help sorting /navigating / choosing sequential track names. Thank you 🎳

I don't think this is possible since duration is only known for loaded(currently playing) files. Pretty much the only thing you can get from a playlist is the title/name of the files. Implementing this would require loading the duration data outside of mpv which is prone to errors and os compatibility issues.

I understand @jonniek Thank you the same for such a useful script and the time to explain to a layman =)
Cheers


feat: AuthJS v5

Is your feature request related to a problem? Please describe.
What is still outstanding here? Are we just waiting for them to list the next JS flavor as not in beta?
Describe the solution you'd like to see
AuthJS v5 implementation
Describe alternate solutions
NextAuth v4What is still outstanding here? Are we just waiting for them to list the next JS flavor as not in beta
Additional information
No response

it's being updated on https://github.com/t3-oss/create-t3-app/pull/2000/files#diff-dd60a26d18c1b84913c096833058284ea3c679048534452710030a1bafe0b052L7

Is v5 production ready though? The package is still marked as beta ("next-auth": "5.0.0-beta.25") and the only official comment regarding this from the maintainers I managed to find was on their Discord, linking to this tweet:

beta is stable enough for 90+% of our users


check in old setup translation

based on the previous translation from the misskey repository:
https://github.com/misskey-dev/misskey/blob/23de94785d2cde360bac00812e472147ad7655f8/docs/setup.en.md

removed links to translations
removed elasticsearch as its not in the japanese version of the setup guide any more
added checking out git submodules
expanded "Init DB" section with creating user and database

🙏


Add support for multi-arch base images

Description

This PR is a follow-up to https://github.com/openshift/assisted-image-service/pull/17 to add an architecture parameter to the API which will help determine which base image to use for a download.
This makes the "key" for the base image the combination of version and architecture. If the version/arch combo in a request is not present in the RHCOS_VERSIONS configuration we will return a 400 error.
How was this code tested?

Ran the service locally with an arm entry in the versions list and successfully downloaded an edited arm iso with an ignition embedded.
Assignees

/cc @djzager
/cc @danielerez
Links

Resolves https://issues.redhat.com/browse/MGMT-7453
Checklist

[x] Title and description added to both, commit and PR
[x] Relevant issues have been associated
[x] Reviewers have been listed
[x] This change does not require a documentation update (docstring, docs, README, etc) README updated
[x] Does this change include unit tests (note that code changes require unit tests)

/lgtm


Pen Embeds

makes nonstandard pens embed
explosive pen
cybersun pen
cap, hop, centcom pens
🆑

tweak: Nonstandard pens now embed again. (explosive pen good again)

probably should just be limited to cyber and explosive

As long as the standard one doesn't idm.

probably should just be limited to cyber and explosive

i think special pens embedding too is good, could make for funny interactions and people stealing them

I second that, embedding pens can lead to alot of emergent behaviour. Is there a reason why standard ones don't?

I'd like to mention the idea of just checking if any damage was dealt when deciding whether to embed or not, which would likely sort all the issues of the case. The removal of embedding was done for "pens shouldn't embed in metal walls", but resists would take care of that and just work.

For now I think this is fine


HBASE-27270 Add bulkloadExecutor.resizeQueues

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 46s
Docker mode activated.


Add set_state extension method to Commands

Objective

Improve the ergonomics of managing states.

Solution

Add set_state extension method to Commands so you don't need to type out ResMut<NextState<S>> to update a state. It also reduces system parameter list size when you already have Commands.
I only updated a couple examples to showcase how it can be used. There is a potential perf cost to introducing Commands so this method shouldn't necessarily be used everywhere.

Testing

Tested the updated examples: game_menu and alien_cake_addict.

Showcase
Add Commands::set_state method for easily updating states.
Set directly:
fn go_to_game(mut game_state: ResMut<NextState<GameState>>) {
    game_state.set(GameState::Play);
}

Set with commands (NEW):
fn go_to_game(mut commands: Commands) {
    commands.set_state(GameState::Play);
}

Second thoughts, I'd like this to be the standard way of updating states, using commands:

implies the deferred nature of this operation
reduces clutter associated with NextState, especially when many are used
does not make problems with system ambiguities worse
allows for falliable operations with a warning, which we will need when the traits get unified and not everything will use NextState
with a different command you can force the transition to happen immediately without writing an exclusive system

@alice-i-cecile what do you think?

I'm on board with @MiniaczQ, I would even remove the NextState method.


Using control implemented with a renderer

Is it possible to use in CarouselView, controls implemented by using a renderer?
I have in my project a CustomWebView using IOS and Android renderer, in particular to enable zoom in and zoom out on the web content.
Using it in a Carousel page, this control is never displayed, while a regular WebView has no issue (if HeightRequested and WidthRequest are setup). No problem has well to display Label, Image, ....
Do you think that could be a "renderer" issue?
thanks

If you provide a demo project maybe i can help.

Hi Alex. I got it working. So even using a component view with a renderer all is working nicely in a carasoul
BR
Envoyé de mon iPad

Le 24 août 2017 à 15:06, Alex Rainman<EMAIL_ADDRESS>a écrit :
If you provide a demo project maybe i can help.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Great


进入文章之后，在文章页面再刷新就404

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] (是否与都个问题有有关，请详细描述)
Describe the solution you'd like
A clear and concise description of what you want to happen.（描述想要的效果）
Additional context or screenshots
Add any other context or screenshots about the feature request here.（附加信息或者截图）

Duplicate of #185
请款 issu #185


chore: update api version

Description

Which allows for more than 25 writes.
References

#421
Review Checklist

[ ] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[ ] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

Codecov Report
Base: 84.56% // Head: 84.58% // Increases project coverage by +0.01% :tada:

Coverage data is based on head (6a8b5a5) compared to base (2c0b36c).
 Consider uploading reports for the commit 406b962 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #423      +/-   ##
==========================================
+ Coverage   84.56%   84.58%   +0.01%
==========================================
  Files          84       84
  Lines       13763    13763
==========================================
+ Hits        11639    11641       +2
+ Misses       1746     1745       -1
+ Partials      378      377       -1

Impacted Files
Coverage Δ

storage/postgres/iterators.go
69.14% <0.00%> (-2.13%)
:arrow_down:

storage/mysql/iterators.go
76.53% <0.00%> (+4.08%)
:arrow_up:

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

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

Can you run go mod tidy?

@rhamzeh Mondays, amirite? Thanks!


Ultest incorrectly marking failing tests as "passed"

Describe the bug

When using pytest.paramterize in python (which enables code reuse to test a list of input),ultest incorrectly gives "false negative", meaning it says tests are passing when  one of the tests are failing. In the screenshots above, test_parametrize should be marked as failed as opposed to passed
Logs
22:07:58 | INFO | MainThread | logging.py:create_logger:101 | Logger created
22:07:58 | INFO | MainThread | __init__.py:__init__:26 | Using local threaded child watcher
22:07:58 | DEBUG | MainThread | __init__.py:__init__:44 | Handler created
22:07:58 | INFO | MainThread | __init__.py:get_attach_script:227 | Creating script to attach to process
22:07:58 | INFO | MainThread | __init__.py:run_nearest:128 | Running nearest test in tests/test_ultest.py at line 0
22:07:58 | INFO | MainThread | __init__.py:run_nearest:133 | No tests found for tests/test_ultest.py, rerunning after processing positions
22:07:58 | INFO | MainThread | tracker.py:_init_test_file:97 | Initialising test file /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:62 | Starting job with group update_positions
22:07:58 | INFO | Thread-1 | tracker.py:_async_update:57 | Updating positions in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | file.py:parse_file_structure:25 | Converted pattern {'test': ['\\v^\\s*%(async )?def (test_\\w+)'], 'namespace': ['\\v^\\s*class (\\w+)']} to {'test': [re.compile('^\\s*(?:async )?def (test_\\w+)')], 'namespace': [re.compile('^\\s*class (\\w+)')]}
22:07:58 | DEBUG | Thread-1 | tracker.py:_async_update:84 | New test /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py found in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | tracker.py:_async_update:84 | New test test_success-4911137721759419562 found in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | tracker.py:_async_update:84 | New test test_failure-4911137721759419562 found in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | tracker.py:_async_update:84 | New test test_parametrize-4911137721759419562 found in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | tracker.py:_remove_old_positions:129 | No tests removed
22:07:58 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:62 | Starting job with group update_positions
22:07:58 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:82 | Finished job with group update_positions
22:07:58 | INFO | Thread-1 | tracker.py:_async_update:57 | Updating positions in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | file.py:parse_file_structure:25 | Converted pattern {'test': ['\\v^\\s*%(async )?def (test_\\w+)'], 'namespace': ['\\v^\\s*class (\\w+)']} to {'test': [re.compile('^\\s*(?:async )?def (test_\\w+)')], 'namespace': [re.compile('^\\s*class (\\w+)')]}
22:07:58 | DEBUG | Thread-1 | tracker.py:_remove_old_positions:129 | No tests removed
22:07:58 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:82 | Finished job with group update_positions
22:07:58 | INFO | MainThread | __init__.py:run_nearest:128 | Running nearest test in tests/test_ultest.py at line 0
22:07:58 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py as started
22:07:58 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_success-4911137721759419562 as started
22:07:58 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_failure-4911137721759419562 as started
22:07:58 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_parametrize-4911137721759419562 as started
22:07:58 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:62 | Starting job with group /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py
22:07:58 | DEBUG | Thread-1 | processes.py:run:51 | Starting test process /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py with command ['poetry', 'run', 'pytest', '-s', '-v', 'tests/test_ultest.py'], cwd = /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper, env = None
22:07:59 | DEBUG | Thread-1 | processes.py:run:77 | Process /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py complete with exit code: 1
22:07:59 | INFO | Thread-1 | output.py:parse_failed:71 | Found failed test in output test_failure in namespaces None of runner python#pytest
22:07:59 | INFO | Thread-1 | output.py:parse_failed:71 | Found failed test in output test_parametrize[5] in namespaces None of runner python#pytest
22:07:59 | DEBUG | Thread-1 | __init__.py:_register_result:299 | Registering /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py as exited with result {"id": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py", "file": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py", "code": 1, "output": "/tmp/ultestlct3tsj2/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py_out"}
22:07:59 | DEBUG | Thread-1 | __init__.py:_register_result:299 | Registering test_success-4911137721759419562 as exited with result {"id": "test_success-4911137721759419562", "file": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py", "code": 0, "output": "/tmp/ultestlct3tsj2/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py_out"}
22:07:59 | DEBUG | Thread-1 | __init__.py:_register_result:299 | Registering test_failure-4911137721759419562 as exited with result {"id": "test_failure-4911137721759419562", "file": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py", "code": 1, "output": "/tmp/ultestlct3tsj2/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py_out"}
22:07:59 | DEBUG | Thread-1 | __init__.py:_register_result:299 | Registering test_parametrize-4911137721759419562 as exited with result {"id": "test_parametrize-4911137721759419562", "file": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py", "code": 0, "output": "/tmp/ultestlct3tsj2/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py/__ghess__screening__contributors__allee__src__proteomics_tk__feature__allee__batch_id_proper__tests__test_ultest_py_out"}
22:07:59 | DEBUG | Thread-1 | __init__.py:_handle_coroutine:82 | Finished job with group /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/batch_id_proper/tests/test_ultest.py

To Reproduce
Steps to reproduce the behavior:

Use the code

"""Ultest bug reprex"""
import pytest

def test_success():
    """Normal case."""
    a = 3
    assert a == 3

def test_failure():
    """Normal case."""
    assert 3 == 5

@pytest.mark.parametrize("answer", [3, 5])
def test_parametrize(answer):
    """pytest parameterize"""
    assert answer == 3

Expected behavior
test_parametrize should be marked as failed as opposed to passed
Screenshots
Attached
Additional context
I love this plugin!

Wow. Thanks for the quick response.
However, when I tried efd96a0 with the same test input above, I still get the same output

Actually that branch is unrelated, the fix was pushed to master. You can just pull latest master to try

Aha I see.
I verified that f925585c8cd6d062b62ba94cd0a4d9bc1d61844c returns the correct result. Thank you!!
However, the latest commit on master 7f56232489708a65deed1da6d818c57bebc30797 seem to break ultest altogether. Basically it turns FAILED for all three cases above.

Oh that is odd. Can you create a new log please?

Here's the log message
00:18:27 | INFO | MainThread | logging.py:create_logger:101 | Logger created
00:18:27 | DEBUG | MainThread | __init__.py:__init__:44 | Handler created
00:18:27 | INFO | MainThread | __init__.py:get_attach_script:227 | Creating script to attach to process
00:18:27 | INFO | MainThread | __init__.py:run_nearest:128 | Running nearest test in tests/test_blah.py at line 0
00:18:27 | INFO | MainThread | __init__.py:run_nearest:133 | No tests found for tests/test_blah.py, rerunning after processing positions
00:18:27 | INFO | MainThread | tracker.py:_init_test_file:97 | Initialising test file /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:49 | Starting job with group update_positions
00:18:27 | INFO | MainThread | tracker.py:_async_update:57 | Updating positions in /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | file.py:parse_file_structure:25 | Converted pattern {'test': ['\\v^\\s*%(async )?def (test_\\w+)'], 'namespace': ['\\v^\\s*class (\\w+)']} to {'test': [re.compile('^\\s*(?:async )?def (test_\\w+)')], 'namespace': [re.compile('^\\s*class (\\w+)')]}
00:18:27 | DEBUG | MainThread | tracker.py:_async_update:84 | New test /user/home/allee/feature/allee/blah/tests/test_blah.py found in /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | tracker.py:_async_update:84 | New test test_success7822109570511667405 found in /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | tracker.py:_async_update:84 | New test test_failure7822109570511667405 found in /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | tracker.py:_async_update:84 | New test test_parametrize7822109570511667405 found in /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | tracker.py:_remove_old_positions:129 | No tests removed
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:69 | Finished job with group update_positions
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:49 | Starting job with group update_positions
00:18:27 | INFO | MainThread | tracker.py:_async_update:57 | Updating positions in /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | file.py:parse_file_structure:25 | Converted pattern {'test': ['\\v^\\s*%(async )?def (test_\\w+)'], 'namespace': ['\\v^\\s*class (\\w+)']} to {'test': [re.compile('^\\s*(?:async )?def (test_\\w+)')], 'namespace': [re.compile('^\\s*class (\\w+)')]}
00:18:27 | DEBUG | MainThread | tracker.py:_remove_old_positions:129 | No tests removed
00:18:27 | INFO | MainThread | __init__.py:run_nearest:128 | Running nearest test in tests/test_blah.py at line 0
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:69 | Finished job with group update_positions
00:18:27 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering /user/home/allee/feature/allee/blah/tests/test_blah.py as started
00:18:27 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_success7822109570511667405 as started
00:18:27 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_failure7822109570511667405 as started
00:18:27 | DEBUG | MainThread | __init__.py:_register_started:288 | Registering test_parametrize7822109570511667405 as started
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:49 | Starting job with group /user/home/allee/feature/allee/blah/tests/test_blah.py
00:18:27 | DEBUG | MainThread | processes.py:run:51 | Starting test process /user/home/allee/feature/allee/blah/tests/test_blah.py with command ['poetry', 'run', 'pytest', '-s', '-v', 'tests/test_blah.py'], cwd = /ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/blah, env = None
00:18:27 | WARNING | MainThread | processes.py:run:71 | An exception was thrown when starting process /user/home/allee/feature/allee/blah/tests/test_blah.py with command: ['poetry', 'run', 'pytest', '-s', '-v', 'tests/test_blah.py']
Traceback (most recent call last):
  File "/ghdevhome/home/allee/.local/share/nvim/site/pack/packer/opt/vim-ultest/rplugin/python3/ultest/handler/runner/processes.py", line 64, in run
    close_fds=True,
  File "/ghds/groups/lunar/notebooks/allee/miniconda3/envs/proteomics_tk/lib/python3.7/asyncio/subprocess.py", line 217, in create_subprocess_exec
    stderr=stderr, **kwds)
  File "/ghds/groups/lunar/notebooks/allee/miniconda3/envs/proteomics_tk/lib/python3.7/asyncio/base_events.py", line 1533, in subprocess_exec
    bufsize, **kwargs)
  File "/ghds/groups/lunar/notebooks/allee/miniconda3/envs/proteomics_tk/lib/python3.7/asyncio/unix_events.py", line 193, in _make_subprocess_transport
    self._child_watcher_callback, transp)
  File "/ghds/groups/lunar/notebooks/allee/miniconda3/envs/proteomics_tk/lib/python3.7/asyncio/unix_events.py", line 924, in add_child_handler
    "Cannot add child handler, "
RuntimeError: Cannot add child handler, the child watcher does not have a loop attached
00:18:27 | DEBUG | MainThread | processes.py:run:77 | Process /user/home/allee/feature/allee/blah/tests/test_blah.py complete with exit code: 1
00:18:27 | DEBUG | MainThread | __init__.py:_register_result:299 | Registering /user/home/allee/feature/allee/blah/tests/test_blah.py as exited with result {"id": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/blah/tests/test_blah.py", "file": "/ghess/screening/contributors/allee/src/proteomics_tk/feature/allee/blah/tests/test_blah.py", "code": 1, "output": "/tmp/ultestb370zjtv/__user__home__allee__feature__allee__blah__tests__test_blah_py/__user__home__allee__feature__allee__blah__tests__test_blah_py_out"}
00:18:27 | DEBUG | MainThread | __init__.py:_register_result:299 | Registering test_success7822109570511667405 as exited with result {"id": "test_success7822109570511667405", "file": "/user/home/allee/feature/allee/blah/tests/test_blah.py", "code": 1, "output": "/tmp/ultestb370zjtv/__user__home__allee__feature__allee__blah__tests__test_blah_py/__user__home__allee__feature__allee__blah__tests__test_blah_py_out"}
00:18:27 | DEBUG | MainThread | __init__.py:_register_result:299 | Registering test_failure7822109570511667405 as exited with result {"id": "test_failure7822109570511667405", "file": "/user/home/allee/feature/allee/blah/tests/test_blah.py", "code": 1, "output": "/tmp/ultestb370zjtv/__user__home__allee__feature__allee__blah__tests__test_blah_py/__user__home__allee__feature__allee__blah__tests__test_blah_py_out"}
00:18:27 | DEBUG | MainThread | __init__.py:_register_result:299 | Registering test_parametrize7822109570511667405 as exited with result {"id": "test_parametrize7822109570511667405", "file": "/user/home/allee/feature/allee/blah/tests/test_blah.py", "code": 1, "output": "/tmp/ultestb370zjtv/__user__home__allee__feature__allee__blah__tests__test_blah_py/__user__home__allee__feature__allee__blah__tests__test_blah_py_out"}
00:18:27 | DEBUG | MainThread | __init__.py:_handle_coroutine:69 | Finished job with group /user/home/allee/feature/allee/blah/tests/test_blah.py

By the way I am using Python 3.7.3. It seems that the failure is happening in asyncio module in python

Ah it's due to a python bug https://bugs.python.org/issue35621 which I had removed the workaround for due to no longer using a separate loop. Thought I had tested but must have misconfigured something. Should be fine in latest commit, sorry for the trouble! 3.7 is a bit troublesome :sweat_smile:

Thank you! The issue is now fixed with the recent commit.


feat(material/icon): add default support for Material Symbols Outlined

Adds docs about using Material Symbols and includes toggling between the icon sets in the dev app

Updated based on team feedback - will just add docs about the new font for now


[v2v][OSP][RHV]Migration with VDDK transformation method fails when used a VM with International Characters or with VM with space in name

Steps to Reproduce:

Add source(Vmware) and target provider(RHV/OSP)
Create a VMware VM named something like:  �Ää or a VM containing space in the name (Ex: rhel 7)
Migrate with v2v using ManageIQ v2v UI.
Migration completes , VM is created on RHV/OSP
But migration plan shows error .

Actual results:
Plan finishes with error .
Also the downloaded log file with international characters name does not open
and shows invalid encoding .

@miq-bot move-issue manageiq-v2v