TINYINT Issues

MySQL TINYINT fields still aren't being handled correctly on Linux.
Example: My table has a TINYINT column, and so I store a value of 2 in it.  When I perform a fetch using this package, I extract the field like this:
let myField = result["myCol"]!.int  // myField is an `Int`

On macOS, myField now has a value of 2. On Linux, myField has a value of<PHONE_NUMBER>73314.
Any ideas of what might be going on?

Ok, now I'm seriously confused... the same value doesn't even get returned every time.
I fetch once, and myField =<PHONE_NUMBER>73314. I fetch again immediately afterward, and myField =<PHONE_NUMBER>64450. I fetch again, and it's back to<PHONE_NUMBER>73314.
It alternates back and forth between those two values with each fetch. What's more, those values change if I restart the application. But always alternating between two large numbers... no joke.

Not surprising haha, looks like it's just reading from the wrong memory. Could you submit a bug PR with a failing test case? Or at least how to recreate the bug?
It's probably an easy fix.

I spent a little time digging into it, but I haven't pinpointed the problem yet. The only potential issue I've found is during the initialization of Bind for the output binds. In Bind.swift:
var cBind = CBind()
cBind.buffer_type = field.cField.type
let length = Int(field.cField.length)
cBind.buffer_length = UInt(length)
cBind.buffer = UnsafeMutablePointer<Void>.allocate(capacity: length)

Here, when buffer_type is MYSQL_TYPE_TINY, length returns 4. My understanding of `TINYINT

According to the docs TINYINT	MYSQL_TYPE_TINY	signed char
So it looks like you're right, it's 1 byte. The length value could be a garbage value coming from a previous query or column.

Strangely enough, I can't seem to reproduce how I got 4 bytes for length. I'm testing it again and I get 3 bytes every time on Linux and macOS. Maybe I just misread/mistyped it earlier.
Either way, 3 bytes seems strange for a value that should only use 1. However, I should point out that length is also 3 on macOS (where this problem doesn't occur at all), so it's possible that length isn't even the issue.

I'm almost 99% sure length shouldn't be used for TINYINT. So it's just pointing at garbage data or data from some previous operation. I think for TINYINT we must assume a length of 1.

I think I found our problem. In Bind+Node.swift, in the getter for value:
func unwrap<T>(_ buffer: UnsafeMutablePointer<Void>, _ type: T.Type) -> T {
    return UnsafeMutablePointer<T>(buffer).pointee
}
...
case MYSQL_TYPE_TINY:
    if cBind.is_unsigned == 1 {
        let uint = unwrap(buffer, UInt.self)
        return .number(.uint(UInt(uint)))
    } else {
        let int = unwrap(buffer, Int.self)
        return .number(.int(Int(int)))
    }

We're initializing a 64-bit pointer (Uint/Int), but buffer isn't large enough to fill the space. So we're left with junk. Changing those lines to
let uint = unwrap(buffer, UInt8.self)
and
let int = unwrap(buffer, Int8.self)
solves everything.

What I'd love to know is why I only experienced this problem on Linux.
I guess it's possible that the extra memory just happened to be zeroed out on my Mac, but I doubt it.


ci: make bors block on the check_imported job

Oh wow, didn't realize this was broken since #632...
bors r+


profitability Balancer check

adjustements to gist created by @DanielVF
this shouldn't be merged

Closing since it won't be merged.


Remove deprecated aliases in preparation for version 3

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.6%

Covered Lines:
3840

Relevant Lines:
4193

💛  - Coveralls


Dexter download link not working

Hi,
The Dexter download link provided in the github README page seems to be down. Is there any alternative link to download the required files?

Does this link work?
http://dexter.isti.cnr.it/dexter.tar.gz

No, it still shows the same error. I've tried on two different networks, same result.
File Transfer Blocked
Transfer of the file you were trying to download or upload has been blocked in accordance with company policy. Please contact your system administrator if you believe this is in error.

@soumyasanyal I think it is your internet provider that it is blocking your download (maybe because it's a 2G download? )

Not the case. I tried with both personal and institute internet, it doesn't work. Is it possible to share the contents over some public domain (like Google drive)?

@soumyasanyal can you please try to run:
wget http://dexter.isti.cnr.it/dexter.tar.gz

from a unix shell and tell me the output?

I'm getting 503 error.
HTTP request sent, awaiting response... 503 Service Unavailable


Dedup prefetch requests at the entrance to avoid massive read amplification

We observed a large read amplification when user is doing an incremental but non-continuous sequential read on large amount of files. After labeling object GET requests with purpose, we found prefetching is the main cause of the read amplification.
It turns out the deduplication in prefetcher::do method does not work as expected especially when there is only one prefetcher (the default behavior), which caused duplicated prefetching. Instead, it's better to do deduplication before inserting into the pending queue.

The unit tests in "prefetch_test.go" also need to be changed.

@jiefenghuang Sorry I missed your last message. Which part in prefetch_test.go do you think needs to be changed?


[dsch] implementation of Result::asTuple

Summary by CodeRabbit

New Features

Introduced asTuple methods in Ok and Err classes to provide structured representations of success and error states.
Added a new asTuple function for handling Result types, simplifying the process of checking results.

Tests

Expanded test coverage for the asTuple method, ensuring correctness and type safety for both Ok and Err results.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

16 of 16 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 98.304%

Totals

Change from base Build<PHONE_NUMBER>1:
0.02%

Covered Lines:
1369

Relevant Lines:
1387

💛  - Coveralls


[network] Refactor: split check_linux methods into different class

split of https://github.com/DataDog/integrations-core/pull/13102 only extracting the linux check for easier review
Extract check linux into a different class
Rename methods that will remain in the parent class
Noticed that some parts of the linux check have no coverage, working on it on a separate PR https://github.com/DataDog/integrations-core/pull/13117

This PR introduces a bug in solaris that has been fixed on https://github.com/DataDog/integrations-core/pull/13319


Efficient Labelmap

Hello,
I am labelling big DICOM files (e.g. 512x512x609 and bigger) using paraview-glance and it is quite slow. I noticed that in the paint tool, a label map of the size of the image is created at initialization. The volume that I am segmenting is quite small compared to the full image; I was thus thinking that there could be a much more efficient way to handle this label map, for example by storing it as a sparse array.
My questions are thus:

Is this something you already considered?
Is it feasible to implement such feature without re-writing too much of the app?
What are the main components that will need to be adapted?
Do you see another way of efficiently handling these label maps?

Thank you!

Hi! Rewriting to use a sparse array should be doable without rewriting much of the app at all. I believe the majority of the work would be done in vtk.js. Specifically, we would need to create some means of storing sparse images (i.e. as an extension to vtkImageData), and then make some changes to vtkPaintFilter so that we write each voxel to your sparse image object.
It would be nice to have other representations other than an image, but right now there isn't any efforts going towards that direction. The paint filter is understandably slow for large images, and I am open to ideas for improving the painting to be more performant under those conditions.

Thank you! I will start working on this and ask my questions on vtk.js then!


Plugin doesn't support this project's cordova version. cordova: 6.3.2, failed version requirement: >=6.4.0

Expected Behaviour
Plugin should be installed using Phonegap build

and work properly in installed app
Actual Behaviour
Giving this error:
Plugin doesn't support this project's cordova version. cordova: 6.3.2, failed version requirement: >=6.4.0
Working with

Reproduce Scenario (including but not limited to)
use latest version of phonegap-plugin-push in phonegap build without spec
Steps to Reproduce
use latest version of phonegap-plugin-push in phonegap build without spec
Cordova CLI version and cordova platform version
Cordova CLI version:  cli-6.3.0                                # e.g. 6.0.0
cordova android platform version: 5.2.1                 # e.g. 4.1.1
Logs taken while reproducing problem
Build Date: 2016-11-10 12:34:39 +0000
PLUGIN OUTPUT
Fetching plugin "cordova-plugin-device" via npm
Installing "cordova-plugin-device" at "1.1.3" for android
Fetching plugin "cordova-plugin-camera" via npm
Installing "cordova-plugin-camera" at "2.3.0" for android
Fetching plugin "cordova-plugin-compat" via npm
Installing "cordova-plugin-compat" at "1.1.0" for android
Fetching plugin "cordova-plugin-geolocation" via npm
Installing "cordova-plugin-geolocation" at "2.4.0" for android
Dependent plugin "cordova-plugin-compat" already installed on android.
Fetching plugin "cordova-plugin-inappbrowser" via npm
Installing "cordova-plugin-inappbrowser" at "1.5.0" for android
Fetching plugin "cordova-plugin-globalization" via npm
Installing "cordova-plugin-globalization" at "1.0.4" for android
Fetching plugin "cordova-plugin-network-information" via npm
Installing "cordova-plugin-network-information" at "1.3.0" for android
Fetching plugin "cordova-plugin-splashscreen" via npm
Installing "cordova-plugin-splashscreen" at "4.0.0" for android
Fetching plugin "cordova-plugin-media" via npm
Installing "cordova-plugin-media" at "2.4.0" for android
Fetching plugin "cordova-plugin-file" via npm
Installing "cordova-plugin-file" at "4.3.0" for android
Dependent plugin "cordova-plugin-compat" already installed on android.
The Android Persistent storage location now defaults to "Internal". Please check this plugins README to see if you application needs any changes in its config.xml.
If this is a new application no changes are required.
If this is an update to an existing application that did not specify an "AndroidPersistentFileLocation" you may need to add:
  "<preference name="AndroidPersistentFileLocation" value="Compatibility" />"

to config.xml in order for the application to find previously stored files.
Dependent plugin "cordova-plugin-compat" already installed on android.
Fetching plugin "cordova-plugin-dialogs" via npm
Installing "cordova-plugin-dialogs" at "1.3.0" for android
Fetching plugin "phonegap-plugin-push" via npm
Installing "phonegap-plugin-push" at "1.9.0" for android
Plugin doesn't support this project's cordova version. cordova: 6.3.2, failed version requirement: >=6.4.0
Skipping 'phonegap-plugin-push' for android
Fetching plugin "cordova-plugin-screen-orientation" via npm
Installing "cordova-plugin-screen-orientation" at "1.4.2" for android
Fetching plugin "phonegap-plugin-barcodescanner" via npm
Installing "phonegap-plugin-barcodescanner" at "6.0.3" for android
Dependent plugin "cordova-plugin-compat" already installed on android.
Fetching plugin "cordova-sqlite-evcore-extbuild-free" via npm
Installing "cordova-sqlite-evcore-extbuild-free" at "0.8.2" for android
Fetching plugin "cordova-plugin-x-toast" via npm
Installing "cordova-plugin-x-toast" at "2.5.2" for android
Fetching plugin "cordova-plugin-whitelist" via npm
Installing "cordova-plugin-whitelist" at "1.3.0" for android
           This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.

COMPILE OUTPUT
Configuration on demand is an incubating feature.
Incremental java compilation is an incubating feature.
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:preReleaseBuild UP-TO-DATE
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:compileDebugNdk UP-TO-DATE
:CordovaLib:compileLint
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugProguardFiles
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugRenderscript
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:compileDebugAidl
:CordovaLib:generateDebugBuildConfig
:CordovaLib:mergeDebugShaders
:CordovaLib:compileDebugShaders
:CordovaLib:generateDebugAssets
:CordovaLib:mergeDebugAssets
:CordovaLib:processDebugManifest
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:incrementalDebugJavaCompilationSafeguard
:CordovaLib:compileDebugJavaWithJavac
:CordovaLib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug
:CordovaLib:mergeDebugJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
:CordovaLib:bundleDebug
:CordovaLib:preReleaseBuild UP-TO-DATE
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint UP-TO-DATE
:CordovaLib:mergeReleaseProguardFiles
:CordovaLib:packageReleaseRenderscript UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseRenderscript
:CordovaLib:generateReleaseResValues
:CordovaLib:generateReleaseResources
:CordovaLib:packageReleaseResources
:CordovaLib:compileReleaseAidl
:CordovaLib:generateReleaseBuildConfig
:CordovaLib:mergeReleaseShaders
:CordovaLib:compileReleaseShaders
:CordovaLib:generateReleaseAssets
:CordovaLib:mergeReleaseAssets
:CordovaLib:processReleaseManifest
:CordovaLib:processReleaseResources
:CordovaLib:generateReleaseSources
:CordovaLib:incrementalReleaseJavaCompilationSafeguard
:CordovaLib:compileReleaseJavaWithJavac
:CordovaLib:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processReleaseJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease
:CordovaLib:mergeReleaseJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease
:CordovaLib:bundleRelease
:prepareBarcodescannerLibrary
:prepareComAndroidSupportSupportCompat2500Library
:prepareComAndroidSupportSupportCoreUi2500Library
:prepareComAndroidSupportSupportCoreUtils2500Library
:prepareComAndroidSupportSupportFragment2500Library
:prepareComAndroidSupportSupportMediaCompat2500Library
:prepareComAndroidSupportSupportV42500Library
:prepareProjectCordovaLibUnspecifiedDebugLibrary
:prepareDebugDependencies
:compileDebugAidl
:compileDebugRenderscript
:generateDebugBuildConfig
:mergeDebugShaders
:compileDebugShaders
:generateDebugAssets
:mergeDebugAssets
:generateDebugResValues
:generateDebugResources
:mergeDebugResources
:processDebugManifest
:processDebugResources
:generateDebugSources
:incrementalDebugJavaCompilationSafeguard
:compileDebugJavaWithJavac
:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /project/src/org/apache/cordova/file/AssetFilesystem.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:compileDebugNdk UP-TO-DATE
:compileDebugSources
:prePackageMarkerForDebug
:transformClassesWithDexForDebug
Merged dex #1 (86 defs/108.5KiB)
Merged dex #2 (437 defs/468.4KiB)
Merged dex #3 (130 defs/243.6KiB)
Merged dex #4 (53 defs/76.5KiB)
Merged dex #5 (56 defs/147.3KiB)
Merged dex #6 (141 defs/172.2KiB)
Merged dex #7 (1 defs/0.7KiB)
Merged dex #8 (164 defs/223.0KiB)
Merged dex #9 (368 defs/644.0KiB)
Merged dex #10 (73 defs/58.2KiB)
Merged dex #11 (8 defs/8.3KiB)
Merged dex #12 (17 defs/28.5KiB)
Merged dex #13 (250 defs/187.2KiB)
Merged dex #14 (10 defs/15.2KiB)
Merged dex #15 (47 defs/8.6KiB)
Result is 1841 defs/2892.1KiB. Took 0.1s
:mergeDebugJniLibFolders
:transformNative_libsWithMergeJniLibsForDebug
:processDebugJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForDebug
:validateDebugSigning
:packageDebug
:zipalignDebug
:assembleDebug
:cdvBuildDebug
BUILD SUCCESSFUL
Total time: 8.068 secs
Built the following apk(s):
/project/build/outputs/apk/project-debug.apk

You need the 6.4.0 CLI to use the latest version, it's a requisite. And also cordova-ios 4.3.0 or greater and cordova-android 6.0.0 or greater (I recommend using 6.1.0)

@SiddiquiImran you are not specifying a version in your plugin tag so it is using 1.9.0 which requires cordova-cli 6.4.0 as @jcesarmobile mentioned. PGB does not currently have 6.4.0 so you should change your plugin tag to:
<plugin name="phonegap-plugin-push" source="npm" spec="~1.8.4">
    <param name="SENDER_ID" value="<Your Sender ID>" />
</plugin>

@jcesarmobile , @macdonst
Thanks for the information i will change the configuration accordingly.


Large unreliable message cannot be sent properly

Hello!
While the project is no longer actively maintained it's important to mention this issue.
If you attempt to send a large unreliable message, by default Lidgren library attempts to send it as a single unfragmented message even if it's above MTU.
However, the data format for the network message header allows a payload only of up to 65535 bits length (16 bits limit; that's less than 8192 bytes) as you can see here and in the code that write the size into the buffer
https://github.com/lidgren/lidgren-network-gen3/blob/d0931dcf9f4c2959967e77d9badbc4afe642c02b/Lidgren.Network/NetOutgoingMessage.cs#L65
There are no checks to ensure that the max packet size is not exceeded. The int m_bitLength number is simply encoded into 16 bits.
This way any unreliable messages of larger size will be received with an incorrect size—even though the whole message is written and might be received on the client side, it's not properly parsed as the payload size cannot be properly read. And Lidgren doesn't actually check whether the received payload matches the size, the only check I see is this one:
https://github.com/lidgren/lidgren-network-gen3/blob/3ab2d8d36867ccd9e10d7b1c61ed4ccc8ce5172f/Lidgren.Network/NetPeer.Internal.cs#L524
E. g. if you're sending a payload of 29914 bytes the library sees only 5332 bytes due to the (unchecked) 16-bit encoding of the payload length.
There is no proper support for fragmenting unreliable messages. While you can enable fragmentation for that case there is a critical drawback:
https://github.com/lidgren/lidgren-network-gen3/blob/3ab2d8d36867ccd9e10d7b1c61ed4ccc8ce5172f/Lidgren.Network/NetPeerConfiguration.cs#L550
Bottom line: don't send large unreliable packages. Make sure you split your data—or use reliable mechanisms (as you should whenever you need to actually send something large).
Also, I think at least a max packet size check is required in the library otherwise it's really easy to miss this issue and spend hours investigating it (that's what I did).
Regards!

A simple check that seems to work very well and also notifies the library user about the problem is here:
if (message.LengthBits >= ushort.MaxValue
    && m_connection.m_peerConfiguration.UnreliableSizeBehaviour == NetUnreliableSizeBehaviour.IgnoreMTU)
{
    // drop message
    this.m_connection.m_peer.LogError(
        string.Format("Unreliable message max size exceeded: {0} bits (max {1})",
                      message.LengthBits,
                      ushort.MaxValue));
    return NetSendResult.Dropped;
}

it should be inserted right before this line:
https://github.com/lidgren/lidgren-network-gen3/blob/d3458db59c082e8541f07cd738523996753e2f7c/Lidgren.Network/NetUnreliableSenderChannel.cs#L62
Please let me know if a pull request would be welcomed.

Oh so that explains why my game state system got overloaded even over localhost.
As for pull requests: the library is unmaintained now, see #147 for maintained forks.


[Enhancement] Add session variables: max_parallel_scan_instance_num

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

The parallelism number of  scan cannot be adjusted manually. The parallelism number of automatically calculated  is sometimes very high, taking up a lot of cpu、memory or io resources, but the performance improvement is not obvious. So we add a session variable to limit the maximum parallelism of scan. It's useful for restrict the resource of large scan query.
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[x] 2.5
[x] 2.4
[x] 2.3

[FE PR Coverage Check]
:disappointed: fail : 1 / 8 (12.50%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/StmtExecutor.java
0
2
00.00%
[256, 257]

:large_blue_circle:
com/starrocks/load/loadv2/LoadLoadingTask.java
0
2
00.00%
[216, 217]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
1
4
25.00%
[1167, 1193, 1194]

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 4 / 15 (26.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/StmtExecutor.java
0
2
00.00%
[256, 257]

:large_blue_circle:
com/starrocks/load/loadv2/LoadLoadingTask.java
0
2
00.00%
[216, 217]

:large_blue_circle:
com/starrocks/planner/OlapScanNode.java
2
7
28.57%
[331, 350, 363, 368, 420]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
4
50.00%
[1193, 1194]


How do I skip installing fbgemm on a cpu-only machine while still being able to import classes like KeyedJaggedTensor?

Hello,
My machine has no gpu so I think I should install torchrec without fbgemm. However, after installing torchrec with "--skip_fbgemm", I couldn't import classes like KeyedJaggedTensor (ModuleNotFoundError: No module named 'fbgemm_gpu'). Can someone help me understand how to use torchrec on a cpu-only machine? Thanks.
Below is the command line showing how the error occurs.
(base) czxttkl@czxttkl-mbp torchrec % python setup.py build develop --skip_fbgemm
Skipping fbgemm_gpu installation
running build
running build_py
running develop
running egg_info
writing torchrec.egg-info/PKG-INFO
writing dependency_links to torchrec.egg-info/dependency_links.txt
writing top-level names to torchrec.egg-info/top_level.txt
reading manifest file 'torchrec.egg-info/SOURCES.txt'
writing manifest file 'torchrec.egg-info/SOURCES.txt'
running build_ext
Creating /opt/miniconda3/lib/python3.9/site-packages/torchrec.egg-link (link to .)
torchrec 0.0.0 is already the active version in easy-install.pth

Installed /Users/czxttkl/github/torchrec
Processing dependencies for torchrec==0.0.0
Finished processing dependencies for torchrec==0.0.0
(base) czxttkl@czxttkl-mbp torchrec % python
Python 3.9.5 (default, May 18 2021, 12:31:01)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from torchrec.sparse.jagged_tensor import KeyedJaggedTensor, JaggedTensor
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/czxttkl/github/torchrec/torchrec/__init__.py", line 8, in <module>
    import torchrec.distributed  # noqa
  File "/Users/czxttkl/github/torchrec/torchrec/distributed/__init__.py", line 8, in <module>
    from torchrec.distributed.model_parallel import DistributedModelParallel  # noqa
  File "/Users/czxttkl/github/torchrec/torchrec/distributed/model_parallel.py", line 16, in <module>
    from torchrec.distributed.embeddingbag import (
  File "/Users/czxttkl/github/torchrec/torchrec/distributed/embeddingbag.py", line 31, in <module>
    from torchrec.distributed.cw_sharding import CwEmbeddingSharding
  File "/Users/czxttkl/github/torchrec/torchrec/distributed/cw_sharding.py", line 12, in <module>
    from fbgemm_gpu.permute_pooled_embedding_modules import PermutePooledEmbeddings
ModuleNotFoundError: No module named 'fbgemm_gpu'
>>>

Hi @czxttkl, sorry about the confusion, but you need to install fb_gemm first to enable torchrec.
You should be able to install fbgemm, even without a gpu, with the following commands:
git clone --recursive https://github.com/pytorch/FBGEMM.git
cd FBGEMM/fbgemm_gpu && python setup.py install --cpu_only

After that you should be able to use KeyedJaggedTensor and JaggedTensor.
Let me know if you run into any other issues.

closing, feel free to let us know if there are other issues.
We will update the README for CPU installation instructions

Thanks @s4ayub and @colin2328! But I still got fbgemm build error. Not sure if you can help or I need to ask in the fbgemm repo.
circleci@default-0656ffe9-a273-4f51-ab31-6d69be30f3e9:~/FBGEMM/fbgemm_gpu$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.7 LTS
Release:	16.04
Codename:	xenial
circleci@default-0656ffe9-a273-4f51-ab31-6d69be30f3e9:~/FBGEMM/fbgemm_gpu$ cmake --version
cmake version 3.22.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).
circleci@default-0656ffe9-a273-4f51-ab31-6d69be30f3e9:~/FBGEMM/fbgemm_gpu$ python --version
Python 3.8.1
circleci@default-0656ffe9-a273-4f51-ab31-6d69be30f3e9:~/FBGEMM/fbgemm_gpu$ python setup.py install --cpu_only
CUDA CUB directory environment variable not set.  Using default CUB location.
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
Consolidate compiler generated dependencies of target fbgemm_gpu_py
[  1%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/src/input_combine_cpu.cpp.o
[  2%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/src/sparse_ops_cpu.cpp.o
[  3%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/gen_embedding_backward_dense_split_cpu.cpp.o
[  4%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp.o
In file included from /home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:14:0:
/home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:167:39: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
     DISPATCH_OUTPUT_TYPES(output.type(), "intn_split_embedding_codegen_forward_kernel", ([&] {
                                       ^
/home/circleci/FBGEMM/fbgemm_gpu/include/fbgemm_gpu/dispatch_macros.h:115:31: note: in definition of macro ‘DISPATCH_OUTPUT_TYPES’
     const auto& output_type = OUTPUT_TYPE;                                   \
                               ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:10:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:14:0:
/home/circleci/FBGEMM/fbgemm_gpu/include/fbgemm_gpu/dispatch_macros.h:116:65: warning: ‘c10::ScalarType detail::scalar_type(const at::DeprecatedTypeProperties&)’ is deprecated: passing at::DeprecatedTypeProperties to an AT_DISPATCH macro is deprecated, pass an at::ScalarType instead [-Wdeprecated-declarations]
     at::ScalarType _output_t = ::detail::scalar_type(output_type);           \
                                                                 ^
/home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:167:5: note: in expansion of macro ‘DISPATCH_OUTPUT_TYPES’
     DISPATCH_OUTPUT_TYPES(output.type(), "intn_split_embedding_codegen_forward_kernel", ([&] {
     ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build/gen_embedding_forward_quantized_weighted_codegen_cpu.cpp:10:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/Dispatch.h:178:23: note: declared here
 inline at::ScalarType scalar_type(const at::DeprecatedTypeProperties& t) {
                       ^
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In function ‘std::tuple<at::Tensor, at::Tensor, c10::optional<at::Tensor> > fbgemm_gpu::permute_sparse_data_cpu(const Tensor&, const Tensor&, const Tensor&, const c10::optional<at::Tensor>&, const c10::optional<long int>&)’:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:389:63: error: converting to ‘std::tuple<at::Tensor, at::Tensor, c10::optional<at::Tensor> >’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, c10::optional<at::Tensor>}]’
   return {permuted_lengths, permuted_indices, permuted_weights};
                                                               ^
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In function ‘std::tuple<at::Tensor, at::Tensor, c10::optional<at::Tensor>, c10::optional<at::Tensor>, c10::optional<at::Tensor> > fbgemm_gpu::block_bucketize_sparse_features_cpu(Tensor, Tensor, bool, bool, Tensor, int64_t, c10::optional<at::Tensor>)’:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:549:78: error: converting to ‘std::tuple<at::Tensor, at::Tensor, c10::optional<at::Tensor>, c10::optional<at::Tensor>, c10::optional<at::Tensor> >’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&, at::Tensor&, at::Tensor&}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, c10::optional<at::Tensor>, c10::optional<at::Tensor>, c10::optional<at::Tensor>}]’
   return {new_lengths, new_indices, new_weights, new_pos, unbucketize_permute};
                                                                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:573:25: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       t_in_contig->type(), "asynchronous_exclusive_cumsum_cpu_kernel", ([&] {
                         ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:588:25: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       t_in_contig->type(), "asynchronous_inclusive_cumsum_cpu_kernel", ([&] {
                         ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:609:25: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       t_in_contig->type(), "asynchronous_complete_cumsum_cpu_kernel", ([&] {
                         ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:653:26: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       batch_offsets.type(), "reorder_batched_ad_lengths_cpu_kernel", ([&] {
                          ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:720:27: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       cat_ad_indices.type(), "reorder_batched_ad_indices_cpu_kernel", ([&] {
                           ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:1019:18: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       logit.type(), "histogram_binning_calibration_cpu", [&]() {
                  ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:1119:18: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       logit.type(),
                  ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:1248:18: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
       logit.type(),
                  ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:13:0,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp: In lambda function:
/home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:1315:37: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
   AT_DISPATCH_ALL_TYPES(values.type(), "_segment_sum_csr_cpu", ([&] {
                                     ^
In file included from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/Tensor.h:3:0,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/DeviceGuard.h:4,
                 from /opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/ATen.h:11,
                 from /home/circleci/FBGEMM/fbgemm_gpu/src/sparse_ops_cpu.cpp:12:
/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:210:30: note: declared here
   DeprecatedTypeProperties & type() const {
                              ^
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp: In function ‘std::tuple<at::Tensor, at::Tensor, at::Tensor> fbgemm_gpu::tbe_input_combine_cpu(const std::vector<at::Tensor>&, const std::vector<at::Tensor>&, const std::vector<at::Tensor>&, const Tensor&)’:
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp:158:73: error: converting to ‘std::tuple<at::Tensor, at::Tensor, at::Tensor>’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’
             per_sample_weights, indices_list, total_indices, pin_memory)};
                                                                         ^
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp:160:61: error: converting to ‘std::tuple<at::Tensor, at::Tensor, at::Tensor>’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’
   return {combined_indices, combined_offsets, at::empty({0})};
                                                             ^
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp: In function ‘std::tuple<at::Tensor, at::Tensor, at::Tensor> fbgemm_gpu::tbe_input_combine_with_length_cpu(const std::vector<at::Tensor>&, const std::vector<at::Tensor>&, const std::vector<at::Tensor>&)’:
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp:211:73: error: converting to ‘std::tuple<at::Tensor, at::Tensor, at::Tensor>’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’
             per_sample_weights, indices_list, total_indices, pin_memory)};
                                                                         ^
/home/circleci/FBGEMM/fbgemm_gpu/src/input_combine_cpu.cpp:213:61: error: converting to ‘std::tuple<at::Tensor, at::Tensor, at::Tensor>’ from initializer list would use explicit constructor ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor}; <template-parameter-2-2> = void; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’
   return {combined_indices, combined_lengths, at::empty({0})};
                                                             ^
[  5%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/gen_embedding_backward_split_adagrad_cpu.cpp.o
[  6%] Building CXX object CMakeFiles/fbgemm_gpu_py.dir/gen_embedding_backward_adagrad_split_cpu.cpp.o
CMakeFiles/fbgemm_gpu_py.dir/build.make:455: recipe for target 'CMakeFiles/fbgemm_gpu_py.dir/src/sparse_ops_cpu.cpp.o' failed
make[2]: *** [CMakeFiles/fbgemm_gpu_py.dir/src/sparse_ops_cpu.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/fbgemm_gpu_py.dir/build.make:413: recipe for target 'CMakeFiles/fbgemm_gpu_py.dir/src/input_combine_cpu.cpp.o' failed
make[2]: *** [CMakeFiles/fbgemm_gpu_py.dir/src/input_combine_cpu.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/fbgemm_gpu_py.dir/all' failed
make[1]: *** [CMakeFiles/fbgemm_gpu_py.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2
Traceback (most recent call last):
  File "/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/skbuild/setuptools_wrap.py", line 593, in setup
    cmkr.make(make_args, env=env)
  File "/opt/circleci/.pyenv/versions/3.8.1/lib/python3.8/site-packages/skbuild/cmaker.py", line 504, in make
    raise SKBuildError(

An error occurred while building with CMake.
  Command:
    cmake --build . --target install --config Release --
  Source directory:
    /home/circleci/FBGEMM/fbgemm_gpu
  Working directory:
    /home/circleci/FBGEMM/fbgemm_gpu/_skbuild/linux-x86_64-3.8/cmake-build
Please see CMake's output for more information.

On a MAC, I got another error when building fbgemm_gpu:
(base) czxttkl@czxttkl-mbp fbgemm_gpu % sw_vers
ProductName:	macOS
ProductVersion:	12.1
BuildVersion:	21C52
(base) czxttkl@czxttkl-mbp fbgemm_gpu % cmake --version
cmake version 3.22.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).
(base) czxttkl@czxttkl-mbp fbgemm_gpu % python --version
Python 3.9.5
(base) czxttkl@czxttkl-mbp fbgemm_gpu % python setup.py install --cpu_only
CUDA CUB directory environment variable not set.
Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 593, in setup
    cmkr.make(make_args, env=env)
  File "/opt/miniconda3/lib/python3.9/site-packages/skbuild/cmaker.py", line 504, in make
    raise SKBuildError(

An error occurred while building with CMake.
  Command:
    cmake --build . --target install --config Release --
  Source directory:
    /Users/czxttkl/github/FBGEMM/fbgemm_gpu
  Working directory:
    /Users/czxttkl/github/FBGEMM/fbgemm_gpu/_skbuild/macosx-10.16-x86_64-3.9/cmake-build
Please see CMake's output for more information.

even after I tried things like brew install llvm libomp by following some googled results related to similar errors.

Is there a plan to support just one line of installation ('pip install torchrec') in a near future? Thanks!


i18n(zh-cn): Update media.mdx

Description (required)
Update media.mdx
Related issues & labels (optional)

#9720
Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
guides/media.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Reverse Geocoder Control

The OpenLayer control for reverse geocoding an address is not functional.
The expected behavior is:

User inputs an address
[ ] #2
[ ]Under the address input control, when more then one address candidate is return, a panel which contains the list of address candidates is displayed.

Items in the results panel must allow the user to click and pan to that location
The panel must contain a close/clear to remove from the view

[ ] #3
[ ] #4

Popup will include

Appropriate title
address candidate results, normalized address and x,y-coordinate values

Context Menu

Ability to create an issue at that location
close the popup

The preliminary control is found at https://nasumilu.io/issue-trac.


Add tox environment for mypy

Mypy is a static type checker for Python.
Signed-off-by: Nicolas Bock<EMAIL_ADDRESS>

i'm going to go ahead and close this for now and we can revisit later if we want to add this. If we do decide to do it (and I am in favour of doing so but need to look at the pros/cons and how to enable it the right way) it will probably be enabled via https://github.com/canonical/se-tooling-ci-common


chore(docs): Editorial changes to the actions documentation

Hey, I just made a Pull Request!

Some minor editorial edits to the actions documentation to improve readability, for e.g.,

Replacing links to "here"
Few minor typos
Punctuation

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

No time like the present! 😁


Simple protection against brute force attacks

A very minimal solution for #1133 Protection against brute force attacks. Lots of little decisions, so let me know if they don't suit.
This kind of thing makes it easy to DoS a server, so it defaults off.  Configured with two new environment variables:
SB_LOCKOUT_LIMIT - Maximum number of login fails before lockout
SB_LOCKOUT_TIME_MS - Time to count fails over in ms
If this is OK, where should it be documented, and should there be a command line flag for it?

This looks reasonable to me, but what do you think about enabling it by default with sensible defaults? I think I prefer to be on the safe side by default and let people disable or alter if they like.
I think a command line arg version isn't necessary, I think we can slowly migrate to primarily using env variables for this.
If you could add these env variables to the website/ docs that'd be great and I'd be happy to merge.
Thanks for the effort!

You know what, I'm quite eager to get this in so let me make some final adjustments myself.

Merging this, and adding my changes on top in a bit.

Made more changes here: 51fc5952bcc4e36533fc7f5523bd09e043f3ffc6


OpenXR general hand interaction support

Overview
This PR adds several fallbacks for input actions for when hand joint data is available but not raw device data. This makes our OpenXR deployment story much more complete on non-Hololens platforms, and will greatly help drive cross-platform development.
Video sooooooon
Changes

Fixes: Several issues and is a big step towards removing our dependencies on Leap Motion and Oculus Packages.

/azp run

/azp run

I additionally tested with Leap Motion, and it works great!


Support for GitHub Actions

Hi, do you plan to create a task for GitHub Actions too?

Our GitHub Action is now live. You can find it here:
https://github.com/Caphyon/advinst-github-action


Use certbot latest not outdated rolling release

The certbot with the tag "rolling" hasn't been updated for 2 years now. To use the latest version of certbot the tag "latest" must be used.
Tag rolling has certbot in version: 0.33.0.dev0
Tag latest has certbot in version: 1.6.0
It would be nice if you could run circle-ci regularly to publish new version of the container kegato/letsencrypt-inwx so that it always uses the latest certbot version.
Thanks for your work!

Thanks for your contribution!
I've modified the CI config to rebuild and push the latest image weekly.


[Contexts]to control the render of Consumer Component

In the Context.Provider, there is a word as follow:

All consumers that are descendants of a Provider will re-render whenever the Provider’s value prop changes. The propagation from Provider to its descendant consumers is not subject to the shouldComponentUpdate method.

It says the Consumer Component will be updated when the value in the Provider Component changes. I understand the reason why the shouldComponentUpdate or PureComponent not effect in the Consumer Component. In my option, there should still be a method to replace the shouldComponentUpdate to control the reRender of the Consumer Component.

There is one in child component

class Demo extends React.Component {
  onChange = (e) => {
    this.setState({
      global: {}
    })
  }

  render() {
    <FormContext.Provider value={this.state.global}>
      <FormContext.Consumer>{
        (global => <Input onChange={this.onChange} />) // ①
      }</FormContext.Consumer>
      <FormContext.Consumer>
        (global => <OtherComponent />)
      </FormContext.Consumer>
    </FormContext.Provider>
  }
}

class OtherComponent extends React.PureComponent {
  render() { // ②
    <Input />
  }
}

for example, when I change the value in ①, I only want the ① to rerender, and the ② not render(PureComponent), but now it seems there is no method to achieve the purpose.Tomorrow I'll try to validate.

sorry, it's my fault. I pass a new Object to the PureComponent to make it render every time.


Fix issue with incorrect cached bitmap dimensions on DisplayObject resize when filter applied

When a DisplayObject has a filter applied, such as a ShaderFilter, the dimensions of the cached bitmap for the object don't always match the dimensions of the object when they change. This change fixes this problem by always using the filter's bounds as the dimensions for the cached bitmap.

This relates to this issue I described in the flixel channel of the Haxe Discord, which concerned a shader not appearing correctly when resizing a HaxeFlixel camera object: https://discordapp.com/channels/162395145352904705/165234904815239168/569870006465200138
I'll try to put together a pure OpenFL-based example over the weekend.

Closing for now, as it seems that the original behaviour was intended to prevent constant allocation of new buffers every time an object changes size. @jgranick has suggested some possible alternative approaches around modifying the texture coordinates passed to the shader, but I'm not sure how to tackle that myself.


o1js 1.9.0 sometimes compiles 3x slower and breaks verification keys

After upgrading from 1.8.0 to 1.9.0, I noticed that compilation sometimes takes significantly longer. Also, a number of constraints and verification key sometimes differ from what I had in 1.8.0:
1.8.0:
method's total size for a TinyContract is 326 rows (0.5% of max 65536 rows)
setValue rows: 326
method's total size for a NFTContract is 415 rows (0.63% of max 65536 rows)
updateMetadata rows: 415
method's total size for a pluginProgram is 405 rows (0.62% of max 65536 rows)
method's total size for a nftProgram is 41 rows (0.06% of max 65536 rows)
compiled TinyContract: 6.421s
TinyContract vk hash:<PHONE_NUMBER>738358141062259645293186701875428586778221295592071370499329370209
compiled NFTProgram: 43.105s
NFTProgram vk hash:<PHONE_NUMBER>3303739513420710182496118161782820261281582942121479875645792280045
compiled NFTContract: 6.843s
NFTContract vk hash:<PHONE_NUMBER>3214362543202895948922296290367685662201761358629574789828692929745
compiled plugin ZkProgram: 5.187s
PluginProgram vk hash:<PHONE_NUMBER>5852408601263924529840149138076704109015073794469561326344424559624

1.9.0:
method's total size for a TinyContract is 326 rows (0.5% of max 65536 rows)
setValue rows: 326
method's total size for a NFTContract is 475 rows (0.72% of max 65536 rows)
updateMetadata rows: 475
method's total size for a pluginProgram is 405 rows (0.62% of max 65536 rows)
method's total size for a nftProgram is 41 rows (0.06% of max 65536 rows)
compiled TinyContract: 7.339s
TinyContract vk hash:<PHONE_NUMBER>738358141062259645293186701875428586778221295592071370499329370209
compiled NFTProgram: 2:16.677 (m:ss.mmm)
NFTProgram vk hash:<PHONE_NUMBER>3303739513420710182496118161782820261281582942121479875645792280045
compiled NFTContract: 7.108s
NFTContract vk hash:<PHONE_NUMBER>5267682706959993299516301279306925636901235894835645899913768466118
compiled plugin ZkProgram: 5.195s
PluginProgram vk hash:<PHONE_NUMBER>5852408601263924529840149138076704109015073794469561326344424559624

see also https://github.com/o1-labs/o1js/issues/1869

running clinic doctor -- node "~/.local/share/pnpm/global/5/node_modules/jest/bin/jest.js" "tests/sideloading.nft1.190.test.ts"
It appears to be using 1.9.0 as specified in the current package.json.
We can see from the doctor report what appears to be some heap thrashing going on.  Ideally the cpu usage is constant and high, not start and stop.
My plan is as follows :
0. run this doctor report on the old version.

run bubble and flame graphs on both versions.
attempt to find smaller tests that terminate faster that show the same problem (we can maybe trim down the test case and remove inputs one by one(maybe we can use quickcheck like fast-check to generate tests (https://github.com/dubzzz/fast-check)))
get this running in a github action and publishing results to hugging face (parameterized by test name)

https://github.com/meta-introspector/zkcloudworker-tests you can find my updated documentation on how I ran this here.

Here is the first detailed report data on the new version that highlights real functions.

I have shared the first flamegraphs here in hugging face
https://huggingface.co/datasets/introspector/o1js-clinic/blob/main/.clinic/577072.clinic-flame.html
Documentation is updated how I ran this.

Here is the first detailed report data on the new version that highlights real functions.

I have shared the first flamegraphs here in hugging face
https://huggingface.co/datasets/introspector/o1js-clinic/blob/main/.clinic/577072.clinic-flame.html
Documentation is updated how I ran this.
Also notice the expansion of the size of the contract up from 415 to 475.
method's total size for a NFTContract is 475 rows (0.72% of max 65536 rows)

Here is the first report from the 1.8.0 we can see that the multiplications are not as pronouced. https://huggingface.co/datasets/introspector/o1js-clinic/blob/main/.clinic/613699.clinic-flame.html

You can now visually compare the two results, see that the old one has a huge block in the beginning that corresponds to the compiling.


Issue #2883: Split TXN and SSN user arg allocation.

As discussed on the mailing list, this splits reservation of TXN and SSN args, along with updated documentation.
Related to #2783 #2380 #2388
This is an API breaking change. Do not backport.

[approve ci centos]

[approve ci ubuntu]

[approve ci clang-analyzer]

[approve ci autest]

#2783


Moved main page to common dir and attractions to it's own file

combines everything under one domain
allows easier docker config with just one main container (and database containers)
allows reuse of common images, footers, headers, etc.
allows simper nginx and https configs
renames Server folder into src folder like it's supposed to be
adds sample file that was missing
updates .gitignore
removes google analytics file since we weren't using it anyway

this requires server nginx config change to be done and extension to submit data to agiletravels.com instead of mhhunthelper.agiletravels.com


Look into new SkiaSharp 3 SKPicture.Playback() feature

https://github.com/mono/SkiaSharp/pull/2883
https://github.com/mono/SkiaSharp/issues/2881

https://github.com/mono/SkiaSharp/issues/2372


Can I

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

Browser & version [e.g. chrome, safari, webworker]
Node version [e.g. 16.0.1]
Starknet.js version
Network [devnet, testnet]

Additional context
Add any other context about the problem here.

Sorry Guys i just wanted to contribute to the development but since this is my first PR to an open source project i realized i was not among the collabrators. So, when i was surfing through your github i realized issues part and wanted to see if i can interract or not. So i can. I'm glad to be able to do it ima happy guy now:). Best Regards


update readme MainActivity.java

My MainActivity.java has the following:
public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "App Name Goes Here";
    }

    /**
     * Returns whether dev mode should be enabled.
     * This enables e.g. the dev menu.
     */
    @Override
    protected boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;
    }

   /**
   * A list of packages used by the app. If the app uses additional views
   * or modules besides the default ones, add more packages here.
   */
    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new MainReactPackage()
      );
    }
}

The README just says add the code to MainActivity.java, but it doesn't say where. What part of the file does it go in?

the readme does say where but your mainactivity.java file looks very different. Is it at the same directory specified in the readme? if so then perhaps RN has changed the structure of the generated file?

Yes, it's the same file. I am on RN 0.19.0 - I figured it was probably just that RN has changed since this was written.

yep it's changed dramatically https://github.com/facebook/react-native/commit/935cbb76c02cffd378a8f391c6e7443a3da13adc mind giving updating the docs a shot?

I mean, if I knew what to do I would say it here, but I don't know what to do...

I think you just add it to getPackages
Going to try that now.

Well, when I add it to getPackages, it doesn't compile and get this error:
/Users/jrp/projects/myapp/node_modules/react-native-contacts/android/src/main/java/com/rt2zz/reactnativecontacts/ReactNativeContacts.java:16: illegal start of type
    List<NativeModule> modules = new ArrayList<>();
                                               ^
1 error
:react-native-contacts:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-contacts:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

OK, that seems like it - you just have to add the package in the list in getPackages

Solved with https://github.com/rt2zz/react-native-contacts/pull/37

:+1: Indeed android does not support modern Java language versions.


Add editorconfig file

Add editor config file to ease rules for a common approach
Don't forger to add EnableConfig plugin on PhpStorm to use it
Useful links :
https://editorconfig.org/

Should we explain the phpstorm config in a doc/.md file ?

I don't know if it's better to add it in gitignore and let people use them own or to force it into the project, wdyt ?


fix: bundle worker as iife if detected as a service worker

We detect whether a worker is a "modules" format worker by the presence of a default export. This is a pretty good heuristic overall, but sometimes folks can make mistakes. One situation that's popped up a few times, is people writing exports, but still writing it in "service worker" format. We detect this fine, and log a warning about the exports, but send it up with the exports included. Unfortunately, our runtime throws when we mark a worker as a service worker, but still has exports. This patch fixes it so that the exports are not included in a service-worker worker.
Note that if you're missing an event listener, it'll still error with "No event handlers were registered. This script does nothing." but that's a better error than the SyntaxError even when the listener was there.
Fixes https://github.com/cloudflare/wrangler2/issues/937

done!

Kind of insane that esbuild is fast enough to enable this for almost no cost!


display the minimized view icon theme all the time

I want to be able to display the theme when your looking at the jstree view in a smaller window all the time like below.  How would I go about doing that?

This is not possible out of the box, but you could add your own theme based on the default jstree theme. To do this you can either:
a) copy the theme (copy and rename the themes/default folder), rename it (the folder) with your own name, replace default in the css file with your name and modify the media query so that it matches all the time.
b) or if you need more customization - create your own theme by modifying the .less files - that way you won't have to search and replace in the file, etc.
In both cases - remember to include your new CSS file in your page and configure the tree to use the new theme:
https://www.jstree.com/api/#/?q=theme&f=$.jstree.defaults.core.themes.name


Merge master into feature/BGE_Nima_Dev__Metadata-issues-fixes

This pull request was automatically generated because an automated merge hit a merge conflict

Old branch.


Separate rehypeshiki config from remark plugins

Hi @nickreese  - got another PR for you. Please take a look, thanks. This is so that useSyntaxHighlighting config option works even if markdown plugins are overridden - the two options should not conflict.

@albertlincoln Makes sense. :)

Great! Glad to hear.


Upgrade Dev Dependencies

upgraded dev dependencies
closes #10

Current coverage is 100.00%

Merging #11 into master will not affect coverage as of 54538de

@@            master     #11   diff @@
======================================
  Files            1       1
  Stmts           16      16
  Branches         0       0
  Methods          0       0
======================================
  Hit             16      16
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 54538de

Powered by Codecov. Updated on successful CI builds.


Don't allow people updating the UI container to add code that calls out to the internet

I made changes in an earlier issue to fix the fact that the UI could not be seen in offline mode, and a recent change has caused the UI to call out to the internet again. Can we change the build process to make sure that all files for the UI are statically called?:
http://fonts.googleapis.com/css?family=Trykker
I don't want to become the maintainer of keeping the UI working in static/offline mode.

https://github.com/twitter/heron/blob/12425366a9ade8501675c1e29c2ea34cb36044cb/heron/tools/ui/resources/static/css/main.css
Its this file, my contract doesn't currently technically allow me to make changes to this project yet.

This looks like its not actually a recent change, it was august. So it must be a mirroring issue on our side. I will make the change in my free time at home.

@mjschmidt - we don't remember adding anything to UI so far actually.

Ok - let us know if we need to fix anything!

On Dec 26, 2017, at 7:25 AM, Michael Schmidt<EMAIL_ADDRESS>wrote:
This looks like its not actually a recent change, it was august. So it must be a mirroring issue on our side. I will make the change in my free time at home.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Remember all. Always use at least a semi updated version of chrome -_- my bad all


#760 TimeLine Update in Apply (sift and name blind sift date)

What's included?
Add the missing sift information to vacancy model.

siftStartDate
siftEndDate
nameBlindSiftStartDate
nameBlindSiftEndDate

Who should test?
✅ Developers
How to test?
Update name blind sift date of an exercise on admin and check if it shows the right start and end date on apply.
Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
Related permissions

No permission changes required

PREVIEW:DEVELOP

@HalcyonJAC the #760 ticket says in teeny tiny writing at the very end that this needs to include sift and name-blind sift dates in the timeline. Can you include the sift dates as part of this PR too? Thank you 😄

Thank you @warrensearle. I just missed the sift dates. 😂


Not working download theme from site

Can't download any theme from the website.

Me too. This is the log that I got from the download site.

You can get them here:
https://github.com/HubSpot/pace/tree/master/templates
Just make sure you go in the file and change the "color" variable to what color you want to use.

If you click on the "data:text/css..." link, it will open in a new tab, then you can download the raw file.


Add EU based owners

US is out on holiday and EU needs approvers.

/approve
@deads2k @smarterclayton or whoever see this can you approve?

/approve
/lgtm


Debugging and exceptions

@jepler discovered that for CircuitPython, at least, if we make the PR branch be a branch of the adafruit repo rather than a forked personal repo, then the Actions run on PR push, allowing us to test PR's whose purpose is to change what the Actions do.

This is also a weird case where the action is running within adafruit/circuitpython-org repository using adabot as a submodule (I think!).
Referenced code in action:
https://github.com/adafruit/circuitpython-org/blob/master/.github/workflows/adabot_cron.yml#L50


Taskserver: clearly separate manual server and client options

Currently when setting one of the following options, all automatic certificate generation will be stopped!

services.taskserver.manual.server.cert
services.taskserver.manual.server.crl
services.taskserver.manual.server.key
services.taskserver.manual.ca.cert

Semantically one should differentiate between server and client options in this case.

server
client

server.cert
ca.cert

server.crl

server.key

The ca.cert, client-certificate and client-key could still be generated automatically when one of the server options is set.
That way nixos-taskserver user export orgname username could still export the correct information.
In general the whole conept of what each option does is kind of poorly documented.
The best help was this source: http://www.mrwonko.de/blog/2017/using-letsencrypt-certificates-with-a-taskwarrior-server.html
What should be done?

Improve documentation on what each option actually does (maybe improve documentation on taskserver's side too)
Maybe split up automatic generation of certificates into semantic categories

cc @aszlig for being the one who wrote nixos-taskserver.


Analyzer identifies Portuguese phone number as US bank account

Describe the bug
Analyzer identifies Portuguese phone number as US bank account
To Reproduce
Steps to reproduce the behavior:

Execute analyzer with the following text: "my name is John Doe my phone number is +351000000000" (please replace zeros with random digits 0-9)

Execute anonymizer and retrieve the following result:

text: my name is  my phone number is  <US_BANK_NUMBER>
items:
[
{'start': 41, 'end': 57, 'entity_type': 'US_BANK_NUMBER', 'text': '<US_BANK_NUMBER>', 'operator': 'replace'},
{'start': 11, 'end': 20, 'entity_type': 'PERSON', 'text': '', 'operator': 'replace'}
]
Expected behavior:
my name is  my phone number is <PHONE_NUMBER>

The vanilla phone numbers recognizer supports a subset of the countries:
https://github.com/microsoft/presidio/blob/db8ff8254123a113a0d511a484647734021de612/presidio-analyzer/presidio_analyzer/predefined_recognizers/phone_recognizer.py#L27
Could you please try to add Portugal (if I got the country code right) and check again?
Example code:
from presidio_analyzer import AnalyzerEngine
from presidio_analyzer.predefined_recognizers import PhoneRecognizer

analyzer = AnalyzerEngine()

# Remove default phone recognizer
analyzer.registry.remove_recognizer("PhoneRecognizer")

# Add custom one (which supports numbers starting with +351)
pt_phone_recognizer = PhoneRecognizer(supported_regions=["PT"])
analyzer.registry.add_recognizer(pt_phone_recognizer)

analyzer.analyze("my name is John Doe my phone number is +351000000000", language="en")

# Note that this is still not detected as a phone number because the number is not a valid Portuguese phone number. If I try another phone number, it works:

engine.analyze(text="my name is John Doe my phone number is +351210491000", language="en", score_threshold=0.4)


Fix foodcritic warning for platforms (FC024)

Description
[Describe what this change achieves]
Issues Resolved
[List any existing issues this PR resolves]
Check List

[ ] All tests pass. See https://github.com/chef-brigade/sysctl/blob/master/TESTING.md
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable

We have a bunch of chefspec errors not to do with this fix
  1) ossec::common creates preloaded-vars.conf template
     Failure/Error:
       expect(chef_run).to create_template("#{Chef::Config[:file_cache_path]}/#{ossec_dir}/etc/preloaded-vars.conf").with(
         source: 'preloaded-vars.conf.erb'
       )

       expected "template[/var/folders/31/l5dypqhj2k3cvc57z17tlxwh0000gn/T/chefspec20170528-27539-1pvck3file_cache_path/ossec-hids-/etc/preloaded-vars.conf]" with action :create to be in Chef run. Other template resources:

     # ./spec/unit/recipes/common_spec.rb:8:in `block (2 levels) in <top (required)>'

  2) ossec::common creates ossec-batch-manager.pl template
     Failure/Error:
       expect(chef_run).to create_template("#{chef_run.node['ossec']['dir']}/bin/ossec-batch-manager.pl").with(
         source: "#{Chef::Config[:file_cache_path]}/#{ossec_dir}/contrib/ossec-batch-manager.pl",
         local: true,
         owner: 'root',
         group: 'ossec',
         mode: '0755'
       )

       expected "template[/var/ossec/bin/ossec-batch-manager.pl]" with action :create to be in Chef run. Other template resources:

     # ./spec/unit/recipes/common_spec.rb:14:in `block (2 levels) in <top (required)>'

  3) ossec::common creates ossec.conf template
     Failure/Error:
       expect(chef_run).to create_template("#{chef_run.node['ossec']['dir']}/etc/ossec.conf").with(
         source: 'ossec.conf.erb',
         owner: 'root',
         group: 'ossec',
         mode: '0440'
       )

       expected "template[/var/ossec/etc/ossec.conf]" with action :create to be in Chef run. Other template resources:

     # ./spec/unit/recipes/common_spec.rb:24:in `block (2 levels) in <top (required)>'

  4) ossec::common enables ossec service
     Failure/Error: expect(chef_run).to enable_service('ossec')
       expected "service[ossec]" actions [] to include :enable
     # ./spec/unit/recipes/common_spec.rb:33:in `block (2 levels) in <top (required)>'

  5) ossec::common starts ossec service
     Failure/Error: expect(chef_run).to start_service('ossec')
       expected "service[ossec]" actions [] to include :start
     # ./spec/unit/recipes/common_spec.rb:37:in `block (2 levels) in <top (required)>'

  6) ossec::server creates /usr/local/bin/dist-ossec-keys.sh template
     Failure/Error:
       expect(chef_run).to create_template('/usr/local/bin/dist-ossec-keys.sh').with(
         source: 'dist-ossec-keys.sh.erb',
         owner: 'root',
         group: 'root',
         mode: '0755'
       )

       expected "template[/usr/local/bin/dist-ossec-keys.sh]" actions [] to include :create
     # ./spec/unit/recipes/server_spec.rb:42:in `block (2 levels) in <top (required)>'

Finished in 11.65 seconds (files took 2.27 seconds to load)
20 examples, 6 failures

Failed examples:

rspec ./spec/unit/recipes/common_spec.rb:7 # ossec::common creates preloaded-vars.conf template
rspec ./spec/unit/recipes/common_spec.rb:13 # ossec::common creates ossec-batch-manager.pl template
rspec ./spec/unit/recipes/common_spec.rb:23 # ossec::common creates ossec.conf template
rspec ./spec/unit/recipes/common_spec.rb:32 # ossec::common enables ossec service
rspec ./spec/unit/recipes/common_spec.rb:36 # ossec::common starts ossec service
rspec ./spec/unit/recipes/server_spec.rb:41 # ossec::server creates /usr/local/bin/dist-ossec-keys.sh template


[Question] ScrollableTabs and TabHeading: Align left

I have gone through these following points

[x] Check latest documentation: https://docs.nativebase.io/
[x] Check for existing open/closed issues for a possible duplicate before creating a new issue: https://github.com/GeekyAnts/NativeBase/issues
[x] Use the latest NativeBase release: https://github.com/GeekyAnts/NativeBase/releases
[x] Check examples from NativeBase KitchenSink https://github.com/GeekyAnts/NativeBase-KitchenSink
[x] For discussion purpose make use of NativeBase Slack: http://slack.nativebase.io/
[x] For queries related to theme, check Theme Variables from Docs and live NativeBase Theme Editor http://nativebase.io/customizer/

Issue Description
Is there a way to have have the headings to not equality distribute, and instead have 0 padding for each heading, and have them aligned to the left?

Example: see green padding here. I’d like the padding to be very small, and have the tabs aligned to the left, if possible

Same problem, can not set padding for tab heading, any updates?

Hi @oferRounds , heading width distributes equally. You can't align tabs in left only.

@hanykumar got you, thanks!


allow repeating previous sent text to current nick/channel

on classic irc clients on pc, using up arrow on keyboard allows repeating last sent line
i need to be able to perform this with irccloud on ios, too

hello? does anyone actually read this?

Like with an external keyboard?

Like with an external keyboard?

I don't know how an external kb behaves, but I described how it's working on traditional irc clients on pc.


Proposal: recommend WebID OpenID Providers include redirect_uri in audience list to distinguish web apps

in #12, it was proposed to use the client_id to distinguish web apps. as discussed in that issue, there are multiple problems with using the client_id (most importantly, that it must be unique for every OP for every registration, and is therefore likely to be non-human-friendly and also different run-to-run in in-browser apps, so hard to track).
the redirect_uri used in OAuth/OIDC flows can be a (more) stable and (more) human-friendly identifier for an application that a user has consented to use.
to enable using the redirect_uri from an OAuth/OIDC flow as an application identifier and believably link it with the user's consent and use of that app, the OP must attest/sign to that effect.
Proposal: include a recommendation in webid-oidc-spec on the behavior of WebID-OIDC OPs to include the redirect_uri in the id_token's aud claim, perhaps by saying:

In order to enable reasonable discrimination of applications at a finer granularity than Origin, a WebID-OIDC OP SHOULD include in the id_token's audience claim the redirect_uri to which the id_token or code was sent, if and only if the webid scope (or other scopes whose semantics define this behavior) was requested by the client.
Some RPs might consider an unrecognized aud entry as an untrusted audience and reject the id_token. Therefore the redirect_uri will not be included unless the client has signaled a desire for its presence with an appropriate scope.

the redirect_uri can be extracted from the aud claim, for example by "the audience that looks like a URI" or "the last URI in the audience list" or "the audience that's a URI and isn't the azp" or "the audience that's a URI and that the user lists as a trusted application in her profile".

the point of having an application identifier, rather than just using the Origin header, is for situations (like the AJAX/API/app/bot use case) where a Bearer access token is presented for authorization and the Origin header can't be trusted (because the presenter might not be a web browser).  the actual content of the app identifier is only meaningful (as a matter of consent and consistency) between the OP and the user/owner of the WebID.
so really i'd like to revise and generalize this proposal a little, to where the OP, when issuing an id_token with the webid requested scope, should put in an agreeable application identifier URI to the aud claim list.  a good choice for that is the redirect_uri, but it could also be a UUID URN, or a URN with a hash of the redirect_uri, or anything (as long as it's a URI), that the user could refer to in their profile as being a "trusted app" (for a solution similar to WAC Possible future).  exactly what kind and form of URI to use would be a matter of policy and agreement solely between the user and her OP.
a benefit of using the redirect_uri or some other hierarchical identifier would be that the "trusted app" section of the user's profile could use a "longest prefix match" rule to express how trustable an app is to a server.  for example you could have an entry for "https://coolapp.example" that is trusted for read-only access, but "https://coolapp.example/apps/photos/" could be trusted for read&write. if the redirect_uri/app ID in the id_token was "https://coolapp.example/apps/photos/oauth/code", it would match the second, more trusted entry, but "https://coolapp.example/apps/calendar/oauth/code" would have a longest-prefix match with the first and only be trusted for read access.

the point of having an application identifier in the id_token, rather than just using the Origin header, is for situations (like the AJAX/API/app/bot use case) where a Bearer access token is presented for authorization and the Origin header can't be trusted (because the presenter might not be the user's web browser).
by using the redirect_uri, placed into the id_token's aud claim by the OP, as an application identifier, the user only has to trust her OP (which she already does to vouch for her identity) to identify the app she's using.
presenting a signed id_token with an app identifier inside (as part of a proof of identity) is as strong as presenting an Origin header in a first-party cookie-based login session: the user trusts what's being sent, and the server trusts the user to identify the app she's using.
a benefit of using the redirect_uri over just the Origin would be that more than one app could be identified at an origin. this might be especially interesting in situations where the user has multiple browser-based apps stored in her own POD (which would be in the same origin), but wants to grant different permissions to those apps.
if the redirect_uri is used, there's nothing to prevent access control decisions being made on the origin of the redirect_uri. however, if only the origin of the redirect_uri is included in the id_token, then it's not possible to make finer-grained access control decisions if the user wants to.

@RubenVerborgh commented in https://github.com/solid/webid-oidc-spec/pull/31#issuecomment-502230381

the redirect_uri should be the application identifier

Very likely not (talking from a SemWeb perspective now); the URI of a a redirect page identifies a redirect page, not an app.

here seems like a good place to continue discussing this point.
the (resource/entity located by the) redirect_url is what the user has actually consented to share her identity with, and is the only URL from the client configuration that is necessarily followed and loaded by the user's browser in an OIDC flow.
please see my previous comment above for why putting the full redirect_uri in the id_token is more flexible than putting just its origin in the id_token.  also, putting the redirect_url in the aud is consistent with OpenID Self-Issued ID Tokens.

In any case, we'd be overloading. Aren't there any fields available for extension?
I don't think redirect_uri itself is a good idea; perhaps a query string parameter to redirect_uri might work.
Side note: I thought that there was a need for registration for redirect_uri in some cases, which might not leave us that freedom.

I thought that there was a need for registration for redirect_uri in some cases, which might not leave us that freedom.

there is a need to register all redirect_uris for your client, and whichever one you use must match exactly with a previously registered one.

Aren't there any fields available for extension?

there are no other fields or client claims that have the properties i mentioned above, particularly related to the user's consent and being followed&loaded by the browser.  being followed/loaded from the user's trusted browser securely establishes its validity.

Thanks for clarifying!

there are no other fields or client claims that have the properties i mentioned above

Yes, but https://openid.net/specs/openid-connect-core-1_0.html says:

Other parameters MAY be sent.

And the list does not seem to be exhaustive. (I might have picked the wrong section, but it seems like a general principle.)
However, I feel like we probably want to create an issue for the problem we are trying to solve, and work there on adding the desired attributes for a solution, and have separate solution threads.

I feel like we probably want to create an issue for the problem we are trying to solve, and work there...

i opened #33 for this.

per https://github.com/solid/webid-oidc-spec/issues/12#issuecomment-502723430

the redirect_uri can be extracted from the aud claim, for example by [... example ways ...]

or being the issuer of a proof-of-possession token.  which i currently think is the best way.


import "marlo" can not be resolved

Hey!
I followed Anaconda's installation and installed Marlo. I ran the single-agent example and it worked. Now (after one day) I pasted the multi-agent example and I am getting import "malmo" could not be resolved.
I am not sure what is the issue please help me as soon as possible. I am new to this and I have a research project to start working on and I am short on time. I have a warning that says cannot find gcc in c_cpp_properties.json and I don't know if it is related to this.
currently I am installing mingw and see if it fixes the issues. If it does fix the issue I will close this issue and will let you know. But if it doesn't please help me what can I do to fix this import "malmo" could not be resolved.

This is the multi-agent example code
`# !/usr/bin/env python
$MALMO_MINECRAFT_ROOT/launchClient.sh -port 10000
$MALMO_MINECRAFT_ROOT/launchClient.sh -port 10001
import marlo
client_pool = [('<IP_ADDRESS>', 10000),('<IP_ADDRESS>', 10001)]
join_tokens = marlo.make('MarLo-MazeRunner-v0',
params={
"client_pool": client_pool,
"agent_names" :
[
"MarLo-Agent-0",
"MarLo-Agent-1"
]
})
As this is a two-agent scenario,
there will just two join tokens
assert len(join_tokens) == 2
@marlo.threaded
def run_agent(join_token):
env = marlo.init(join_token)
observation = env.reset()
done = False
count = 0
while not done:
_action = env.action_space.sample()
obs, reward, done, info = env.step(_action)
print("reward:", reward)
print("done:", done)
print("info", info)
env.close()
Run agent-0
thread_handler_0, _ = run_agent(join_tokens[0])
Run agent-1
thread_handler_1, _ = run_agent(join_tokens[1])
Wait for both the threads to complete execution
thread_handler_0.join()
thread_handler_1.join()
print("Episode Run Complete")`

Fixed the GCC issue but still (import "malmo" could not be resolved) error.

anyone here to help?
import marlo can not be resolved


fix: Peg normalizr until breaking change is resolved

see: https://github.com/paularmstrong/normalizr/issues/186
closes #12103

Thanks @BerkeleyTrue.


GEODE-7356: Fix FixedPartitioningWithColocationAndPersistenceDUnitTest

Main fix for flakiness involved using ResourceObservers. Search for these lines:
await().until(() -> observer.isRecoveryFinished());

The secondary fix involved using custom enum, serializable classes, etc with proper Atomic fields. The shared classes that this test was using from geode-dunit are not thread safe but were used from multiple threads.

Cross-section testing eventually showed some failures similar to:
org.apache.geode.internal.cache.partitioned.fixed.FixedPartitioningWithColocationAndPersistenceDUnitTest > testColocation_FPR_Persistence_Colocation_OneMemberAlive FAILED
    org.apache.geode.test.dunit.RMIException: While invoking org.apache.geode.test.dunit.rules.DistributedRestoreSystemProperties$$Lambda$184/0x0000000840b72040.run in VM 0 running on Host 08134b6f2ec4 with 4 VMs

        Caused by:
        java.rmi.ConnectException: Connection refused to host: <IP_ADDRESS>; nested exception is:
                java.net.ConnectException: Connection refused (Connection refused)

            Caused by:
            java.net.ConnectException: Connection refused (Connection refused)

I don't see a cause for this other than general RMI failure caused by networking problem on the worker.

@mhansonp I already refactored the createRegion method into a builder style inner-class to help reduce redundancy (ie passing lots of false and null parameters). The definition of regions is so similar but actually unique in every test.


Syn 2.0 doesn't causes problems when parsing keywords in attributes

The new parse_meta_path has some pretty annoying regression from 1.0, where if the attribute contains a keyword it is actually parsed as such.
Related issues:

https://github.com/jonasbb/serde_with/pull/578
https://github.com/JelteF/derive_more/pull/251
https://github.com/dtolnay/syn/pull/1413

I can't tell for sure from the description, but I am guessing this is a duplicate of #1414.


Fixes #20

Pull Request Test Coverage Report for Build #58

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build #57:
0.0%

Covered Lines:
267

Relevant Lines:
267

💛  - Coveralls


feature request: auto retry + skip

Describe the feature or enhancement
Now, if cloning of any repo fails, the program exits immediately.
Sometimes, this is a permission problem, and sometimes a temporary network issue or rate limit error.
I hope if there's an error occurs, it should be auto-retry for some time (to prevent temporary error), and if it's still error after the maximum retry time, simply skip it and handle next repo (not exit the whole program).

makes sense, thanks for the sharing the suggestion.

Additionally, if you want to contribute with this feature then feel free to pick it up! :)

@AkashRajpurohit Got it. Since the project is new for me, I don’t have enough time to work on it now. But I may take it next week if I have free time then.

@ImSingee this feature have been landed in the latest 0.15.0 release. It was quite fun working on this, thanks for the sharing about this, do try it and let me know if you face any issues.

@AkashRajpurohit Thanks for implementing my request feature!
BTW, I belive there must be a problem related the retry:
https://github.com/AkashRajpurohit/git-sync/blob/9ebbaf694c069904d3a5c9e0db9b74a601e8b308/pkg/sync/sync.go#L79
The command is reused between the retry. But it can't -- the second (and later) call to CombinedOutput will fail as Golang expect each command to be only used once and it will return a "stdout is already set" error (https://cs.opensource.google/go/go/+/refs/tags/go1.23.4:src/os/exec/exec.go;l=1013).
I don't have a computer with golang setup now. I will submit the PR tomorrow (but if you have time, feel free to fix it by yourself).

Nice catch, thanks for pointing this out.
I've pushed this commit to address this, let me know if you have any thoughts on this. Will create a patch release on 0.15 with this fix.

@all-contributors please add @ImSingee for ideas.


Nginx-DLB with lots of "dlb_send fail with 0 times retry"

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: Nginx-DLB with lots of "dlb_send fail with 0 times retry"
Description:

What issue is being seen? Describe what should be happening instead of
the bug, for example: Envoy should not crash, the expected value isn't
returned, etc.

Repro steps:

Include sample requests, environment, etc. All data and inputs
required to reproduce the bug.

Got envoy contrib v1.26.0. Compiled libdlb according to instructions here (https://downloadmirror.intel.com/727424/DLB_Driver_User_Guide.pdf) and tested libdlb examples to see that they run. Ran envoy with config file shown below, with the DLB snippet copied from this page (https://www.envoyproxy.io/docs/envoy/latest/configuration/other_features/dlb). Got a core dumped error.

Note: The Envoy_collect tool
gathers a tarball with debug logs, config and the following admin
endpoints: /stats, /clusters and /server_info. Please note if there are
privacy concerns, sanitize the data prior to sharing the tarball/pasting.

Admin and Stats Output:

Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the
admin endpoint documentation.

Note: If there are privacy concerns, sanitize the data prior to
sharing.

Call Stack:

If the Envoy binary is crashing, a call stack is required.
Please refer to the Bazel Stack trace documentation.

The root cause is that the default value is 0, like https://github.com/envoyproxy/envoy/issues/9552

/assign

Fixed by #27009


add langauges

see docs
(Yuri has some good libraries)

needs further discussion before it is ready for processing


express-ws is a dead project.

While looking at the top web results for how to do web sockets with express, yours came up very close to the top.
I noted that you were using express-ws in one of your examples but I would strongly suggest removing it. express-ws is a dead project with over 60 open issues and 10 pull requests that lead to nowhere.
There's even been an overflow vulnerability discovered: https://github.com/HenningM/express-ws/issues/120.
Adding a warning or deleting it as an example is what I would suggest.

Good to know, thanks. change made.