text:
Looks like viro is dead for ios till update

ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more ( https://developer.apple.com/documentation/uikit/uiwebview ).
react-viro uses UIWebView component, so since April 30 2020 it's will be rejected by apple, when you are trying to publish it.

Our app was all ready to be released as well, but due to this, we are stuck. This is going to prevent any new apps from making to App Store and eventually, by December, all existing apps will stop working as well. Sounds like a high priority item. Any plans from Viro team to tackle this soon ?

Guys any update on this issue? Apple already stopped receiving the UIWebView API. Now we are unable to upload the app

@dthian please fix the OS deprecated UIWebView issue

Hey @ManigandanRaamanathan, as mentioned in the other post, I'm not currently working on ViroReact. @HedwigAR might have made some progress, so I would check in with him.

@dthian, I tried @HedwigAr's GVR removed version  v2.18.0, it works perfectly fine now

@ManigandanRaamanathan If we remove GVR that means we can't have VR support on the app yeah?

Yes @MinhazMM. That is indeed the case.

@ManigandanRaamanathan , where can I access the v2.18.0(the one with GVR removed)? and what react-native version are you using it with ?

@ranjanpoudel1234 https://github.com/mendix/viro/pull/1

Thank you very much @ManigandanRaamanathan . Please forgive my lack of knowledge on this. Did you use the github link(this one https://github.com/mendix/viro.git) directly on your package.json, or did you fork it and make npm package out of that build branch(which has the fix) ?

are we planing to release a new version that fix issue of Apple ?

@diegothucao on my end, AR works on both android and ios version. I installed me ndix pull request version.

I've also installed mendix version (master branch on https://github.com/mendix/viro.git) but after I run yarn install and react-native run-android --variant=arDebug to open the app (in code-sample folder) on my device, it crashed out. Do you have any idea, is there any step I'm missing? or I'm using the incorrect branch (or git link)? @ManigandanRaamanathan thank you so much.

@namthan dont use master branch. Use the branch that is is pending merge request

@namthan dont use master branch. Use the branch that is is pending merge request

Do you mean branch UpdateReactNative ? I'm trying it on. This is an urgent issue in my project, hopefully can get your supports. Thanks a lot.

@diegothucao on my end, AR works on both android and ios version. I installed me ndix pull request version.

@ManigandanRaamanathan : I went to https://github.com/mendix/viro.git and do not see any pull request version ? Could you have time to support me a bit in detail how could I do ?
thanks so much for your reply.

@diegothucao https://github.com/mendix/viro/pull/1

hi @ManigandanRaamanathan , thanks for your answer.
I downloaded the 'build' branch as in https://github.com/mendix/viro/pull/1
and run example with react-native run-android --variant=arDebug
However it crashes when Android app comes up.

@diegothucao the same version works fine on android 10 samsung s10 and note 9

Thanks @ManigandanRaamanathan
I used note 9 as well. But still issue
if you have any other idea for me. Please let me know.
Thanks so much.

After building successfully with medix pr, I'm running into this error. @ManigandanRaamanathan could you please help?

Did anyone manage to create 2.18 alternative with reverted GVR removal?
I would like to have an updated version with fix for #835 .
I was trying to but I always get white screen in VR mode.

I got this to work late last night, and successfully upload to Apple/Testflight to get past the UIWebView blocker.  Total hack, but happy to share what worked.
I'm now successfully using RN 0.62.2 and have Viro static library working great with no UIWebViews.
Gist:
Part 1: Build the static lib with no GVR UIWebView:

Clone my Viro repo git clone https://github.com/ktemby/viro (hacked edits to remove GVR from static library target, I make no claims to have quality tested properly, especially for Android).
Build viro (from the viro folder, cd ios, pod install, then open ViroReact.xcworkspace in Xcode and build all the targets, the 'static lib' target last)

Part 2: Get your project to use my updated viro fork (this can be merged back to main - I can't maintain a fork)

Remove Viro from your current project npm uninstall react-viro
Install my github fork npm install git+https://github.com/ktemby/viro

Part 3: Copy the locally built static library over to your project

cp /viro/ios/dist/* ~<your project in part 2>/node_modules/react-viro/ios/dist/

Part 4: Rebuild your app with the updated library

Do pod install first.
Now build in xcode or with NPX.

I can post a sample RN 0.62.2 + Viro project with key configurations tomorrow if more details needed.
Takeaway - I was able to get this to work, and successfully submitted to Apple, but the quality of my effort is a way lower bar than you want, so please proceed with caution and understand my good intentions for sharing what worked for me is no replacement for your own diligence!

@tscj3490 I don't think this will work for you - but feel free to try https://drive.google.com/file/d/1XnIN0tPXGiLT1bRwEAxE1HWW1rU1edxc/view?usp=sharing.  I'll run through the full steps of building a RN 0.62.2 test app, and post that over the weekend.

Thanks for your dedicated effort and help.
I will try again. Thanks again.

I just did as your guide and deployed app that GVR is removed to test flight.
I copied to the dist folder and pasted to <my project in part 2>/node_modules/react-viro/ios/dist/ . And I ran pod install again and then, I could build app successfully. But once I deploy app to test flight, apple doesn't still allow my app. It shows same error. (Apple doesn't allow UIWebView)
Please guide me again.

I can't be sure- but you may need to clean your build folder completely first.  I'd also isolate out what contains the UIWebview https://stackoverflow.com/questions/58091231/how-to-search-for-any-uiwebview-component-usage-inside-a-current-project.
I may have missed one of the steps I took, I'll do this for a clean test app on the weekend.

I can't be sure- but you may need to clean your build folder completely first. I'd also isolate out what contains the UIWebview https://stackoverflow.com/questions/58091231/how-to-search-for-any-uiwebview-component-usage-inside-a-current-project.
You may also want to ensure you're using the static lib - added step 2 to Part 4.
I may have missed one of the steps I took, I'll do this for a clean test app on the weekend.

Hi, Ktemby. Did u do the work ? If you did, please share.. Thanks.

I can't be sure- but you may need to clean your build folder completely first. I'd also isolate out what contains the UIWebview https://stackoverflow.com/questions/58091231/how-to-search-for-any-uiwebview-component-usage-inside-a-current-project.
You may also want to ensure you're using the static lib - added step 2 to Part 4.
I may have missed one of the steps I took, I'll do this for a clean test app on the weekend.

Hi, ktemby
I can't still deploy app to app store. Could you share source code that apple can approve ?
Thanks in advance.

I can't be sure- but you may need to clean your build folder completely first. I'd also isolate out what contains the UIWebview https://stackoverflow.com/questions/58091231/how-to-search-for-any-uiwebview-component-usage-inside-a-current-project.
You may also want to ensure you're using the static lib - added step 2 to Part 4.
I may have missed one of the steps I took, I'll do this for a clean test app on the weekend.

Hi, ktemby. Would you share test app apple approved ? I tried as your guide, but again, I got a mail like below.  I am struggling on this for a long time.
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
Please help me.. If apple doesn't approve this Viro app, this isn't really useful.  Thanks.

Hello,
Good news for everyone, i have just make changes in SDK for issue of UIWebView and i am getting successful to do that.
now my iOS app is live on app store.
so here is my solution :
just download dist file from following link and extract and replace it in "..node_modules/react-viro/ios" path.
Link : https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view
please download it and paste in path and upload your app to app store.

Hello,
Good news for everyone, i have just make changes in SDK for issue of UIWebView and i am getting successful to do that.
now my iOS app is live on app store.
so here is my solution :
just download dist file from following link and extract and replace it in "..node_modules/react-viro/ios" path.
Link : https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view
please download it and paste in path and upload your app to app store.

Thanks for your update.. I just replaced the dist folder in "..node_modules/react-viro/ios" and deployed app again to test flight, but apple doesn't still approve... What did I missed else ? Thanks in advance.

Hello,
Good news for everyone, i have just make changes in SDK for issue of UIWebView and i am getting successful to do that.
now my iOS app is live on app store.
so here is my solution :
just download dist file from following link and extract and replace it in "..node_modules/react-viro/ios" path.
Link : https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view
please download it and paste in path and upload your app to app store.

Thanks for your update.. I just replaced the dist folder in "..node_modules/react-viro/ios" and deployed app again to test flight, but apple doesn't still approve... What did I missed else ? Thanks in advance.

Please check somewhere else you have used UIWebview?

Hello,
Good news for everyone, i have just make changes in SDK for issue of UIWebView and i am getting successful to do that.
now my iOS app is live on app store.
so here is my solution :
just download dist file from following link and extract and replace it in "..node_modules/react-viro/ios" path.
Link : https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view
please download it and paste in path and upload your app to app store.

Thanks for your update.. I just replaced the dist folder in "..node_modules/react-viro/ios" and deployed app again to test flight, but apple doesn't still approve... What did I missed else ? Thanks in advance.

Please check somewhere else you have used UIWebview?

In my project, I searched UIWebview, but I couldn't find. By the way, I am not sure why apple don't approve.. Could you share the source code apple approved ?

Hello,
Good news for everyone, i have just make changes in SDK for issue of UIWebView and i am getting successful to do that.
now my iOS app is live on app store.
so here is my solution :
just download dist file from following link and extract and replace it in "..node_modules/react-viro/ios" path.
Link : https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view
please download it and paste in path and upload your app to app store.

Thanks for your update.. I just replaced the dist folder in "..node_modules/react-viro/ios" and deployed app again to test flight, but apple doesn't still approve... What did I missed else ? Thanks in advance.

Please check somewhere else you have used UIWebview?

In my project, I searched UIWebview, but I couldn't find. By the way, I am not sure why apple don't approve.. Could you share the source code apple approved ?

Based on this Stackoverflow anser you can run grep -r UIWebView to detect the component. So I ran it into /dist folder shared by @pradipBhuva27 and had the following result

Binary file ~/Downloads/dist/ViroRenderer/static_lib/ViroKit_static_lib.framework/ViroKit_static_lib matches

I guess UIWebView is still there (of course the build was rejected by Apple).

@Cosmitar strange. The dist worked for me and my app is in the store

it turns out that I had 2 different Viro packages and I was updating the dist folder into one but using the other.
After updating the right folder the VR is working as expected and Apple accepted the build without warnings! 🎉

To anyone still struggling with this problem, I will share my experience hoping it could help someone.
I need to integrate viro AR functionality in a react native 0.62.2 project targeting both android and ios.
To make it work on android without androidX problems, I used the citychallenge fork: https://github.com/citychallenge/viro
That worked good both on android on iOS, but I could not submit my app on the apple store due to UIWebView.
I followed the suggestions in this very same thread and, while I managed to get it working on iOS using @ktemby instructions, it didn't work on android anymore and the solution could not be "gitted" due to large files that required copy-pasting.
So:

I forked @citychallenge repo ( my org repo: https://github.com/tiknil/viro )
I downloaded the dist.zip shared by @pradipBhuva27 , with library files way smaller then the dist.zip shared by @ktemby and therefore could be committed. (it also reduced by 80MB the size of my .ipa uploaded on Testflight)
I copy-pasted the dist folder inside my fork ios/dist folder
In my project I installed my repo: yarn add git+https://github.com/tiknil/viro
I setup both android and iOS to use my repo in ../node_modules/@tiknil/react-viro/
Both android and iOS are properly working with react native 0.62.2 and I was able to successfully submit my app to Testflight on the appstore

Note: I can not guarantee that my org repo will be maintained in the future, so if you decide to use it anyway it will be at your own risk.

@gbalduzzi similar situation here for VR functionalities.

installed @citychallenge/react-viro package.
overwritten ios dist folder with https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view.

It works and is published on both iOS and Android stores

Hi @Cosmitar, @gbalduzzi
in android/settings.gradle
do I need to add the following
include ':react_viro', ':arcore_client', ':gvr_common', ':viro_renderer'
project(':arcore_client').projectDir = new File(rootProject.projectDir,'../node_modules/@citychallenge/react-viro/android/arcore_client')
project(':gvr_common').projectDir = new File(rootProject.projectDir,'../node_modules/@citychallenge/react-viro/android/gvr_common')
project(':viro_renderer').projectDir = new File(rootProject.projectDir,'../node_modules/@citychallenge/react-viro/android/viro_renderer')
project(':react_viro').projectDir = new File(rootProject.projectDir,'../node_modules/@citychallenge/react-viro/android/react_viro')

notice "@citychallenge"

If you are using the citychallenge fork yeah. Adjust those path to whatever fork you are using

@dam00n Anyone on the team working on this?

@Cosmitar VR is working fine after publishing over the apple store?

@haider792 it is working so far

can you please guide me on this. my android side is working good i have change the setting as you have described i have installed the package and change the dist folder but it is still giving me the error.
Binary file ./node_modules/@citychallenge/react-viro/ios/dist/ViroRenderer/static_lib/ViroKit_static_lib.framework/ViroKit_static_lib matches.
Binary file ./ios/Pods/GVRSDK/Libraries/libGVRSDK.a matches
@Cosmitar

@gbalduzzi similar situation here for VR functionalities.

installed @citychallenge/react-viro package.
overwritten ios dist folder with https://drive.google.com/file/d/1F_5i59mCIWorF8N7f5A-CbuugrFKv3ia/view.

It works and is published on both iOS and Android stores

@haider792 the matches on grep -r UIWebView are still there, however Apple is accepting the build after overwriting dist folder. Did you tried to publish your app?

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
this is the warning they are sending me in the email.

@haider792 two things that happened to me:
1 - I forgot to remove react-viro package after installing @citychallenge/react-viro package.
2 - typo in overwriting script wasn't overwriting /dist folder.
What I want to say with this, the patch works and probably in the whole mess there's a simple bothering mistake like I described above.
Don't give up, review the process, make sure you're overwriting the right /dist folder with the right downloaded source and that's the only react-viro code you're building.

@Cosmitar can you please guide me on this issue. attached is the image.
dyld`__abort_with_payload:
0x113a21ed4 <+0>:  movl   $0x2000209, %eax          ; imm = 0x2000209
0x113a21ed9 <+5>:  movq   %rcx, %r10
0x113a21edc <+8>:  syscall
->  0x113a21ede <+10>: jae    0x113a21ee8               ; <+20>
0x113a21ee0 <+12>: movq   %rax, %rdi
0x113a21ee3 <+15>: jmp    0x113a20408               ; cerror_nocancel
0x113a21ee8 <+20>: retq
0x113a21ee9 <+21>: nop
0x113a21eea <+22>: nop
0x113a21eeb <+23>: nop
crashing when changing the dist folder as you describe and ios is not running showing this error.

@gbalduzzi @Cosmitar can you help me out in this.
dyld: Symbol not found: OBJC_CLASS$_WKWebView
i have linked the webKit but still its showing the issue. can you please guide.

@Cosmitar can you please help me out in this issue. i am stuck on this for long time

@gbalduzzi ?

@haider792 Is hard to say with just one line of error description, I googled it  and looks like a configuration issue between versions of ios and web view component (it's my interpretation). Doesn't look  like an error related to Viro itself and I can't say much more about that.

@Cosmitar  i tried the repo of the @gbalduzzi shared with us but it showing this error you have any clue about this? please

@Cosmitar can you do a favour. might it will be helpful for many. can you please share the structure of the application including node_module. i know it is very difficult for you to do because its time taking. but it will be very helpfull for me as i am stuck in it for long time. or can you define the process step by step so i can do it and integrate directly. it will be very helpfull for me. having a tough time on it. Thanks .

if you can send me your email so we can have some private discussion please. @Cosmitar @gbalduzzi

Good news - Viro not dead for iOS! Making some further changes to the Viro source to get the static library compiling with no GVR (Viro in AR only mode), I was able to successfully upload to Apple/Testflight to get past the UIWebView blocker. Total hack, but happy to share what worked.
I'm now successfully using RN 0.62.2 and have Viro static library working great with no UIWebViews.
Note that below I'm using a temporary viro fork. This could be merged back to main if it meets the quality bar. I can't maintain a fork, I just want to contribute to viro. Below will take a couple of hours to figure out the details... it's taken me days to get this working, so I may be missing key steps.
Gist:
Part 1: Build the static lib with no GVR UIWebView:

Clone my Viro repo git clone https://github.com/ktemby/viro (hacked edits to remove GVR from static library target, I make no claims to have quality tested properly, especially for Android).
Build viro (from the viro folder, cd ios, pod install, then open ViroReact.xcworkspace in Xcode and build all the targets, the 'static lib' target last)

Part 2: Get your project to use my viro temp fork

Remove Viro from your current project npm uninstall react-viro
Install my github fork npm install git+https://github.com/ktemby/viro
Clear your build folder by doing a clean build of your app.

Part 3: Copy the locally built static library over to your project

Go back to where you built viro, we'll be copying the 'dist' (the static library files) over.
cp /viro/ios/dist/* ~<your project in part 2>/node_modules/react-viro/ios/dist/
Why?  Because the static library files that I built won't upload to my repo (they're too large).

Part 4: Rebuild your app with the updated library

Go back to your app directory.
Ensure you're using the static lib in your Podfile (see https://docs.viromedia.com/docs/no_use_frameworks)
Do pod install first from the ios folder.
Now build in xcode or with NPX.
Enjoy seeing your AR functionality now working in your app!
Upload to Apple and enjoy the feeling of not being rejected due to UIWebView.

Next steps?
I can post a sample RN 0.62.2 + Viro project with key configurations on the weekend if more details needed.
Takeaway - I was able to get this to work, and successfully submitted to Apple, but the quality of my effort is a way lower bar than you want, so please proceed with caution and understand my good intentions for sharing what worked for me is no replacement for your own diligence!

Hey @ktemby When I ran the command npx pod-install ios throws this error
Errno::ENOENT - No such file or directory @ rb_sysopen - /Users/XXX/Desktop/viro/node_modules/react-native/third-party-podspecs/DoubleConversion.podspec

any advice guys?
Thanks!

Hey @ManigandanRaamanathan, It seems the Mendix PR was merged. Btw, I use the master branch and on Android, I'm receiving this error
FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:preDebugBuild'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve project :react-viro.
     Required by:
         project :app
      > Unable to find a matching configuration of project :react-viro:
          - None of the consumable configurations have attributes.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

 at checkExecSyncError (child_process.js:616:11)
    at execFileSync (child_process.js:634:13)
    at runOnAllDevices (/Users/erikahumada/Desktop/gwma/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:94:39)
    at buildAndRun (/Users/erikahumada/Desktop/gwma/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/index.js:158:41)
    at then.result (/Users/erikahumada/Desktop/gwma/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/index.js:125:12)
    at process._tickCallback (internal/process/next_tick.js:68:7)

This is my setup
System:
    OS: macOS 10.15.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 100.87 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 10.15.2 - ~/.nvm/versions/node/v10.15.2/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v10.15.2/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.6, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
  IDEs:
    Android Studio: 4.0 AI-193.6911.18.40.6626763
    Xcode: 11.6/11E708 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: 0.61.5 => 0.61.5

Good news - Viro not dead for iOS! Making some further changes to the Viro source to get the static library compiling with no GVR (Viro in AR only mode), I was able to successfully upload to Apple/Testflight to get past the UIWebView blocker. Total hack, but happy to share what worked.
I'm now successfully using RN 0.62.2 and have Viro static library working great with no UIWebViews.
Note that below I'm using a temporary viro fork. This could be merged back to main if it meets the quality bar. I can't maintain a fork, I just want to contribute to viro. Below will take a couple of hours to figure out the details... it's taken me days to get this working, so I may be missing key steps.
Gist:
Part 1: Build the static lib with no GVR UIWebView:

Clone my Viro repo git clone https://github.com/ktemby/viro (hacked edits to remove GVR from static library target, I make no claims to have quality tested properly, especially for Android).
Build viro (from the viro folder, cd ios, pod install, then open ViroReact.xcworkspace in Xcode and build all the targets, the 'static lib' target last)

Part 2: Get your project to use my viro temp fork

Remove Viro from your current project npm uninstall react-viro
Install my github fork npm install git+https://github.com/ktemby/viro
Clear your build folder by doing a clean build of your app.

Part 3: Copy the locally built static library over to your project

Go back to where you built viro, we'll be copying the 'dist' (the static library files) over.
cp /viro/ios/dist/* ~<your project in part 2>/node_modules/react-viro/ios/dist/
Why?  Because the static library files that I built won't upload to my repo (they're too large).

Part 4: Rebuild your app with the updated library

Go back to your app directory.
Ensure you're using the static lib in your Podfile (see https://docs.viromedia.com/docs/no_use_frameworks)
Do pod install first from the ios folder.
Now build in xcode or with NPX.
Enjoy seeing your AR functionality now working in your app!
Upload to Apple and enjoy the feeling of not being rejected due to UIWebView.

Next steps?
I can post a sample RN 0.62.2 + Viro project with key configurations on the weekend if more details needed.
Takeaway - I was able to get this to work, and successfully submitted to Apple, but the quality of my effort is a way lower bar than you want, so please proceed with caution and understand my good intentions for sharing what worked for me is no replacement for your own diligence!

Hey, @ktemby thanks in advance for this. I took these steps,

Clone the repo git clone https://github.com/ktemby/viro.

Run the commands yarn && npx pod-install ios

Open ViroReact.xcworkspace

Select ViroReact target and then select Any iOS device (arm64) and build the selected target.

Select ViroReact_release_tests and then select Any iOS device (arm64) and build the selected target.

Select ViroReact_static_lib and then select Any iOS device (arm64) and build the selected target.

On my project
5. yarn remove react-viro
6. yarn add git+https://github.com/ktemby/viro
7. open my xcworkspace project and then run clean build folder(shift + command + k)
8. run cp -rf ../viro/ios/dist/* node_modules/react-viro/ios/dist
9. run npx pod-install ios
10. run watchman watch-del-all && npx react-native start --reset-cache
11. run npx react-native run-ios
The app runs but when I try to open the camera with the AR functionality I receive this error,

This is the output of the command grep -r UIWebView node_modules/*.
node_modules/create-react-class/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/create-react-class/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
node_modules/jsc-android/dist/include/JSContextPrivate.h:/*! @abstract The delegate the context will use when trying to load a module. Note, this delegate will be ignored for contexts returned by UIWebView. */
node_modules/react-native-fbsdk/js/FBShareDialog.js:   * Displays the dialog in a UIWebView within the app.
Binary file node_modules/react-native-maps/.gradle/4.10.3/taskHistory/taskHistory.bin matches
node_modules/react-native-webview/README.md:- [7.0.1](https://github.com/react-native-community/react-native-webview/releases/tag/v7.0.1) - Removed UIWebView
Binary file node_modules/react-viro/ios/dist/ViroRenderer/static_lib/ViroKit_static_lib.framework/ViroKit_static_lib matches
Binary file node_modules/react-viro/ios/dist/ViroRenderer/static_lib/x86_64/ViroKit_static_lib.framework/ViroKit_static_lib matches
Binary file node_modules/react-viro/ios/dist/ViroRenderer/ViroKit.framework/ViroKit matches
Binary file node_modules/react-viro/ios/dist/ViroRenderer/x86_64/ViroKit.framework/ViroKit matches
node_modules/ua-parser-js/test/browser-test.json:        "ua"      : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",

This is my setup,
info Fetching system and libraries information...
System:
    OS: macOS 10.15.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 348.93 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 10.15.2 - ~/.nvm/versions/node/v10.15.2/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v10.15.2/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.6, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
  IDEs:
    Android Studio: 4.0 AI-193.6911.18.40.6626763
    Xcode: 11.6/11E708 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: 0.61.5 => 0.61.5

it turns out that I had 2 different Viro packages and I was updating the dist folder into one but using the other.
After updating the right folder the VR is working as expected and Apple accepted the build without warnings! 🎉

same issue,  run grep -r UIWebView to detect the component. So I ran it into /dist folder shared by @pradipBhuva27 and had the following result
Binary file ./node_modules/react-viro/ios/dist/ViroRenderer/static_lib/ViroKit_static_lib.framework/ViroKit_static_lib matches

It can be fixed by replace the libs

It can be fixed by replace the libs

Could you have time to support me a bit in detail how could I do ?

authors: Cosmitar ManigandanRaamanathan MinhazMM Vednus costerik diegothucao dthian gbalduzzi ghost greenbaypayment haider792 hokaiyipFS jogboms jpudysz kevinrodriguez-io ktemby namthan nguyenvanphuc2203 pradipBhuva27 ranjanpoudel1234 tscj3490

repo: viromedia/viro


text:
Add build documentation

For me to build sevctl on Ubuntu I had to install the following OS packages:
sudo apt install -y pkg-config libssl-dev asciidoctor

And then I could build using the following command:
cargo build

Normally built binary has dependency on the following system libs:
$ ldd target/release/sevctl
        linux-vdso.so.1 (0x00007ffed59d1000)
        libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007f5d6d8c1000)
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f5d6d47e000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5d6d45e000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5d6d236000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5d6dbea000)

To be able to do static build I had to also install the musl-tools on top of the existing packages:
sudo apt install -y pkg-config libssl-dev asciidoctor musl-tools
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl

And using the changes in PR #112, I can now do static build:
$ ldd target/x86_64-unknown-linux-musl/release/sevctl
        statically linked

@surajssd Apologies for delay, addressed in #157

source: gharchive/issue

authors: surajssd tylerfanelli

repo: virtee/sevctl

license_type: permissive

license_source: github-api


text:
SDV ivshmem fixes

A few fixes to try to make the SDV build succeed. It has found real code issues.
I still haven't been able to make SDV generate the DVL file though. Running
tools\build.bat ivshmem\ivshmem.vcxproj "Win10_SDV"
fails with
"C:\kvm-guest-drivers-windows\ivshmem\ivshmem.vcxproj" (sdv target) (1) ->
(sdv target) ->
  C:\Program Files (x86)\Windows Kits\10\build\windowsdriver.Sdv.targets(132,9): error MSB3073: The command "staticdv /devenv /check" exited with code -1. [C:\kvm-guest-drivers-windows\ivshmem\ivshmem.vcxproj]

    0 Warning(s)
    1 Error(s)

and it seems to be caused by one of the tools looking for sdv-harness.c.rawcfgf in ivshmem\sdv\check\purekmdfdriver instead of ivshmem\sdv where another tool puts it. So very likely a WDK bug. @gnif, do you see the same thing? Thanks!

@ladipro I have been unsuccessful in getting SDV to work at all on my dev system, I used the output from AppVeyor to identify the first set of SDV issues I corrected.

source: gharchive/pull-request

authors: gnif ladipro

repo: virtio-win/kvm-guest-drivers-windows

license_source: bigquery


text:
SyncDictionary not synchin in network but locally

Describe the bug
I have a Player class and tried to use a SyncDict to get variables across.
Structure was:
SyncDictionary <string, MyOwnStruct>
When Playing Host plus one Client the syncdict was synced between the player-instances on the host but not on the corresponding player-instance on the client
[IMPORTANT] How can we reproduce the issue, step by step:
Please tell us how to reproduce your issue, STEP BY STEP, with one of our built in examples.
-> Tell us every single click / key press so we can reproduce it
-> If it can't be reproduced with our built in examples, tell us what else to do
-> Explain like we are five
Player Class with SyncDict<string, MyOwnStruct>
Create Host and Client spawning two players
try to change values in the syncDict
Values on the Host change, on the client won't
Any bug that can be reproduced, can be fixed.
If we can't reproduce it, we can't fix.
Expected behavior
I would have expected the the syncDict would synch with the corrsponding instance on the client not the other instance on the host
Desktop (please complete the following information):

OS: [e.g. Windows, MacOS] Windows
Build target: [e.g.  Android, webgl, standalone, iOS] Standalone, only tested in unity play of the game
Unity version: [e.g. 2017.4] 2020
Mirror branch: [e.g.  master, 2018] master

Did you try the example code here
https://mirror-networking.gitbook.io/docs/guides/synchronization/syncdictionary

Works as expected
using UnityEngine;
using Mirror;

public struct TestItem
{
    public string name;
    public int hitPoints;
    public int durability;
}

public class ExamplePlayer : NetworkBehaviour
{
    public readonly SyncDictionary<string, TestItem> Equipment = new SyncDictionary<string, TestItem>();

    public override void OnStartServer()
    {
        Equipment.Add("head", new TestItem { name = "Helmet", hitPoints = 10, durability = 20 });
        Equipment.Add("body", new TestItem { name = "Epic Armor", hitPoints = 50, durability = 50 });
        Equipment.Add("feet", new TestItem { name = "Sneakers", hitPoints = 3, durability = 40 });
        Equipment.Add("hands", new TestItem { name = "Sword", hitPoints = 30, durability = 15 });
    }

    public override void OnStartClient()
    {
        // Equipment is already populated with anything the server set up
        // but we can subscribe to the callback in case it is updated later on
        Equipment.Callback += OnEquipmentChange;
    }

    void OnEquipmentChange(SyncDictionary<string, TestItem>.Operation op, string key, TestItem item)
    {
        // equipment changed,  perhaps update the gameobject
        Debug.LogError(op + " - " + key);
    }

    void Update()
    {
        if (isLocalPlayer && Input.GetKeyUp(KeyCode.M))
            CmdDoChange();
    }

    [Command]
    void CmdDoChange()
    {
        Equipment["head"] = new TestItem { name = "Wig", hitPoints = 1, durability = 2 };
        Equipment.Add("belt", new TestItem { name = "Axe", hitPoints = 10, durability = 5 });
        Equipment.Remove("feet");
    }
}

license: MIT


text:
encoding 'Unicode (UTF-8)' fallback 'System.Text.EncoderExceptionFallback'

Error after updating to the latest version:
Disconnecting connId=0 to prevent exploits from an Exception in MessageHandler: ArgumentException The output byte buffer is too small to contain the encoded data, encoding 'Unicode (UTF-8)' fallback 'System.Text.EncoderExceptionFallback'.
Parameter name: bytes
at System.Text.Encoding.ThrowBytesOverflow () [0x00027] in :0
at System.Text.Encoding.ThrowBytesOverflow (System.Text.EncoderNLS encoder, System.Boolean nothingEncoded) [0x00026] in :0
at System.Text.UTF8Encoding.GetBytes (System.Char* chars, System.Int32 charCount, System.Byte* bytes, System.Int32 byteCount, System.Text.EncoderNLS baseEncoder) [0x0021c] in :0
at System.Text.UTF8Encoding.GetBytes (System.String s, System.Int32 charIndex, System.Int32 charCount, System.Byte[] bytes, System.Int32 byteIndex) [0x000a6] in :0

fixed already, please redownload either from github or asset store :)
thanks


text:
viser-vue正确的使用姿势是什么

import viserVue from 'viser-vue'
Vue.use(viserVue)

应该是这样用？ 这样编译会有一个warning

而且直接把demo搬过来会有错误

希望使用文档能够快一些补充

试下 1.1.1 版本，使用 API 和 G2 是一样的

1.1.1能用了，有个小问题，如果我在这个组件里使用的数据data，从父元素传过来，第二次改变了数据，数据格式完全改变了，直接使用G2，我可能会修改position等配置然后重新render, 在这里我应该怎么处理好呢，我试了，直接改变data（如果数据格式没变是没问题的），如果格式变了修改position什么的没起到作用，不展示数据了

发下 demo，可以用 jsfiddle 或 codepen，我看下代码

Now viser-vue has become quite easily to use. You can read the lastest version of demo and docs. Thanks for support viser.

I solved this problem by adding a space to zero before the date;
Eg. '20200229' -> '20200229'
Hope to fix this bug soon!

I solved this problem by adding a space to zero before the date;
Eg. '20200229' -> ' 20200229'
Hope to fix this bug soon!

authors: arcthur evilucifero heke1994 skywi

repo: viserjs/viser

license: mit


text:
Proposal: Recorded "Magic" Keyframes in stateful applications

Users need a method to quickly and automatically define an animation with hubble.gl.
The ideal solution is one which can magically animate any change in visual appearance or data query. Ultimately, a magic keyframe needs to translate into a fluid visual appearance, which can be interpolated to transition from one keyframe to the next.
Some prototype code exists in https://github.com/visgl/hubble.gl/compare/master...magic-prototype

So typically the way timelines in Blender and After Effects, e.g., work is you can move the playhead to the desired frame, adjust your property, and the software will set a keyframe for a specific value at that time.
Or did you mean something closer to Auto Keyframes where the keyframes are more interactive? See https://www.youtube.com/watch?v=6vzzlWWB3sk for a demo of both.

So typically the way timelines in Blender and After Effects, e.g., work is you can move the playhead to the desired frame, adjust your property, and the software will set a keyframe for a specific value at that time. Was that what you had in mind for this feature? What does "magic" mean in this context?
Or did you mean something closer to Auto Keyframes where the keyframes are more interactive? See https://www.youtube.com/watch?v=6vzzlWWB3sk for a demo of both.

Auto Keyframes is exactly what this is. I had first encountered the concept in apple software as "magic move", so I thought that's what this kind of thing was called. Auto Keyframe is more accurate.

Can you detail the user interaction a bit more? The timeline would be playing and the values from a slider would be stored as keyframes? Or how do you see this?

Timeline would be paused, but seek-able by dragging. From a user's perspective, any top-level control that defines the visualization (such as view state, a slider, a filter value) will be stored in each keyframe. The user would have the ability to either define new keyframes or update an existing one.
I've got this UI design to illustrate a basic flow and auxiliary states.
Side note: The term "visualization definition" would need to be contextualized for each application this Auto Keyframe is implemented for. If we're building for kepler.gl (or forks, like unfolded or carto), I'd propose "visualization definition" is limited to values you'd find in their config.json schemas. For kepler, this is view state, layer vis state, filter state, and layer animation state (which is their name for a calendar timestamp, since their animations are time based).

Ah okay. Then this seems more similar to the standard way keyframes are set in After Effects - move the playhead, change a value, and the value gets keyframed, while the timeline is paused.
Auto keyframes is more about interactively changing a value, and then having all of the intermediate values saved as keyframes while the timeline is playing.
See https://www.youtube.com/watch?v=ostDsH_Jjzw
Blender, for instance, allows you to change values without updating keyframes until you specifically ask to insert a keyframe (with i). Tradeoffs to both, but I agree I like the After Effects style better here.


text:
Modify Large Mainspring Winder

I have opened the source file in FreeCAD, but I cannot figure out how to change it to the Large version. Could you please assist?

The large winder params are configured using the python script, both winders are generated from the same FreeCAD design file.
Anyway here are the values I used in the python script, just change them in the spreadsheet or modify to your liking:
spr_h = 2.8
arb_d = 3.125
hook_d = 0.55
body_d = 30.0
version_x_offs = -6.60
barrel_d = 15.0 and above
spr_d = 13.0 and above


text:
Starting cursor position in wrong place

When creating an empty console.log the cursor is placed between log and the first bracket, instead it would be better if the cursor was placed within the brackets.

Yikes, good catch, that was a bug !
This has now been fixed in an update v 0.3.0.
Thanks for using this package.

authors: Josh-Star vishysank

repo: vishysank/console-log-atom


text:
Remove MV2_ENABLE_TOPO_AWARE_COLLECTIVES=0 from custom launcher

We should remove SETENV("MV2_ENABLE_TOPO_AWARE_COLLECTIVES", 0) from customlauncher now that LC has added this to the default SLURM environment.

Fixed on 3.4RC for 3.4.2 with #19970
Fixed on develop with #19974

authors: JustinPrivitera cyrush

repo: visit-dav/visit


text:
Can't set different edges length between 2 nodes

I have constructed a network diagram, but I can't set edges with different length with direction: 'LR'.
Regards

Hi @DecioMachado,
I have no idea what your trying to achieve. Could you provide an MWE, please?
Thanks.

authors: DecioMachado Thomaash

repo: visjs/vis-network


text:
Modification Cube "Trafic noise pollution" -> link on home page

The dataset "Traffic noise pollution" has currently an unnecessary key dimension: the year. As the data owner explained to me, there will never be a time series because the methodology is not comparable from one survey to another. There is simply a reference year (currently 2015).
So I would like to remove the year dimension in my cube before any graphs are published. However, if I make this correction, the structure will change, so the link used on the home page will be broken.
Can you tell me how to proceed? I make the change and you change the example link on the home page directly after?

The best here for me would be to create a new cube since you are modifying the structure of the cube, then deprecate the older cube. This way, the example of the homepage would work until we change it. If it is simpler for you, you can change the structure of the cube directly but until we deploy in production, the example will not work on the homepage. If it's OK for you, let's do it but I think we should keep to the process of creating a new cube when we change the structure.

with "deprecate" do you mean "unlist" in the cube Creator?

Thanks  for the question, I am re-reading https://github.com/zazuko/cube-creator/wiki/4.-Publication#clarification-about-flags-expired-and-actions-unlist-delete and it seems both "expiration" and "unlisting" would make the cube inaccessible to the application, and thus there would be a failing example on the homepage until our next deployment.
To ensure no failing example on the homepage at all time, I would advise to do as follow:

Publish the new cube
I change in the homepage the cube URL and information
I deploy to int
We check that everything is OK
After deployment to prod, you can unlist the first cube

just to be sure...
Step 1 : Publish the new cube -> in Lindas PROD?
It means we will have 2 cubes "Traffic noise pollution" in PROD until deployment to prod on next monday and unlisting cube 1 ?

Yes, I think it is preferrable to have a broken example on homepage until deployment.

@ptbrowne :
as long as I cannot publish the cube, I cannot send you the new url for the graphic on the home page.
I had to open a new issue in github cube creator. The other one have been closed.
https://github.com/zazuko/cube-creator/issues/1116

Here the new URL for the exemple on the home Page. Just tell me when deployed to INT. I will have a check.
https://www.visualize.admin.ch/de/v/n15PkjjQQIrU

It's deployed on int.

Perfect. It's ready for prod ! Thank you.

authors: ortnever ptbrowne

repo: visualize-admin/visualization-tool


text:
    docs: update static-deploy.md

New updates on head repo.
https://github.com/vitejs/vite/commit/7495074cd9ff3e135967d2c4af410f8cff9d28af

対応します

authors: jay-es kiaking

repo: vitejs/docs-ja


text:
Vite app consuming Vite library with peerDependenices fails to tree-shake library

Describe the bug
The issue is as follows, I have a vite application and a vite components library
The application consumes the components library
In the vite-library i have a peer dependency,
I've configured the library to not bundle that peer dependency.
The vite app is not importing code that is using the peer dependency.
When building the vite app, the bundle includes the peer dependency code.
I think the issue is in how the vite library is bundled, it imports dependencies marked as external and for some reason this causes vite to bundle them like they are globally needed
I've added a link for reproduction, steps to reproduce:

npm install the npm workspace
run npm build in the vite-lib folder
run npm build in the vite-app folder -> the index.js size will be 184kb~
change ComponentC to not import react-bootstrap (component C is not used at all in vite app)
run npm build in the vite-lib folder
run npm build in the vite-app folder -> the index.js size will be 142kb~ -> 40 kb changed although the app code didn't change at all (and it does not import ComponentC)

Reproduction
https://stackblitz.com/edit/vitejs-vite-hzzn14?file=vite-app/main.jsx
System Info
System:
    OS: Linux 5.0 undefined
    CPU: (4) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: Unknown - /bin/jsh
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.10 - /bin/yarn
    npm: 7.17.0 - /bin/npm
  npmPackages:
    @vitejs/plugin-react: ^1.3.0 => 1.3.1
    vite: ^2.9.5 => 2.9.6

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Maybe related: #7473, https://github.com/vitejs/vite/issues/5174#issuecomment-1035190098

Maybe related: #6740
At the top level "sideEffects": false is declared.
https://cdn.jsdelivr.net/npm/react-bootstrap@2.3.1/package.json
But it is not declared at react-bootstrap/Dropdown/package.json.
https://cdn.jsdelivr.net/npm/react-bootstrap@2.3.1/Dropdown/package.json
If you add "sideEffects": false to react-bootstrap/Dropdown/package.json it works well.

So it might be an issue with how react-bootstrap publishes their package? 🤔

It might be. Does this work with webpack or rollup?

It might be. Does this work with webpack or rollup?

I've been able to make it work in rollup using the preserveModule option

authors: sapphi-red vim-daniel

repo: vitejs/vite


text:
fix: update tsconfig in react and preact templates (fix: #17443)

Description
fix https://github.com/vitejs/vite/issues/17443
Problem solved:
With the current configuration, the application may compile successfully but fail at runtime.
Reproducible example here:https://stackblitz.com/edit/vitejs-vite-srbrdd
Reproduction
https://stackblitz.com/edit/vitejs-vite-srbrdd?file=tsconfig.json
Steps to reproduce

Start a new typescript react project: https://vite.new/react-ts
Add a new ts file inside the src folder (for example newfile.ts) with this content: const MY_CONST = 1
Print the value of the constant inside App.tsx : {MY_CONST},

At this point, you should be able to compile (with npx tsc --noEmit) or build the app ( npm run build ) without errors, but the app fails at runtime ( npm run dev ) in the preview.
Notes:
I was only able to reproduce this with the react and react templates.

Is there a reason to only apply to the react and preact templates? Should it be applied to all tsconfigs that has isolatedModules: true?

Is there a reason to only apply to the react and preact templates? Should it be applied to all tsconfigs that has isolatedModules: true?

I was able to reproduce the error just react and preact (actually the absence of error). For example, with the vite template it fails at compile time without updating the typescript configuration.
https://stackblitz.com/edit/vitejs-vite-eygbwq?file=src%2Fcomponents%2Fconstants.ts,src%2Fcomponents%2FHelloWorld.vue&terminal=dev
Also I only have experience with react and preact... perhaps someone with experience in these frameworks can take care of the updates.

I think we should update it for the rest of the templates. It's not related to frameworks specifically. If you use MY_CONST in another .ts file for example, you can see that there's no errors either.

I think we should update it for the rest of the templates. It's not related to frameworks specifically. If you use MY_CONST in another .ts file for example, you can see that there's no errors either.

Yes, you are right: demo

authors: bluwy t-cc


text:
[DOCS] Add a miscellaneous issue form

Clear and concise description of the problem
Currently, there are only two issue forms: feature request and bug report.
However, there is no miscellaneous template that doesn't fit any of the current templates.
Suggested solution
Add a miscellaneous/other issue form.
Alternative
None.
Additional context
I'd like to work on this. 🙂
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

I'd like to work on this. 🙂

Sure, PR welcome.

Thank you! Working on this. 🙂

repo: vitest-dev/vitest


text:
registered+modules in .app.src

Not really sure having that there makes a difference.

The main point was to keep the same base template what is provided by rebar3 and expand it. But maybe make sense update it as described above.

Yeah, but in the case of rebar3 templates, you're creating an application (usually bundled with a release) for which those elements might make sense. I wonder if it's the same for rebar3 plugins, though. Mind you my experience with coding these is somewhat limited. @elbrujohalcon, care to comment on the presence of those elements?

authors: paulo-ferraz-oliveira vkatsuba


text:
Added full keyboard control

Arrow up and down for MenuItem selection
Enter or right arrow key for SubMenu activation
Enter for MenuItem fake click activation
Escape and left arrow for SubMenu closing
Escape key only for ContextMenu closing

🎊 Awesome work!
I'll test this branch as soon as I get some free time
FYI: I too started working on same thing in #96, but could not complete it.

Mh I found a problem with the "Dynamic Menu" and "Customization" example which need to be fixed before merging. But u can still continue trying it out with the other examples. Look into it in the next few days ;)

Ok, wasn't that hard to fix

I tested the branch, everything looks awesome!
Just make the requested changes and the PR will be GTG

Well if the properties have defaults, then they are by definition not
required. isRequired is only to be used when it is required that the
user of the component provides those props.

This weekend I will fix it and add some more code comments to the new internal props.

authors: Seldaek codeart1st vkbansal

repo: vkbansal/react-contextmenu


text:
filebeat on windows

When I look at the filebeat service via "Services" I see it starting with -c pointing to the the installation dir.
However the config file will be copied to /etc/filebeat just like on Linux. So where should it be?

@pmoosh Sorry to say this, but i do not have any windows environment to test it out. It might take me some time to look into it.

@vkhatri  I use the following test kitchen config:

name: windows-2012r2
transport:
name: winrm
driver_config:
box: win-2012r2-standard-amd64-nocm

For now I added this to my wrapper recipe:
if node['platform'] == 'windows'
node.default['filebeat']['conf_dir'] = "#{node['filebeat']['windows']['base_dir']}/filebeat-#{node['filebeat']['version']}-windows"
node.default['filebeat']['conf_file'] = "#{node['filebeat']['conf_dir']}/filebeat.yml"
node.default['filebeat']['prospectors_dir'] = "#{node['filebeat']['conf_dir']}/conf.d"
end

I experienced the same issue. The above workaround works. On a separate note have you tried to add multiple prospectors using node attributes ?

This is now resolved with the latest build.

authors: pmoosh prerakpshah vkhatri

repo: vkhatri/chef-filebeat


text:
Integrate into VS Code sidebar

Some extensions have dedicated buttons in the side bar. It would be a great feature to integrate time tracking into the application itself.

todo: add more info

VS Code supports adding custom Tree Views and Webviews. Tree Views lists items in a tree, and Webviews are simple webpages.
I am unsure how flexible Tree Views are, but I interpret them as the preferred way to display content in the side bar.

[The content of tree views] conforms to the style of the built-in views of VS Code.
(source)

Looking at Microsofts official documentation, there is a section specifically dedicated to whether if a Webview should be used at all. Looking at the questions, it is

On second thought, this vscode-klog might not be the right place for this. Although this is is a VS Code extension, and it will handle time tracking with klog, I feel this in essence is a time tracking tool.
For the end user, what technology is used underneath is not important, only what the application does. Regardless if data is stored in klog format, binary, JSON. or plain text, the end user will only care about the functionality.
Unless the functionality is specifically framed as "edit klog files in the side bar" it does not belong to this project. It would be a graphical interface for the klog binary.
I need to put some thought into this.

repo: vladdeSV/vscode-klog


text:
Proposal: Automatic captcha solving

Integration with the CAPSOLVER_API to solve captchas automatically
Reference:

https://github.com/alenkimov/tweepy-self

The above bot does the captcha auto solve.
This is the portion of code referenced from the above packdge to solve captcha
    async def unlock(self):
        if not self.account.status == "LOCKED":
            return

        response, html = await self.request("GET", self._CAPTCHA_URL, bearer=False)
        (
            authenticity_token,
            assignment_token,
            needs_unlock,
            start_button,
            finish_button,
            delete_button,
        ) = parse_unlock_html(html)
        attempt = 1

        if delete_button:
            response, html = await self._confirm_unlock(
                authenticity_token, assignment_token
            )
            (
                authenticity_token,
                assignment_token,
                needs_unlock,
                start_button,
                finish_button,
                delete_button,
            ) = parse_unlock_html(html)

        if start_button or finish_button:
            response, html = await self._confirm_unlock(
                authenticity_token, assignment_token
            )
            (
                authenticity_token,
                assignment_token,
                needs_unlock,
                start_button,
                finish_button,
                delete_button,
            ) = parse_unlock_html(html)

        funcaptcha = {
            "api_key": self.capsolver_api_key,
            "websiteURL": self._CAPTCHA_URL,
            "websitePublicKey": self._CAPTCHA_SITE_KEY,
        }
        if self._session.proxy is not None:
            funcaptcha["captcha_type"] = FunCaptchaTypeEnm.FunCaptchaTask
            funcaptcha["proxyType"] = self._session.proxy.protocol
            funcaptcha["proxyAddress"] = self._session.proxy.host
            funcaptcha["proxyPort"] = self._session.proxy.port
            funcaptcha["proxyLogin"] = self._session.proxy.login
            funcaptcha["proxyPassword"] = self._session.proxy.password
        else:
            funcaptcha["captcha_type"] = FunCaptchaTypeEnm.FunCaptchaTaskProxyLess

        while needs_unlock and attempt <= self.max_unlock_attempts:
            solution = await FunCaptcha(**funcaptcha).aio_captcha_handler()
            if solution.errorId:
                logger.warning(
                    f"(auth_token={self.account.hidden_auth_token}, id={self.account.id}, username={self.account.username})"
                    f"Failed to solve funcaptcha:"
                    f"\n\tUnlock attempt: {attempt}/{self.max_unlock_attempts}"
                    f"\n\tError ID: {solution.errorId}"
                    f"\n\tError code: {solution.errorCode}"
                    f"\n\tError description: {solution.errorDescription}"
                )
                attempt += 1
                continue

            token = solution.solution["token"]
            response, html = await self._confirm_unlock(
                authenticity_token,
                assignment_token,
                verification_string=token,
            )

            if response.url == "https://twitter.com/?lang=en":
                break

            (
                authenticity_token,
                assignment_token,
                needs_unlock,
                start_button,
                finish_button,
                delete_button,
            ) = parse_unlock_html(html)

            if finish_button:
                response, html = await self._confirm_unlock(
                    authenticity_token, assignment_token
                )
                (
                    authenticity_token,
                    assignment_token,
                    needs_unlock,
                    start_button,
                    finish_button,
                    delete_button,
                ) = parse_unlock_html(html)

            attempt += 1

        await self.establish_status()

    async def _confirm_unlock(
        self,
        authenticity_token: str,
        assignment_token: str,
        verification_string: str = None,
    ) -> tuple[requests.Response, str]:
        payload = {
            "authenticity_token": authenticity_token,
            "assignment_token": assignment_token,
            "lang": "en",
            "flow": "",
        }
        if verification_string:
            payload["verification_string"] = verification_string
            payload["language_code"] = "en"

        return await self.request("POST", self._CAPTCHA_URL, data=payload, bearer=False)

Credits: @alenkimov is the author of the above code.

Hi, @ErSauravAdhikari.
What is the captcha in X at all? Like when it happen?

Hi, @ErSauravAdhikari.
What is the captcha in X at all? Like when it happen?

At some point when you are scraping for example user tweets multiple times it will ask to make a captcha.

Yeah, after a while of use it asks to
a. Verify email again
b. Solve captcha
Which is registered via twscrape as a suspension (even though after solving that issue, it works perfectly fine).
Currently I am using a custom API, where I pass in accs creds to unblock the accs and send them again to twscrape, but it'd be great if this was natively supported by twscrape.

Currently capsolver no longer works reliably, but there are plenty of providers.
Please check out the unicaps repo.
https://github.com/sergey-scat/unicaps

authors: ErSauravAdhikari Traianik vladkens

repo: vladkens/twscrape


text:
Underscore separators?

This looks quite cool! Looking forward to seeing more and hopefully helping out at some point.
What is the reason for "going against the grain" and using _ separators instead of camelCase for identifiers?
In #3, you mention that the reason you prefer ' and ` for characters over " is that you don't want to have to press shift. That argument resonates with me.
In keeping with that theme, isn't it more efficient and easier to use camel case over underscores? The camel case method doesn't require you to reach a satellite key, plus is more normal for users in most languages (in my experience at least).
I guess it just seems odd to make so much of the language feel very similar to Go, but then abandon camel casing.
Just a thought. Do with it what you will :smile:

I swapped - and _ :)
I wouldn't say it's going against the grain. C/C++, Python, Rust, Ruby, Perl etc use underscores.

That’s fair. I think my main thought was:
If we are micro optimizing to the extent that ‘ is preferred over “, then surely camel case is more efficient than snake case.
That was all. And of course not trying to like, argue the point really. It just stuck out to me.
Either way looks great! Can’t wait!

authors: malexdev medvednikov

repo: vlang-io/V


text:
"crdt db in a box" -- re-compute site id if the database file is moved?

There is a lot of interest in being able to just copy the sqlite db file around, ship it to other people, open the file and tell it to "find peers and sync"
To do that we need a way to detect when the file is "no longer the same file" -- i.e., it was a copy of the original db.
If path names on disk are stable enough we can recompute site id whenever the path to the db file is changed as this would represent a copy of the original db.

We're also interested in this, but the path would stay the same, the DB would be on a different host.
I assume the following is possible:

dump the db
create a new sqlite db
load the extension (creating a new site_id)
close the connection
don't load the extension on the next step
restore all dumped tables (except maybe whichever one sets the site_id?)

Would that result in a usable cr-sqlite database schema, but with a new site_id?

Yeah, I think that'd work. You could also:

Copy the db file
Open the new db (do not load the cr-sqlite extension yet)
Write your own UUID into the site_id table (as a blob of 16 bytes)
Load the cr-sqlite extension

I've been doing this for some of the todo-mvc example (https://vlcn-live-examples.fly.dev/) if someone provides the UUID of a DB to connect to that doesn't actually exist yet.

Open the new db (do not load the cr-sqlite extension yet)
Write your own UUID into the site_id table (as a blob of 16 bytes)
Load the cr-sqlite extension

Can I override the crsql_siteid even with the extension loaded?

Can I override the crsql_siteid even with the extension loaded?

Ah, no. IIRC I read the site_id out and cache it in-memory.
It may be possible to remove that caching at this point as the design has evolved to no longer require frequent access to the site_id.

authors: jeromegn tantaman

repo: vlcn-io/cr-sqlite


text:
vss vector search tables is not supported in CR-SQL

Dear Team,
We working on privacy firest ai agent and for our data vector search is a critical feature.
i tried to use https://github.com/asg017/sqlite-vss extension that is quite popular vector extension
Steps to reproduce
1 . install deps
npm install sqlite-vss @vlcn.io/crsqlite better-sqlite3

my deps :
"@vlcn.io/crsqlite": "^0.16.3",
"better-sqlite3": "^9.4.3",
"fastembed": "^1.14.1",
"sqlite-vss": "^0.1.2",
"uuid": "^9.0.1"

try to turn vss table to a CR-sql table

import Database from "better-sqlite3";
import { extensionPath } from "@vlcn.io/crsqlite";
import * as sqlite_vss from "sqlite-vss";

const setupDb = (path) => {
    const db = new Database(path);
    db.loadExtension(extensionPath);
    sqlite_vss.load(db);

    console.log('0')
    db.exec(`
     CREATE TABLE IF NOT EXISTS nodes (
        id PRIMARY KEY NOT NULL,
        label VARCHAR
     )
    `)

     db.exec(`select crsql_as_crr('nodes');`)
     console.log('1')
     db.exec(`
    create virtual table node_vector using vss0(
        vectorLabel(768)
      );
    `)
     db.exec(`select crsql_as_crr('node_vector');`)

}
setupDb('mydb.sqlite')

error result :
SqliteError: Table node_vector has no primary key or primary key is nullable. CRRs must have a non nullable primary key
at Database.exec (/Users/volodymyrpavlyshyn/Documents/work/hyphen/cr-sql-playground/vector-test/node_modules/better-sqlite3/lib/methods/wrappers.js:9:14)
at setupDb (file:///Users/volodymyrpavlyshyn/Documents/work/hyphen/cr-sql-playground/vector-test/vec.js:27:9)
at main (file:///Users/volodymyrpavlyshyn/Documents/work/hyphen/cr-sql-playground/vector-test/vec.js:35:18)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'SQLITE_ERROR'
I also noticed that
CREATE TABLE IF NOT EXISTS nodes (
id VARCHAR(36 ) PRIMARY KEY NOT NULL,
label VARCHAR
)
will throw error

Sorry for the late reply. Was on a family trip.

I see the issue. node_vector is a virtual table so can't itself be made a crr.
sqlite-vss should create base tables underneath the virtual table. Converting those base tables (rather then the top level virtual interface) to crrs would be what we need to do.

authors: Volland tantaman


text:
[Kernel] Support Fp8 Checkpoints (Dynamic + Static)

This PR does three things:

Uses cuda kernels for quantizing the inputs to fp8
Supports loading serialized fp8 models with static weight and act scales
Supports loading serialized fp8 models with static weight scales and dynamic activations scales

For loading serialized models, vllm auto-detects if merged Layers (QKV / Gate-UpProj) have a shared weight_scale
As a result, vLLM now supports the following cases on H100:

Loading fp16 checkpoints and converting to dynamic per tensor activation scaling (but without memory savings)
Loading fp8 checkpoints with static dynamic activation scales
Loading fp8 checkpoints with dynamic activations scales

Performance will be bad if merged layers (QKV / GateUp) do not have shared weight scales. We are working on cutlass kernels to replace the naive for loop
Next steps (to be handled in another PR):

Fused Cutlass GEMM_DQ for QKV and GateUpProj (needed for performance)
Update fp16 loading to support memory reduction
Add support to Mixtral (#4436)
Add support to all other MoEs
Refactor weight loading

Usage
from vllm import LLM

# fp16 model at fp8
model = LLM("mistralai/Mistral-7B-Instruct-v0.2", quantization="fp8")

# fp8 static act_scale model
model = LLM("nm-testing/mistral-fp8-static")

# fp8 dynamic act_scale model
model = LLM("nm-testing/mistral-fp8-dynamic")

Performance
Note: all models have shared weight scales for merged layers (QKV, GateUpProj), so there is no naive for loop
Benchmarking shapes
We can see that fp8 is faster end-to-end for prefills, but is slower than fp16 for decode

Benchmark serving (1xH100, ShareGPT, Request Rate=5.0, Num Prompts=1000:

fp16: meta-llama/Meta-Llama-3-8B-Instruct

python3 -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B-Instruct --disable-log-requests

python3 benchmark_serving.py --backend openai --model meta-llama/Meta-Llama-3-8B-Instruct --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  205.16
Total input tokens:                      215196
Total generated tokens:                  186204
Request throughput (req/s):              4.87
Input token throughput (tok/s):          1048.94
Output token throughput (tok/s):         907.62
---------------Time to First Token----------------
Mean TTFT (ms):                          20.49
Median TTFT (ms):                        19.88
P99 TTFT (ms):                           42.07
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          10.42
Median TPOT (ms):                        10.36
P99 TPOT (ms):                           13.23
==================================================

fp8 static with shared scales: nm-testing/llama-3-instruct-fp8-static-shared-scales

python3 -m vllm.entrypoints.openai.api_server --model nm-testing/llama-3-instruct-fp8-static-shared-scales --disable-log-requests

python3 benchmark_serving.py --backend openai --model nm-testing/llama-3-instruct-fp8-static-shared-scales --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  205.65
Total input tokens:                      215196
Total generated tokens:                  142560
Request throughput (req/s):              4.86
Input token throughput (tok/s):          1046.41
Output token throughput (tok/s):         693.21
---------------Time to First Token----------------
Mean TTFT (ms):                          22.48
Median TTFT (ms):                        22.34
P99 TTFT (ms):                           37.28
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          27.67
Median TPOT (ms):                        11.58
P99 TPOT (ms):                           94.82
==================================================

^not sure why P99 TPOT is so bad here

fp8 static with dynamic scales: meta-llama/Meta-Llama-3-8B-Instruct --quantization fp8

python3 -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B-Instruct --quantization fp8 --disable-log-requests

python3 benchmark_serving.py --backend openai --model meta-llama/Meta-Llama-3-8B-Instruct --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  206.00
Total input tokens:                      215196
Total generated tokens:                  186083
Request throughput (req/s):              4.85
Input token throughput (tok/s):          1044.65
Output token throughput (tok/s):         903.32
---------------Time to First Token----------------
Mean TTFT (ms):                          23.52
Median TTFT (ms):                        24.31
P99 TTFT (ms):                           40.56
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          11.80
Median TPOT (ms):                        11.93
P99 TPOT (ms):                           14.11
==================================================

Experimental checkpoint structure
Here we detail the experimental structure for the fp8 checkpoints.
We plan to expand upon this as we start adding support for int8, sparsity, etc
The following is added to config.json
"quantization_config": {
    "quant_method": "fp8",
    "activation_scheme": "static" or "dynamic"
  },

Each quantized layer in the state_dict will have:
If the config has "activation_scheme": "static":
model.layers.0.mlp.down_proj.weight              < F8_E4M3
model.layers.0.mlp.down_proj.act_scale           < F32
model.layers.0.mlp.down_proj.weight_scale        < F32

If config has "activation_scheme": "dynamic":
model.layers.0.mlp.down_proj.weight              < F8_E4M3
model.layers.0.mlp.down_proj.weight_scale        < F32

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Thanks for the PR! Our of curiosity, is there any reason that prevents you from adding this to the existing FP8Config but have to introduce a new FP8SerializedConfig?

Thanks for the PR! Our of curiosity, is there any reason that prevents you from adding this to the existing FP8Config but have to introduce a new FP8SerializedConfig?

WIP, going to merge them

Models:

https://huggingface.co/nm-testing/mistral-fp8-static
https://huggingface.co/nm-testing/mistral-fp8-dynamic

@robertgshaw2-neuralmagic  Do the two models actually have different weights besides the quantize_config property scheme? If so maybe we can change the property from scheme to checkpoint_format that autogptq uses? It would be nice, for quantize_config parsers,  if everyone can align to the same property that represent weight format. AutoAWQ uses version and autogptq uses checkpointf_format.  Try to avoid another scheme if possible.

Models:

https://huggingface.co/nm-testing/mistral-fp8-static
https://huggingface.co/nm-testing/mistral-fp8-dynamic

@robertgshaw2-neuralmagic Do the two models actually have different weights besides the quantize_config property scheme? If so maybe we can change the property from scheme to checkpoint_format that autogptq uses? It would be nice, for quantize_config parsers, if everyone can align to the same property that represent weight format. AutoAWQ uses version and AutoGPTQ uses checkpoint_format. Try to avoid another scheme if possible.

Note: this is just an experimental state for now while we are trying to get things working
scheme is an equivalent in concept to sym or act_order for AutoGPTQ. It determines whether the activations are quantized statically or dynamically. So:

the static one has weights, weight_scale, and act_scale
the dynamic one has weights and weight_scale

There is a simplification we could make to this PR, which is when loading the checkpoint, always rescale the different parts of the tensor so the resulting tensor has only one scale, for example in the case of qkv weigts (wq, wk, wv) it would be:
w_scale = max(wq_scale, wk_scale, wv_scale)
wq' = (wq_scale / w_scale) * wq
wk' = (wk_scale / w_scale) * wk
wv' = (wv_scale / w_scale) * wv

so the common scale w_scale can be used for the whole tensor.
This way we wouldn't need custom kernels to treat the different parts of the tensor differently.
Since the weights don't have much variance and fp8 is actually a decent amount of accuracy for the weights, this would likely not impact the accuracy (but we would need to test that of course).

Note that at the moment the "nm-testing/mistral-fp8-static" checkpoint doesn't seem to be working well, these are the results I got:
In [1]: from vllm import LLM, SamplingParams

In [2]: model = LLM("nm-testing/mistral-fp8-static")
fp8 quantization is not fully optimized yet. The speed can be slower than non-quantized models.
Detected fp8 checkpoint. Please note that the format is experimental and subject to change.

In [3]: prompts = [
   ...:     "Hello, my name is",
   ...:     "The president of the United States is",
   ...:     "The capital of France is",
   ...:     "The future of AI is",
   ...: ]
   ...: sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

In [4]:

In [4]: outputs = model.generate(prompts, sampling_params)
   ...:
   ...: # Print the outputs.
   ...: for output in outputs:
   ...:     prompt = output.prompt
   ...:     generated_text = output.outputs[0].text
   ...:     print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
   ...:
Processed prompts: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 19.62it/s]
Prompt: 'Hello, my name is', Generated text: ' Marissa'
Prompt: 'The president of the United States is', Generated text: ''
Prompt: 'The capital of France is', Generated text: ' an iconic city that is famous for its landmarks, museums, caf'
Prompt: 'The future of AI is', Generated text: ' bright and the potential of AI to revolutionize industries, improve lives and drive eff'

There is a simplification we can make to this PR, which is when loading the checkpoint, always rescale the different parts of the tensor so the resulting tensor has only one scale, for example in the case of qkv weigts (wq, wk, wv) it would be:
w_scale = max(wq_scale, wk_scale, wv_scale)
wq' = (wq_scale / w_scale) * wq
wk' = (wk_scale / w_scale) * wk
wv' = (wv_scale / w_scale) * wv

so the common scale w_scale can be used for the whole tensor.
This way we wouldn't need custom kernels to treat the different parts of the tensor differently.
Since the weights don't have much variance and fp8 is actually a decent amount of accuracy for the weights, this would likely not impact the accuracy (but we would need to test that of course).

This is a good idea. I will make this change

Note that at the moment the "nm-testing/mistral-fp8-static" checkpoint doesn't seem to be working well, these are the results I got:
In [1]: from vllm import LLM, SamplingParams

In [2]: model = LLM("nm-testing/mistral-fp8-static")
fp8 quantization is not fully optimized yet. The speed can be slower than non-quantized models.
Detected fp8 checkpoint. Please note that the format is experimental and subject to change.

In [3]: prompts = [
   ...:     "Hello, my name is",
   ...:     "The president of the United States is",
   ...:     "The capital of France is",
   ...:     "The future of AI is",
   ...: ]
   ...: sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

In [4]:

In [4]: outputs = model.generate(prompts, sampling_params)
   ...:
   ...: # Print the outputs.
   ...: for output in outputs:
   ...:     prompt = output.prompt
   ...:     generated_text = output.outputs[0].text
   ...:     print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
   ...:
Processed prompts: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 19.62it/s]
Prompt: 'Hello, my name is', Generated text: ' Marissa'
Prompt: 'The president of the United States is', Generated text: ''
Prompt: 'The capital of France is', Generated text: ' an iconic city that is famous for its landmarks, museums, caf'
Prompt: 'The future of AI is', Generated text: ' bright and the potential of AI to revolutionize industries, improve lives and drive eff'

Yes, this checkpoint was only calibrated with 10 datapoints so I could work on the implementation - Its not intended to be an accurate model

There is a simplification we can make to this PR, which is when loading the checkpoint, always rescale the different parts of the tensor so the resulting tensor has only one scale, for example in the case of qkv weigts (wq, wk, wv) it would be:
w_scale = max(wq_scale, wk_scale, wv_scale)
wq' = (wq_scale / w_scale) * wq
wk' = (wk_scale / w_scale) * wk
wv' = (wv_scale / w_scale) * wv

so the common scale w_scale can be used for the whole tensor.
This way we wouldn't need custom kernels to treat the different parts of the tensor differently.
Since the weights don't have much variance and fp8 is actually a decent amount of accuracy for the weights, this would likely not impact the accuracy (but we would need to test that of course).

Agreed. IIRC, TRT-LLM also takes this approach.

We will need to eval the accuracy of this (especially for big models), but I think good for now

Do we know why performance is least with fp8-static-shared-scales in your example?

FP8 performance has been optimized a lot since this PR, with the latest release it is (significantly) faster across the board :)

Sure, expect no special reason to static scales comparing with others, hope I'm right 😄

This PR does two things:

Supports loading serialized fp8 models with static weight and act scales
Supports loading serialized fp8 models with static weight scales and dynamic activations scales

For loading serialized models, vllm auto-detects if merged Layers (QKV / Gate-UpProj) have a shared weight_scale
As a result, vLLM now supports the following cases on H100:

Loading fp16 checkpoints and converting to dynamic per tensor activation scaling (but without memory savings)
(new) Loading fp8 checkpoints with static dynamic activation scales
(new) Loading fp8 checkpoints with dynamic activations scales

Performance will be bad if merged layers (QKV / GateUp) do not have shared weight scales. We are working on cutlass kernels to replace the naive for loop
Next steps (to be handled in another PR):

Fused Cutlass GEMM_DQ for QKV and GateUpProj (needed for performance)
Update fp16 loading to support memory reduction
Add support to Mixtral ([Kernel] Support Fp8 Checkpoints for Mixtral (Dynamic + Static) #4436)
Add support to all other MoEs
Refactor weight loading

Usage
from vllm import LLM

# fp16 model at fp8
model = LLM("mistralai/Mistral-7B-Instruct-v0.2", quantization="fp8")

# fp8 static act_scale model
model = LLM("nm-testing/mistral-fp8-static")

# fp8 dynamic act_scale model
model = LLM("nm-testing/mistral-fp8-dynamic")

Performance
Note: all models have shared weight scales for merged layers (QKV, GateUpProj), so there is no naive for loop
Benchmarking shapes
We can see that fp8 is faster end-to-end for prefills, but is slower than fp16 for decode
Benchmark serving (1xH100, ShareGPT, Request Rate=5.0, Num Prompts=1000:

fp16: meta-llama/Meta-Llama-3-8B-Instruct

python3 -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B-Instruct --disable-log-requests

python3 benchmark_serving.py --backend openai --model meta-llama/Meta-Llama-3-8B-Instruct --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  205.16
Total input tokens:                      215196
Total generated tokens:                  186204
Request throughput (req/s):              4.87
Input token throughput (tok/s):          1048.94
Output token throughput (tok/s):         907.62
---------------Time to First Token----------------
Mean TTFT (ms):                          20.49
Median TTFT (ms):                        19.88
P99 TTFT (ms):                           42.07
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          10.42
Median TPOT (ms):                        10.36
P99 TPOT (ms):                           13.23
==================================================

fp8 static with shared scales: nm-testing/llama-3-instruct-fp8-static-shared-scales

python3 -m vllm.entrypoints.openai.api_server --model nm-testing/llama-3-instruct-fp8-static-shared-scales --disable-log-requests

python3 benchmark_serving.py --backend openai --model nm-testing/llama-3-instruct-fp8-static-shared-scales --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  205.65
Total input tokens:                      215196
Total generated tokens:                  142560
Request throughput (req/s):              4.86
Input token throughput (tok/s):          1046.41
Output token throughput (tok/s):         693.21
---------------Time to First Token----------------
Mean TTFT (ms):                          22.48
Median TTFT (ms):                        22.34
P99 TTFT (ms):                           37.28
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          27.67
Median TPOT (ms):                        11.58
P99 TPOT (ms):                           94.82
==================================================

^not sure why P99 TPOT is so bad here

fp8 static with dynamic scales: meta-llama/Meta-Llama-3-8B-Instruct --quantization fp8

python3 -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B-Instruct --quantization fp8 --disable-log-requests

python3 benchmark_serving.py --backend openai --model meta-llama/Meta-Llama-3-8B-Instruct --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json --request-rate 5.0 --num-prompts 1000

============ Serving Benchmark Result ============
Successful requests:                     1000
Benchmark duration (s):                  206.00
Total input tokens:                      215196
Total generated tokens:                  186083
Request throughput (req/s):              4.85
Input token throughput (tok/s):          1044.65
Output token throughput (tok/s):         903.32
---------------Time to First Token----------------
Mean TTFT (ms):                          23.52
Median TTFT (ms):                        24.31
P99 TTFT (ms):                           40.56
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          11.80
Median TPOT (ms):                        11.93
P99 TPOT (ms):                           14.11
==================================================

Experimental checkpoint structure
Here we detail the experimental structure for the fp8 checkpoints.
We plan to expand upon this as we start adding support for int8, sparsity, etc
The following is added to config.json
"quantization_config": {
    "quant_method": "fp8",
    "activation_scheme": "static" or "dynamic"
  },

Each quantized layer in the state_dict will have:
If the config has "activation_scheme": "static":
model.layers.0.mlp.down_proj.weight              < F8_E4M3
model.layers.0.mlp.down_proj.act_scale           < F32
model.layers.0.mlp.down_proj.weight_scale        < F32

If config has "activation_scheme": "dynamic":
model.layers.0.mlp.down_proj.weight              < F8_E4M3
model.layers.0.mlp.down_proj.weight_scale        < F32

PR Checklist (Click to Expand)

@robertgshaw2-neuralmagic could you shall more details on the test results, if possible.  I just confused on the Prefill stage, what is the batch size? On the decode stage, what is the input length and output length? Benchmarks are very useful for start the new feature.  Thanks!

authors: Andy0422 HaiShaw Qubitium WoosukKwon comaniac pcmoritz robertgshaw2-neuralmagic

repo: vllm-project/vllm


text:
petición de cambios

Se ha añadido el título que queda muy bien.

muy bien...


text:
Official PyQrack Documentation

PyQrack has no documentation, beyond its README. The reason this can be, despite some hundred thousand downloads worth of utilization by others, is that PyQrack exposes a quantum gate API that is well-known colloquialism; what "T" means as a gate name in any quantum computing API is what it means in PyQrack, and so on for most-to-all gates in qrack_simulator.py, basically. This isn't entirely welcoming to new users, though. Many would benefit from a repository of readable API definition, at least.
Work toward formal documentation of PyQrack API can constitute unitaryHACK contribution. I can start a vm6502q organization repository for this, before or during unitaryHACK.

Hello, I have been looking into pyqrack and followed it on the unitary fund discord server for a few days now and wanted to further understand the codebase to learn more about it, do you think this would be the right issue to learn more about qrack? If so I would love to communicate with the community and get this issue done!
Thanks

@Zshan0 Thanks for your interest! Yes, drafting a simple API reference for the gates in qrack_simulator.py could be a great way to familiarize yourself with the PyQrack module, and I'd be happy to help you throughout the process!
This was meant to be a bountied issue for unitaryhack.dev, by the way, worth $100. The hackathon hasn't started, quite yet, but, as a member of the Unitary Fund team myself, I could definitely talk to the hackathon organizers about getting you started on this ASAP, rather than blocking on the start of the hackathon simply for the sake of it.
Tonight, after my daily work on https://metriq.info for the Unitary Fund, I'll start a repository for the documentation you'll produce. I suspect that, based on the simple colloquial meanings of the gate method names, you'll be able to find satisfactory definitions from other sources, (like by Googling "quantum t gate," for example, and that will probably be specific enough). I'll be here to help, too!
I'll let you know here in this issue, when I've created the new documentation repository. Thanks again! :+1:

Hey, thanks for the quick response! While you are setting that up, do you recommend I go through some codebase or material beforehand? I installed pyqrack and qrack on my system as of now, could let me know what kind of familiarity would I need of the codebase and functionality of qrack itself for working on pyqrack? and where would you recommend I start reading the pyqrack code, not very sure how to experiment with it yet.
Thanks :D

While I'm working out the logistics, a decent place to start experimenting with the PyQrack package is at https://github.com/vm6502q/pyqrack-jupyter. There are a very limited number of example Jupyter notebooks, so far, but they're working examples, at least.
As per the reason for this issue ticket in the first place, PyQrack currently relies on the hope that the QrackSimulator definition file is sufficiently self-documented, just by using common and obvious gate names, at https://github.com/vm6502q/pyqrack/blob/main/pyqrack/qrack_simulator.py. The names aren't exactly the same, but the similarity to the underlying vm6502q/qrack (C++11) library are hopefully somewhat obvious, and Qrack's documentation lives here:
https://qrack.readthedocs.io/en/latest/
Qrack's API reference, specifically, comprises the bottom two headings on the left menu, "API" and "Doxygen."
Let me know if you need any more help!

@Zshan0 I'm still coordinating with Unitary Fund about the bounty, but here's the documentation repository skeleton!
https://github.com/vm6502q/pyqrack.github.io
More will follow when I get further details, but you're free to start working an on API reference! Based on foreseeable conditions, you might need to wait until the official hackathon event to receive the bounty, but we'll get it to you, if you start writing the API reference now or before the end of the event.
Also, any questions you have at all, feel free to ask me here or on the Unitary Fund Discord server, either in the #qrack channel, or you can message me directly. Thank you again!


text:
Cryptic error trying to instantiate TestSupportFragmentActivity

Basic Information
Device type: GIONEE S10L
OS version: Android 9
EasyPermissions version: 1.0.0
Describe the problem
I have got one crash report from crashlytics with the following stacktrace.
Fatal Exception: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.totschnig.myexpenses/com.vmadalin.easypermissions.components.TestSupportFragmentActivity}: java.lang.ClassNotFoundException: Didn't find class "com.vmadalin.easypermissions.components.TestSupportFragmentActivity" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/org.totschnig.myexpenses-Wq04CPgZmNJUUtoxLQjTGg==/base.apk"],nativeLibraryDirectories=[/data/app/org.totschnig.myexpenses-Wq04CPgZmNJUUtoxLQjTGg==/lib/arm64, /system/lib64]]
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2881)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6718)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by java.lang.ClassNotFoundException: Didn't find class "com.vmadalin.easypermissions.components.TestSupportFragmentActivity" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/org.totschnig.myexpenses-Wq04CPgZmNJUUtoxLQjTGg==/base.apk"],nativeLibraryDirectories=[/data/app/org.totschnig.myexpenses-Wq04CPgZmNJUUtoxLQjTGg==/lib/arm64, /system/lib64]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
       at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
       at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6718)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

I have no idea if the user uses some tool that inspects the APK and does some weird stuff with it, or if this is a legit use of my app and the OS screws up.
In any case, it might be safer to move the references to test activities out of the main AndroidManifest into the test source set.

I have started seeing similar crashes on Android 8.1 devices in an app of mine. Also version 1.0.0 of the library.
@mtotschnig did you manage to find the cause of this?

@dabarnard The crash is quite easy to reproduce. From adb call (with your application_id)
adb shell am start -n "{application_id}/com.vmadalin.easypermissions.components.TestSupportFragmentActivity"
The cause is that references to this activity along with two others that exist only for tests, are erroneously added to the AndroidManifest that gets merged into your production APK.

authors: dabarnard mtotschnig

repo: vmadalin/easypermissions-ktx


text:
test2

test2

closed test


text:
Cleanup multiple commits into /main with single commit: Code line reorganization.

I am going to be doing some commit reorganization in /main to take care of some pending code line issues:

John merged the pptx and pdfs from yesterday’s talks, and somehow multiple commits came about.
Some weeks ago, we had a stream of small commits from Keystone dev-work. Will try to squash those into one single commit.

I’m hoping no one is doing active dev-work on this repo right now. You will have to re-clone your repos after this reorganization is done.
Hopefully things will be more cleaner going forward in terms of linear commit history.
[ Copy of email sent to core devs today. ]

code-commit cleanup and --force pushed back to /main. See the closure notes in PR #139