text:
Modal is getting truncated when rendering at bottom on Android 15

Description
When we use the React Native Modal and try to render the Modal content at the bottom, upto Android 14 new architecture it is working fine. But in Android 15 new architecture, the Modal rendered at the bottom is not entirely visible and we are only able to see a small section of the Modal rendered.
Please find the video attached below where the issue is happening on Android 15 new architecture
https://github.com/user-attachments/assets/32525bd9-2837-4ab3-9326-f878170b979b
Please find the video attached below with expected behaviour on Android 14 new architecture
https://github.com/user-attachments/assets/a4d0306c-fa30-4a1d-afb0-5093215681c7
Note: We have tested this issue on Pixel 7 Pro and Pixel 8 Pro (Emulator)
Steps to reproduce

Run an android simulator with Android 15 version.
After cloning, Run npm install and npx react-native run-android to run the project.

React Native Version
0.74.3
Affected Platforms
Runtime - Android
Areas
Other (please specify)
Output of npx react-native info
System:
  OS: macOS 14.0
  CPU: (10) arm64 Apple M1 Pro
  Memory: 77.34 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.4.1
    path: /opt/homebrew/bin/node
  Yarn: Not Found
  npm:
    version: 10.8.1
    path: /opt/homebrew/bin/npm
  Watchman:
    version: 2024.07.08.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods: Not Found
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2411.12071903
  Xcode:
    version: 15.0/15A240d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.11
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.3
    wanted: 0.74.3
  react-native-macos: Not Found
npmGlobalPackages:
  "react-native": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: Not found
  newArchEnabled: false

Stacktrace or Logs
NA

Reproducer
https://github.com/ManiTWIndia/ReactNativeModalIssue
Screenshots and Videos
https://github.com/user-attachments/assets/b9e758e6-3895-4d12-9b1e-042caac15c20

Any updates here?

Any updates here?

Why are you asking? Are you having the same issue or would you like to take this one to fix it?

Yes I'm having the same issue

Any updates here?

Why are you asking? Are you having the same issue or would you like to take this one to fix it?

Yes I'm having the same issue

@Abdelaty-magdy @ManiTWIndia I'll be looking into this issues and any general issues that may come up related to Android 15. Will post an update when I have identified the issue and have a proposed fix

@Abdelaty-magdy @ManiTWIndia I'll be looking into this issues and any general issues that may come up related to Android 15. Will post an update when I have identified the issue and have a proposed fix

@alanleedev I did some investigation and I think the root cause is forcing the app to have edge-to-edge feature in Android 15.

@alanleedev I did some investigation and I think the root cause is forcing the app to have edge-to-edge feature in Android 15.

@Abdelaty-magdy Do you have more details around what you found?
My investigation lead me to believe it was an issue with ModalHostHelper.getModalHostSize(). Specifically, display.getCurrentSizeRange(MIN_POINT, MAX_POINT) seems to have different results in Android 15 and the return value from the function is incorrect.
I also see some existing issues with the Modal.
I don't have a solution for this issue yet.

We are also affected by this issue. Are there any updates, since Android 15 was just released?

We are also affected by this issue. Are there any updates, since Android 15 was just released?

@ieatfood There was a fix for this and will be included in the upcoming 0.76 release.
Could you try to test with the latest RC to see if the problem was resolved?

The fix was merged here: https://github.com/facebook/react-native/pull/46359

@ManiTWIndia could you also check with latest 0.76 RC?

@alanleedev I am not facing the Modal truncation issue on React native version 0.76 with new architecture. Thanks.

@ManiTWIndia Thanks for verifying. Closing the issue.

@alanleedev Can we backport this fix for lower versions? We are using React native 0.74.3 and we cant upgrade to the latest version for now

@alanleedev Can we backport this fix for lower versions? We are using React native 0.74.3 and we cant upgrade to the latest version for now

@cortinico @cipolleschi Is this something we can do?

We are using React native 0.74.3 and we cant upgrade to the latest version for now

@ManiTWIndia why not? This change is included in 0.76.0

How do you test on Android 15 when React Native still doesn’t support 16 KB page sizes? @ManiTWIndia

How do you test on Android 15 when React Native still doesn’t support 16 KB page sizes? @ManiTWIndia

How is this related to 16K support

We're not planning upgrading to latest react native, we're on 0.75. Some of our users using the Android 15. How could we handle this Modal issue without having upgrading now? I have some work around but it's not good IMO.

@trungledangAxonActive we will do a release for React native 0.75, backporting the fix hat landed here: https://github.com/facebook/react-native/commit/77b3a8bdd6164b4c2407e53cb0e27075c3ea7213

Thanks @cipolleschi for your reply

authors: Abdelaty-magdy ManiTWIndia alanleedev amirbhz86 cipolleschi cortinico ieatfood trungledangAxonActive


text:
RefreshControl can not work in android

hi，when I use ListView ，IOS work well，but android not work！
<ListView enableEmptySections={true}
dataSource={this.state.dataSource}
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh.bind(this)}
tintColor="#ff0000"
enabled={true}
title="pull down to update..."
colors={['#ff0000', '#00ff00', '#0000ff']}
progressBackgroundColor="#ffff00"
/>
}
onEndReached={this._pullUpToLoadMore.bind(this)}
onEndReachedThreshold={this.state.dataSize}
renderHeader={this._renderHeader.bind(this)}
renderRow={(rowData)=>{return this._renderRow(rowData,_navigator)}}
initialListSize = {20}
renderScrollComponent={props => <RecyclerViewBackedScrollView {...props} />}
renderSeparator={(sectionID, rowID) => <View key={${sectionID}-${rowID}} style={styles.separator} />}
/>

@facebook-github-bot stack-overflow

Use third party API for that or update the react-cli to 0.24 .In 0.24 that bug solved. https://www.npmjs.com/package/react-native-refresh-control

hi，thanks ，my ios is work well，but android not work
@alokverma65977

+1
pull-down doesn't work in android

+1

+1

source: gharchive/issue

repo: facebook/react-native

license: MIT

license_type: permissive

license_source: github-api


text:
[0.26.0-rc] HMR for functional components broken

Hi,
hot-reloading functional components is broken in version 0.26.0-rc, throwing the following error:

The file I tested it on is:
https://github.com/oreqizer/reactizer/blob/develop/src/native/app/App.js
on 0.25, both variants work.
on 0.26-rc, only the 'class' one works.
Opening it from scratch or reloading fixes this. it gets broken only by hot-reloading

OK reporting that this is solved in 0.27-rc.

Cherry-picked into 0.26.1 :)

authors: grabbou oreqizer


text:
Update ReactTextInputManager.java

Android Keyboard
Thanks for submitting a PR! Please read these instructions carefully:

[ ] Explain the motivation for making this change.
[ ] Provide a test plan demonstrating that the code is solid.
[ ] Match the code formatting of the rest of the codebase.
[ ] Target the master branch, NOT a "stable" branch.

Motivation (required)
What existing problem does the pull request solve?
Test Plan (required)
A good test plan has the exact commands you ran and their output, provides screenshots or videos if the pull request changes UI or updates the website. See What is a Test Plan? to learn more.
If you have added code that should be tested, add tests.
Next Steps
Sign the CLA, if you haven't already.
Small pull requests are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it.
Make sure all tests pass on both Travis and Circle CI. PRs that break tests are unlikely to be merged.
For more info, see the "Pull Requests" section of our "Contributing" guidelines.

Could you please provide motivation and test plan?

source: gharchive/pull-request

authors: imDangerous shergin


text:
ReactPicker extends AppCompatSpinner

Summary
Google recommends to extend AppCompat widget, and this PR changes ReactPicker to extend AppCompatSpinner.
Changelog
[Android] [Changed] - ReactPicker extends AppCompatSpinner
Test Plan
CI is green, and everything works as before.

@dulmandakh let me know once this is ready for review and landing.

@cpojer it's done.

@dulmandakh can you fill out the changelog etc.?

@cpojer oops, done 👍

I think you'll need to rebase this one because the other one just landed.

@cpojer done

authors: cpojer dulmandakh


text:
[Android] Update the cached dimensions when orientation changes

Summary
Currently the dimensions are created once, and then cached.  This change will reload the dimensions when the device orientation changes to insure that dimension update events follow orientation changed events.
this should help address the following issues, that I know of:
https://github.com/facebook/react-native/issues/29105
https://github.com/facebook/react-native/issues/29451
https://github.com/facebook/react-native/issues/29323
Changelog

[Android] [Fixed] - Dimension update events are now properly sent following orientation change
Test Plan
Open up RNTester app.  Select the Dimensions API list item.  Rotate the device and verify that the dimensions are correct based on orientation.

Thanks for sharing this fix @ajpaulingalls. I tested against this branch and can confirm that it fixes the issue I was seeing where the Dimensions.addEventListener wasn't firing callbacks in some scenarios.
It looks like the test_ios_unit_frameworks_hermes check failed, which seems completely unrelated to your change. Are you able to re-queue that CircleCI build somehow? Maybe it's an intermittent failure.

It looks like the test_ios_unit_frameworks_hermes check failed, which seems completely unrelated to your change. Are you able to re-queue that CircleCI build somehow? Maybe it's an intermittent failure.

I'm not sure how to kick it off again without making more code changes.  Hopefully a real reviewer will see its unrelated and merge it anyway..:)

I think #29105 is actually a separate issue with Dimensions.get('screen') specifically - this PR doesn't seem to fix it for me. I'll look into it.

Can we close all related issues then?

I think that this is fixed only on master, so for 0.64 and 0.63 is still an issue; until we cherry pick this into those and release patches we should keep them open imho

I don't think this is fixed in the case where you have e.g. a tablet locked to portrait orientation then open a react-native app using react-native-orientation-locker and do Orientation.lockToLandscape() (not sure about the case where you lock the orientation via AndroidManifest.xml but may be similar). The Dimensions module always returns the width and height reversed both via Dimensions.get('window') and useWindowDimensions. I think that may be what https://github.com/facebook/react-native/issues/29105 is referring to @ejanzer
Using the useOrientationChange hook from react-native-orientation-locker returns PORTRAIT and useDeviceOrientationChange returns the 'real' device orientation, neither of which are what we want (as the app is locked to a fixed landscape orientation) so it's hard to even work around the issue (while still accounting for the possibility of split screen / floating window views).
Not strictly a RN issue but it feels like the Dimensions module should take this into account - maybe via Activity.getRequestedOrientation

Plataforma	Motor	Arco	Tamaño (bytes)	Diferencia
androide	Hermes	arm64-v8a	7,507,277	+79
androide	Hermes	armeabi-v7a	7.099.065	+92
androide	Hermes	x86	7,945,421	+87
androide	Hermes	x86_64	7.856.485	+92
androide	jsc	arm64-v8a	8,971,996	+93
androide	jsc	armeabi-v7a	8.546.899	+100
androide	jsc	x86	8,971,649	+100
androide	jsc	x86_64	9.522.956	+93
Confirmación base: 3e77e15

authors: Quedo5 ajpaulingalls ejanzer kelset luisnaranjo733 mjmasn thymikee


text:
[RN][0.74rc] Keep ES6Proxy enabled in bridgeless mode

Summary:
Note: this is a copy of https://github.com/facebook/react-native/pull/43538 but targeted towards 0.74-stable branch directly.

The Hermes RuntimeConfig for bridgeless accidentally force-disabled ES6Proxy, resulting in https://github.com/facebook/react-native/issues/43523
To fix this in the 0.74rc, let's remove the incorrect override. Note that this is only for the RC branch, the fix in main will be done separately (to use proper ReactNativeFeatureFlags).
Changelog:
[General][Fixed] Correctly keep ES6Proxy for bridgeless mode
Test Plan:
To test using RNTester, add the following change:
diff --git a/packages/rn-tester/js/RNTesterAppShared.js b/packages/rn-tester/js/RNTesterAppShared.js
index 87cb6b69dfe..f2512d09c5a 100644
--- a/packages/rn-tester/js/RNTesterAppShared.js
+++ b/packages/rn-tester/js/RNTesterAppShared.js
@@ -50,6 +50,8 @@ const RNTesterApp = ({
   );
   const colorScheme = useColorScheme();
+  new Proxy({}, {});
+
   const {
     activeModuleKey,
     activeModuleTitle,

Before this change, RNTester will get an error at start-up. After, the app loads correctly.

Sorry, wrong PR, will fix


text:
Revert "Add subviewStyle prop to NavigationHeader"

This reverts commit 1dc82a9e5f27339c352e171a5d1c760d90b04440.
Breaks OSS tests

@facebook-github-bot shipit

Reverts https://github.com/facebook/react-native/pull/7214

By analyzing the blame information on this pull request, we identified @hedgerwang and @satya164 to be potential reviewers.

Thanks for importing. If you are an FB employee go to Phabricator to review.


text:
Error when installing eslint globally

I got the following error when trying to install eslint globally (as suggested in the user guide):
Kasper@Kaspers-MacBook-Pro:~/Code/playground/firebase-react|
⇒  npm install -g eslint-config-react-app eslint babel-eslint eslint-plugin-react eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-flowtype
npm WARN deprecated lodash.assign@4.2.0: This package is deprecated. Use Object.assign.
/Users/Kasper/.nvm/versions/node/v6.6.0/bin/eslint -> /Users/Kasper/.nvm/versions/node/v6.6.0/lib/node_modules/eslint/bin/eslint.js
/Users/Kasper/.nvm/versions/node/v6.6.0/lib
├── babel-eslint@6.1.2
├─┬ UNMET PEER DEPENDENCY eslint@3.6.0
│ └─┬ table@3.8.0
│   ├── ajv@4.7.4
│   └── ajv-keywords@1.1.1
├── eslint-config-react-app@0.2.1
├── UNMET PEER DEPENDENCY eslint-plugin-flowtype@2.19.0
├── UNMET PEER DEPENDENCY eslint-plugin-import@1.16.0
├── eslint-plugin-jsx-a11y@2.2.2
└── eslint-plugin-react@6.3.0

npm WARN eslint-config-react-app@0.2.1 requires a peer of eslint@3.5.0 but none was installed.
npm WARN eslint-config-react-app@0.2.1 requires a peer of eslint-plugin-flowtype@2.18.1 but none was installed.
npm WARN eslint-config-react-app@0.2.1 requires a peer of eslint-plugin-import@1.12.0 but none was installed.

Those are not errors. Those are just warnings. The warnings are saying that you need to install eslint-config-config-react-app's peerDependencies (eslint, eslint-plugin-flowtype, eslint-plugin-import) as global dependencies as well.
I should note that installing npm dependencies as global dependencies is generally a bad idea.
Try doing this instead. Add the following code to your package.json:
# Assuming that you are inside of a project that has a package.json

  "scripts": {
     "lint": "eslint some_project_folder *.js"
   }

When you install eslint, or any other package that can be installed as a cli package, it can also be run through npm 'scripts'. This is considered to be preferred over global dependencies. There are a number of issues with global deps.

@amilajack
There is no need to install ESLint locally, CRA already has it as a dependency.
What @kasperpeulen is trying to do is to follow our guide here.
Unfortunately at the moment the only way to display lint output in the editor is by installing these plugins globally. This is an ESLint issue, and you can put 👍 in https://github.com/eslint/eslint/issues/3458 to express your desire to see it fixed.
As for the author’s question, please run npm install -g eslint@3.5.0 and it should be fine.
We should amend the guide to ask people to install specifically these versions of the plugins, then there won’t be any warnings.
I know it’s frustrating but there’s nothing we can do on our side to make it easier.

Fixed in the documentation by 2b7a4f147dd4e4e411ac9d98405cff3495429ff3.
The new command is:
npm install -g eslint-config-react-app@0.2.1 eslint@3.5.0 babel-eslint@6.1.2 eslint-plugin-react@6.3.0 eslint-plugin-import@1.12.0 eslint-plugin-jsx-a11y@2.2.2 eslint-plugin-flowtype@2.18.1

npm info "eslint-config-airbnb-base@latest" peerDependencies
npm install -g install-peerdeps
install-peerdeps --dev eslint-config-airbnb-base
Add "extends": "airbnb-base" to .eslintrc   file.
Finally, SUCCESS eslint-config-airbnb-base and its peerDeps were installed successfully.

authors: amilajack cloud-github gaearon kasperpeulen

repo: facebookincubator/create-react-app

license: mit

license_source: bigquery


text:
Public Server build file

After building successfully, which binary in the build directory represents the public server running on fb.mvfst.net:443 ?
If not exactly, which one implements most of the functionality ?
Thanks :)

@piano-man the one running on fb.mvfst.net (for QUIC interop) is based on proxygen so that we can also do HTTP/3
you'll have to build https://github.com/facebook/proxygen
and the executable file is called HQ (like HTTP over QUIC)..

the proxygen build pulls this repo as a dependency

authors: lnicco piano-man

repo: facebookincubator/mvfst


text:
Is spark function bin()  supported in velox?

Is spark function bin()  supported in velox?

@mbasmanova

Sure. I will add this function later. Thanks for your reply!

repo: facebookincubator/velox


text:
Add Tpch queries 3, 4 to velox

Add Tpch queries 3, 4 to velox - initial changes

Let's keep Q3 and Q4 as separate commits.

This branch has conflicts that must be resolved

Would you rebase and update the PR?

@pramodsatya There are a lot of commits here. Would you squash them all into one?

authors: majetideepak mbasmanova pramodsatya


text:
Add poisson_cdf Presto function

Resolves https://github.com/facebookincubator/velox/issues/4747

Fuzzer results:
I20230508 13:43:43.059211 230299 ExpressionVerifier.cpp:57] ===================
I20230508 13:43:43.059224 230299 ExpressionVerifier.cpp:68] All results match.
I20230508 13:43:43.059242 230299 ExpressionFuzzer.cpp:1275] ==============================> Done with iteration 9651
I20230508 13:43:43.059273 230299 ExpressionFuzzer.cpp:1068] ==============================> Top 1 by number of rows processed
I20230508 13:43:43.059279 230299 ExpressionFuzzer.cpp:1070] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230508 13:43:43.059284 230299 ExpressionFuzzer.cpp:1074] poisson_cdf 19286 100.00% 1018010
I20230508 13:43:43.059293 230299 ExpressionFuzzer.cpp:1080] ==============================> Bottom 1 by number of rows processed
I20230508 13:43:43.059298 230299 ExpressionFuzzer.cpp:1082] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230508 13:43:43.059303 230299 ExpressionFuzzer.cpp:1087] poisson_cdf 19286 100.00% 1018010
I20230508 13:43:43.059309 230299 ExpressionFuzzer.cpp:1100] ==============================> All stats sorted by number of times the function was chosen
I20230508 13:43:43.059314 230299 ExpressionFuzzer.cpp:1102] Format: functionName numTimesSelected proportionOfTimesSelected numProcessedRows
I20230508 13:43:43.059320 230299 ExpressionFuzzer.cpp:1106] poisson_cdf 19286 100.00% 1018010

@aditi-pandit @mbasmanova Can you please review this PR?

@aditi-pandit @mbasmanova I have rebased and fixed the conflicting files. Can you please review?

@aditi-pandit @mbasmanova I have made the changes. Can you please review?

@mbasmanova @Yuhta Can you please review?

@mbasmanova @Yuhta Can you please review?

@Ann-Rose : Please can you rebase your PR for further reviews and landing.

@aditi-pandit  Rebased it.

@aditi-pandit  Rebased it. Thanks

@Yuhta  Can you please review?

@Ann-Rose : Please can you squash your commits to a single one.

@aditi-pandit I have squashed all the commits into one. Thank You

@Ann-Rose : Please can you rebase. This PR now has conflicts.

@aditi-pandit  I have rebased it again. Can you please check?

@Ann-Rose The biased fuzzer run (which put emphasis on the new function added) is failing, can you run the command locally to see if it is related? https://app.circleci.com/pipelines/github/facebookincubator/velox/30724/workflows/e063d94e-e487-4dac-b29f-4335f5598611/jobs/193690

@kgpai It seems the biased fuzzer run output is too large and it is truncated even I download and inspect it.  Is there a way to keep the full log?
https://app.circleci.com/pipelines/github/facebookincubator/velox/30724/workflows/e063d94e-e487-4dac-b29f-4335f5598611/jobs/193690

@Yuhta Let me see what I can do.

@Yuhta
You have to download the logs to inspect them, This is what I have :
I20230804 09:20:39.207077 43483 ExpressionFuzzer.cpp:1313] ==============================> Started iteration 52674 (seed: 734428107)
I20230804 09:20:39.207165 43483 ExpressionFuzzer.cpp:859] Couldn't find a proper function to return 'ARRAY<DOUBLE>'. Returning a constant instead.
I20230804 09:20:39.208250 43483 ExpressionVerifier.cpp:91] Executing expression 0 : reverse(trim_array(16 elements starting at 111 {0.22270482871681452, 0.1722307661548257, 0.6159970487933606, 0.778835924109444, null, ...},strrpos("c0",url_extract_query(switch("c1",from_utf8(spooky_hash_v2_32(to_big_endian_64("c2"))),arrays_overlap("c3",sequence(2011-04-28T12:08:20.530886587,"c4",1316783296)),"c5")))))
I20230804 09:20:39.208302 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.208309 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 14 nulls], [CONSTANT VARCHAR: 100 elements, |ZYnb7,S!X}BH|=OE-LJ;>.G_.f406/!S;(-ZO">CH5]
I20230804 09:20:39.208321 43483 ExpressionVerifier.cpp:33] 	[FLAT BOOLEAN: 100 elements, 9 nulls]
I20230804 09:20:39.208330 43483 ExpressionVerifier.cpp:33] 	[FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.208339 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.208353 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.208367 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
I20230804 09:20:39.209702 43483 ExpressionVerifier.cpp:157] Modified inputs for common eval path:
I20230804 09:20:39.209722 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.209728 43483 ExpressionVerifier.cpp:33] 	[LAZY VARCHAR: 100 elements, no nulls]
I20230804 09:20:39.209738 43483 ExpressionVerifier.cpp:33] 	[LAZY BOOLEAN: 100 elements, no nulls]
I20230804 09:20:39.209748 43483 ExpressionVerifier.cpp:33] 	[FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.209756 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.209770 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.209784 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
I20230804 09:20:39.213040 43483 ExpressionFuzzer.cpp:1353] Both paths failed with compatible exceptions. Retrying expression using try().
I20230804 09:20:39.213088 43483 ExpressionVerifier.cpp:91] Executing expression 0 : try(reverse(trim_array(16 elements starting at 111 {0.22270482871681452, 0.1722307661548257, 0.6159970487933606, 0.778835924109444, null, ...},strrpos("c0",url_extract_query(switch("c1",from_utf8(spooky_hash_v2_32(to_big_endian_64("c2"))),arrays_overlap("c3",sequence(2011-04-28T12:08:20.530886587,"c4",1316783296)),"c5"))))))
I20230804 09:20:39.213125 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.213136 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 14 nulls], [CONSTANT VARCHAR: 100 elements, |ZYnb7,S!X}BH|=OE-LJ;>.G_.f406/!S;(-ZO">CH5]
I20230804 09:20:39.213148 43483 ExpressionVerifier.cpp:33] 	[FLAT BOOLEAN: 100 elements, 9 nulls]
I20230804 09:20:39.213156 43483 ExpressionVerifier.cpp:33] 	[FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.213165 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.213179 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.213193 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
I20230804 09:20:39.214563 43483 ExpressionVerifier.cpp:157] Modified inputs for common eval path:
I20230804 09:20:39.214583 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.214591 43483 ExpressionVerifier.cpp:33] 	[LAZY VARCHAR: 100 elements, no nulls]
I20230804 09:20:39.214601 43483 ExpressionVerifier.cpp:33] 	[LAZY BOOLEAN: 100 elements, no nulls]
I20230804 09:20:39.214608 43483 ExpressionVerifier.cpp:33] 	[FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.214617 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.214630 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.214643 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
I20230804 09:20:39.218506 43483 ExpressionVerifier.cpp:79] All results match.
I20230804 09:20:39.218573 43483 ExpressionFuzzer.cpp:1274] Retrying original expression on 41 rows without errors
I20230804 09:20:39.218608 43483 ExpressionVerifier.cpp:91] Executing expression 0 : reverse(trim_array(16 elements starting at 111 {0.22270482871681452, 0.1722307661548257, 0.6159970487933606, 0.778835924109444, null, ...},strrpos("c0",url_extract_query(switch("c1",from_utf8(spooky_hash_v2_32(to_big_endian_64("c2"))),arrays_overlap("c3",sequence(2011-04-28T12:08:20.530886587,"c4",1316783296)),"c5")))))
I20230804 09:20:39.218647 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.218653 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 41 elements, no nulls], [DICTIONARY VARCHAR: 100 elements, 14 nulls], [CONSTANT VARCHAR: 100 elements, |ZYnb7,S!X}BH|=OE-LJ;>.G_.f406/!S;(-ZO">CH5]
I20230804 09:20:39.218668 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY BOOLEAN: 41 elements, no nulls], [FLAT BOOLEAN: 100 elements, 9 nulls]
I20230804 09:20:39.218679 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY BIGINT: 41 elements, no nulls], [FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.218689 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 41 elements, no nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.218705 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 41 elements, no nulls], [DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.218719 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 41 elements, no nulls], [DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
I20230804 09:20:39.220054 43483 ExpressionVerifier.cpp:157] Modified inputs for common eval path:
I20230804 09:20:39.220074 43483 ExpressionVerifier.cpp:31] 6 vectors as input:
I20230804 09:20:39.220081 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 41 elements, no nulls], [LAZY VARCHAR: 100 elements, no nulls]
I20230804 09:20:39.220093 43483 ExpressionVerifier.cpp:33] 	[LAZY BOOLEAN: 41 elements, no nulls]
I20230804 09:20:39.220101 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY BIGINT: 41 elements, no nulls], [FLAT BIGINT: 100 elements, 14 nulls]
I20230804 09:20:39.220113 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY ARRAY<TIMESTAMP>: 41 elements, no nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 6 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 11 nulls], [DICTIONARY ARRAY<TIMESTAMP>: 100 elements, 7 nulls], [ARRAY ARRAY<TIMESTAMP>: 100 elements, no nulls]
I20230804 09:20:39.220129 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY TIMESTAMP: 41 elements, no nulls], [DICTIONARY TIMESTAMP: 100 elements, 13 nulls], [DICTIONARY TIMESTAMP: 100 elements, 9 nulls], [DICTIONARY TIMESTAMP: 100 elements, 11 nulls], [FLAT TIMESTAMP: 100 elements, 11 nulls]
I20230804 09:20:39.220144 43483 ExpressionVerifier.cpp:33] 	[DICTIONARY VARCHAR: 41 elements, no nulls], [DICTIONARY VARCHAR: 100 elements, 13 nulls], [DICTIONARY VARCHAR: 100 elements, 10 nulls], [DICTIONARY VARCHAR: 100 elements, 6 nulls], [DICTIONARY VARCHAR: 100 elements, 15 nulls], [FLAT VARCHAR: 100 elements, 13 nulls]
*** Aborted at 1691140839 (Unix time, try 'date -d @1691140839') ***
*** Signal 11 (SIGSEGV) (0x90) received by PID 43483 (pthread TID 0x7f16cd4d5580) (linux TID 43483) (code: address not mapped to object), stack trace: ***
(error retrieving stack trace)
/bin/bash: line 1: 43483 Segmentation fault      (core dumped) _build/debug/velox/expression/tests/velox_expression_fuzzer_test --seed ${RANDOM} --lazy_vector_generation_ratio 0.2 --assign_function_tickets $(cat /tmp/presto_bias_functions) --duration_sec 3600 --enable_variadic_signatures --velox_fuzzer_enable_complex_types --velox_fuzzer_enable_column_reuse --velox_fuzzer_enable_expression_reuse --max_expression_trees_per_step 2 --retry_with_try --enable_dereference --logtostderr=1 --minloglevel=0 --repro_persist_path=/tmp/fuzzer_repro

The failure doesnt seem related to their function, but another function I think recently added - my recommendation would be to rerun the fuzzer job again.

Ran the fuzzer test:
./velox_expression_fuzzer_test  --seed 123456 --duration_sec 60 --logtostderr=1 --minloglevel=0  --only poisson_cdf  --v=1 2>&1 | tee fuzzertest.out
Results:
I20230804 23:27:54.629768 159439 ExpressionFuzzer.cpp:500] Total candidate functions: 0 (0 signatures)
I20230804 23:27:54.631209 159439 ExpressionFuzzer.cpp:504] Functions with at least one supported signature: 0 (-nan%)
I20230804 23:27:54.631239 159439 ExpressionFuzzer.cpp:508] Functions with no supported signature: 0 (-nan%)
I20230804 23:27:54.631253 159439 ExpressionFuzzer.cpp:512] Supported function signatures: 0 (-nan%)
I20230804 23:27:54.631280 159439 ExpressionFuzzer.cpp:516] Unsupported function signatures: 0 (-nan%)
I20230804 23:27:54.631330 159439 ExpressionFuzzer.cpp:1313] ==============================> Started iteration 0 (seed: 123456)
E20230804 23:27:54.631366 159439 Exceptions.h:69] Line: /Users/annrosebenny/dev/velox/velox/expression/tests/ExpressionFuzzer.cpp:1213, Function:generateRootType, Expression: !signatures_.empty() No function signature available., Source: RUNTIME, ErrorCode: INVALID_STATE
libc++abi: terminating due to uncaught exception of type facebook::velox::VeloxRuntimeError: Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: No function signature available.
Retriable: False
Expression: !signatures_.empty()
Function: generateRootType
File: /Users/annrosebenny/dev/velox/velox/expression/tests/ExpressionFuzzer.cpp
Line: 1213
Stack trace:
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
# 11
# 12
# 13

zsh: abort      ./velox_expression_fuzzer_test --seed 123456 --duration_sec 60 --logtostderr= |
zsh: done       tee fuzzertest.out

But I don't think the fuzzer fails due to this PR. The fuzzer test ran fine earlier

@Ann-Rose The biased fuzzer run (which put emphasis on the new function added) is failing, can you run the command locally to see if it is related? https://app.circleci.com/pipelines/github/facebookincubator/velox/30724/workflows/e063d94e-e487-4dac-b29f-4335f5598611/jobs/193690

Ran the fuzzer test:
./velox_expression_fuzzer_test  --seed 123456 --duration_sec 60 --logtostderr=1 --minloglevel=0  --only poisson_cdf  --v=1 2>&1 | tee fuzzertest.out
Results:
I20230804 23:27:54.629768 159439 ExpressionFuzzer.cpp:500] Total candidate functions: 0 (0 signatures)
I20230804 23:27:54.631209 159439 ExpressionFuzzer.cpp:504] Functions with at least one supported signature: 0 (-nan%)
I20230804 23:27:54.631239 159439 ExpressionFuzzer.cpp:508] Functions with no supported signature: 0 (-nan%)
I20230804 23:27:54.631253 159439 ExpressionFuzzer.cpp:512] Supported function signatures: 0 (-nan%)
I20230804 23:27:54.631280 159439 ExpressionFuzzer.cpp:516] Unsupported function signatures: 0 (-nan%)
I20230804 23:27:54.631330 159439 ExpressionFuzzer.cpp:1313] ==============================> Started iteration 0 (seed: 123456)
E20230804 23:27:54.631366 159439 Exceptions.h:69] Line: /Users/annrosebenny/dev/velox/velox/expression/tests/ExpressionFuzzer.cpp:1213, Function:generateRootType, Expression: !signatures_.empty() No function signature available., Source: RUNTIME, ErrorCode: INVALID_STATE
libc++abi: terminating due to uncaught exception of type facebook::velox::VeloxRuntimeError: Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: No function signature available.
Retriable: False
Expression: !signatures_.empty()
Function: generateRootType
File: /Users/annrosebenny/dev/velox/velox/expression/tests/ExpressionFuzzer.cpp
Line: 1213
Stack trace:
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
# 11
# 12
# 13

zsh: abort      ./velox_expression_fuzzer_test --seed 123456 --duration_sec 60 --logtostderr= |
zsh: done       tee fuzzertest.out

But I don't think the fuzzer fails due to this PR. The fuzzer test ran fine earlier

@kgpai I see we need to download it from ARTIFACTS instead of STEPS tab.

@Yuhta For some reason the steps tab doesnt work as well as just downloading from Artifacts.

authors: Ann-Rose Yuhta aditi-pandit kgpai


text:
Converted Presto regexp_replace and empty_approx_set to constant args

Addresses issue in #8157.
Implements the suggestions provided by @mbasmanova  in draft #8282.

@mbasmanova @kagamiori This PR is ready for review, but I am running into an issue in the draft stage that I do not believe my changes are responsible for (as far as I am aware). In the linux-build check, velox_cache_test is failing its AsyncDataCacheTest.tll test. Any ideas or pointers as to why this might be happening? I will keep the PR in the draft stage to preserve this error for now.

In the linux-build check, velox_cache_test is failing its AsyncDataCacheTest.tll test. Any ideas or pointers as to why this might be happening?

@gggrace14 Ge, would you help take a look?

In the linux-build check, velox_cache_test is failing its AsyncDataCacheTest.tll test. Any ideas or pointers as to why this might be happening?

@gggrace14 Ge, would you help take a look?

Yes, @codyschierbeck , the flaky test is not related to this change. I'm working on fixing it.

@codyschierbeck @mbasmanova  You can get the error message I printed by looking at 'Check and create bias function signature step' here : https://app.circleci.com/pipelines/github/facebookincubator/velox/42130/workflows/c1cb41f2-12a4-44c3-a15e-5c1dedf10b5e/jobs/290868/parallel-runs/0/steps/0-109 .
When we detect incompatible changes to function signatures we wait for the fuzzer to fully run before erroring at the end of the CI run . I will add some better messaging at the end to make folks aware of this.
In this case it seems signatures were changed to add their constant types . Unfortunately at this moment we identify constant as a separate type and currently we flag this as a change in backwards compatibility.

authors: codyschierbeck gggrace14 kgpai mbasmanova


text:
initModel with fasttext

Hi,
First of all, thank you making this great project open to the public. I could already achieve some good results for my experiments in information retrieval.
Now, I am trying to fine-tune and improve the model, by reusing pretrained embeddings from fasttext. In #94 , it was mentioned that one could just take the fasttext vectors by changing the extension to .tsv and specifying the dimensions with the -dim argument to 300. So, I did ,but the dimension gets overridden by StarSpace to 301 and of course after that an error for excess fields. I had to additionally remove the first line which specifies the line count and dimension size, otherwise the dimension gets override to 1. Am I doing something wrong? Here is the output I get:
./starspace train -trainFile ../../PycharmProjects/paragraph-selection/train_data -model my_model -fileFormat 'labelDoc' -thread 10 -epoch 3 -initModel ../../Downloads/wiki-fix.en.tsv -dim 300
Arguments:
lr: 0.01
dim: 300
epoch: 3
maxTrainTime: 8640000
saveEveryEpoch: 0
loss: hinge
margin: 0.05
similarity: cosine
maxNegSamples: 10
negSearchLimit: 50
thread: 10
minCount: 1
minCountLabel: 1
label: __label__
ngrams: 1
bucket: 2000000
adagrad: 1
trainMode: 0
fileFormat: labelDoc
normalizeText: 0
dropoutLHS: 0
dropoutRHS: 0
Start to load a trained embedding model in tsv format.
Setting dim from Tsv file to: 301
Loading dict from model file : ../../Downloads/wiki-fix.en.tsv
Number of words in dictionary:  2519371
Number of labels in dictionary: 0

EDIT1: I looked a bit closer into the code of StarSpace::initFromTsv and saw there is a call to  boost::split that splits the string along spaces or tabs. And it returns a vector where the last element is empty.  The vec.count - 1 is used as dim. Due to the fact that there is one "additional" element in the list, it code thinks there are not 300 elements but 301. I assume this is due to the newline character at the end of each line. I could later send a PR fixing this.
Cheers

@roskoN thanks for reporting. Yes please send a PR if that's the case.

@roskoN Hi, do you still observe the off-by-one issue from importing fastText model? If so, would you mind sending a PR to fix? Thanks.

Closing issue as no recent update.

It still does that with models I train myself on fasttext, there is an extra space at the end of each line.
This is easily fixed:
Remove the first line:
sed -i '1d' model.tsv' Remove extra space at end of line: sed -i 's/.$//' model.tsv`

Side note: One must make sure that the labels are the last lines of the embedding file, otherwise, somehow, pretty much any word is used for prediction.

authors: LAV42 ledw roskoN

repo: facebookresearch/StarSpace


text:
Looping for MusicGen

Hello, great job! I'm wondering if there is a way to loop the generation? I would like to get looping, as some other models for generating music can. Is it possible for MusicGen?

Check this out: https://replicate.com/facebookresearch/musicgen. Code can be found here

Check this out: https://replicate.com/facebookresearch/musicgen. Code can be found here

How do you configure it to loop from Replicate? i don't see that setting.

authors: ElizavetaSedova gregorym nateraw

repo: facebookresearch/audiocraft


text:
torch.onnx.export use_external_data_format deprecated for torch > 1.11

torch.onnx.export use_external_data_format argument was removed for torch > 1.11

Thanks. I've signed it up

repo: facebookresearch/dlrm


text:
[hab3_merge] RearrangeEpisodeGenerator changes

Motivation and Context
This PR includes RearrangeEpisodeGenerator changes to support HSSD scenes.
Primary changes include:

new generator config hssd_ycb_multi_goal.yaml supporting HSSD
navmesh_utils.py with utility functions for:

checking and visualizing robot navigability in a scene (path_is_navigable_given_robot)
heuristic classification of indoor vs outdoor navmesh islands (is_outdoor)
computation of largest indoor island for a scene (get_largest_island_index)
accessibility heuristic for a point on the largest indoor island (is_accessible)

BalancedSceneSampler for contiguous generation of an equal number of episodes for all scenes in a set.
Added some NavMeshSettings to the generator config.
Robot navigability can now be used to cull heuristically poor episodes.
Added debug frame to DebugVisualizer utils.

Notes:

This does not include navmesh largest island heuristic unification across the RearrangeTask (see #1484 )
This includes unification of agent height treatment throughout all configs for accuracy.

Some additional cleaning to be done in future refactor PRs:

Currently largest island computation like: largest_island_id = get_largest_island_index( sim.pathfinder, sim, allow_outdoor=False ) is spread widely and should be pre-computed once and passed around.
The choice to constraint generation to indoor islands only should be pushed up to generator config, currently assumed true
Currently the navmesh_utils.py re-implements velocity control and collision checking for robot embodiment. This code should be modularized, tested, and re-used here instead.
get_navigable_receptacles height heuristic should be re-worked. Would require new episodes, so TODO was added.
NavMesh parameters should be cached with EpisodeDataset to ensure that training configs match. Currently mismatched NavMeshSettings configs can cause hard to track problems.

How Has This Been Tested

Types of changes

[Development] A pull request that add new features to the habitat-lab task and environment codebase. Development Pull Requests must be small (less that 500 lines of code change), have unit testing, very extensive documentation and examples. These are typically new tasks, environments, sensors, etc... The review process for these Pull Request is longer because these changes will be maintained by our core team of developers, so make sure your changes are easy to understand!

Checklist

[x] My code follows the code style of this project.
[x] I have updated the documentation if required.
[x] I have read the CONTRIBUTING document.
[x] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes if required.

One quick question, in this PR, do we remove the function that checks Spot navigability or it is not needed?

path_is_navigable_given_robot is included for this PR and optionally enabled with check_navigable: True config flag.

repo: facebookresearch/habitat-lab


text:
Build OSX Conda Nightly

Motivation and Context

Build Nightly OSX Binaries
@mathfac Putting this here so I can get some help testing and deploying the CI command.

How Has This Been Tested

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

The error you have right now is not related to the anaconda, but pre installed dependencies:
cp: cannot stat '/usr/include/EGL': No such file or directory

@erikwijmans The conda nightly builds are currently being built, after they are done I will add them as a dependency on build_conda_binaries so they are run if the Linux conda build succeeds.

I guess the dependency is since the linux one is responsible for removing old binaries? If so, we can factor that out in the future, but no need to do that now.

Exactly

@erikwijmans The conda nightly builds are currently being built, after they are done I will add them as a dependency on build_conda_binaries so they are run if the Linux conda build succeeds.

I guess the dependency is since the linux one is responsible for removing old binaries? If so, we can factor that out in the future, but no need to do that now.

Exactly

authors: Skylion007 erikwijmans mathfac

repo: facebookresearch/habitat-sim


text:
Configurable Semantic id

Motivation and Context
Many use cases require the ability to set semantic id for objects introduced to the scene via the physics pipeline. This PR aims to address that need.
Currently, SEMANTIC sensor observations include per-vertex object ids imported from some datasets (e.g. MP3D and Replica). All other objects are rendered through this sensor by SceneNode::id_ which defaults to -1 (not ideal as it is converted to unsigned int). This PR introduces a new SceneNode::semanticId_ variable for this purpose with default 0 and necessary getters/setters + python property.
A single object will have multiple SceneNodes which can have Drawables attached. This PR adds a function to assist users with setting the semantic id for all object nodes, an object template field for default semantic id, and a function to query visual SceneNodes cached on object creation.
A tutorial script is added for this feature (tutorial page pending).
Previous, outdated iteration of this feature: #341
How Has This Been Tested
New tutorial script (also run with pytest): python <path-to-habitat>/examples/tutorials/semantic_id_tutorial.py
Note: no per-vertex semantic scenes exist for testing yet. This would be an ideal use case for that.
(Tested locally on Replica)
Example output:
Empty room (no per-vertex ids, so default semanticId_ == 0)

Chairs added with default semanticId_ == 0.

Set semanticId_ = 20 for both chairs.

Set semanticId_ = 10 for one chair.

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have completed my CLA (see CONTRIBUTING)
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

It seems like this PR and #661 are in conflict with each other. Both seem to rely on the setObjectId field in the shader and the functionalities seem contradictory.

Yes, we already spoke about this and resolved the conflict. 👍

Regarding the conflict between this and #661 -- I think this one continues in the right direction, expanding the existing functionality of per-vertex ID to per-object, and #661 needs to be reworked. I'll share my ideas there.

Regarding the conflict between this and #661 -- I think this one continues in the right direction, expanding the existing functionality of per-vertex ID to per-object, and #661 needs to be reworked. I'll share my ideas there.

This is because Alex and I talked about this issue a lot in the past week. We spent hours in the meetings to discuss the solution.
In the nutshell,  it is all about whether drawableID or SemanticID should occupy the uniform "objectID" in the shader. Finally I gave my way to the "semanticID" as it has more urgent needs currently.
The main idea and the direction in #661 is not wrong either.

authors: aclegg3 bigbike mosra


text:
Can't build a model a second time

Consider the following code in a Jupyter notebook:
from maskrcnn_benchmark.config import cfg
from maskrcnn_benchmark.modeling.detector import build_detection_model

model = build_detection_model(cfg)

It works if you execute it a first time. If you try to execute it a second time without restarting the kernel, it raises the following error:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-c924cbd11273> in <module>
      2 from maskrcnn_benchmark.modeling.detector import build_detection_model
      3
----> 4 model = build_detection_model(cfg)

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/detector/detectors.py in build_detection_model(cfg)
      8 def build_detection_model(cfg):
      9     meta_arch = _DETECTION_META_ARCHITECTURES[cfg.MODEL.META_ARCHITECTURE]
---> 10     return meta_arch(cfg)

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/detector/generalized_rcnn.py in __init__(self, cfg)
     27         super(GeneralizedRCNN, self).__init__()
     28
---> 29         self.backbone = build_backbone(cfg)
     30         self.rpn = build_rpn(cfg)
     31         self.roi_heads = build_roi_heads(cfg)

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/backbone/backbone.py in build_backbone(cfg)
     42     if cfg.MODEL.BACKBONE.CONV_BODY.endswith("-FPN"):
     43         return build_resnet_fpn_backbone(cfg)
---> 44     return build_resnet_backbone(cfg)

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/backbone/backbone.py in build_resnet_backbone(cfg)
      9
     10 def build_resnet_backbone(cfg):
---> 11     body = resnet.ResNet(cfg)
     12     model = nn.Sequential(OrderedDict([("body", body)]))
     13     return model

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/backbone/resnet.py in __init__(self, cfg)
    101
    102         # Optionally freeze (requires_grad=False) parts of the backbone
--> 103         self._freeze_backbone(cfg.MODEL.BACKBONE.FREEZE_CONV_BODY_AT)
    104
    105     def _freeze_backbone(self, freeze_at):

~/local/conda/envs/nn/lib/python3.6/site-packages/maskrcnn_benchmark/modeling/backbone/resnet.py in _freeze_backbone(self, freeze_at)
    108                 m = self.stem  # stage 0 is the stem
    109             else:
--> 110                 m = getattr(self, "layer" + str(stage_index))
    111             for p in m.parameters():
    112                 p.requires_grad = False

~/local/conda/envs/nn/lib/python3.6/site-packages/torch/nn/modules/module.py in __getattr__(self, name)
    516                 return modules[name]
    517         raise AttributeError("'{}' object has no attribute '{}'".format(
--> 518             type(self).__name__, name))
    519
    520     def __setattr__(self, name, value):

AttributeError: 'ResNet' object has no attribute 'layer1'

Version used: 3308cd926bacef22bc907d508d624580245cc0d1

Thanks for the bug report!
I've reproduced this locally. I'm not yet sure where the problem is, but it might be related to the fact that we use a python module to hold the config.
I'll dig a bit further, but I'm currently working on implementing other parts of the system (like adding support for Keypoints), so if anyone finds out a solution please do let me know :-)

Please see PR107.
I have found the reason, and give the solution.

authors: GuoxiaWang fmassa hadim

repo: facebookresearch/maskrcnn-benchmark


text:
Any comparisons with commercial software Mathpix

Mathpix is one of the leading companies for pdf to latex conversion. It also does pretty well on math equations. Have you conduct any experiments with mathpix so that we can get some idea of how well the model performs?
Mathpix: https://mathpix.com/pdf-to-latex

No, we decided against comparisons to commercial products.
We do offer a baseline for future research in this direction.

authors: HaisongDing lukas-blecher

repo: facebookresearch/nougat


text:
Update trace_link.py to merge Kineto trace with Pytorch execution trace.

This update modifies trace_link.py to incorporate GPU information from the Kineto trace into the PyTorch Execution trace. PyTorch's native execution trace offers insights into CPU operations but lacks GPU details. This enhancement ensures that both CPU and GPU information is captured, providing a more comprehensive view of execution for improved debugging and optimization.

@JoongunPark , Could you please provide commands to run trace_link.py with the provided datasets?

@JoongunPark  I understand that you want to connect the PyTorch profiler information with the Execution Trace.
These features to parse and analyze traces are actually availabe in HTA project, this was the reason i integrated Execution Trace into HTA, see here

https://github.com/facebookresearch/HolisticTraceAnalysis/blob/main/examples/execution_trace_demo.ipynb

These changes are fine but it would be good if we could use HTA for trace analysis. I don't want to prescribe since this is something you are working on but we do end up in duplicate code over time.

@briancoutinho, thank you for your input! I want to clarify that our modifications are specifically aimed at datasets collected over different time intervals from Kineto and Pytorch, a scenario that the current HTA does not appear to support as of now.
We are open to considering HTA for future datasets, but our current needs necessitate these specific features.

@JoongunPark I understand that you want to connect the PyTorch profiler information with the Execution Trace. These features to parse and analyze traces are actually availabe in HTA project, this was the reason i integrated Execution Trace into HTA, see here

https://github.com/facebookresearch/HolisticTraceAnalysis/blob/main/examples/execution_trace_demo.ipynb

These changes are fine but it would be good if we could use HTA for trace analysis. I don't want to prescribe since this is something you are working on but we do end up in duplicate code over time.

@briancoutinho - valid feedback. Like @JoongunPark already mentioned, HTA does not support this feature today.
We can and should align on HTA as the single solution for such analysis etc. Two things that could help:

Visibility - it would be great if you can help share the plans and roadmap etc.
Figure out a path to merging this feature into HTA and enable future development in HTA directly

Happy to get on a call to discuss this further.
cc: @louisfeng

@JoongunPark , Could you please provide commands to run trace_link.py with the provided datasets?

First, navigate to the param submodule where you'll find sample Pytorch-ET and Kineto input files and that handy merger script
$ cd extern/graph_frontend/param/train/compute/python/
$ pip3 install -r requirements.txt
$ pip3 install .
Second, unzip the input files
$ cd ./test/data
$ tar -xzf dlrm_kineto.tar.gz
$ tar -xzf dlrm_pytorch_et.tar.gz
$ cd ../../
Now, we'll fire up the script that leverages the already whipped up Pytorch-ET+Kineto traces (from a single training loop of DLRM on 8 GPUs) and fuses them into that enhanced ET we keep talking about
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_0.json --kineto-file test/data/dlrm_kineto/worker0* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_1.json --kineto-file test/data/dlrm_kineto/worker1* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_2.json --kineto-file test/data/dlrm_kineto/worker2* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_3.json --kineto-file test/data/dlrm_kineto/worker3* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_4.json --kineto-file test/data/dlrm_kineto/worker4* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_5.json --kineto-file test/data/dlrm_kineto/worker5* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_6.json --kineto-file test/data/dlrm_kineto/worker6* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_7.json --kineto-file test/data/dlrm_kineto/worker7* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'

@JoongunPark , The following command sequence works. Please provide a full command sequence next time.
$ git clone --recurse-submodules git@github.com:facebookresearch/param.git
$ cd param
$ conda create -n param python=3.8.0
$ conda activate para
$ pip3 install -r requirements.txt
$ cd train/compute/python/
$ pip3 install .
$ pip3 install -r requirements.txt
$ cd test/data
$ tar -xzf dlrm_kineto.tar.gz
$ tar -xzf dlrm_pytorch_et.tar.gz
$ cd ../../

$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_0.json --kineto-file test/data/dlrm_kineto/worker0* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_1.json --kineto-file test/data/dlrm_kineto/worker1* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_2.json --kineto-file test/data/dlrm_kineto/worker2* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_3.json --kineto-file test/data/dlrm_kineto/worker3* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_4.json --kineto-file test/data/dlrm_kineto/worker4* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_5.json --kineto-file test/data/dlrm_kineto/worker5* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_6.json --kineto-file test/data/dlrm_kineto/worker6* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'
$ python3 ./tools/trace_link.py --et-file test/data/dlrm_pytorch_et/dlrm_eg_7.json --kineto-file test/data/dlrm_kineto/worker7* --exact-match --annotation 'enumerate(DataLoader)#_MultiProcessingDataLoaderIter.next'

@briancoutinho, thank you for your input! I want to clarify that our modifications are specifically aimed at datasets collected over different time intervals from Kineto and Pytorch (which are also collected separately), a scenario that the current HTA does not appear to support as of now. We are open to considering HTA for future datasets, but our current needs necessitate these specific features.

Yep this makes sense, long term we do intend to support non overlap case as well in HTA. I was hitting some issues running the trace_link for some large traces (param is a git submodule in HTA so we do re-use your code :) ).
Let's sync up on the future direction in Charka WG

@briancoutinho, thank you for your input! I want to clarify that our modifications are specifically aimed at datasets collected over different time intervals from Kineto and Pytorch (which are also collected separately), a scenario that the current HTA does not appear to support as of now. We are open to considering HTA for future datasets, but our current needs necessitate these specific features.

Yep this makes sense, long term we do intend to support non overlap case as well in HTA. I was hitting some issues running the trace_link for some large traces (param is a git submodule in HTA so we do re-use your code :) ). Let's sync up on the future direction in Charka WG

@briancoutinho  can you accept this PR if this looks good? This is with the assumption we figure out a path to integration in HTA long term.

@srinivas212 sounds good to me:)

authors: JoongunPark TaekyungHeo briancoutinho srinivas212

repo: facebookresearch/param


text:
Issue with bounding sensitivity

Hi,
I do want to address the problem of RDP calculation is the code. As I went through the paper Renyi Differential Privacy of the Sampled Gaussian Mechanism, the calculations are for l2-sensitivity of 1.
In the code, there is a parameter defined as --sigma or noise_multiplier which will be multiplied by the self.max_grad_norm and will be used to calculate RDP. The self.max_grad_norm limits the sensitivity of the function. However, the self.max_grad_norm parameter plays no part in the calculation of RDP. It is inconsistent with the definitions of the main paper.
Assume we increase the self.max_grad_norm value to a large number. Should we still get the same e-RDP guaranty?
Also the $\sigma$ of the additive noise is self.noise_multiplier * self.max_grad_norm according to this part of the code but it equals to self.noise_multiplier for calculation of the RDP as implemented here.
I think we should change the lines of this part, to the following:
     def get_renyi_divergence(self):         rdp = torch.tensor(             tf_privacy.compute_rdp(                 self.sample_rate, self.noise_multiplier * self.max_grad_norm, 1, self.alphas             )         )         return rdp

Amirsina,
These are valid questions, and I'm glad to answer them.
Think about the additive Gaussian noise mechanism for computing the sum of reals. In its basic formulation we consider x_i from the range [0..1], compute their sum, and add noise sampled from N(0, sigma^2). It satisfies (alpha, alpha / 2*sigma^2)-RDP.
What if the numbers are coming from the range [0..B]? The analogue of the strategy employed in pytorch-dp is to add noise sampled from N(0, (B * sigma)^2). Crucially, the mechanism satisfies the same RDP guarantee. In other words, the privacy analysis is not dependent on B.
This is the reason why we refer to sigma as the noise multiplier and not the noise std.
Factoring the additive noise into the clipping-dependent part and the privacy-budgeting part makes sense to us because they play different roles and meet in code only once in the noise sampling parameter ("N(0, (B * sigma)^2)"). Does it address your concern?
--Ilya

Thank you for your explanation. I understand your explanation and I agree. However, as I explained for the noise the sigma that is added is self.noise_multiplier * self.max_grad_norm which is aligned with your explanations. In the paper Renyi Differential Privacy of the Sampled Gaussian Mechanism the sigma is still there and the sensitivity assumption is 1 as you mentioned.
So you are mentioning in RDP calculation, we should NOT use B * sigma as the noise sampling parameter and we should use sigma which defined as noise multiplier?

So you are mentioning in RDP calculation, we should NOT use B * sigma as the noise sampling parameter and we should use sigma which defined as noise multiplier?

That's right.

My take from your explanation is that when self.max_grad_norm is higher than one, it suffices to add noise with std of self.noise_multiplier * self.max_grad_norm and calculate RDP with self.noise_multiplier as the previous state.

Agreed. Closing the issue.

authors: astorfi ilyamironov

repo: facebookresearch/pytorch-dp


text:
Change the UX to create new posts out of templates

Currently, just clicking on the template is directly creating a post. We need to show a prompt to the user to confirm a new post should be created based on the template without silently creating the post.

@shreeharsha-factly @surajmn1 Let's have a third button with a tooltip as described in this issue instead of creating a post by just clicking the template. I am still not very convinced if that is a good practice.
Add the following text to the tooltips:

Create New
Edit Template

Delete is self-explanatory and would not need a tooltip.

@shreeharsha-factly we have discussed with team and decided that this change was not necessary .

repo: factly/dega


text:
🛑 Sudestec Cloud is down

In 61fc460, Sudestec Cloud (https://own.sudestec.ar/login) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Sudestec Cloud is back up in 1993521 after 8 minutes.


text:
Add support for Flutter Web (Feature Request)

Is it possible to add support for Flutter Web?

Hi @xSuperMu,
Actually, the google_vision packages work fine with web projects even though pub.dev does not list the package as having web platform support.  In fact the example code provided with the google_vision_flutter package was primarily tested in the browser.
The problem is that the 1.x versions of the packages have a dependency on the universal_io package which further has a dependency on dart:io.  The universal_io README states it's "A cross-platform dart:io that works on all platforms, including browsers", but as mentioned having a dependency in your code for dart:io means that pub.dev will not list the package as web platform compliant.
Anyway, after seeing your note here, I reviewed the code in the google_vision packages to determine the real necessity of the universal_io package.  Upon review I found that the use of universal_io was minimal and so I've published v2.0 of the packages, that show in pub.dev has having web platform compatibility.

Many thanks @faithoflifedev

authors: faithoflifedev xSuperMu


text:
Remix proxy

It would be great to have a Remix proxy in the lib!
I've tried to use the open branch feature/remix-proxy , but didn't manage to get it to work.
Please revive and merge it for us Remix fans ,
Thanks!

Cool! It's good to know there's some interest in Remix support. I'll pick it back up as soon as possible.

try this
import { handleRequest } from '@fal-ai/serverless-proxy'
import type { ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs } from '@remix-run/node'
import { json } from '@remix-run/node'

const proxy = async ({ request }: ActionFunctionArgs | LoaderFunctionArgs) => {
  const responseHeaders = new Headers()
  return handleRequest({
    id: 'remix',
    method: request.method,
    respondWith: (status, data) => json(data, { status, headers: responseHeaders }),
    getHeaders: () => Object.fromEntries(request.headers.entries()),
    getHeader: (name) => request.headers.get(name),
    sendHeader: (name, value) => responseHeaders.set(name, value),
    getBody: async () => JSON.stringify(await request.json()),
  })
}

export const action: ActionFunction = proxy

export const loader: LoaderFunction = proxy

We added remix-run support in the proxy v0.9.0, which was just released! See PR #82 for details.
The simplest use-case is to just re-export the proxy route handler:
api.fal.proxy.ts
import { createProxy } from "@fal-ai/serverless-proxy/remix";
import { json } from "@remix-run/node"; // or cloudflare, deno

const proxy = createProxy({
    json
});

// just re-exporting, but you can create your own logic by providing you own function
// and then calling to proxy.action(req) or proxy.loader(req)
export const { action, loader } = proxy;

Then in the client-side, you can setup the client to proxy calls via your route handler:
_index.tsx
fal.config({
  proxyUrl: "/api/fal/proxy",
});

Closing this issue as it's been resolved. Feel free to reach out if you have any other issues or feedback.

authors: amitrab drochetti nicknikolov

repo: fal-ai/fal-js


text:
text/xml; charset=utf-8 is an unsupported media type

Client request raw:
POST http://127.0.0.1:9542/BizService.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.ustcori.com/2009/10/IBizService/DoService"
Host: 127.0.0.1:9542
Content-Length: 590
Expect: 100-continue
Connection: Keep-Alive

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><DoService xmlns="http://www.ustcori.com/2009/10"><request>...</request></DoService></s:Body></s:Envelope>

Server response raw:
HTTP/1.1 415 Unsupported Media Type
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: POST
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 18000
Content-Length: 107
Content-Type: application/json
Date: Sun, 26 Apr 2020 13:07:54 GMT
Server: waitress
Vary: Accept

{"title": "Unsupported media type", "description": "text/xml; charset=utf-8 is an unsupported media type."}

source code:
import falcon
from waitress import serve
from falcon.http_status import HTTPStatus
from xml.etree.ElementTree import fromstring

class HandleCORS(object):
    def process_request(self, req, resp):
        resp.set_header('Access-Control-Allow-Origin', '*')
        resp.set_header('Access-Control-Allow-Methods', 'POST')
        resp.set_header('Access-Control-Allow-Headers', '*')
        resp.set_header('Access-Control-Max-Age', 18000)  # 5 hours
        if req.method == 'OPTIONS':
            raise HTTPStatus(falcon.HTTP_200, body='\n')

class Resource(object):
    def on_post(self, req, resp):
        ...

if __name__ == '__main__':
    svrRes = Resource()
    app = falcon.API(media_type='text/xml',middleware=[HandleCORS()])
    app.add_route('/BizService.svc', svrRes)

    serve(app, listen = '127.0.0.1:9542')

HELP PLEASE .... !

Hi @lon91ong !
I'm assuming you are attempting to use Falcon Media to consume the submitted XML document.
Out of the box, Falcon 2.0 only supports JSON media (Falcon 3.0 will add HTML form support).
Which means you need to either read the request stream, and parse it in your responders/hooks/middleware, or implement a new custom Media handler to parse XML.
Just for the heck of it, let's try the latter.
I was able to run the example below with gunicorn test:app, assuming I named the file test.py:
from xml.etree import ElementTree

import falcon
from falcon import media

class XMLHandler(media.BaseHandler):

    def deserialize(self, stream, content_type, content_length):
        return ElementTree.fromstring(stream.read())

    def serialize(self, media, content_type):
        raise NotImplementedError

class XMLResource:

    def on_post(self, req, resp):
        resp.media = [child.attrib for child in req.media]
        resp.set_header('X-Rant', 'Does S in SOAP really stand for Simple?')

app = falcon.API()
# Replace the default request media handlers to only support XML
app.req_options.media_handlers = media.Handlers({
    'text/xml': XMLHandler(),
})

app.add_route('/test', XMLResource())

@vytas7 Thank you very much, your code work well.
but when I add waitress as server , then got HTTP/1.1 500 Internal Server Error
test code:
import falcon
from falcon import media
from waitress import serve
from xml.etree.ElementTree import fromstring

class XMLHandler(media.BaseHandler):
    def deserialize(self, stream, content_type, content_length):
        return fromstring(stream.read())

    def serialize(self, media, content_type):
        raise NotImplementedError

class XMLResource:
    def on_post(self, req, resp):
        resp.media = [child.attrib for child in req.media]
        resp.set_header('Content-Type', 'text/xml')
        resp.status = falcon.HTTP_200

if __name__ == '__main__':
    app = falcon.API(media_type='text/xml')
    app.req_options.media_handlers = media.Handlers({
        'text/xml': XMLHandler(),
    })
    app.add_route('/test', XMLResource())

    serve(app, listen = '127.0.0.1:9542')

@lon91ong The above solution should roughly translate to the response media as well.
See that XMLHandler.serialize? We could either extend that to be able to serialize XML, or just serialize it in the responder, and set the response content to it.
See also here (from the unstable 3.0.0 alpha docs, but it should apply verbatim to Falcon 2.0 too): When would I use media, data, and stream?.
Our Tutorial could also be helpful as a reference, as it illustrates serving MessagePack responses instead of the default application/json.
Getting back to our example from my first answer, XML serialization is more complex since the data is potentially more complex, so it might be hard to write an XML Media serializer that is both convenient, and flexible.
Let's try just to set the response data instead:
from xml.etree import ElementTree

import falcon
from falcon import media

class XMLHandler(media.BaseHandler):

    def deserialize(self, stream, content_type, content_length):
        return ElementTree.fromstring(stream.read())

    def serialize(self, media, content_type):
        raise NotImplementedError

class XMLResource:

    def on_post(self, req, resp):
        countries = []
        for child in req.media:
            countries.extend(child.attrib.values())

        resp.set_header('X-Rant', 'Does S in SOAP really stand for Simple?')

        document = ElementTree.Element('resp')
        msg1 = ElementTree.SubElement(document, 'message')
        msg1.text = 'Hello, World!'
        msg2 = ElementTree.SubElement(document, 'message')
        msg2.text = ', '.join(sorted(countries))

        resp.content_type = 'text/xml; charset=utf-8'
        resp.data = ElementTree.tostring(document, encoding='utf8')

app = falcon.API()
# Replace the default request media handlers to only support XML
app.req_options.media_handlers = media.Handlers({
    'text/xml': XMLHandler(),
})

app.add_route('/test', XMLResource())

Sending the same example request from my previous answer:
>>> resp = requests.post('http://localhost:8000/test', data=EXAMPLE, headers={'Content-Type': 'text/xml; charset=utf-8'})
>>> print(resp.text)
<?xml version='1.0' encoding='utf8'?>
<resp><message>Hello, World!</message><message>Liechtenstein, Panama, Singapore</message></resp>

One more side note on XML. Beware most XML parsers are unsafe against untrusted input. A highly recommended read if you are dealing with external requests: XML vulnerabilities.

@vytas7 Thanks a lot！
resp.data confused with media and stream，I need read the manual carefully.
Thanks !

Heh, no worries, resp.stream vs resp.data vs resp.data vs resp.media were admittedly causing some confusion, particularly among new Falcon users. That's exactly why we've added the said FAQ item to the upcoming Falcon 3.0 docs.
I'm going to close this issue, but don't hesitate to reopen or create a new one, should you stumble upon further Falcon issues.

repo: falconry/falcon


text:
update(kubernetes): Deployment files

Updating deployment files (automatically generated by helm template). Made using the update-falco-k8s-manifests ProwJob. Do not edit this PR.\n\n/kind update\n\n/area manifests

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: poiana
Once this PR has been reviewed and has the lgtm label, please assign jasondellaluce for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr, poiana
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

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

repo: falcosecurity/deploy-kubernetes


text:
Docs describing k8s event generator yaml files

Docs corresponding to the falco changes that add k8s resource files to
allow running the event generator in a k8s cluster.

What type of PR is this?

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

/kind bug

/kind cleanup

/kind design

/kind user-interface

/kind content

/kind transalation

Any specific area of the project related to this PR?

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

/area blog

/area documentation
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Docs corresponding to the falco changes in https://github.com/falcosecurity/falco/pull/1088

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

5b21a82 Docs describing k8s event generator yaml files

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

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

Needs approval from an approver in each of these files:

OWNERS

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

I'll approve this one but let me add an hold to block this until we merge in Falco
https://github.com/falcosecurity/falco/pull/1088
Everyone, feel free to remove the old once that PR is merged

LGTM label has been added.  Git tree hash: 5129117da93fcdeac4c9a543544b82d8698f815b

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz]

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

authors: fntlnz mstemm poiana

repo: falcosecurity/falco-website


text:
prepare 2.14.0

What type of PR is this?

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

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind release

Any specific area of the project related to this PR?

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

/area build

/area config

/area outputs

/area tests

/area helm

/area release

What this PR does / why we need it:
This PR is for releasing 2.14.0
Which issue(s) this PR fixes:
N/A
Fixes #
N/A
Special notes for your reviewer:

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

edb61aa prepare 2.14.0

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@Issif: There is not a label identifying the kind of this PR.
Please specify it either using /kind <group> or manually from the side menu.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

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

Needs approval from an approver in each of these files:

OWNERS

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

LGTM label has been added.  Git tree hash: 5106fe0b9f7a92a7b627f77c760eab135626430c

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leodido
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leodido]

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

authors: Issif poiana

repo: falcosecurity/falcosidekick


text:
add outputFieldFormat parameter

What type of PR is this?
/kind feature
Any specific area of the project related to this PR?
/area config

What this PR does / why we need it:
This PR introduces a new parameter outputFieldFormat:

outputFieldFormat: "<timestamp>: <priority> <output> <custom_fields> <templated_fields>"

17:50:29.343280037: Warning NodePort Service Created (user=%ka.user.name service=%ka.target.name resource=%ka.target.resource ns=%ka.target.namespace ports=%ka.req.service.ports) bkey=BValue ckey=CValue dkey=bar

outputFieldFormat: "<priority> <output> <custom_fields>"

Warning NodePort Service Created (user=%ka.user.name service=%ka.target.name resource=%ka.target.resource ns=%ka.target.namespace ports=%ka.req.service.ports) bkey=BValue ckey=CValue

outputFieldFormat: "<output> "

NodePort Service Created (user=%ka.user.name service=%ka.target.name resource=%ka.target.resource ns=%ka.target.namespace ports=%ka.req.service.ports)

Which issue(s) this PR fixes:

Fixes #
#711
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Issif
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Issif]

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fjogeleit, Issif
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Issif,fjogeleit]

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

LGTM label has been added.  Git tree hash: 27f14e9a2eff4ad144b2234825911d6bd511fe2e


text:
chore(README.md): add link to the Drivers badge

What type of PR is this?

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

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

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

/area API-version

/area build

/area CI

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-savefile

/area libscap-engine-udig

/area libscap

/area libpman

/area libsinsp

/area tests

/area proposals

Does this PR require a change in the driver versions?

/version driver-API-version-major

/version driver-API-version-minor

/version driver-API-version-patch

/version driver-SCHEMA-version-major

/version driver-SCHEMA-version-minor

/version driver-SCHEMA-version-patch

What this PR does / why we need it:
Which issue(s) this PR fixes:

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

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, jasondellaluce, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,jasondellaluce,leogr]

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

authors: leogr poiana

repo: falcosecurity/libs


text:
chore(ci): use syscalls-bumper composite action.

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area CI
Does this PR require a change in the driver versions?

What this PR does / why we need it:
Which issue(s) this PR fixes:

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

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

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

/milestone 0.14.0

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

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

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP,incertum]

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

authors: FedeDP poiana


text:
update(userspace/libsinsp): improve event codes api

What type of PR is this?
/kind cleanup
/kind feature
Any specific area of the project related to this PR?
/area libsinsp
Does this PR require a change in the driver versions?
No
What this PR does / why we need it:
This solves a couple of issues following-up the changes of #877. Moreover, this adds two new functions libsinsp::events::is_generic and libsinsp::events::info. The latter helps reducing and avoiding the use of the g_infotables tables. Moreover, the libsinsp::events::set implementation has been improved to have an interface compatible with the standard library, hence making it much easier to use.
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

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

/milestone 0.11.0

LGTM label has been added.  Git tree hash: 4fa62f06bfe26e26dc7d33908aa7355c12853036

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [incertum,jasondellaluce]

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

Yep! I will rebase mine!

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, incertum, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,incertum,jasondellaluce]

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

authors: FedeDP jasondellaluce poiana


text:
WIP master <- develop

Merge the develop branch into the master branch and deploy

Build log
Preview build with this PR (commit): https://196-280922552-gh.circle-artifacts.com/0/index.html

authors: falgon kiirotori

repo: falgon/roki-web


text:
timeout

和上面一样的问题，timeout ，用的centos运行的2进制文件

这是本地网络与openapi.com网络不通，与本项目无关

authors: colorfbalck liangyuanpeng newskytt

repo: fanchunke/chatgpt-wecom


text:
Pip installable

This PR has two parts.

I added the files needed to make the wavetorch core pip installable (i.e, setup.py and requirements.txt.
I made some minimal fixes so Cell plays well with pytorch 1.2 (i.e. a type case, and removal an an inplace op in step()). I'd be very curious and grateful if you fine folks would confirm these changes are safe and ok, even if you don't want this PR. I'm using them for new work...

Note: I commented out the old/original code for the changes in point 2, really just for my reference. I'd be happy to clean that cruft up if this PR moves forward.

Right. Also, for lack of better option my email and name or in the setup.py file. I'd expect you'd change that to someone there. Not trying to claim credit. :)

Thanks for this! I've been pretty busy but I'll take a look at this in more detail as soon as possible.

So I've pushed/tagged a new version of this package. The changes you suggested in this pull request were easier to just incorporate myself given the amount of refactoring I did. Therefore, I'm going to close this pull request. I gave you a shout out in the code for the fix to the source term in pytorch 1.2. Thanks again for that!

authors: ianwilliamson parenthetical-e

repo: fancompute/wavetorch


text:
Vorschau für News einbauen

Nach dem Eingeben werden News direkt gespeichert. Eine Vorschau wäre schön.

Ist jetzt nicht mehr notwendig, da man News editieren kann.

authors: fantasya-pbem pcbaer

repo: fantasya-pbem/website


text:
Lets check some boxes eh?

Any interest in continuing this project?  If you could share the schema of the data, you're looking to move off of Json files to something a bit less... Json-y, I'm pretty adept at polymorphing data structures!

In general, I don't think we're looking to move away from JSON files at the moment. Instead, we want to come up with some way to migrate custom content away from importing via Google Sheets, if we can find a way that makes sense to do so.
Our main goal is to have something that can be stored statically somewhere (such as Github Pages, which currently hosts the app), without requiring us to actively maintain a separate datastore for the backend.
So with that in mind, I do find myself intrigued as to what sort of suggestions you have for alternatives. The monster and source data files are presently in https://github.com/fantasycalendar/kobold-plus-fight-club/tree/master/public/json, so feel free to analyze those and share your ideas if you've got something in mind that you think could work well.

repo: fantasycalendar/kobold-plus-fight-club


text:
修复生成lvscare.yml的时候，fmt的yaml逃离echo

[SKIP CI]seaols: 一句话简短描述该PR内容
修复https://github.com/fanux/sealos/issues/282
修复生成lvscare.yml的时候，fmt的yaml逃离出echo的双引号被bash解析，从而报错命令未找到

提交之前fmt了下project，所以大部分文件不用细看，就是fmt的格式改变，主要是重写了下Copy方法，断言来直接复制字节流写入到远程的文件里
https://github.com/fanux/sealos/blob/develop/install/init.go#L125
这个的calico的生成后面最好也改下，可能yaml里有单引号会逃逸出echo的单引号造成命令解析错误

1.13.8编译了也自己测试了下没问题
./main init --passwd 111  --master 172.19.0.3   --node 172.19.0.9 --pkg-url /root/kube1.18.0.tar.gz --version v1.18.0

@cuisongliu 这个你库挪过来的时候也改一下。

提交之前fmt了下project，所以大部分文件不用细看，就是fmt的格式改变

我也喜欢格式化一下，发现要变更好多，就没用GoLand的自动格式化了。

/payto zhangguanzhang 34

authors: PatHoo fanux zhangguanzhang

repo: fanux/sealos


text:
broken upload endpoint

@farzadoxo the upload endpoint returns 422 status code and can't process the uploaded image.

Whats problem ?

repo: farzadoxo/todo-list


text:
ci: test on alternative operating systems; ignore doc updates

Stops CI from running of documentation is updated (waste of a run)
Tests on macOS and Windows alongside Ubuntu, to ensure fluent-json-schema runs on all operating systems (Windows is the big one to test, just due to how it handles forward/back slashes differently, and single quotation marks from unix)

Checklist

[x] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

Pull Request Test Coverage Report for Build 839090865

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.554%

Totals

Change from base Build 834338069:
0.0%

Covered Lines:
408

Relevant Lines:
408

💛  - Coveralls

LGTM

authors: Fdawgs aboutlo coveralls

repo: fastify/fluent-json-schema


text:
not() remove all types

🐛 Bug Report
Hi, I'm trying this lib to put more "fluent" 😁 examples on fastify's documentation.
Testing the not condition I found an unexpected behaviour during the generation of the schema with not() function, where the before one/any/all of lose the array of types.
I has also check the spec of not and could be a good idea to change the not API and add a schema as input instead of chain a anyOf, allOf or oneOf?
To Reproduce
const { FluentSchema } = require('fluent-schema')

const schema = FluentSchema()
  .prop('multipleRestrictedTypesKey')
  .oneOf([FluentSchema().asString(), FluentSchema().asNumber().minimum(10)])
  .prop('notTypeKey', FluentSchema().asString())
  .not()
  .oneOf([FluentSchema().asString().pattern('js$')])

console.log(JSON.stringify(schema.valueOf(), null, 2))

Without NOT (commenting .not())
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "multipleRestrictedTypesKey": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number",
          "minimum": 10
        }
      ]
    },
    "notTypeKey": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "js$"
        }
      ]
    }
  }
}

With NOT
Note the multipleRestrictedTypesKey array of types is missing.
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "multipleRestrictedTypesKey": {
      "type": "string"
    },
    "notTypeKey": {
      "not": {
        "oneOf": [
          {
            "type": "string",
            "pattern": "*js$"
          }
        ]
      }
    }
  }
}

Your Environment

node version: 8.14.0
fluent-schema: 0.4.0
os: Windows

This is passing in the WIP: Extract typed schema #24:
it('fix', () => {
      const schema = FluentSchema()
        .asObject()
        .prop(
          'multipleRestrictedTypesKey',
          FluentSchema().oneOf([
            FluentSchema().asString(),
            FluentSchema()
              .asNumber()
              .minimum(10),
          ])
        )
        .prop(
          'notTypeKey',
          FluentSchema().not(
            FluentSchema().oneOf([
              FluentSchema()
                .asString()
                .pattern('js$'),
            ])
          )
        )
        .valueOf()
      expect(schema).toEqual({
        $schema: 'http://json-schema.org/draft-07/schema#',
        properties: {
          multipleRestrictedTypesKey: {
            oneOf: [{ type: 'string' }, { minimum: 10, type: 'number' }],
          },
          notTypeKey: { not: { oneOf: [{ pattern: 'js$', type: 'string' }] } },
        },
        type: 'object',
      })
    })

I read the PR and you are doing a great job!
This lib will be even smoother 👏

fixed with https://github.com/fastify/fluent-schema/releases/tag/v0.6.0

authors: Eomm aboutlo

repo: fastify/fluent-schema


text:
List of Projects on Dashboard

List of Projects on Dashboard https://github.com/fastlane/ci/issues/655

[x] Make Dashboard the main route
[x] Add Material icons
[x] Request the project summary data list
[x] Add Table with project summary data to Dashboard
[x] Unit Tests

Screenshots
Desktop

Mobile (needs work)

We have duplicate fastlane.ci: All rubocops pass reports on this one for some reason?

Yes, we have a TS linter config set up. Let me create an issue to add it to our fast file and maybe even git presubmit https://github.com/fastlane/ci/issues/657

authors: KrauseFx nakhbari

repo: fastlane/ci


text:
Add additional metadata to all builds for historic information

Fixes https://github.com/fastlane/ci/issues/570
WIP, as I want to add some tests also

Self-approve due to missing review