Features implemented in a fork

Here is a specific thread for https://github.com/Genymobile/scrcpy/issues/495#issuecomment-517322589 (@Lurker00):

Currently I've forked this project, and merged all my changes into the official 1.9 version. It is there. I only have Android 8.1 devices, so I'm not sure that all my changes will work for all. It requires additional app (my dirty build of ADBKeyBoard) to type any language and to sync device's orientation by PC. In general, I'm not sure should I try a pull request... But you may build both projects yourself and give it a try...
The full list of my changes (sorry for misuse this thread!):
User visible changes:

10-fingers multitouch support.
Any charset input support with an aid of ADBKeyBoard.
Quit command (Ctrl-Q)
Ctrl-Shift-O turns device screen on.
Connection timeout detector from the device side (useful with connection over wireless network).
Screen density and screen size can be set on the device during the session.
"Tablet mode": dim device screen, synchronize device screen orientation with PC (requires additional service on the device).

Internals:

The server "forks" itself for full life cycle control (adb may kill it instead preventing required cleanup).
Full cleanup at exit.
Expandable parameters to the server applet, allowing compatibility between versions.
Java NIO to simplify network I/O and not be limited to Unix sockets.
Different connection type: direct connect to the device instead of "adb forward".
Commands: actions with no parameters

Hi,
Thank you for sharing all your work. :+1: You implemented a lot of things in your corner!

In general, I'm not sure should I try a pull request

When features are "general" enough and would benefit everyone, yes you should propose to merge them (one PR per feature based on the current dev branch) :) (and this would minimize the amount of work for you to keep your fork up to date :wink:)

10-fingers multitouch support.

This is definitely a feature to merge (#22). I investigated locally, especially to support pinch-to-zoom (#24) with Shift+click or something. Both features should share a lot of code.

Any charset input support with an aid of ADBKeyBoard.

(didn't look yet, also see https://github.com/Genymobile/scrcpy/issues/431#issuecomment-471245573)

Quit command (Ctrl-Q)

Is it necessary? (every system already has it own shortcut, typically Alt+F4, don't they?)

Ctrl-Shift-O turns device screen on.

I disabled a similar feature on purpose before the last release: 8c8649cfcd710859ce18eab557ed2af8cedb9a42. Is it the same?

"Tablet mode": dim device screen, synchronize device screen orientation with PC (requires additional service on the device).

Could you explain what it does and what is the use case?

The server "forks" itself for full life cycle control (adb may kill it instead preventing required cleanup).
Full cleanup at exit.

Did you implemented additional cleanup on the server side on exit? What is the required cleanup?

Expandable parameters to the server applet, allowing compatibility between versions.

(the client installs its associated server, so using an old server with a new client is not a goal, and it would require far more than backward compatibility of command-line arguments)

Java NIO to simplify network I/O and not be limited to UNIX sockets.

Indeed, I removed (before the first release) the NIO usage on this specific part to use Unix sockets on the device side (because we don't need TCP here), and NIO/channels does not support UNIX sockets.
Why do you need a TCP socket on the device side? (oh, the answer is probably in the next point)

Different connection type: direct connect to the device instead of "adb forward".

IIUC, you start the server then connect over TCP directly? The problem I see here is that anyone on your network can connect (with the right timing) to your device without any authentication. If you use adb forward, it requires that adb is authorized.
https://github.com/Lurker00/scrcpy/commit/32b0fb045ad9bab2a4076ff8e32b9b7e85fdde81?full#diff-2b1a6238bf364c50a82e0f738e186e23R40-R41
My understanding is that this flag only impacts the "sender":
   TCP_NODELAY
          If set, disable the Nagle algorithm.  This means  that  segments
          are  always  sent  as  soon as possible, even if there is only a
          small amount of data.  When not  set,  data  is  buffered  until
          there  is  a sufficient amount to send out, thereby avoiding the
          frequent sending of small packets, which results  in  poor  uti‐
          lization of the network.

The purpose here is to send the control messages earlier?
https://github.com/Lurker00/scrcpy/commit/32b0fb045ad9bab2a4076ff8e32b9b7e85fdde81?full#diff-2b1a6238bf364c50a82e0f738e186e23R43-R44
https://github.com/Lurker00/scrcpy/commit/32b0fb045ad9bab2a4076ff8e32b9b7e85fdde81?full#diff-bdecf0d14db2a1fac70f95f687544d01R101
I just set these flags locally, I still receive packets of 4096 bytes. Probably due to the adb tunnel (adb reverse).

one PR per feature based

It's a huge work! I was very limited in time: tomorrow going to vacations for full August to the place with very poor Internet, and I need this my scrcpy mod fully working. Now I have to separate different parts... Definitely not now :(

Ctrl-Q: Is it necessary?

My notebook has no F-keys. Alt-Fn-4 didn't work well with 1.8 on the previous (already died!) notebook for a reason... Now I see it works, but Ctrl-Q still works better for me.

Ctrl-Shift-O: I disabled a similar feature on purpose

I see... Yes, sometimes it works weird, but it was handy for tests - to save power, but sometimes to look to the phone. I don't insist :)

Tablet mode: Could you explain

This is my primary goal, and what I can't live without! I have small phone (Unihertz Atom, 2.45" 240x432 screen), and a small convertible notebook (One Netbook Mix 3, 8.4" 2560x1600 screen). With my mod of scrcpy, I connect Atom to Mix 3 in full screen mode, forcing high resolution and low DPI on the phone, and I end up with powerful Android tablet! Notebook rotation forces Android screen rotation (even apps that, in general, refuse landscape, work in landscape), screen is dimmed to save power. Lots of apps (banking, messengers with video and pics) require Android, but work better on big screens.
On the other hand, a person with very high resolution device and lower resolution notebook/PC may want to decrease device's screen resolution

What is the required cleanup?

Restore screen size and density.
Restore screen brightness.
Restore the original IME and disable ADBKeyBoard (if it was disabled).
Put the device into sleep (because in my use it is in the belt pouch).
The first two items are essential: the device is quite useless with minimum brightness and tiny controls. That's why I've implemented "PING": connection over WiFi can be lost, and it is required the server to stop and quit with full cleanup by itself.

Args handling: using an old server with a new client is not a goal

I found my approach of passing parameters is more convenient during development, and more easy to maintain. No magic numbers, all in all!

NIO/channels does not support UNIX sockets

NIO does implement WritableByteChannel directly. In fact, I've deleted your IO.java, because channels work with ByteBuffer directly. The resulting code is shorter and, I think, faster, even via Unix sockets.

Why do you need a TCP socket on the device side?

To eliminate adb as the proxy via WiFi. With NIO and TCP I have direct connection with full control. I even disconnect adb from the device in such a use.

The problem I see here is that anyone on your network can connect (with the right timing)

The server listens only for two connections (video and control), then stops listening. The "right timing" is a few milliseconds during the startup. Moreover, the listening port is assigned by the client side, and can be changed from the command line. I see no a problem here.
But in my use, I set up the device as the WiFi access point, connect notebook to it, and nobody else exists in this private network. No problems whatsoever.

TCP_NODELAY: My understanding is that this flag only impacts the "sender"

Yes. It works for direct TCP connection over WiFi, to minimize delays between touch, mouse, keyboard events. Touch and mouse events are assigned timestamps on the device, and a touch   may become long touch, or vice versa.

Probably due to the adb tunnel

That's why I eliminated adb as the proxy!
I just have committed a number of more changes that I forgot yesterday:

command line option for device screen size;
experimental ToS for sockets (in my tests, it works better in the WiFi-noisy environment);
a long comment regarding touch events.

For the remaining hours (before I go to vacations), I plan to write a public description and release a binary build for those who wants to try. But this is also my last day at work before long vacations...

Thank you for your answer.

It's a huge work! I was very limited in time: tomorrow going to vacations for full August to the place with very poor Internet, and I need this my scrcpy mod fully working. Now I have to separate different parts... Definitely not now :(

OK, I understand. Could I take parts of your code if I need to? (probably not now too :wink:)
Executing cleanup even if adb is killed can indeed be interesting (for example for issues #96 #101 #181). I always considered that a wrapper script was sufficient for this "advanced usage", but it is better if it always cleanup. I keep that in mind. :+1:
Btw, maybe it is possible to use nohup instead of forking (but I'm not sure it is available on all devices). Alternatively, a solution could be to set a signal handler on SIGHUP, but it's probably not possible directly from Java. But starting a new process is a good solution.

NIO does implement WritableByteChannel directly.

Not for UNIX sockets.

In fact, I've deleted your IO.java, because channels work with ByteBuffer directly. The resulting code is shorter and, I think, faster, even via Unix sockets.

It seems you either don't use channels for UNIX sockets or add just add a wrapper to the OutputStream.

Touch and mouse events are assigned timestamps on the device, and a touch may become long touch, or vice versa.

Oh, that's bad. (TBH I never use scrcpy over wifi)

Could I take parts of your code if I need to?

Of course! If you save me some time merging all the useful changes yourself, it would be great! That's what I've published my changes for - to be used by other developers, just like I've used your product.

just add a wrapper to the OutputStream

Yes: Channels.newChannel(localVideoSocket.getOutputStream());

I never use scrcpy over wifi

I found it quite useful in a long trip in a bus or train: phone in the belt pouch, little notebook in hands, I can switch between Android and Windows, and no wires. Small lags are acceptable.
For me, scrcpy is the app that I use several times per day. Clipboard transfer from Android to Windows in 1.9 was the feature pushed me to perform the merge. Did I thank you? I will! :)

Published Windows 64-bit package for those who want to test it.

If I follow the default build instructions, can I make this fork work on Linux?

I think it should work. Build it per original instruction. You may extract ADBKeyBoard's apk file from my Windows release package.
I never tried it under native Linux myself, but it worked somehow with Ubuntu 18.04 LTS from WLS and an X-server under Windows.
You may try and let me know :)

I tried yesterday and couldn't get it to work. But since I don't recall ever building anything, I'm probably doing something wrong.
Building using the prebuilt server goes perfectly until the ninja command, when I try to install or run things start going wrong (when installing I get
WARNING: Duplicate name in Manifest: Manifest-Version.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 12:03:27 AM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Built-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 12:03:27 AM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Created-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.

, when running the application I get
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalArgumentException: Expecting 5 parameters
	at com.genymobile.scrcpy.Server.createOptions(Server.java:71)
	at com.genymobile.scrcpy.Server.main(Server.java:132)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)

).
Building the server the application fails at the ninja part (I'm pretty sure that is because I couldn't set up the Android SDK in PATH correctly).
I'll try again tomorrow and do some more research, and then I'll report the results here.

You may use prebuild server from my Windows package as well.

When using your prebuilt server and trying to 'sudo ninja install', I get the same error I got when I last tried:
WARNING: Duplicate name in Manifest: Manifest-Version.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 8:03:36 PM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Built-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 8:03:36 PM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Created-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.

And when I try to run the application I get a different error:
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
	at com.genymobile.scrcpy.wrappers.ServiceManager.getService(ServiceManager.java:39)
	at com.genymobile.scrcpy.wrappers.ServiceManager.getActivityManager(ServiceManager.java:87)
	at com.genymobile.scrcpy.DeviceControl.<init>(DeviceControl.java:43)
	at com.genymobile.scrcpy.Server.main(Server.java:192)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
Caused by: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:324)
	at java.lang.Class.forName(Class.java:285)
	at com.genymobile.scrcpy.wrappers.ServiceManager.getService(ServiceManager.java:36)
	... 5 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.app.IActivityManager$Stub" on path: DexPathList[[zip file "/data/local/tmp/scrcpy-server.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
	... 9 more
	Suppressed: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
		at java.lang.Class.classForName(Native Method)
		at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
		at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
		at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
		... 10 more
	Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

What Android version do you have on your device?
ср, 7 авг. 2019 г. в 03:12, Daniel-Brum<EMAIL_ADDRESS>
When using your prebuilt server and trying to 'sudo ninja install', I get
the same error I got when I last tried:
WARNING: Duplicate name in Manifest: Manifest-Version.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 8:03:36 PM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Built-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 8:03:36 PM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Created-By.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
And when I try to run the application I get a different error:
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
at com.genymobile.scrcpy.wrappers.ServiceManager.getService(ServiceManager.java:39)
at com.genymobile.scrcpy.wrappers.ServiceManager.getActivityManager(ServiceManager.java:87)
at com.genymobile.scrcpy.DeviceControl.(DeviceControl.java:43)
at com.genymobile.scrcpy.Server.main(Server.java:192)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
Caused by: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:324)
at java.lang.Class.forName(Class.java:285)
at com.genymobile.scrcpy.wrappers.ServiceManager.getService(ServiceManager.java:36)
... 5 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.app.IActivityManager$Stub" on path: DexPathList[[zip file "/data/local/tmp/scrcpy-server.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 9 more
Suppressed: java.lang.ClassNotFoundException: android.app.IActivityManager$Stub
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 10 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Genymobile/scrcpy/issues/679?email_source=notifications&email_token=ACCHAZVXV5WWIVLQTR5SPJTQDIANFA5CNFSM4IIWDWG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3WW6QQ#issuecomment-518876994,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACCHAZWCTHTTSG7R3USTTDDQDIANFANCNFSM4IIWDWGQ
.

I have Android 6.0.1.

I just published a new release: https://github.com/Lurker00/scrcpy/releases/latest
The ClassNotFoundException should gone. You may try the new server build, and to build the client from the updated sources.
But I have no pure Android 6 device in hands, only with MIUI under which almost everything does not work silently.

I'm still unable to sudo ninja install, with the same warnings from before.

with the same warnings from before.

WARNING: Duplicate name in Manifest: Manifest-Version.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
ago 06, 2019 8:03:36 PM java.util.jar.Attributes read

These are just warnings, not errors. See https://github.com/Genymobile/scrcpy/issues/458#issuecomment-473711107

Oh, I see. Dunno why, but I simply assumed the program wouldn't be installed properly because of that, I should've searched about it first. I'm sorry and thank you.

Just wanted to give my experience here; @rom1v I attempted to run your changes from the latest release, and while I get a message stating scrcpy started: processid1234? (not sure if it's a process id or not), the window doesn't open like it does when running scrcpy from Genymobile. Is there something additional I'm missing to be able to see scrcpy with your fork? Also wanted to put in a +1 for tablet mode as it'd dramatically help my workflow:

plug in android phone
android phone will not sleep with Tasker task
screen on android phone goes dark but is visible on PC
can use surface pro in multiple orientations with android phone switching automagically
when unplugging, android phone screen turns back on and potentially reverts orientation

@codycodes, Sorry, I overlooked an additional thread introduced in 1.9, which caused malfunction sometimes. I've comitted the fix. Here is an update: https://github.com/Lurker00/scrcpy/releases/latest
Note: you must use both server and client binaries from my fork! The typical session is like this:
[server] INFO: scrcpy is forking: 14191
[server] INFO: scrcpy forked
[server] INFO: scrcpy started: 14200
[server] INFO: DeviceControl started
[server] INFO: Connected to desktop
[server] INFO: bitRate: 8000000 frameRate: 60 iFrameInterval: 5 repeatFrameDelay: 6
[server] INFO: Command QUIT received
[server] INFO: Controller stopped

where 14191 is a PID of the server launched from PC via adb, and 14200 is the secondary copy of the server, which actually performs the job in my fork.
Please note that while this build works for me, I have no abilities to perform thorough tests with different devices, but I try to resolve reported problems.
I use the following command line:
scrcpy-noconsole.exe --density 240 --fullscreen --tablet-mode --ime -s ATOMHZ0000005703 --render-expired-frames
Of course, the density and serial is up to you. It works for me as you described, but I don't use Tasker.

I have the same problem, starting your latest release version i only get this in my console :
[server] INFO: scrcpy is forking: 22392
[server] INFO: scrcpy forked
[server] INFO: scrcpy started: 22402
Then nothing, no window opens...
Any idea?

@Pixelstudio , is it L2 build for Windows, or a custom build for Linux (then which revision)? Which Android version do you have? Is it pure stock Android or what? Currently I can only answer that it works for me flawlessly ;)

Also tested but not working here. I'm on a Surface Pro so hoping to be able
to use these features at some point. I have the same output, which is
nothing after the info logs. Thanks for your work and help!
On Thu, Aug 22, 2019 at 12:45 AM Lurker00<EMAIL_ADDRESS>wrote:

@Pixelstudio https://github.com/Pixelstudio , is it L2 build for Windows
https://github.com/Lurker00/scrcpy/releases/tag/v1.9L2, or a custom
build for Linux (then which revision)? Which Android version do you have?
Is it pure stock Android or what? Currently I can only answer that it works
for me flawlessly ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Genymobile/scrcpy/issues/679?email_source=notifications&email_token=AB5CPWLC7G6JDGFRYU6YFSLQFY7YLA5CNFSM4IIWDWG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD44GPJY#issuecomment-523790247,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB5CPWKJN6LFM2JURLDQEP3QFY7YLANCNFSM4IIWDWGQ
.

@codycodes , again:

No explicit statement which build did you try.
No Android version info.
No statement that the official scrcpy works somehow (meaning, it is not a general problem).

You (all who experience problem with my build) may also type
adb logcat -d > logcat.txt
open logcat.txt in a text editor and search for possible exception stack traces for scrcpy, to provide a clue. I'd glad to make this fork to work for more people, but I need details about the problems.

Here are some details (i cannot find something that would cause an error)...
I'm using your latest win64 build "scrcpy-win64-0.9-L2"
The latest version of the official scrcpy works as expected, without any problems
I'm testing on a win10 pc, my phone is an Pixel 2 XL, Android version 9, build number PQ3A.190801.002
here is part of the logcat:
08-22 12:22:43.728 10420 10420 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 2000 <<<<<< 08-22 12:22:43.848 10420 10420 D AndroidRuntime: Calling main entry com.genymobile.scrcpy.Server 08-22 12:22:43.848 10420 10420 I scrcpy  : scrcpy is forking: 10420 08-22 12:22:43.851 10420 10420 I scrcpy  : scrcpy forked 08-22 12:22:44.006 10429 10429 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 2000 <<<<<< 08-22 12:22:44.102 10429 10429 D AndroidRuntime: Calling main entry com.genymobile.scrcpy.Server 08-22 12:22:44.104 10429 10429 I scrcpy  : scrcpy started: 10429 08-22 12:22:44.229  1190  2673 D ConnectivityService: Returning BLOCKED NetworkInfo to uid=10096 08-22 12:22:45.745  2686  2703 D udp     : receiveTime:590 port:7888 08-22 12:22:46.279  2686  2702 D udp     : receiveTime:590 port:7765 08-22 12:22:48.933  2686  2703 D udp     : receiveTime:591 port:7888 08-22 12:22:49.144  8823  8823 W FastPrintWriter: Write failure 08-22 12:22:49.144  8823  8823 W FastPrintWriter: java.io.IOException: write failed: EPIPE (Broken pipe) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at libcore.io.IoBridge.write(IoBridge.java:531) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at java.io.FileOutputStream.write(FileOutputStream.java:381) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.util.FastPrintWriter.flushBytesLocked(FastPrintWriter.java:352) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.util.FastPrintWriter.flushLocked(FastPrintWriter.java:375) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.util.FastPrintWriter.appendLocked(FastPrintWriter.java:320) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.util.FastPrintWriter.appendLocked(FastPrintWriter.java:313) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.util.FastPrintWriter.print(FastPrintWriter.java:497) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at java.io.PrintWriter.println(PrintWriter.java:739) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at android.util.PrintWriterPrinter.println(PrintWriterPrinter.java:38) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at cja.dump(PG:96) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at jqu.dump(PG:14) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at djq.a(PG:1717) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at djq.dump(PG:1712) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:151) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:37) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at android.os.Handler.dispatchMessage(Handler.java:106) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at android.os.Looper.loop(Looper.java:193) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at android.app.ActivityThread.main(ActivityThread.java:6718) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at java.lang.reflect.Method.invoke(Native Method) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: Caused by: android.system.ErrnoException: write failed: EPIPE (Broken pipe) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at libcore.io.Linux.writeBytes(Native Method) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at libcore.io.Linux.write(Linux.java:288) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at libcore.io.BlockGuardOs.write(BlockGuardOs.java:348) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	at libcore.io.IoBridge.write(IoBridge.java:526) 08-22 12:22:49.144  8823  8823 W FastPrintWriter: 	... 20 more 08-22 12:22:49.146  8823  8823 I OD-RecognizerModule: dump()

Sorry, but this dump gives no a clue :(
I just published v1.9L3. It has no a fix for you, but please try it - it should provide more info to the console in case of problems. I've also enabled Issues for my fork, so we may continue there.

Sorry, but this dump gives no a clue :(
I just published v1.9L3. It has no a fix for you, but please try it - it should provide more info to the console in case of problems. I've also enabled Issues for my fork, so we may continue there.

I tested this version, same problem.
Also nothing in the logcat

@Pixelstudio , I thought it would be more information in the Windows console, right after
[server] INFO: scrcpy started: ...
line. Is there something new?

Nope nothing in the console

I'll have to find Android 9 device or install a simulator to work it out, but this may happen not earlier than September.

1.10-L0 tested against Android 5-10 emulators (before merge with 1.10, if it matters). Includes recent changes made after the official 1.10 build (up to da5b0ec).

I am so excited to report that the multitouch also works great for the KMS/DRM support. Don't even need X or Wayland running!
https://www.youtube.com/watch?v=RHK5P3_FrSo

How is the IME implemented? (Along with wireless mode)
I compiled the fork along with compiling the server jar in the same step. I don't see anything extra on the phone when connecting.

Oh I see now. I didn't realize ADBKeyboard was its own aplication.

Tested wireless here (killing adb after launch)
Works well (for wireless)
Only note is that after exit: it still tried to run adb disconnect (I assume because it wasn't aware I killed manually)

@parkerlreed, thank you for the report! My build of ADBKeyBoard (included into Windows packages) has an additional service to force Android screen rotation.

it still tried to run adb disconnect

Actually, when it connects directly (with -s address:port parameter), it disconnects adb, and calls redundant disconnect at the end. It does not harm.

@Lurker00 If I kill the adb wifi from the phone side, the program exits. Does it still rely on that running?

I can't reproduce it: my phone is not rooted. I may only guess that killing adbd also kills its child processes. adbd with direct connection is only used to proxy server's stdout. For Windows, there is -noconsole build that outputs nothing from the server.

I started to implement multitouch, but I have no touch screen, so I cannot test.
If someone want to test (and help to fix if it does not work), I pushed a branch: finger.
@Lurker00 you could probably avoid your timestamps stuff to avoid duplicated events: 907e55a66b750b234f0e1843a98f5cbaababad6f

Seems to work now: finger.5.
Please give me your feedbacks. I will rewrite the commits properly when I have time.

@rom1v :+1:

Added benefit of not crashing scrcpy when show pointer location is enabled :)

thank you so much for this form!! love it!!
btw is it possible to use desktop mode function on android q to be used in scrcpy?

you could probably avoid your timestamps stuff to avoid duplicated events: 907e55a

Thanks for finding! Yes, it works, but I've also added the same check into input_manager_process_mouse_button().

thank you so much for this form!! love it!!
btw is it possible to use desktop mode function on android q to be used in scrcpy?

This would be fantastic. If you want to spin up an issue for it, I'd be happy to chime in and help test any possible implementations.

@andrizmitnick, @parkerlreed: don't know about desktop mode, but, from my experience, Android switches from phone to tablet mode with lower density. You may try --density command line option in my fork to see if it works for you.

@Lurker00 That was waaaay back on 4.4.2 and earlier. This new desktop mode is activated somehow and gives you floating windows and such.
https://www.androidauthority.com/android-q-desktop-mode-demo-991055/
Granted it not in that form yet but there's some basic things in place
https://youtu.be/Q7lW62_2Grs?t=93


JS heap out of memory for the example task

Program exit with
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
when executing the sample task:
const mineflayer = require('mineflayer')

const bot = mineflayer.createBot({
  host: 'localhost',
  username: 'bot1',
  auth: 'offline',
  port: 2037,
})

// Load collect block
bot.loadPlugin(require('mineflayer-collectblock').plugin)

async function collectStone() {
  // Find a nearby stone block
  const stone = bot.findBlock({
    matching: mcData.blocksByName.stone.id,
    maxDistance: 64
  })

  if (stone) {
    // If we found one, collect it.
    try {
      await bot.collectBlock.collect(stone)
      collectStone() // Collect another stone block
    } catch (err) {
      console.log(err) // Handle errors, if any
    }
  }
}
// On spawn, start collecting all nearby stone
bot.once('spawn', () => {
  mcData = require('minecraft-data')(bot.version)
  collectStone()
})

The console log:
<--- Last few GCs --->

[68251:0x150008000]    39126 ms: Scavenge 3922.6 (4120.0) -> 3913.3 (4120.0) MB, 11.21 / 0.00 ms  (average mu = 0.120, current mu = 0.005) allocation failure;
[68251:0x150008000]    39190 ms: Scavenge 3924.5 (4120.2) -> 3918.3 (4124.0) MB, 54.75 / 0.00 ms  (average mu = 0.120, current mu = 0.005) allocation failure;
[68251:0x150008000]    39228 ms: Scavenge 3932.8 (4126.2) -> 3925.3 (4130.2) MB, 18.88 / 0.00 ms  (average mu = 0.120, current mu = 0.005) allocation failure;

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 0x1047a153c node::Abort() [/usr/local/bin/node]
 2: 0x1047a173c node::ModifyCodeGenerationFromStrings(v8::Local<v8::Context>, v8::Local<v8::Value>, bool) [/usr/local/bin/node]
 3: 0x1049266c4 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/local/bin/node]
 4: 0x104afadb8 v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/usr/local/bin/node]
 5: 0x104afec6c v8::internal::Heap::CollectGarbageShared(v8::internal::LocalHeap*, v8::internal::GarbageCollectionReason) [/usr/local/bin/node]
 6: 0x104afb6d0 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/usr/local/bin/node]
 7: 0x104af9458 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
 8: 0x104af00ac v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
 9: 0x104af090c v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
10: 0x104ad5568 v8::internal::Factory::AllocateRawWithAllocationSite(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationType, v8::internal::Handle<v8::internal::AllocationSite>) [/usr/local/bin/node]
11: 0x104ae2710 v8::internal::Factory::NewJSGeneratorObject(v8::internal::Handle<v8::internal::JSFunction>) [/usr/local/bin/node]
12: 0x104ebb808 v8::internal::Runtime_CreateJSGeneratorObject(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
13: 0x10521cc44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/usr/local/bin/node]
14: 0x1051cd060 Builtins_CreateGeneratorObject [/usr/local/bin/node]
15: 0x10a86bf4c
16: 0x10a86ab60
17: 0x1051cd4c4 Builtins_GeneratorPrototypeNext [/usr/local/bin/node]
18: 0x10a865918
19: 0x105278fb8 Builtins_PromiseFulfillReactionJob [/usr/local/bin/node]
20: 0x1051bab94 Builtins_RunMicrotasks [/usr/local/bin/node]
21: 0x1051923f4 Builtins_JSRunMicrotasksEntry [/usr/local/bin/node]
22: 0x104a68238 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
23: 0x104a68724 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
24: 0x104a68900 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*) [/usr/local/bin/node]
25: 0x104a8facc v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/usr/local/bin/node]
26: 0x104a90268 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/usr/local/bin/node]
27: 0x1046d0c64 node::InternalCallbackScope::Close() [/usr/local/bin/node]
28: 0x1046d07c4 node::InternalCallbackScope::~InternalCallbackScope() [/usr/local/bin/node]
29: 0x104747930 node::Environment::RunTimers(uv_timer_s*) [/usr/local/bin/node]
30: 0x10516ec44 uv__run_timers [/usr/local/bin/node]
31: 0x1051724a4 uv_run [/usr/local/bin/node]
32: 0x1046d1754 node::SpinEventLoopInternal(node::Environment*) [/usr/local/bin/node]
33: 0x1047e1b8c node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/usr/local/bin/node]
34: 0x1047e1928 node::NodeMainInstance::Run() [/usr/local/bin/node]
35: 0x10476b6b8 node::Start(int, char**) [/usr/local/bin/node]
36: 0x19346a0e0 start [/usr/lib/dyld]

Process finished with exit code 134 (interrupted by signal 6:SIGABRT)

The stone is right next to the agent, and agent is not mining.

You are not waiting for promises correctly.

You are not waiting for promises correctly.

@extremeheat Could you elaborate more about how to do it? As it is your example code I am using.

@extremeheat I've got a similar issue and I think I properly awaited it. After about 30 seconds node crashes. During this time its also entirely blocking and other events aren't firing. Here's a minimal example reproducing it:
import mineflayer from "mineflayer"
import collectblock from "mineflayer-collectblock"

const bot = mineflayer.createBot({
  host: "localhost",
  port: 51870,
  username: "test",
})

bot.once("spawn", () => {
  bot.loadPlugin(collectblock.plugin)

  setTimeout(async () => {
    bot.chat("Doing some stuff now!")

    const blocks = bot.findBlocks({
      matching: 1, // stone
      maxDistance: 32,
      count: 2,
    })

    const targets = blocks.map((block) => bot.blockAt(block))
    await bot.collectBlock.collect(targets, { ignoreNoPath: true })
    bot.chat("done")
  }, 1000)
})

bot.on("chat", (username, message) => {
  console.log(`Chat> ${username}: ${message}`)
})

Some observations:

The bot never chats "done"
It will correct path-find to the block
During the collectBlock, chats do not get logged to console
The mineflayer bot stops sending packets to the server, i.e. after "Doing some stuff now!", teleport it in the air and it will not fall.

There is inconsistent behavior if the bot's inventory is empty vs. if it has a tool to mine the stone. Also, if you adjust the findBlocks count sufficiently high, sometimes it will mine a block or two, but not all of them.
After about 30 seconds it crashes with a similar error:
% node index.js
Chat> test: Doing some stuff now!

<--- Last few GCs --->

[75204:0x130008000]    33732 ms: Scavenge 1972.1 (2076.4) -> 1964.9 (2080.9) MB, 17.42 / 0.00 ms  (average mu = 0.366, current mu = 0.355) allocation failure;
[75204:0x130008000]    38928 ms: Mark-Compact 1978.5 (2082.9) -> 1951.4 (2086.6) MB, 5179.21 / 0.00 ms  (average mu = 0.212, current mu = 0.098) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 0x102643eb8 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 2: 0x1027d262c v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 3: 0x1029a6d00 v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 4: 0x1029aabb4 v8::internal::Heap::CollectGarbageShared(v8::internal::LocalHeap*, v8::internal::GarbageCollectionReason) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 5: 0x1029a7618 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 6: 0x1029a53a0 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 7: 0x10299bff4 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 8: 0x10299c854 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
 9: 0x1029818c4 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
10: 0x102d695d4 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
11: 0x1030c8c44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
12: 0x10850a44c
13: 0x1030794c4 Builtins_GeneratorPrototypeNext [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
14: 0x108508748
15: 0x1030794c4 Builtins_GeneratorPrototypeNext [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
16: 0x1086285d8
17: 0x103124fb8 Builtins_PromiseFulfillReactionJob [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
18: 0x103066b94 Builtins_RunMicrotasks [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
19: 0x10303e3f4 Builtins_JSRunMicrotasksEntry [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
20: 0x102914180 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
21: 0x10291466c v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
22: 0x102914848 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
23: 0x10293ba14 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
24: 0x10293c1b0 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
25: 0x10256cc4c node::InternalCallbackScope::Close() [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
26: 0x10256c7bc node::InternalCallbackScope::~InternalCallbackScope() [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
27: 0x1025e5514 node::Environment::RunTimers(uv_timer_s*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
28: 0x10301ac14 uv__run_timers [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
29: 0x10301e474 uv_run [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
30: 0x10256d6f0 node::SpinEventLoopInternal(node::Environment*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
31: 0x102683b64 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
32: 0x102683878 node::NodeMainInstance::Run() [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
33: 0x10260b654 node::Start(int, char**) [/Users/rholmdahl/.nvm/versions/node/v20.18.0/bin/node]
34: 0x18e2c0274 start [/usr/lib/dyld]
zsh: abort      node index.js


Building weechat fails on Darwin (El Capitan)

Scanning dependencies of target perl
[ 63%] Building C object src/plugins/perl/CMakeFiles/perl.dir/weechat-perl.o
In file included from /private/var/folders/5g/3kx3mc191y93shpp91bg7jyh0000gn/T/nix-build-weechat-1.4.drv-0/weechat-1.4/src/plugins/perl/weechat-perl.c:26:
In file included from /nix/store/xvmmc5k08v90d9n6bn8239419kdv23yd-perl-5.20.3/lib/perl5/5.20.3/darwin-2level/CORE/perl.h:5199:
/nix/store/xvmmc5k08v90d9n6bn8239419kdv23yd-perl-5.20.3/lib/perl5/5.20.3/darwin-2level/CORE/inline.h:311:9: warning: nonnull parameter 'pv' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion]
    if (pv && len > 1) {
        ^~ ~~
1 warning generated.
[ 63%] Building C object src/plugins/perl/CMakeFiles/perl.dir/weechat-perl-api.o
In file included from /private/var/folders/5g/3kx3mc191y93shpp91bg7jyh0000gn/T/nix-build-weechat-1.4.drv-0/weechat-1.4/src/plugins/perl/weechat-perl-api.c:27:
In file included from /nix/store/xvmmc5k08v90d9n6bn8239419kdv23yd-perl-5.20.3/lib/perl5/5.20.3/darwin-2level/CORE/perl.h:5199:
/nix/store/xvmmc5k08v90d9n6bn8239419kdv23yd-perl-5.20.3/lib/perl5/5.20.3/darwin-2level/CORE/inline.h:311:9: warning: nonnull parameter 'pv' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion]
    if (pv && len > 1) {
        ^~ ~~
1 warning generated.
[ 64%] Linking C shared module perl.so
ld: warning: directory not found for option '-L/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-Libsystem-osx-10.9.5/lib'
[ 64%] Built target perl
Scanning dependencies of target python
[ 64%] Building C object src/plugins/python/CMakeFiles/python.dir/weechat-python.o
[ 65%] Building C object src/plugins/python/CMakeFiles/python.dir/weechat-python-api.o
[ 65%] Linking C shared module python.so
ld: framework not found python
clang-3.7: error: linker command failed with exit code 1 (use -v to see invocation)
src/plugins/python/CMakeFiles/python.dir/build.make:121: recipe for target 'src/plugins/python/python.so' failed
make[2]: *** [src/plugins/python/python.so] Error 1
CMakeFiles/Makefile2:977: recipe for target 'src/plugins/python/CMakeFiles/python.dir/all' failed
make[1]: *** [src/plugins/python/CMakeFiles/python.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
builder for ‘/nix/store/8h87kl47zbqd7njkrfcww69wpmvvr9wr-weechat-1.4.drv’ failed with exit code 2
error: build of ‘/nix/store/8h87kl47zbqd7njkrfcww69wpmvvr9wr-weechat-1.4.drv’ failed

OS X 10.11.3, Nix 1.11, using a local nixpkgs checked-out at HEAD - 1a9e00.

This issue might be related to #9156.

ld: framework not found python cc @copumpkin

I've worked around this by putting:
cmakeFlags = with stdenv.lib; ["-DCMAKE_FIND_FRAMEWORK=LAST"]
in nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
The problem is that cmake defaults to looking for frameworks before dylibs, and so ends up with the system python instead of the nix-provided one. I don't think my fix is the right one, I suspect this should rather be fixed by either having python providing a framework or flipping the default order for cmake.

I think this should work now, so I'm closing. Please comment here if you still see the issue.


Clean checkout no longer passes tests

This is because requirements.txt isn't version-pinned and seems to get the latest flask.

No, it's because frozen-requirements.txt got updated as part of the make test task. Interesting. This means that it was marked as older than requirements.txt, so build order does not necessarily get preserved.

Going to attempt to fix this by comparing based on the git timestamps instead of filesystem timestamps

https://serverfault.com/questions/401437/how-to-retrieve-the-last-modification-date-of-all-files-in-a-git-repository

Fixed in  208716d


Modify the dependence on the Events

If $event must dependence Event\Dispatcher,  I can't use the Console module independent.
So,I think $event should have default value is null.
For example https://github.com/laravel/framework/blob/5.2/src/Illuminate/Queue/Worker.php construct

This probably needs to go to L5.3.


[HUDI-271] Create QuickstartUtils class towards simplifying quickstar…

…t guide
This class is a thin version of HoodieTestDataGenerator and will be used in Quickstart guide(Doc changes to follow in a separate PR). The intention is to simplify quickstart to showcase hudi APIs by writing and reading using spark datasources.
This is located in hudi-spark module intentionally to bring all the necessary classes in hudi-spark-bundle finally.

@bvaradar I removed the KeyPartition static class and replaced with hoodieKey. I renamed all occurrences of commitTime with randomString or something along that line. Also, was able to reuse the OverwriteWithLatestAvroPayload class. Please review at your convenience.

Thanks @bhasudha for getting it done in short notice.

@bhasudha can you please change the commit message to be bullets like the standard format

Done!


initialization

Ok, we can now mark this initialization as done, as long as common-entity is finished


Check for zero length passwords in LDAP module.

According to https://tools.ietf.org/search/rfc4513#section-5.1.2 LDAP client should always check before bind whether a password is an empty value. There are at least one LDAP implementation which does not return error if you try to bind with DN set and empty password - AD.

Thanks!


[Feature] Merge icons of local and tracked branches, like in SmartGit

Example.
I've cloned https://github.com/pelrun/hp-omen-linux-module and created local branches rebase-6.2, rebase-6.1, and rebase-6.8
Here is how this repo looks in Sourcegit

And here is how this repo looks in SmartGit

Please, note = signs on gray background and puzzle-like curves for tags on branch rebase-6.8, where I've made one commit locally.
SmartGit's display looks much more understandable for me.
What do you think?

To summarize, I suggest to implement following rules for drawing branch icons.
If local and tracked remote branches point at the same commit, draw icons close to each other with equality sign (=) between them.
If a local branch has commits, missing in remote, or remote branch has commits, missing locally, draw their icons on respective lines of git log, adding puzzle-like curves, showing divergence. Add number of differing commits (+1, -1, +2, -2...) near icons in log too.

The dot in blue means this commit is ahead (not pushed to remote) of its tracking upstream.
The dot in text foreground color means this commit is behind (not merged to local branch) of it tracking upstream.
The badge behind the branch name in left branch tree shows the summary of how many commits ahead and behind between the current local branch and its tracking remote

the UI/UX design is very different between SourceGit and SmartGit, and currently there are no plans to add this feature.


iTerm2 ANSI black set to light grey (making Powerlevel9k unreadable)

Is setting ANSI black in iTerm2 to a light grey intentional?

It's making Powerlevel9k unreadable, and I presume it will affect any theme that requires black to contrast with light colours.
Powerlevel9k currently:

And with ANSI black manually set to the same colour as the background:

Similar problem in htop:

The green and blue bars contain light grey text that should be black.


Scraping tests: refactor scrapeLoop creation

Pull boilerplate code into a function. Where appropriate we set some config on the returned object.
This removes 600 lines of repetitive code, and makes it easier to make further changes to scrapeLoop.
This was originally part of #12993.

Thanks!


Fixed Dockerfile build issues

Pull Request Test Coverage Report for Build 605175008

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.9%) to 46.623%

Totals

Change from base Build 575444985:
0.9%

Covered Lines:
756

Relevant Lines:
876

💛  - Coveralls


End of life behaviour UI (EXPOSUREAPP-4641)

This PR adds the new card for re-enabling the risk calculation after a user was found positive and has submitted their keys.
Testing steps:

Register a positive test.
Submit your keys.
On the home screen, under the "Vielen Dank" card, the new card that lets you re-enable risk calculation is displayed.
Note: nothing will happen after pressing the new card. The logic will be implemented in a separate PR.

Date implementation is missing.

Date implementation is missing.

Date implementation is missing.

Yep, I'm working on it.

Date implementation is missing.

Yep, I'm working on it.

My concerns are about the setting risk calculation, which is not aligned with the proposed end-of-life behavior.

What do you mean exactly?


✔ Implemented a Dedicated Licensing page.

Hey @Abidsyed25
issue closes #186
I have added a dedicated licensing page reflecting MIT License to the page
Here's What I Did

I have created the Licensing Page for the website
Updated the Footer, to add the Navigating link to the Page
Styled the Page to Follow the Website's theme
Added Hovering Effects to "back to home" button

Here's as you can see -

Here's the Video
https://github.com/user-attachments/assets/34af630c-60d3-4068-8b31-a094f0fc1233
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] I have made this from my own
[x] I have taken help from some online resourses
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

@Abidsyed25 , Please take a look

@Abidsyed25 Resolved the conflicts please take a look


Compare changes across branches, commits, tags, and more below.

Pull Request Test Coverage Report for Build 129440102

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 94.525%

Totals

Change from base Build 126895536:
-0.06%

Covered Lines:
1975

Relevant Lines:
2051

💛  - Coveralls


[Monitoring V2] Rebase Monitoring V2 to upstream kube-prometheus-stack 19.x.x

Need to rebase Monitoring V2 chart to latest upstream

release-note here is just that it has been upgraded

NOTE: This is the draft, not the final version, and the issue is not ready for validation yet.

Root cause
Update the rancher-monitoring chart to match the upstream kube-prometheus-stack chart version 19.0.3
What was fixed, or what changes have occurred

there are lots of changes in the rancher-monitoring chart and its sub-charts
there are fixes to some existing issues reported by users ( they are all tracked in individual issues)

Areas or cases that should be tested

General functionality of rancher-monitoring

The cluster explorer UI

the app installation page and workflow should work
monitoring Dashboard

links on the monitoring dashboard should work
creating/upgrading/deleting pod monitor and service monitor should succeed and take effect
creating/upgrading/deleting receiver and route should succeed and take effect

metrics on the following page should show up with data

cluster dashboard
node detail page
pod detail page

Grafana

all built-in dashboards should show metrics with data
a new dashboard named alertmanager-overview is added

AlertManager

should receive alerts from Prometheus and show them in its UI
should send out alerts to the receivers configured by users

Prometheus

all targets should be up and healthy

Thanos

this might be the area that we did not pay much attention to in the past, but since the upstream chart added more supports to Thanos, we should do some basic functionality checks

Installation

fresh installation experience should be the same as the previous version

Upgrading

upgrading from the previous version (100.0.0+up16.6.0) should succeed. Note: see the APP-README for a known issue and workaround
kubeStateMetrics.serviceMonitor.namespaceOverride is replaced by kube-state-metrics.namespaceOverride, the upgrade should fail if kubeStateMetrics.serviceMonitor.namespaceOverride is passed in the value.yaml

Support for different cluster types

All already supported cluster types should continue to be supported, see the list on the installation page

Support for different k8s version

All already supported k8s versions should continue to be supported

Support for air-gap env

all new images tags should be in the images.txt
rancher-monitoring should work in air-gap env

Support for hardened cluster

rancher-monitoring should work on a handed RKE cluster
after rancher-monitoring is installed, the CIS scans using the following profiles should still pass: rke-profile-hardened-1.5 and rke-profile-hardened-1.6

What areas could experience regressions?
Nearly all areas are mentioned in the above section.
Are the repro steps accurate/minimal?
n/a

Can be tested in the rancher-monitoring  100.1.0+up19.0.3

General functionality of rancher-monitoring

The cluster explorer UI

the app installation page and workflow are working as expected — pass
monitoring Dashboard

links on the monitoring dashboard should work — pass
creating/upgrading/deleting pod monitor and service monitor should succeed and take effect — pass
creating/upgrading/deleting receiver and route should succeed and take effect — pass

metrics on the following page should show up with data — pass

cluster dashboard
node detail page
pod detail page

Grafana

all built-in dashboards should show metrics with data  — pass
a new dashboard named alertmanager-overview is added — pass

AlertManager

should receive alerts from Prometheus and show them in its UI — pass
should send out alerts to the receivers configured by users — pass

Prometheus

all targets should be up and healthy —pass

Thanos

we will not test Thanos explicitly -- Expected

Installation

fresh installation experience should be the same as the previous version — pass

Upgrading

upgrading from the previous version (100.0.0+up16.6.0) should succeed. — pass
kubeStateMetrics.serviceMonitor.namespaceOverride is replaced by kube-state-metrics.namespaceOverride, the upgrade should fail if kubeStateMetrics.serviceMonitor.namespaceOverride is passed in the value.yaml

Support for different cluster types

All already supported cluster types should continue to be supported, see the list on the installation page
tested on rke1, rke2, custom clusters — pass

Support for different k8s version

All already supported k8s versions should continue to be supported
also tested on latest versions of 1.20, 1.21, 1.22 — pass

Support for air-gap env

all new images tags should be in the images.txt — pass (working deployment of monitoring
rancher-monitoring should work in air-gap env — pass
-unable to test rke2 in airgap due to this issue -- rke2 is not GA, so will not block on this issue

Support for hardened cluster

rancher-monitoring should work on a handed RKE cluster — pass
after rancher-monitoring is installed, the CIS scans using the following profiles should still pass: rke-profile-hardened-1.5 and rke-profile-hardened-1.6  — pass


configure max retries for our celery periodic tasks

Description of the bug
When one of our periodic celery tasks fails, it keeps retrying every minute.
Probably we need something like
class BaseTaskWithRetry(celery.Task):
    autoretry_for = (Exception, KeyError)
    retry_kwargs = {'max_retries': 5}
    retry_backoff = True

to be added in our HydroshareRequest class:
https://github.com/hydroshare/hydroshare/blob/2.3/hs_core/tasks.py#L79
See
https://docs.celeryq.dev/en/v5.2.7/userguide/configuration.html#std:setting-task_publish_retry_policy
and
https://docs.celeryq.dev/en/v5.2.7/reference/celery.app.task.html#celery.app.task.Task.max_retries
Expected behavior
There should be a limit to the number of retries for our periodic tasks.
Additional information
v2.3

turns out this was due to a hour/min not being set
https://github.com/hydroshare/hydroshare/blob/2.3/hs_core/tasks.py#L109
so the task was executing every minute of the first day of the month

resolved by hotfix PR https://github.com/hydroshare/hydroshare/pull/4976


Disabling dragging

Hi I was wondering how I could go about disabling the ability to drag the chart around?

#52 might help you

Hi the link that you provided in that question does not point to the line that was originally linked anymore I think, also I am trying to still have  the nodes be clickable so I can not disable pointer events.

Works, thank you very much.


Added squash_commits() method

🚀 🚀 Pull Request
Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[X] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Creates a new dataset.squash_commits() method which squashes all the commits in the current branch into a single commit.
It moves the latest versions of the chunk files and other metadata files from the various existing commits up to the head commit (for now, FIRST_COMMIT_ID (see below)), updates the version_control_info.json file to no longer reference the old commits, and deletes the old version directories.
Things to be aware of
Currently, it only supports squashing commits on the main branch, and only when there are no other branches.
This keeps the logic safer and simpler, and given that the reason for the feature right now is for people who had a bunch of commits auto-generated for them and they don't really care about version control and don't want the overhead of the extra commits.
If/when others want more complex commit squashes we can expand what the function supports.
Things to worry about

It deletes data from versions which is always a bit scary. Is there any data that's not correctly copied over that will be lost? Anything with the tiles or anything that will be lost?

It collapses the commits down to the first commit in the branch aka FIRST_COMMIT_ID since it only supports main for now. Is this going to be a problem with anything like index management when commits disappear? Commits would disappear either way in a squash, but with this setup it will be "later" commits that disappear vs. squashing all the old commits into the pending_commit_id. I didn't think for main I could do that, though, because then the FIRST_COMMIT_ID that is often looked for would no longer exist. I could have kept the first commit and just collapsed everything into the the pending_commit_id, but then we still have two commits which seems a bit wrong for squash()?

Additional Context

We might also rather have one commit at the end of this, instead of staging all the changes.


newest API 0.3.0 installation fails : ERROR: Could not build wheels for av2, which is required to install pyproject.toml-based projects

Hi, I downloaded the source code of the main branch for compilation, and an error occurred as shown follow:
C:\Users\dell\Downloads\av2-api-main>pip install .
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing c:\users\dell\downloads\av2-api-main
 Installing build dependencies ... done
 Getting requirements to build wheel ... done
 Preparing metadata (pyproject.toml) ... done
Collecting av (from av2==0.3.0)
 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/88/e3/effe4e9903d9b828ff76d527318568df7fe8d9bd2aaa6d147bdcd8cc3fbf/av-12.0.0-cp39-cp39-win_amd64.whl (26.4 MB)
Requirement already satisfied: click in c:\python\python39\lib\site-packages (from av2==0.3.0) (8.1.3)
Requirement already satisfied: joblib in c:\python\python39\lib\site-packages (from av2==0.3.0) (1.2.0)
Collecting kornia (from av2==0.3.0)
 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ac/fa/5612c4b1ad83b3044062e9dd0ca3c91937d8023cff0836269e18573655b0/kornia-0.7.2-py2.py3-none-any.whl (825 kB)
Requirement already satisfied: matplotlib in c:\users\dell\appdata\roaming\python\python39\site-packages (from av2==0.3.0) (3.6.1)
Requirement already satisfied: nox in c:\python\python39\lib\site-packages (from av2==0.3.0) (2024.3.2)
Requirement already satisfied: numba in c:\python\python39\lib\site-packages (from av2==0.3.0) (0.58.0)
Requirement already satisfied: numpy in c:\python\python39\lib\site-packages (from av2==0.3.0) (1.24.4)
Requirement already satisfied: opencv-python in c:\python\python39\lib\site-packages (from av2==0.3.0) (<IP_ADDRESS>)
Requirement already satisfied: pandas in c:\python\python39\lib\site-packages (from av2==0.3.0) (1.3.5)
Collecting polars (from av2==0.3.0)
 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ed/bd/35e3480f180c3e9bc57ef402c0b6e881da6909aaeff4eb31790e2e07beea/polars-0.20.16-cp38-abi3-win_amd64.whl (26.1 MB)
Requirement already satisfied: pyarrow in c:\python\python39\lib\site-packages (from av2==0.3.0) (15.0.2)
Requirement already satisfied: pyproj in c:\python\python39\lib\site-packages (from av2==0.3.0) (3.6.1)
Requirement already satisfied: rich in c:\python\python39\lib\site-packages (from av2==0.3.0) (13.5.3)
Requirement already satisfied: scipy in c:\python\python39\lib\site-packages (from av2==0.3.0) (1.11.3)
Requirement already satisfied: torch in c:\python\python39\lib\site-packages (from av2==0.3.0) (2.1.0+cu118)
Requirement already satisfied: tqdm in c:\python\python39\lib\site-packages (from av2==0.3.0) (4.64.1)
Collecting universal_pathlib (from av2==0.3.0)
 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/63/a2/d8fe0f7e233c5e0201442d82279f3a0ffb30edcb8d7c4c5eba695c16647f/universal_pathlib-0.2.2-py3-none-any.whl (46 kB)
Requirement already satisfied: colorama in c:\python\python39\lib\site-packages (from click->av2==0.3.0) (0.4.5)
Collecting kornia-rs>=0.1.0 (from kornia->av2==0.3.0)
 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/06/cf/1e1016c4b946c839a3cd9100ec4c67e55bddc85f10d921bb5857cff0e360/kornia_rs-0.1.2-cp39-none-win_amd64.whl (1.2 MB)
Requirement already satisfied: packaging in c:\python\python39\lib\site-packages (from kornia->av2==0.3.0) (23.2)
Requirement already satisfied: filelock in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (3.12.0)
Requirement already satisfied: typing-extensions in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (4.8.0)
Requirement already satisfied: sympy in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (1.12)
Requirement already satisfied: networkx in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (2.8.6)
Requirement already satisfied: jinja2 in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (3.1.2)
Requirement already satisfied: fsspec in c:\python\python39\lib\site-packages (from torch->av2==0.3.0) (2023.9.2)
Requirement already satisfied: contourpy>=1.0.1 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (1.0.5)
Requirement already satisfied: cycler>=0.10 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (0.11.0)
Requirement already satisfied: fonttools>=4.22.0 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (4.37.3)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (1.4.4)
Requirement already satisfied: pillow>=6.2.0 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (9.2.0)
Requirement already satisfied: pyparsing>=2.2.1 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in c:\python\python39\lib\site-packages (from matplotlib->av2==0.3.0) (2.8.2)
Requirement already satisfied: argcomplete<4.0,>=1.9.4 in c:\python\python39\lib\site-packages (from nox->av2==0.3.0) (3.2.3)
Requirement already satisfied: colorlog<7.0.0,>=2.6.1 in c:\python\python39\lib\site-packages (from nox->av2==0.3.0) (6.8.2)
Requirement already satisfied: virtualenv>=20.14.1 in c:\python\python39\lib\site-packages (from nox->av2==0.3.0) (20.23.0)
Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in c:\python\python39\lib\site-packages (from numba->av2==0.3.0) (0.41.0)
Requirement already satisfied: pytz>=2017.3 in c:\python\python39\lib\site-packages (from pandas->av2==0.3.0) (2022.2.1)
Requirement already satisfied: certifi in c:\python\python39\lib\site-packages (from pyproj->av2==0.3.0) (2022.9.24)
Requirement already satisfied: markdown-it-py>=2.2.0 in c:\python\python39\lib\site-packages (from rich->av2==0.3.0) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\python\python39\lib\site-packages (from rich->av2==0.3.0) (2.13.0)
Requirement already satisfied: mdurl~=0.1 in c:\python\python39\lib\site-packages (from markdown-it-py>=2.2.0->rich->av2==0.3.0) (0.1.2)
Requirement already satisfied: six>=1.5 in c:\python\python39\lib\site-packages (from python-dateutil>=2.7->matplotlib->av2==0.3.0) (1.16.0)
Requirement already satisfied: distlib<1,>=0.3.6 in c:\python\python39\lib\site-packages (from virtualenv>=20.14.1->nox->av2==0.3.0) (0.3.6)
Requirement already satisfied: platformdirs<4,>=3.2 in c:\python\python39\lib\site-packages (from virtualenv>=20.14.1->nox->av2==0.3.0) (3.5.1)
Requirement already satisfied: MarkupSafe>=2.0 in c:\python\python39\lib\site-packages (from jinja2->torch->av2==0.3.0) (2.1.1)
Requirement already satisfied: mpmath>=0.19 in c:\python\python39\lib\site-packages (from sympy->torch->av2==0.3.0) (1.3.0)
Building wheels for collected packages: av2
 Building wheel for av2 (pyproject.toml) ... error
 error: subprocess-exited-with-error

 × Building wheel for av2 (pyproject.toml) did not run successfully.
 │ exit code: 1
 ╰─> [48 lines of output]
     Running `maturin pep517 build-wheel -i C:\Python\Python39\python.exe --compatibility off`
      Including license file "C:\Users\dell\Downloads\av2-api-main\NOTICE"
      Building a mixed python/rust project
      Found pyo3 bindings
      Found CPython 3.9 at C:\Python\Python39\python.exe
      Using build options features from pyproject.toml
        Compiling ahash v0.8.6
        Compiling target-lexicon v0.12.12
        Compiling zstd-safe v7.0.0
        Compiling parking_lot v0.12.1
        Compiling multiversion-macros v0.7.3
        Compiling rustversion v1.0.14
        Compiling foreign_vec v0.1.0
        Compiling dyn-clone v1.0.16
        Compiling strength_reduce v0.2.4
        Compiling itoa v1.0.10
        Compiling serde v1.0.193
        Compiling bytemuck v1.14.0
        Compiling thiserror v1.0.51
        Compiling polars-arrow v0.37.0
        Compiling atoi_simd v0.15.5
        Compiling ethnum v1.5.0
        Compiling ppv-lite86 v0.2.17
        Compiling unicode-width v0.1.11
        Compiling streaming-iterator v0.1.9
        Compiling ndarray v0.15.6
        Compiling ryu v1.0.16
        Compiling crossterm_winapi v0.9.1
        Compiling polars-compute v0.37.0
        Compiling windows_x86_64_msvc v0.52.0
     error: could not compile `ahash` (lib) due to 2 previous errors
     warning: build failed, waiting for other jobs to finish...
      maturin failed
       Caused by: Failed to build a native library through cargo
       Caused by: Cargo build finished with "exit code: 101": `"cargo" "rustc" "--release" "--features" "pyo3/extension-module" "--manifest-path" "C:\\Users\\dell\\Downloads\\av2-api-main\\rust\\Cargo.toml" "--message-format" "json" "--lib" "--crate-type" "cdylib"`
     error[E0635]: unknown feature `stdsimd`
       --> C:\Users\dell\.cargo\registry\src\index.crates.io-6f17d22bba15001f\ahash-0.8.6\src/lib.rs:99:42
        |
     99 | #![cfg_attr(feature = "stdsimd", feature(stdsimd))]
        |                                          ^^^^^^^

     error: aborting due to 1 previous error

     For more information about this error, try `rustc --explain E0635`.

     Error: command ['maturin', 'pep517', 'build-wheel', '-i', 'C:\\Python\\Python39\\python.exe', '--compatibility', 'off'] returned non-zero exit status 1
     [end of output]

 note: This error originates from a subprocess, and is likely not a problem with pip.
 ERROR: Failed building wheel for av2
Failed to build av2
ERROR: Could not build wheels for av2, which is required to install pyproject.toml-based projects

How can I solve this?
I would like to use the latest version of the API.
Are there plans to upload it to PyPi soon?
Or you could create a wheel package to facilitate installation for researchers?
Best Regards

I have the same issues, play help us to install it.

I got the same question one time. How can I fix it plz.

I got the same question one time. How can I fix it plz.

I have solved this problem following this issue: https://github.com/argoverse/av2-api/issues/211
Go ahead and check it.
Cheers

I got the same question one time. How can I fix it plz.

I have solved this problem following this issue: #211 Go ahead and check it.
Cheers

Got it. 谢谢hxd


Continue plain language for manual testing blog

Finish revisions, put spreadsheet on wiki, get it in the publication queue.

I will put this blog in dev once the one currently in dev is live.


Failed to extract manifest from APK // aapt.EXE stop working.

I installed flutter and dart then tried to test the default app of flutter on web and it worked well. Then tried to test the app on my own phone i get that error :
windows [Version 10.0.17763.1039]
(c) 2018 Microsoft Corporation. All rights reserved.
D:\tests\flutter_appd>flutter run
Launching lib\main.dart on STK LX1 in debug mode...
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                       117.9s
√ Built build\app\outputs\apk\debug\app-debug.apk.
After this step i got a message saying that " aapt.EXE stop working "
then
Failed to extract manifest from APK: ProcessException: The
command failed
Command: C:\Users\User\AppData\Local\Android\sdk\build-t
ools\28.0.3\aapt dump xmltree
D:\tests\flutter_appd\build\app\outputs\apk\app.apk AndroidManifest.xml.
Problem building Android application: see above error(s).
thank you.

C:\Users\User>flutter doctor -v
[√] Flutter (Channel beta, v1.14.6, on Microsoft Windows [Version 10.0.17763.1039], locale en-US)
• Flutter version 1.14.6 at C:\flutter
• Framework revision fabeb2a16f (2 weeks ago), 2020-01-28 07:56:51 -0800
• Engine revision c4229bfbba
• Dart version 2.8.0 (build 2.8.0-dev.5.0 fc3af737c7)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\User\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 3.5)
• Android Studio at C:\Program Files\Android\Android Studio1
• Flutter plugin version 43.0.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
[√] IntelliJ IDEA Community Edition (version 2019.2)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.2
• Flutter plugin version 43.0.2
• Dart plugin version 192.7761
[√] VS Code (version 1.42.0)
• VS Code at C:\Users\User\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.8.1
[√] Connected device (3 available)
• STK LX1    • MVS4C19803003273 • android-arm64  • Android 9 (API 28)
• Chrome     • chrome           • web-javascript • Google Chrome 80.0.3987.87
• Web Server • web-server       • web-javascript • Flutter Tools
• No issues found!

Hi @openclues
your flutter run --verbose
Thank you

sts\flutter_appd>flutter run --verbose
[  +36 ms] executing: [C:\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +88 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] fabeb2a16f1d008ab8230f450c49141d35669798
[        ] executing: [C:\flutter/] git describe --match v*.. --first-parent --long --tags
[  +64 ms] Exit code 0 from: git describe --match v*.. --first-parent --long --tags
[        ] v1.14.6-0-gfabeb2a16
[  +12 ms] executing: [C:\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +74 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/beta
[        ] executing: [C:\flutter/] git ls-remote --get-url origin
[  +59 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[ +126 ms] executing: [C:\flutter/] git rev-parse --abbrev-ref HEAD
[  +95 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +76 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +75 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[ +142 ms] Exit code 0 from: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[   +1 ms] List of devices attached
MVS4C19803003273       device product:STK-L21 model:STK_LX1 device:HWSTK-HF transport_id:1
[  +20 ms] C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe -s MVS4C19803003273 shell getprop
[+1242 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[  +21 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[+1167 ms] Generating
D:\tests\flutter_appd\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +413 ms] ro.hardware = kirin710
[        ] ro.build.characteristics = default
[  +72 ms] Launching lib\main.dart on STK LX1 in debug mode...
[ +209 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe -s MVS4C19803003273 shell -x
logcat -v time -t 1
[ +227 ms] Exit code 0 from: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe -s MVS4C19803003273 shell
-x logcat -v time -t 1
[   +1 ms] --------- beginning of system
02-13 14:11:09.567 I/AlarmManager( 1464): adjustDeliveryTimeBasedOnStandbyBucketLocked alarm:Alarm{dda3ff4
type 3 when 7304594 PendingIntent{9ae90fe: PendingIntentRecord{1f5505f com.whatsapp
broadcastIntent}}com.whatsapp}, standbyBucket:40, minElapsed:11744155
[  +11 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe version
[   +2 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe -s MVS4C19803003273 logcat -v
time -T 02-13 14:11:09.567
[ +253 ms] Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe
[   +3 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe start-server
[ +170 ms] Building APK
[  +24 ms] Running Gradle task 'assembleDebug'...
[   +4 ms] gradle.properties already sets android.enableR8
[   +7 ms] Using gradle from D:\tests\flutter_appd\android\gradlew.bat.
[   +2 ms] D:\tests\flutter_appd\android\gradlew.bat mode: 33279 rwxrwxrwx.
[  +17 ms] executing: C:\Program Files\Android\Android Studio1\jre\bin\java -version
[+1932 ms] Exit code 0 from: C:\Program Files\Android\Android Studio1\jre\bin\java -version
[   +1 ms] openjdk version "1.8.0_202-release"
OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
OpenJDK 64-Bit Server VM (build 25.202-b03, mixed mode)
[   +7 ms] executing: [D:\tests\flutter_appd\android/] D:\tests\flutter_appd\android\gradlew.bat -Pverbose=true
-Ptarget=D:\tests\flutter_appd\lib\main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root
-Ptarget-platform=android-arm64 assembleDebug
[+6238 ms] Starting a Gradle Daemon, 1 busy and 3 incompatible Daemons could not be reused, use --status for details
[+36680 ms] > Task :app:compileFlutterBuildDebug
[   +1 ms] [  +32 ms] executing: [C:\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] [  +89 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] fabeb2a16f1d008ab8230f450c49141d35669798
[        ] [        ] executing: [C:\flutter/] git describe --match v*.. --first-parent --long --tags
[        ] [  +60 ms] Exit code 0 from: git describe --match v*.. --first-parent --long --tags
[   +1 ms] [        ] v1.14.6-0-gfabeb2a16
[        ] [  +11 ms] executing: [C:\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [  +55 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/beta
[        ] [        ] executing: [C:\flutter/] git ls-remote --get-url origin
[   +1 ms] [  +54 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] [        ] https://github.com/flutter/flutter.git
[        ] [ +112 ms] executing: [C:\flutter/] git rev-parse --abbrev-ref HEAD
[        ] [  +62 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms] [        ] beta
[   +1 ms] [  +39 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms] [   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[   +2 ms] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[   +1 ms] [  +23 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [ +215 ms] Initializing file store
[   +1 ms] [  +64 ms] kernel_snapshot: Starting due to {}
[   +1 ms] [  +20 ms] C:\flutter\bin\cache\dart-sdk\bin\dart.exe
C:\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root
C:\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --target=flutter
-Ddart.developer.causal_async_stacks=true -Ddart.vm.profile=false -Ddart.vm.product=false
--bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,av
oid-closure-call-instructions --enable-asserts --track-widget-creation --no-link-platform --packages
D:\tests\flutter_appd.packages --output-dill
D:\tests\flutter_appd.dart_tool\flutter_build\e883ef037de334b8af14c77b230ef036\app.dill --depfile
D:\tests\flutter_appd.dart_tool\flutter_build\e883ef037de334b8af14c77b230ef036\kernel_snapshot.d
package:flutter_appd/main.dart
[+19940 ms] [+20041 ms] kernel_snapshot: Complete
[+2100 ms] [+2116 ms] debug_android_application: Starting due to {}
[+1299 ms] [+1302 ms] debug_android_application: Complete
[ +501 ms] [ +490 ms] Persisting file store
[   +7 ms] [  +52 ms] Done persisting file store
[   +1 ms] [   +5 ms] build succeeded.
[  +89 ms] [  +34 ms] "flutter assemble" took 24,475ms.
[ +505 ms] > Task :app:packLibsflutterBuildDebug
[   +1 ms] > Task :app:preBuild UP-TO-DATE
[        ] > Task :app:preDebugBuild UP-TO-DATE
[   +1 ms] > Task :app:compileDebugAidl NO-SOURCE
[ +490 ms] > Task :app:checkDebugManifest
[   +1 ms] > Task :app:compileDebugRenderscript NO-SOURCE
[  +98 ms] > Task :app:generateDebugBuildConfig
[ +150 ms] > Task :app:cleanMergeDebugAssets UP-TO-DATE
[ +251 ms] > Task :app:mergeDebugShaders
[   +1 ms] > Task :app:compileDebugShaders
[        ] > Task :app:generateDebugAssets
[   +1 ms] > Task :app:mergeDebugAssets
[ +595 ms] > Task :app:copyFlutterAssetsDebug
[ +299 ms] > Task :app:mainApkListPersistenceDebug
[ +799 ms] > Task :app:generateDebugResValues
[   +1 ms] > Task :app:generateDebugResources
[+2600 ms] > Task :app:createDebugCompatibleScreenManifests
[+1198 ms] > Task :app:processDebugManifest
[ +399 ms] > Task :app:mergeDebugResources
[+19200 ms] > Task :app:processDebugResources
[+13405 ms] > Task :app:compileDebugKotlin
[   +1 ms] > Task :app:javaPreCompileDebug
[+2893 ms] > Task :app:compileDebugJavaWithJavac
[   +2 ms] > Task :app:compileDebugSources
[   +1 ms] > Task :app:processDebugJavaRes NO-SOURCE
[ +408 ms] > Task :app:checkDebugDuplicateClasses
[+5186 ms] > Task :app:transformClassesWithDexBuilderForDebug
[ +200 ms] > Task :app:validateSigningDebug
[ +200 ms] > Task :app:signingConfigWriterDebug
[   +1 ms] > Task :app:desugarDebugFileDependencies
[+1698 ms] > Task :app:mergeDebugJniLibFolders
[+4300 ms] > Task :app:mergeExtDexDebug
[+7298 ms] > Task :app:mergeDebugJavaResource
[ +101 ms] > Task :app:mergeDexDebug
[+1498 ms] > Task :app:mergeDebugNativeLibs
[ +300 ms] Unable to strip library
'D:\tests\flutter_appd\build\app\intermediates\merged_native_libs\debug\out\lib\x86_64\libflutter.so' due to missing
strip tool for ABI 'X86_64'. Packaging it as is.
[ +600 ms] > Task :app:stripDebugDebugSymbols
[   +1 ms] Compatible side by side NDK version was not found.
[        ] Unable to strip library
'D:\tests\flutter_appd\build\app\intermediates\merged_native_libs\debug\out\lib\arm64-v8a\libflutter.so' due to
missing strip tool for ABI 'ARM64_V8A'. Packaging it as is.
[   +1 ms] Unable to strip library
'D:\tests\flutter_appd\build\app\intermediates\merged_native_libs\debug\out\lib\x86\libflutter.so' due to missing
strip tool for ABI 'X86'. Packaging it as is.
[+15598 ms] > Task :app:packageDebug
[   +1 ms] > Task :app:assembleDebug
[ +197 ms] BUILD SUCCESSFUL in 2m 27s
[   +1 ms] 30 actionable tasks: 29 executed, 1 up-to-date
[ +740 ms] Running Gradle task 'assembleDebug'... (completed in 150.1s, longer than expected)
[  +69 ms] calculateSha: LocalDirectory: 'D:\tests\flutter_appd\build\app\outputs\apk'/app.apk
[ +102 ms] calculateSha: reading file took 100us
[ +931 ms] calculateSha: computing sha took 930us
[   +9 ms] √ Built build\app\outputs\apk\debug\app-debug.apk.
[ +114 ms] executing: C:\Users\User\AppData\Local\Android\sdk\build-tools\28.0.3\aapt dump xmltree
D:\tests\flutter_appd\build\app\outputs\apk\app.apk AndroidManifest.xml
[+22502 ms] Exit code -1073741674 from: C:\Users\User\AppData\Local\Android\sdk\build-tools\28.0.3\aapt dump xmltree
D:\tests\flutter_appd\build\app\outputs\apk\app.apk AndroidManifest.xml
[   +5 ms] Failed to extract manifest from APK: ProcessException: The command failed
Command: C:\Users\User\AppData\Local\Android\sdk\build-tools\28.0.3\aapt dump xmltree
D:\tests\flutter_appd\build\app\outputs\apk\app.apk AndroidManifest.xml.
[   +5 ms] "flutter run" took 178,144ms.
Problem building Android application: see above error(s).
#0      throwToolExit (package:flutter_tools/src/base/common.dart:27:3)
#1      AndroidDevice.startApp (package:flutter_tools/src/android/android_device.dart:538:7)

#2      FlutterDevice.runHot (package:flutter_tools/src/resident_runner.dart:434:54)
#3      _asyncThenWrapperHelper. (dart:async-patch/async_patch.dart:75:64)
#4      _rootRunUnary (dart:async/zone.dart:1134:38)
#5      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#6      _FutureListener.handleValue (dart:async/future_impl.dart:140:18)
#7      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
#8      Future._propagateToListeners (dart:async/future_impl.dart:711:32)
#9      Future._completeWithValue (dart:async/future_impl.dart:526:5)
#10     _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:34:15)
#11     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:293:13)
#12     ApplicationPackageFactory.getPackageForPlatform (package:flutter_tools/src/application_package.dart)
#13     _asyncThenWrapperHelper. (dart:async-patch/async_patch.dart:75:64)
#14     _rootRunUnary (dart:async/zone.dart:1134:38)
#15     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#16     _FutureListener.handleValue (dart:async/future_impl.dart:140:18)
#17     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
#18     Future._propagateToListeners (dart:async/future_impl.dart:711:32)
#19     Future._completeWithValue (dart:async/future_impl.dart:526:5)
#20     _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:34:15)
#21     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:293:13)
#22     AndroidApk.fromAndroidProject (package:flutter_tools/src/application_package.dart)
#23     _asyncThenWrapperHelper. (dart:async-patch/async_patch.dart:75:64)
#24     _rootRunUnary (dart:async/zone.dart:1134:38)
#25     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#26     _FutureListener.handleValue (dart:async/future_impl.dart:140:18)
#27     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:682:45)
#28     Future._propagateToListeners (dart:async/future_impl.dart:711:32)
#29     Future._completeWithValue (dart:async/future_impl.dart:526:5)
#30     Future._asyncComplete. (dart:async/future_impl.dart:556:7)
#31     _rootRun (dart:async/zone.dart:1126:13)
#32     _CustomZone.run (dart:async/zone.dart:1023:19)
#33     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#34     _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:965:23)
#35     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#36     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#37     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#38     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

Similar to https://github.com/flutter/flutter/issues/35537
(but I don't have issues with 28.0.3)

i have a similar issue anyone whos managed to solve?

I have just created one project in VS studio for flutter, and when i try to run the project, i'm getting error.
Error :
Failed to extract manifest from APK: ProcessException: The command failed
Command: D:\SDK_NEW\sdk\build-tools\29.0.3\aapt dump xmltree E:\button_click_demo\build\app\outputs\flutter-apk\app.apk AndroidManifest.xml.
Exception: Problem building Android application: see above error(s).
I have created flutter project from android studio and got same error, can someone please give me solution for this issue, i'm stuck with this error since last 2 days.
Please find the screen shot of error which i'm getting
https://prnt.sc/vuxqk8
i'm getting the same issue,
I have tried all solutions but none of them are working.
Can someone please help me to resolve this issue.

Hello, is there any solution for this issue?
I'm waiting since a week, can some one please help me to resolve the issue?

I am also facing the similar issue. Is anyone there to resolve this issue.

I am also facing same issue.

I am also facing same issue.

is there anyone who found a solution concerning this issue?


Consider moving receipt parsing and ABI decoding logic to its own crate

The details are still being worked on, this issue is, initially, just to track the idea.
The motivation is that, eventually, sway will need to use the receipt parsing logic that currently lives in here in fuels-rs, this would introduce a circular dependency between sway and fuels-rs. Not good.
The solution would be to have another repo/crate (fuel-receipts, name to be defined) where the receipt parsing logic and the ABI decoding logic from fuels-rs would be moved there. fuels-rs and sway would both depend on it.
In addition to that, JsonABI from sway (https://github.com/FuelLabs/sway/blob/master/sway-types/src/lib.rs#L345-L364) could also be moved upstream, because that's not something specific to sway, but specific to the FuelVM ABI specification that the Sway compiler conforms to.

cc @adlerjohn @mitchmindtree

An alternative to this would be to actually keep everything in fuels-rs that isn't Sway-specific and move the Sway-specific things (back) into sway.

Yeah it might be worth untangling the sway dependencies from fuels-rs first - I think doing so might reveal it's totally fine to have the receipt parsing stuff along with the rest of the SDK.


Unable to install extension 'eamodio.gitlens' as it is not compatible with the current VS Code engine version '1.51.0'

"Unable to install extension 'eamodio.gitlens' as it is not compatible with the current VS Code engine version '1.51.0'"

GitLens Version: I've tried all versions, same error
Git Version: 2.20.1.windows.1

VSCode Version: Azure Data Studio 1.51.0
OS Version: Windows 10 20H2 19042.867

Steps to Reproduce:

download vsix file
Try to load extension into Azure Data Studio

Unfortunately Azure Data Studio is quite a few releases behind VS Code, and GitLens uses apis not available in older versions. Once ADS catches up then GitLens will work. Sorry.


fix: update link in documentation

What does this PR do?
This PR fixes a broken link in the Resources section of the documentation. Previously, clicking on CopilotKit documentation resulted in a 404 error:

I’ve updated it to the correct URL.
Related PRs and Issues
Checklist

[x] I have read read the Contribution Guide
[x] If the PR changes or adds functionality, I have updated the relevant documentation

Nice catch @krushnarout!

Nice catch @krushnarout!

Thank you!


images/builder: bump protoc to 3.12.4

protoc was bumped to 3.12.4 in #12808. Bump it in the images as well.

Coverage increased (+0.002%) to 37.126% when pulling 4adfb306ec5212de0b35ddb880f35f4932dc044d on pr/tklauser/images-bump-protoc into df367832502efffea998a9325be1d4a55cd5db1a on master.

Image lint GH action passed, marking as ready-to-merge.