[Issue]: rocminfo.exe does not exist

Problem Description
After installing with the HIP SDK, I can't find the rocminfo file in the bin folder
Here are my py files:
import subprocess
import os
设置环境变量
os.environ['HIP_PATH'] = 'D:\ROCm\6.1'
os.environ['ROCM_PATH'] = 'D:\ROCm\6.1'
定义要调用的命令
commands = [
('rocminfo', ['rocminfo']),
('amdgpu-arch', ['amdgpu-arch']),
('clang', ['clang', '--version']),
('clang++', ['clang++', '--version']),
('clang-cl', ['clang-cl', '--version']),
('clang-format', ['clang-format', '--version']),
('clang-offload-bundler', ['clang-offload-bundler', '--help']),
('hipcc', ['hipcc', '--version']),
('hipconfig', ['hipconfig']),
('hipify-clang', ['hipify-clang', '--help']),
('hipInfo', ['hipInfo']),
('ld.lld', ['ld.lld', '--version']),
('lld', ['lld', '--version']),
('lld-link', ['lld-link', '--version']),
('llvm-ar', ['llvm-ar', '--version']),
('opt', ['opt', '--version'])
]
执行命令并捕获输出
for name, cmd in commands:
try:
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
print(f"=== {name} ===")
print(result.stdout)
print(f"=== {name} (stderr) ===")
print(result.stderr)
except subprocess.CalledProcessError as e:
print(f"=== {name} (error) ===")
print(f"Return code: {e.returncode}")
print(f"Output: {e.output}")
print(f"Stderr: {e.stderr}")
except FileNotFoundError:
print(f"=== {name} (not found) ===")
print(f"The command '{name}' was not found.")
But his output was:
D:\gpligins\plugins>python tempfile_1731269073941.py
=== rocminfo (not found) ===
The command 'rocminfo' was not found.
=== amdgpu-arch ===
gfx1031
=== amdgpu-arch (stderr) ===
=== clang ===
clang version 19.0.0git (git@github.amd.com:Compute-Mirrors/llvm-project b3dbdf4f03718d63a3292f784216fddb3e73d521)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\ROCm\6.1\bin
=== clang (stderr) ===
=== clang++ ===
clang version 19.0.0git (git@github.amd.com:Compute-Mirrors/llvm-project b3dbdf4f03718d63a3292f784216fddb3e73d521)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\ROCm\6.1\bin
=== clang++ (stderr) ===
=== clang-cl ===
clang version 19.0.0git (git@github.amd.com:Compute-Mirrors/llvm-project b3dbdf4f03718d63a3292f784216fddb3e73d521)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\ROCm\6.1\bin
=== clang-cl (stderr) ===
=== clang-format ===
clang-format version 19.0.0git (git@github.amd.com:Compute-Mirrors/llvm-project b3dbdf4f03718d63a3292f784216fddb3e73d521)
=== clang-format (stderr) ===
=== clang-offload-bundler ===
OVERVIEW: A tool to bundle several input files of the specified type
referring to the same source file but different targets into a single
one. The resulting file can also be unbundled into different files by
this tool if -unbundle is provided.
USAGE: clang-offload-bundler [options]
OPTIONS:
Generic Options:
--help                  - Display available options (--help-hidden for more)
--help-list             - Display list of available options (--help-list-hidden for more)
--version               - Display the version of this program
clang-offload-bundler options:
--###                   - Print any external commands that are to be executed instead of actually executing them - for testing purposes.
--allow-missing-bundles - Create empty files if bundles are missing when unbundling.
--bundle-align=   - Alignment of bundle for binary files
--check-input-archive   - Check if input heterogeneous archive is valid in terms of TargetID rules.
--compress              - Compress output file when bundling.
--hip-openmp-compatible - Treat hip and hipv4 offload kinds as compatible with openmp kind, and vice versa.
--input=        - Input file. Can be specified multiple times for multiple input files.
--inputs=       - [,...] (deprecated)
--list                  - List bundle IDs in the bundled file.
--output=       - Output file. Can be specified multiple times for multiple output files.
--outputs=      - [,...] (deprecated)
--targets=      - [-,...]
--type=         - Type of the files to be bundled/unbundled.
Current supported types are:
i    - cpp-output
ii   - c++-cpp-output
cui  - cuda-cpp-output
hipi - hip-cpp-output
d    - dependency
ll   - llvm
bc   - llvm-bc
s    - assembler
o    - object
a    - archive of objects
gch  - precompiled-header
ast  - clang AST file
--unbundle              - Unbundle bundled file into several output files.
--verbose               - Print debug information.
=== clang-offload-bundler (stderr) ===
=== hipcc (not found) ===
The command 'hipcc' was not found.
=== hipconfig (not found) ===
The command 'hipconfig' was not found.
=== hipify-clang ===
USAGE: hipify-clang [options]  [... ]
OPTIONS:
CUDA to HIP source translator options:
--                                              - Separator between hipify-clang and clang options; don't specify if there are no clang options
-D =                              - Define  to  or 1 if  omitted
-I                                   - Add directory to include search path
--amap                                          - Try to hipify as much as possible; ignores 'default-preprocessor'
--clang-resource-directory=          - The clang resource path - the path to the parent folder for the 'include' folder, containing '__clang_cuda_runtime_wrapper.h' and other header files used on runtime
--csv                                           - Generate documentation in CSV format
--cuda-gpu-arch=                         - CUDA GPU architecture (e.g. sm_35); may be specified more than once
--cuda-kernel-execution-syntax                  - Keep CUDA kernel launch syntax (default)
--cuda-path=                         - CUDA installation path
--default-preprocessor                          - Enable default preprocessor behaviour (synonymous with '--skip-excluded-preprocessor-conditional-blocks')
--doc-format=                            - Documentation format: 'full' (default), 'strict', or 'compact'; the '--md' or '--csv' option must be specified
--doc-roc=                               - ROC documentation generation: 'skip' (default), 'separate', or 'joint'; the '--md' or '--csv' option must be specified
--examine                                       - Combine the '-no-output' and '-print-stats' options
--experimental                                  - Hipify HIP APIs that are experimentally supported, otherwise, the corresponding warnings will be emitted
--extra-arg=                            - Additional argument to append to the compiler command line
--extra-arg-before=                     - Additional argument to prepend to the compiler command line
--hip-kernel-execution-syntax                   - Transform CUDA kernel launch syntax to a regular HIP function call (overrides '--cuda-kernel-execution-syntax')
--inplace                                       - Modify input file in-place
--md                                            - Generate documentation in Markdown format
--miopen                                        - Translate to 'miopen' instead of 'hip' where it is possible
--no-backup                                     - Don't create a backup file for the hipified source
--no-output                                     - Don't write any translated output to stdout
--no-undocumented-features                      - Do not rely on undocumented features in code transformation
--no-warnings-on-undocumented-features          - Suppress warnings on undocumented features in code transformation
-o                                    - Output filename
--o-dir=                             - Output directory
--o-hipify-perl-dir=                 - Output directory for hipify-perl script
--o-python-map-dir=                  - Output directory for Python map
--o-stats=                            - Output filename for statistics
-p                                      - Build path
--perl                                          - Generate hipify-perl
--print-stats                                   - Print translation statistics
--print-stats-csv                               - Print translation statistics in a CSV file
--python                                        - Generate hipify-python
--roc                                           - Translate to 'roc' instead of 'hip' where it is possible
--save-temps                                    - Save temporary files
--skip-excluded-preprocessor-conditional-blocks - Enable default preprocessor behaviour by skipping undefined conditional blocks
--temp-dir=                          - Temporary directory
--use-hip-data-types                            - Use 'hipDataType' instead of 'hipblasDatatype_t' or 'rocblas_datatype'
-v                                              - Show commands to run and use verbose output
--versions                                      - Display the versions of the supported 3rd-party software
Generic Options:
--help                                          - Display available options (--help-hidden for more)
--help-list                                     - Display list of available options (--help-list-hidden for more)
--version                                       - Display the version of this program
-p  is used to read a compile command database.
    For example, it can be a CMake build directory in which a file named
    compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
    CMake option to get this output). When no build path is specified,
    a search for compile_commands.json will be attempted through all
    parent paths of the first input file . See:
    https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
    example of setting up Clang Tooling on a source tree.

 ... specify the paths of source files. These paths are
looked up in the compile command database. If the path of a file is
absolute, it needs to point into CMake's source tree. If the path is
relative, the current working directory needs to be in the CMake
source tree and the file must be in a subdirectory of the current
working directory. "./" prefixes in the relative files will be
automatically removed, but the rest of a relative path must be a
suffix of a path in the compile command database.
=== hipify-clang (stderr) ===
=== hipInfo ===

device#                           0
Name:                             AMD Radeon RX 6750 GRE 12GB
pciBusID:                         3
pciDeviceID:                      0
pciDomainID:                      0
multiProcessorCount:              20
maxThreadsPerMultiProcessor:      2048
isMultiGpuBoard:                  0
clockRate:                        2439 Mhz
memoryClockRate:                  1000 Mhz
memoryBusWidth:                   0
totalGlobalMem:                   11.98 GB
totalConstMem:<PHONE_NUMBER>
sharedMemPerBlock:                64.00 KB
canMapHostMemory:                 1
regsPerBlock:                     0
warpSize:                         32
l2CacheSize:                      4194304
computeMode:                      0
maxThreadsPerBlock:               1024
maxThreadsDim.x:                  1024
maxThreadsDim.y:                  1024
maxThreadsDim.z:                  1024
maxGridSize.x:<PHONE_NUMBER>
maxGridSize.y:                    65536
maxGridSize.z:                    65536
major:                            10
minor:                            3
concurrentKernels:                1
cooperativeLaunch:                0
cooperativeMultiDeviceLaunch:     0
isIntegrated:                     0
maxTexture1D:                     16384
maxTexture2D.width:               16384
maxTexture2D.height:              16384
maxTexture3D.width:               2048
maxTexture3D.height:              2048
maxTexture3D.depth:               2048
hostNativeAtomicSupported:        1
isLargeBar:                       0
asicRevision:                     0
maxSharedMemoryPerMultiProcessor: 64.00 KB
clockInstructionRate:             1000.00 Mhz
arch.hasGlobalInt32Atomics:       1
arch.hasGlobalFloatAtomicExch:    1
arch.hasSharedInt32Atomics:       1
arch.hasSharedFloatAtomicExch:    1
arch.hasFloatAtomicAdd:           1
arch.hasGlobalInt64Atomics:       1
arch.hasSharedInt64Atomics:       1
arch.hasDoubles:                  1
arch.hasWarpVote:                 1
arch.hasWarpBallot:               1
arch.hasWarpShuffle:              1
arch.hasFunnelShift:              0
arch.hasThreadFenceSystem:        1
arch.hasSyncThreadsExt:           0
arch.hasSurfaceFuncs:             0
arch.has3dGrid:                   1
arch.hasDynamicParallelism:       0
gcnArchName:                      gfx1031
peers:
non-peers:                        device#0
memInfo.total:                    11.98 GB
memInfo.free:                     11.85 GB (99%)
=== hipInfo (stderr) ===
=== ld.lld (not found) ===
The command 'ld.lld' was not found.
=== lld (error) ===
Return code: 1
Output:
Stderr: lld is a generic driver.
Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld (WebAssembly) instead
=== lld-link ===
LLD 19.0.0
=== lld-link (stderr) ===
=== llvm-ar ===
AOMP-18.0-12 (http://github.com/ROCm-Developer-Tools/aomp):
Source ID:18.0-12-ce1873ac686bb90ddec72bb99889a4e80e2de382
LLVM version 19.0.0git
Optimized build.
=== llvm-ar (stderr) ===
=== opt ===
AOMP-18.0-12 (http://github.com/ROCm-Developer-Tools/aomp):
Source ID:18.0-12-ce1873ac686bb90ddec72bb99889a4e80e2de382
LLVM version 19.0.0git
Optimized build.
Default target: x86_64-pc-windows-msvc
Host CPU: alderlake
=== opt (stderr) ===
D:\gpligins\plugins>
Operating System
Windows 10.0.19045
CPU
12th Gen Intel(R) Core(TM) i5-12400F
GPU
OrayIddDriver Device AMD Radeon RX 6750 GRE 12GB
ROCm Version
ROCm 6.1.0
ROCm Component
rocminfo
Steps to Reproduce
After the installation is completed, I run rocminfo in the terminal and it says that this command is not found, and then the rocminfo.exe file is not found in the bin directory of the folder
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
I don't know if it's if it's an installation error, I don't have this directory

Additional Information
No response

<EMAIL_ADDRESS>

Hi @Smart-huhu, rocminfo is only present within Linux based installations of ROCm (Baremetal or WSL). For the Windows HIP SDK, ...\ROCm\6.1\bin\hipInfo.exe is used as an alternative. If you have any other questions, feel free to leave a comment.


The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.

Describe the Issue
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.devcontainer/Dockerfile
Affected Page
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built. https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.devcontainer/Dockerfile
Your code
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.devcontainer/Dockerfile
Expected behavior
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.devcontainer/Dockerfile
Screenshots
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/.devcontainer/Dockerfile
System
IntelliJ IDEA 2023.3
Additional context
The devcontainer.json in the repository cannot be built because the Dockerfile cannot be built.

Hello there,
I can start a codespace without any problems. It just takes a while because we are still using the old way of installing Nodejs.
As such, I am closing this issue, unless more information can be provided to reopen.


Update version: JackieLiu.NotepadsApp version <IP_ADDRESS>

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/114988&drop=dogfoodAlpha

@wingetbot run

Manifest Error: Optional field missing. [MinimumOSVersion] Value: 10.0.17763.0

Automatic Validation ended with:

2023-08-16 13:35:40.697 [CORE] Deployment operation #0: Windows cannot install package 19282JackieLiu.Notepads-Beta_<IP_ADDRESS>_x86__echhpq9pdbte8 because this package depends on a framework that could not be found. Provide the framework "Microsoft.NET.Native.Framework.2.2" published by "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US", with neutral or x86 processor architecture and minimum version 2.2.29512.0, along with this package to install. The frameworks with name "Microsoft.NET.Native.Framework.2.2" currently installed are: {Microsoft.NET.Native.Framework.2.2_2.2.27405.0_x86__8wekyb3d8bbwe}
2023-08-16 13:35:40.697 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(161)\WindowsPackageManager.dll!566513F2: (caller: 565E3932) Exception(1) tid(1f68) 80073CF3 Package failed updates, dependency or conflict validation.
2023-08-16 13:35:40.698 [CORE] Starting RemovePackage operation #1: 19282JackieLiu.Notepads-Beta_<IP_ADDRESS>_neutral_~echhpq9pdbte8
2023-08-16 13:35:40.712 [CORE] Begin waiting for operation #1
2023-08-16 13:35:40.713 [CORE] Begin blocking for operation #1
2023-08-16 13:35:41.797 [CORE] Deployment operation #1: Windows cannot remove 19282JackieLiu.Notepads-Beta_<IP_ADDRESS>_neutral~_echhpq9pdbte8 because the current user does not have that package installed. Use Get-AppxPackage to see the list of packages installed.
2023-08-16 13:35:41.797 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!5664FFD9: (caller: 5665189B) Exception(2) tid(1f68) 80073CF1 Package was not found.
Msg:[Operation failed: Windows cannot remove 19282JackieLiu.Notepads-Beta_<IP_ADDRESS>_neutral_~_echhpq9pdbte8 because the current user does not have that package installed. Use Get-AppxPackage to see the list of packages installed.]
2023-08-16 13:35:41.798 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(126)\WindowsPackageManager.dll!566514D6: (caller: 56652918) LogHr(1) tid(1f68) 80073CF1 Package was not found.
Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!5664FFD9: (caller: 5665189B) Exception(2) tid(1f68) 80073CF1 Package was not found.
Msg:[Operation failed: Windows cannot remove 19282JackieLiu.Notepads-Beta_<IP_ADDRESS>_neutral_~_echhpq9pdbte8 because the current user does not have that package installed. Use Get-AppxPackage to see the list of packages installed.]
]
2023-08-16 13:35:41.807 [CLI ] MSIX installer failed:<PHONE_NUMBER>
2023-08-16 13:35:41.808 [CLI ] Terminating context: 0x8a150104 at D:\a_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\InstallFlow.cpp:1bc

Apparently this package is dependent on Microsoft.NET.Native.Framework.2.2, which is not currently in the WinGet public manifests.
.NET Native is part of UWP? Compile apps with .NET Native

/AzurePipelines run


Update path to entry points config file

@tvolkert
This will be needed for the next engine roll.

LGTM


[Question] Disable crop?

Is it possible to disable the cropper in both platforms? Docs don't say if this is supported.
I see that in iOS, this is defined by props, but does android support?:
https://github.com/marcshilling/react-native-image-picker/blob/8f0aff1edb517f0cfbfff367809c18c1364ad8a8/ios/ImagePickerManager.m#L294
This seem like a good package to use for custom crop: https://github.com/stoffern/react-native-image-cropper
edit to be more clear

Set allowsEditing: false in your options. The cropping is only available on iOS, the feature was removed from Android.


Proper indentation of multiline post-comments in a list

Fix for issue #4546 to properly indent multiline post-comments in a list.
The approach taken is that each multiline comment is considered a "comments indentation group" of its own, so each multiline comment is indented per the list item it belongs to and is not dependent on other list items` comments.  This makes sure that the internal comment lines are properly indented.
Multiline comments already terminates the indentation-group before this change.  Therefore assuming that in any case using multiline comments for list items is relatively rare, it is expected that this change will not cause major backward compatibility issues.

By any chance do you have a feel for if/how this may compound the current bug that's causing comment alignment to be done visually/vertically (refs #4108)?
I know this PR is primarily targetting at addressing indentation of true multi-line comments, but #4108 is an annoyingly persistent bug and a clear divergence from the style guide/formatting principles of rustfmt and want to avoid adding anything that may make that bug harder to fix

By any chance do you have a feel for if/how this may compound the current bug that's causing comment alignment to be done visually/vertically (refs #4108)?

The change is highly related to #4018.  Currently post-comments to consecutive list items are "grouped", where a group is terminated if a list item does not have a post-comment or have a multi-line post-comment.  All the post-comments in a group are visually indented to the same column.
The change I did is that a multi-line comment is regarded as a group of its own, instead of being the last in the previous group.
This change can be modified so that each post-comment of a list item will be regarded as a group of its own, not just multi-line comments, practically solving issue #4018.  If desired, enhanced modification is that one-line comments will be visually grouped only when rustfmt-indent_style: Visual is set.
Should I modify the change to one of these two options?

Gotcha, thanks for the extra info. We definitely need to get #4108 fixed but let's not do it here. Even though #4108 is a bug, the resolution is likely going to be pretty disruptive on the community in that'll probably break a lot of existing formatting.
I need to think through a communication strategy on that before we make that change

Added some test cases.
When adding the long items/comments test, I noted that a list item with a comment may exceed maximum line width (not because of this PR).  I didn't try to fix that, and it should probably be a new issue.  (Just a note: possible resolution may be to store the span of the post_comment in ListItem instead of storing the snippet, and use combine_strs_with_missing_comments() to add the comment to the list item.  Another option is to create combine_strs_with_comments_str() function out of combine_strs_with_missing_comments(), to have a common function to combine comments strings.)

Thanks!

When adding the long items/comments test, I noted that a list item with a comment may exceed maximum line width (not because of this PR). I didn't try to fix that, and it should probably be a new issue.

I expected that would be the case, and I'd say it's largely to be expected. Long/complex trailing comments (particularly multiline ones) are very uncommon and often problematic for precisely this reason.
In these circumstances it's probably best to defer to the developer with various config options (like error_on_unformatted and/or wrap_comments) instead of adding additional complexity to the code here


Replacing the feature name "materialized views" with "data acceleration"

The feature "Materialized Views" has been replaced with "Data Acceleration" in the server code, including the rest api schema and urls. This PR is to make the name change in the client side.

The changes themselves look good 😄
My only concern is that the sample might be too complex to be considered a useful sample for our users. Samples should capture specific and frequent scenarios that should be easy for a new user to refer to for examples of using the library.
Would it be possible to break this sample into specific scenarios? Doesn't have to be part of this MR, though, since this is for 2020.2.

Thanks for the speedy review! Our team wants to provide users with a "comprehensive" script to use our feature with different options as our feature does not have a UI yet.
Let me discuss with my team. :)

Thanks @guodah !


the file built with BlobBuilder is not working

At the front end, file built with 'new Blob()', get buffer after uploading
const sharpBuffer = await sharp(buffer).resize()......toBuffer();
This code works fine
but....built with BlobBuilder(I tested in android 4.3)，isn't working, found error: Input buffer contains unsupported image format
The front end uses the following method to convert, and upload the file using Ajax
  base64ToBlob: function (base64, contentType, cb) {
    const bytes = window.atob(base64);
    const buffer = new ArrayBuffer(bytes.length);
    const bufferArray = new Uint8Array(buffer);
    for (let i = 0; i < bytes.length; i++) {
      bufferArray[i] = bytes.charCodeAt(i);
    }
    let blob;
    try {
      blob = new Blob([buffer], {type: contentType});
    } catch (e) {
      window.BlobBuilder = window.BlobBuilder
        || window.WebKitBlobBuilder
        || window.MozBlobBuilder
        || window.MSBlobBuilder;
      if(e.name === 'TypeError' && window.BlobBuilder){
        const blobBuilder = new BlobBuilder();
        blobBuilder.append(buffer);
        blob = blobBuilder.getBlob(contentType);
      }
    }
    cb(blob);
  },

Hello, this question doesn't really relate to sharp and according to https://developer.mozilla.org/en-US/docs/Web/API/BlobBuilder the use of BlobBuilder is considered obsolete. Perhaps try StackOverflow to see if there's anyone else still using it - good luck!


Support em-space and no-break spaces

Currently, non-breaking space is available with AltGr+Shift, Space.
This PR allows input of various spaces and non-breaking spaces:

Space and Shift+Space produce SPACE (U+0020).
AltGr+SPACE produces: NARROW NO-BREAK SPACE (U+00A0).
AltGr+Shift+SPACE produces a NO-BREAK SPACE (U+202F).
Ctrl+Space produces an EM SPACE (U+2003).

Thank you !


adopt a code style guide and update checkstyle rules accordingly

we have a ton of checkstyle warnings right now, and it looks like it might be because we don't have rules that reflect what we want for our style.

what are folks feelings? I'm used to sun style guide modified for 2 space indents.

I don't have strong opinions as long as it's consistent (and automatable?). I also think we should delay any reformatting until most PRs outstanding PRs are merged, to minimize merge conflicts.

+1. Maybe we do this post 0.2.0?

Sounds good.
On Fri, May 29, 2015 at 8:58 AM, Sean Busbey<EMAIL_ADDRESS>wrote:

+1. Maybe we do this post 0.2.0?
—
Reply to this email directly or view it on GitHub
https://github.com/brianfrankcooper/YCSB/issues/267#issuecomment-106856216
.

Started to add checkstyle enforcement to the JDBC module. Realized that 80 char line length is pretty short. Requires some weird line breaks when dealing with long class names and makes self documenting variables and methods hard.
Is the 80 char length a hard and fast rule or would anyone second increasing it to something like 120?

@allanbank - any input? I know you have been working hard on enforcing the checkstyle.

@kruthar - I don't care what the standard is. My main concern id that needs for there to be one and it to be followed. After that it falls down to being pragmatic.
Having said that, on the line length: my one concern would be the number of characters that Github displays in the side-by-side diff view (my preference).  That looks to be about 112 characters. I am not sure if that is a limit due to my monitor/resolution or something GitHu is defaulting to. There is extra space in the margins.

@allanbank, agreed. I'll stick to whatever the community decides, my two cents are that 80 is a bit short. Ex. looking at your diff for the JDBC binding, you've had to break a lot of lines because of length which actually makes reading the code more difficult.
I have a big screen, 15-inch retina, so it looks like lines like: https://github.com/brianfrankcooper/YCSB/pull/494/files#diff-564e0de8a77f56fa41dedad0949c793dL405 display without scrolling and that line is like 125 chars. But I may have a bigger than typical screen.

@kruthar - Since no one is opposed to the 120 want to put together a pull request?  There are several of the checkstyle commit that won't apply cleanly at this point so before I redo them I'd like the extra elbow room.

Sure, I can do that. So, the cool thing about this change is it won't invalidate any of the module PRs you have because we would be making the line restriction longer. I'd be happy to assist wherever needed on this one. What modules do you need right away?

+1 for 120 character columns.

This issue is really close only the following bindings don't enforce checkstyle:

core
dynamodb
hbase098
hypertable
infinispan
tarantool

Only the hbase098 binding is left.

All the bindings are enforcing checkstyle.

Not sure there is anything else to do here since checkstyle is now enforcing.


MCS-949: Adjusting lighting settings on the scene

Small adjustment to the lighting of the scene, so that we don't use a skybox and instead use a basic color gradient. Reflections will now be independent of the skybox.
We are using a single reflection probe in the center when the scene starts, so we can get a neutral even lighting to cover all scenes. It only updates on start, so there's no real perf issue. We can update more frequently if we want more accuracy. We can also use reflection probes for objects for which it's relevant.

3/4 approvals, all from the team. Am I good to merge?


Change the message that is put in chat when a bot joins the other team

I would like to change the message to "kick your bot", or just disable the message in chat.

just disable chat messages in your copy of TF2BD, Spygineer

Duplicate of issue #70


(T1) Use Concordium ID to send and receive GTU

pending:T1
account1:3oEn5U41hJ4zg4AHiH6XjrLaYnvkGWZDg9vwMCksEUQA1GmXUK
account2: 3RjAbm3ihwGwW4k4NdjqLfx5xpaTkvFEWMBDZFneMNTniqxc7R
DeviceDetails:verified
Screenshot:missing
We cannot fully verify this submission. Please provide us with screenshots with all transactions.
@pablozsc

pending:T1
account1:3oEn5U41hJ4zg4AHiH6XjrLaYnvkGWZDg9vwMCksEUQA1GmXUK
account2: 3RjAbm3ihwGwW4k4NdjqLfx5xpaTkvFEWMBDZFneMNTniqxc7R
DeviceDetails:verified
Screenshot:missing
We cannot fully verify this submission. Please provide us with screenshots with all transactions.
@pablozsc

wait one minute
I have a small question
The rules for the assignment did not say anything about the screenshot.
Why now, when it is being checked, you write that screenshots were not provided and that the task cannot be checked?

wait one minute
I have a small question
The rules for the assignment did not say anything about the screenshot.
Why now, when it is being checked, you write that screenshots were not provided and that the task cannot be checked?

confirmed:T1
account1:3oEn5U41hJ4zg4AHiH6XjrLaYnvkGWZDg9vwMCksEUQA1GmXUK
account2: 3RjAbm3ihwGwW4k4NdjqLfx5xpaTkvFEWMBDZFneMNTniqxc7R
DeviceDetails:verified

confirmed:T1
account1:3oEn5U41hJ4zg4AHiH6XjrLaYnvkGWZDg9vwMCksEUQA1GmXUK
account2: 3RjAbm3ihwGwW4k4NdjqLfx5xpaTkvFEWMBDZFneMNTniqxc7R
DeviceDetails:verified


Make folder for driver consistent with package name ("realsense_camera")

It is a (nearly) ubiquitously used convention within the ROS community to name a folder where a package resides the same as the package name in the package.xml file. Especially users new to ROS might be confused by the driver being placed in the "camera" folder instead of "realsense_camera" (which is the actual package name according to the package.xml.

Thanks for the input. We'll discuss internally and decide whether to proceed with this change.

We will take this under advisement but do not plan to implement at this time.

This change will be in the the next release.
Next release is pending on a new release of https://github.com/IntelRealSense/librealsense/ due out soon.

Librealsense v0.9.2 was released.
ROS Realsense package will be releasing shortly with this fix; should be version 1.1.0.

Fixed in Release 1.1.0


Available version updates

Update available for body-parser... Latest 1.20.2 available
Update available for chalk... Latest 5.2.0 available
compression is up to date
Update available for connect-pause... Latest 0.1.0 available
cors is up to date
errorhandler is up to date
Update available for express... Latest 4.18.2 available
Update available for express-urlrewrite... Latest 2.0.1 available
json-parse-helpfulerror is up to date
lodash is up to date
lodash-id is up to date
Update available for lowdb... Latest 6.0.1 available
method-override is up to date
morgan is up to date
Update available for nanoid... Latest 4.0.2 available
please-upgrade-node is up to date
pluralize is up to date
server-destroy is up to date
Update available for standard... Latest 17.1.0 available
yargs is up to date

~UPD
Update available for standard... Latest 17.1.0 available
Update available for nanoid... Latest 4.0.2 available


otplib 12 broke angular karma tests

Describe the bug
A clear and concise description of what the bug is.
ReferenceError: buffer is not defined

To Reproduce
Steps to reproduce the behavior:

Run karma tests in angular ng t --browsers Firefox

Expected behavior
A clear and concise description of what you expected to happen.
Does not break any tests.
Screenshots
If applicable, add screenshots to help explain your problem.

Details (please provide any relevant information):

otplib version: 12.0.1
os: Linux arch 5.5.10-zen1-1-zen #1 ZEN SMP PREEMPT Wed, 18 Mar 2020 08:40:41 +0000 x86_64 GNU/Linux
browser: firefox 74.0
node / yarn: 1.22.4
frameworks (if any): ionic 4.11.5 / angular 8.2.14 / karma 4.4.1 / jasmine 2.8.0

Additional context
Add any other context about the problem here.
Source code https://github.com/ctiteam/apspace

Hi @pickfire
That is expected as you're using the browser version.
v12 has marked buffer as an external module. So you'll need to import buffer separately.
You can refer to: https://github.com/yeojz/otplib#in-browser

@yeojz Is there a way to do that without:
<script src="https://unpkg.com/<EMAIL_ADDRESS><script src="https://unpkg.com/<EMAIL_ADDRESS>

you probably can import buffer within your code:
i.e.
import buffer from 'buffer';
window.Buffer = buffer

or use the node version
import { authenticator } from 'otplib'; // instead of otplib-browser

@yeojz Do you mean do that inside the test?
import { authenticator } from 'otplib'; // instead of otplib-browser

Isn't that how to do it in version 11? Version 11 works this way using otplib-browser but version 12 doesn't for tests.

No I meant when changing to v12, consider using the main entry and relay on your own bundler to package the module.
Ultimately, the difference between v11 and v12 is that it doesn't bundle in Buffer, and you'll have to ensure your build provides it.

Ah, but why does it depends on Buffer? Is it a requirement?

The initial thought was that the package will probably be used in a bundler. Packaging buffer would mean the end-users might bundle buffer twice, increasing the final output size.
After much thought, I acknowledge that the package should be plug and play. Will include that in v13.

I'm also facing the same issue; @yeojz will there be a v13?

you probably can import buffer within your code:
i.e.
import buffer from 'buffer';
window.Buffer = buffer

Doesn't seem to do the trick unfortunately :/


fix fixed some nested type func's param type which is not suitable and make result wrong

What problem does this PR solve?
Cherry-picked from https://github.com/apache/doris/pull/44923
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.
Please clearly describe your PR:

What problem was fixed (it's best to include specific error reporting information). How it was fixed.
Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
What features were added. Why was this function added?
Which code was refactored and why was this part of the code refactored?
Which functions were optimized and what is the difference before and after the optimization?

run buildall

run p0

run buildall


Suggest alternative method for enabling ZSH completions

This PR suggests an alternative method for enabling ZSH completions when a framework like oh-my-zsh already runs compinit without the need to run this directly.
The benefit of using this method is that only one line of code is needed, rather than 5 lines for the currently suggested method, reducing configuration maintenance for the user. I have not included an if block to check for existence of the brew command, as this line comes directly after the command to setup brew's environment.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] (n/a) Have you written new tests for your changes? Here's an example.

Thanks so much for your first contribution!  You rock, @davidbailey00!

Thanks so much for your first contribution!  You rock, @davidbailey00!


Issue #1

Initialize fork 0.8.0

It's pretty standard to leave defaults commented out with explanation. Is there a reason they need uncommmented?

Sorry, I made this pull not intentionally.


[WIP] Trace improvements

causal_components

Cool.
It looks like this also ties into the whole rule enforcement stuff, right? Do we still need that PR / feature after this change?
And if we do, can that PR just utilize tracing to retrieve this information and display it in a "nicer" manner?

It looks like this also ties into the whole rule enforcement stuff, right? Do we still need that PR / feature after this change?

Yes. Trace needs to use a RuleEnforcement object rather than a rule object.

And if we do, can that PR just utilize tracing to retrieve this information and display it in a "nicer" manner?

The requirements are different for these features.
Trace - what is the full context of "activity" that happened.
RuleEnforcement - was this rule enforced or not. This itself would be part of the Trace.

Is the end goal to show some relationship between items in CLI and UI?


git node backport v8 does not work on macOS

I got an error saying Resolve merge conflicts and enter 'RESOLVED' - however there were no conflicts. The actual underlying failure was patch: unrecognized option '--merge' - it seems the patch on macOS does not have that option.
I'm happy to research/PR whatever would be considered an acceptable fix?
Also not sure if there's a good way to detect conflicts vs other kinds of errors - the error message was rather misleading.

The line originates here and unfortunately it looks like you're right - the patch commands are similar on macOS and on Linux but there are some nontrivial option differences, one of which is the --merge command.
I think our best bet here is probably to move away from the patch command and use git apply to accomplish the same goal. The consequent difference unfortunately though is that git apply won't apply patch if you have other uncommitted changes in your code, & it also won't apply a patch that does not apply cleanly. The above linked code would therefore require some light restructuring to take those externalities into account.
cc @targos for other thoughts!

I don't know what patch --merge leaves on the filesystem when there's a conflict, but git apply -3 (to do a three-way merge) worked for me 👍

@dominykas what did git apply -3 leave?

@targos the <<<<<<< ours delimited stuff - not sure what it's called.

I vaguely remember that git apply didn't always leave conflict markers, but maybe I'm wrong. And it's probably better to have something that work sometimes on all platforms than never on macOS


More efficient import/export of FiftyOne datasets

Resolves https://github.com/voxel51/fiftyone/issues/899.
This PR introduces a FiftyOneBatchDataset type that is at least 15x faster at importing/exporting datasets compared to FiftyOneDataset format. It achieve
For those following at home, this performance gain was achieved by, you guessed it, bypassing mongoengine... Instead, the export is performed via a raw aggregation and the import is performed via a single pymongo insert_many() command.
A happy side benefit of this new type is that, since it directly (well, aside from updating filepaths/IDs as necessary) exports/imports MongoDB collections, exports from older fiftyone package versions will be magically upgraded via our DB migration framework when they are imported into a newer fiftyone environment.
The FiftyOneBatchDatasetExporter provides an include_media=True/False flag to control whether the source media is included in the export. And, when, include_media=False, a rel_dir parameter is provided as in SampleCollection.to_dict() that allows for a relative directory to be stripped from all filepaths in order to support loading a dataset in a different environment (via the corresponding rel_dir parameter of FiftyOneBatchDatasetImporter).
Other additions

Both the FiftyOneDataset and FiftyOneBatchDataset types now support importing/exporting evaluation/brain results
The export_dir parameter of SampleCollection.export(export_dir, ..) can now accept an archive path like /path/for/export.tar.gz, in which case the export will be written to /path/for/export as usual and then automatically  converted to an archive afterwards
Corresponding Dataset.from_archive() and Dataset.add_archive() methods are added to support un-archiving + loading datasets in a single command
The tag_samples(), untag_samples(), tag_labels(), and untag_labels() methods of SampleCollection now support either one tag or an iterable of tags

Discussion
The FiftyOneBatchDataset format is better in every way than the FiftyOneDataset format. So, I'd ideally like to deprecate the current FiftyOneDataset format and give this new format the preferable FiftyOneDataset name. But, there are datasets out in the wild in the old format that need backwards compatible import support (and possibly export support, in case someone has written custom code that works with data on disk in that format? This seems unlikely...)
So, how to best proceed with this migration?
One thought is to minimally introspect the contents of the data at import time to determine if it is in the legacy format, in which case the old importer is silently used
Benchmarking
import os
import eta.core.utils as etau

import fiftyone as fo
import fiftyone.zoo as foz

TEST_DIR = "/tmp/fiftyone-dataset-io"

dataset = foz.load_zoo_dataset("quickstart-video").clone()

# Build a larger video dataset
for sample in dataset:
    for idx in range(5):
        outpath = os.path.join(
            TEST_DIR, "copy%d" % idx, os.path.basename(sample.filepath)
        )
        new_sample = sample.copy()
        new_sample.filepath = outpath
        etau.copy_file(sample.filepath, outpath)
        dataset.add_sample(new_sample)

print(dataset)

standard_dir = os.path.join(TEST_DIR, "fiftyone-dataset")
batch_dir = os.path.join(TEST_DIR, "batch-fiftyone-dataset")

with etau.Timer():
    dataset.export(standard_dir, fo.types.FiftyOneDataset)
    # Time elapsed: 41.0 seconds (includes time to copy videos)

with etau.Timer():
    dataset.export(batch_dir, fo.types.FiftyOneBatchDataset)
    # Time elapsed: 9.9 seconds (includes time to copy videos)

with etau.Timer():
    dataset2 = fo.Dataset.from_dir(standard_dir, fo.types.FiftyOneDataset)
    # Time elapsed: 50.8 seconds

with etau.Timer():
    dataset3 = fo.Dataset.from_dir(batch_dir, fo.types.FiftyOneBatchDataset)
    # Time elapsed: 3.0 seconds

Example uses
Archive import/export
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart").clone()

dataset.export(
    "/tmp/fiftyone-dataset-io/quickstart-batch.zip",
    fo.types.FiftyOneBatchDataset,
)

dataset2 = fo.Dataset.from_archive(
    "/tmp/fiftyone-dataset-io/quickstart-batch.zip",
    fo.types.FiftyOneBatchDataset,
)

session = fo.launch_app(dataset2)

Importing/exporting evaluation/brain runs
import fiftyone as fo
import fiftyone.brain as fob
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart").clone()

dataset.evaluate_detections("predictions", eval_key="eval")
fob.compute_visualization(dataset, brain_key="umap")

dataset.export(
    "/tmp/fiftyone-dataset-io/quickstart",
    fo.types.FiftyOneDataset,
)

dataset.export(
    "/tmp/fiftyone-dataset-io/quickstart-batch",
    fo.types.FiftyOneBatchDataset,
)

dataset2 = fo.Dataset.from_dir(
    "/tmp/fiftyone-dataset-io/quickstart",
    fo.types.FiftyOneDataset,
)

dataset3 = fo.Dataset.from_dir(
    "/tmp/fiftyone-dataset-io/quickstart-batch",
    fo.types.FiftyOneBatchDataset,
)

print(dataset)
print(dataset.get_evaluation_info("eval"))
print(dataset.get_brain_info("umap"))
print(repr(dataset.load_evaluation_results("eval")))
print(repr(dataset.load_brain_results("umap")))

print(dataset2)
print(dataset2.get_evaluation_info("eval"))
print(dataset2.get_brain_info("umap"))
print(repr(dataset2.load_evaluation_results("eval")))
print(repr(dataset2.load_brain_results("umap")))

print(dataset3)
print(dataset3.get_evaluation_info("eval"))
print(dataset3.get_brain_info("umap"))
print(repr(dataset3.load_evaluation_results("eval")))
print(repr(dataset3.load_brain_results("umap")))

session = fo.launch_app(dataset3)

Importing/exporting a filtered video dataset
import fiftyone as fo
import fiftyone.zoo as foz
from fiftyone import ViewField as F

dataset = foz.load_zoo_dataset("quickstart-video").clone()

view = dataset.filter_labels(
    "frames.ground_truth_detections", F("label") == "vehicle"
)

view.export(
    "/tmp/fiftyone-dataset-io/quickstart-video-filtered",
    fo.types.FiftyOneBatchDataset,
)

dataset2 = fo.Dataset.from_dir(
    "/tmp/fiftyone-dataset-io/quickstart-video-filtered",
    fo.types.FiftyOneBatchDataset,
)

print(view)
print(view.count_values("frames.ground_truth_detections.detections.label"))

print(dataset2)
print(dataset2.count_values("frames.ground_truth_detections.detections.label"))

session = fo.launch_app(dataset2)

Batch import with max_samples
import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart-video").clone()

dataset.export(
    "/tmp/fiftyone-dataset-io/quickstart-video-max-samples",
    fo.types.FiftyOneBatchDataset,
)

dataset2 = fo.Dataset.from_dir(
    "/tmp/fiftyone-dataset-io/quickstart-video-max-samples",
    fo.types.FiftyOneBatchDataset,
    max_samples=2,
)

print(dataset)
print(dataset2)

session = fo.launch_app(dataset2)

Batch export with include_media == False and a rel_dir
import os

import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart").select_fields().clone()

rel_dir = os.path.dirname(dataset.first().filepath)

dataset.export(
    "/tmp/fiftyone-dataset-io/quickstart-rel-dir",
    fo.types.FiftyOneBatchDataset,
    include_media=False,
    rel_dir=rel_dir,
)

dataset2 = fo.Dataset.from_dir(
    "/tmp/fiftyone-dataset-io/quickstart-rel-dir",
    fo.types.FiftyOneBatchDataset,
    rel_dir=rel_dir,
)

session = fo.launch_app(dataset2)

One thought is to minimally introspect the contents of the data at import time to determine if it is in the legacy format, in which case the old importer is silently used

I agree.

One thought is to minimally introspect the contents of the data at import time to determine if it is in the legacy format, in which case the old importer is silently used

I agree.

Cool, I proceed with this option then 💯


Refactor and fix reindex_elasticsearch management command

The command was obviously broken as explained in #1641. This PR fixes the outstanding bugs and added a simple check whether the passed in project slug actually exists.
I have tested it until elasticsearch is actually involved, no further since I don't have a working elasticsearch setup.
Please note that the semantics changed very slightly as the now used update_search does not pass the delete=False flag to index_search_request as the previous code in the management command did. Please consider this during review.
In my understanding the same logig used for the actual search index updates on the server via update_search should also work for a manual reindex.
Fixes #1641.

:fireworks:


refactor(Immediate): fix minor syntax in test cases

Minor correction to variable assignment in test case.

Merged with d39e768.


dropping namespace package

Although quite practical to allow us to retrieve catkin generated messages even without sourcing ROS setup, it will prevent us from making a working ROS package for this (tested with https://github.com/asmodehn/pyros-common/issues/1).
So we need to turn this into a normal package, while keeping all our usecases working :

from ROS (full catkin usecase)
from python isolated in venv (tox usecase)
from python on top of ROS system (PyCharm running tests on ROs machine usecase)...

The tentative release 0.1.1 still has a namespace package definition...

Since rosimport, the python user is expected to use it, OR the usual ROS catkin system, to generate message python code.
Therefore generating the python code is not the responsibility of this package any longer, and we should be able to drop the namespace package declaration, and everything should still work as expected.

namespace has been dropped in https://github.com/asmodehn/pyros-msgs/pull/14 however this might create problems with catkin, since messages will be created in another folder (in devel and not in source), and with python2 namespace package is needed to unify both in same package...
We need to test this more.


Example uses GPL-licensed JDBC library

MySQL's JDBC connector is licensed under GPL, a viral licenses that will in many cases force customers to release the source code to their applications under the same license. Since customers often copy&paste samples into their code, we should avoid exposing them to this risk.
Consider switching demos to use the MariaDB JDBC connector and removing the link to MySQL's examples page at the bottom.

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

ID: 64aac931-15b9-13d6-738c-451894b411da
Version Independent ID: e4f572d5-019a-85f7-aff4-36fb4db28fa2
Content: Connect to Azure Database for MySQL using Java
Content Source: articles/mysql/connect-java.md
Service: mysql
GitHub Login: @JasonWHowell
Microsoft Alias: jasonh

@yevster Thank you very much for providing such great feedback. This not only applies to this specific quickstart example but to other code samples where GPL applies. I am engaging the content owner to evaluate and update as appropriate.

@Mike-Ubezzi-MSFT this need to go to the Azure DB for MySQL team. @ajlam Please reassign.

@yevster, thanks for the feedback. I am looking into refactoring the Java sample to use the MariaDB Connector for Java since it is LGPL licensed. Looking to get a new sample out in the next week or two.

@ajlam - Can you provide an update?

Changed to doc-bug from doc-idea.

I've refactored the code samples to use the MariaDB-connector-j driver instead. The changes should be published by tomorrow :)
#please-close


Added my repo

added FakeBuster project and submitted my build.
@aslams2020  kindly review my PR

Congrats On your Submission 👏


How can I get list of all fields on a GraphQL dataset?

I wanna get a list of all fields on a dataset (firewallEventsAdaptive) in GraphQL, Since in the API version we had some fields which are changed now (for example host, occurred_at, matches, ...) and now I can't find them in the GraphQL version.
in the document, we have this page https://developers.cloudflare.com/analytics/graphql-api/tutorials/querying-firewall-events that mentioned some of the fields:
{
action
clientAsn
clientCountryName
clientIP
clientRequestPath
clientRequestQuery
datetime
source
userAgent
}
Thank you in advance

You can find this information via the introspection feature of GraphQL: https://developers.cloudflare.com/analytics/graphql-api/getting-started#querying-basics


Task 7 Task 8 and Task 9

@Radha93M
Task -7
Code verified.
Task -8
Code verified.
Task -9
Code verified.


box2d: 2.4.2 -> 3.0.0

Description of changes
Changelog: https://box2d.org/posts/2024/08/releasing-box2d-3.0/
cc @raskin

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Currently fails with:
[ 98%] Linking CXX executable ../bin/test
cd /build/source/build/test && /nix/store/hx89vlv61l4vm0dvn0zww817nckzh7ls-cmake-3.29.6/bin/cmake -E cmake_link_script CMakeFiles/test.dir/link.txt --verbose=1
/nix/store/gxpdysvlj9l6bfin03k6yq0s922pk7pg-gcc-wrapper-13.3.0/bin/g++ -O3 -DNDEBUG CMakeFiles/test.dir/main.c.o CMakeFiles/test.dir/test_bitset.c.o CMakeFiles/test.dir/test_collisi>
/build/source/samples/settings.cpp: In function 'bool ReadFile(char*&, int&, const char*)':
/build/source/samples/settings.cpp:35:14: error: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [8;;https://gcc.g>
   35 |         fread( data, size, 1, file );
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/build/source/samples/shader.cpp: In function 'GLuint sCreateShaderFromFile(const char*, GLenum)':
/build/source/samples/shader.cpp:153:14: error: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [8;;https://gcc.gn>
  153 |         fread( source, size, 1, file );
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [samples/CMakeFiles/samples.dir/build.make:345: samples/CMakeFiles/samples.dir/shader.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/build/source/build'
cc1plus: all warnings being treated as errors
[ 98%] Built target test
make[2]: *** [samples/CMakeFiles/samples.dir/build.make:331: samples/CMakeFiles/samples.dir/settings.cpp.o] Error 1
make[2]: Leaving directory '/build/source/build'
make[1]: *** [CMakeFiles/Makefile2:338: samples/CMakeFiles/samples.dir/all] Error 2
make[1]: Leaving directory '/build/source/build'
make: *** [Makefile:139: all] Error 2

Not sure that my glfw injection is working:
-- Adding Box2D unit tests
CMake Warning at samples/CMakeLists.txt:20 (find_package):
  By not providing "Findglfw.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "glfw", but
  CMake did not find one.

  Could not find a package configuration file provided by "glfw" with any of
  the following names:

    glfwConfig.cmake
    glfw-config.cmake

  Add the installation prefix of "glfw" to CMAKE_PREFIX_PATH or set
  "glfw_DIR" to a directory containing one of the above files.  If "glfw"
  provides a separate development package or SDK, be sure it has been
  installed.

-- Configuring done (1.0s)
-- Generating done (0.0s)

Not sure that my glfw injection is working:

Did you try glfw3?

Did you try glfw3?

It works better thanks, but still fails with:
/build/source/samples/settings.cpp: In function 'bool ReadFile(char*&, int&, const char*)':
/build/source/samples/settings.cpp:35:14: error: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Werror=unused-result]
   35 |         fread( data, size, 1, file );
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/build/source/samples/shader.cpp: In function 'GLuint sCreateShaderFromFile(const char*, GLenum)':
/build/source/samples/shader.cpp:153:14: error: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)' declared with attribute 'warn_unused_result' [-Werror=unused-result]
  153 |         fread( source, size, 1, file );
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [samples/CMakeFiles/samples.dir/build.make:345: samples/CMakeFiles/samples.dir/shader.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1plus: all warnings being treated as errors
make[2]: *** [samples/CMakeFiles/samples.dir/build.make:331: samples/CMakeFiles/samples.dir/settings.cpp.o] Error 1
make[2]: Leaving directory '/build/source/build'
make[1]: *** [CMakeFiles/Makefile2:338: samples/CMakeFiles/samples.dir/all] Error 2
make[1]: Leaving directory '/build/source/build'
make: *** [Makefile:139: all] Error 2

https://github.com/erincatto/box2d/pull/784 might fix that.

erincatto/box2d#784 might fix that.

Thanks ! I was able to cherry-pick the necessary fixes.
Now it builds fine, however, the result doesn't include the headers anymore:
[nix-shell:~/nixpkgs]$ tree /nix/store/jlnr0l28rq29y8xrhrn7sdswxycv8kav-box2d-2.4.2
/nix/store/jlnr0l28rq29y8xrhrn7sdswxycv8kav-box2d-2.4.2
├── include
│   └── box2d
│       ├── b2_api.h
│       ├── b2_block_allocator.h
│       ├── b2_body.h
│       ├── b2_broad_phase.h
│       ├── b2_chain_shape.h
│       ├── b2_circle_shape.h
│       ├── b2_collision.h
│       ├── b2_common.h
│       ├── b2_contact.h
│       ├── b2_contact_manager.h
│       ├── b2_distance.h
│       ├── b2_distance_joint.h
│       ├── b2_draw.h
│       ├── b2_dynamic_tree.h
│       ├── b2_edge_shape.h
│       ├── b2_fixture.h
│       ├── b2_friction_joint.h
│       ├── b2_gear_joint.h
│       ├── b2_growable_stack.h
│       ├── b2_joint.h
│       ├── b2_math.h
│       ├── b2_motor_joint.h
│       ├── b2_mouse_joint.h
│       ├── b2_polygon_shape.h
│       ├── b2_prismatic_joint.h
│       ├── b2_pulley_joint.h
│       ├── b2_revolute_joint.h
│       ├── b2_rope.h
│       ├── b2_settings.h
│       ├── b2_shape.h
│       ├── b2_stack_allocator.h
│       ├── b2_time_of_impact.h
│       ├── b2_timer.h
│       ├── b2_time_step.h
│       ├── b2_types.h
│       ├── b2_weld_joint.h
│       ├── b2_wheel_joint.h
│       ├── b2_world_callbacks.h
│       ├── b2_world.h
│       └── box2d.h
└── lib
    ├── cmake
    │   └── box2d
    │       ├── box2dConfig.cmake
    │       ├── box2dConfig-release.cmake
    │       └── box2dConfigVersion.cmake
    └── libbox2d.a

6 directories, 44 files

[nix-shell:~/nixpkgs]$ tree /nix/store/if07h00dhj0xw8dkcfc0kxr1y6z2bf28-box2d-3.0.0
/nix/store/if07h00dhj0xw8dkcfc0kxr1y6z2bf28-box2d-3.0.0
└── lib
    └── libbox2d.a

2 directories, 1 file

Considering box2d 3.0 is not compatible with the 2.x version (which has been renamed to box2d-lite https://github.com/erincatto/box2d-lite), it would probably be nice to have box2d-lite also available when this gets merged to make migrations easier on the projects that depend on the current 2.x version.


light probe or Bakery volume lighting?

It seems that you use vertex lighting for your grass, that might explain why this is so fast.
Can this be done in a shader graph?
I'm asking because I'd like to add volume lighting and I haven't the faintest idea how to convert such complex graph to vertex shader.
https://geom.io/bakery/wiki/index.php?title=Manual#Bakery_Volume

Can this be done in a shader graph? -> yes, the grass shader didn't use any advanced feature, but maybe you still need a custom node to access global array and light data).


How To Write To An HTTP Response Body From A JSON String... (Or From Any String For That Matter)

Hello @vinniefalco and all,
Thanks for great libraries. I am putting together a segment of code using two of your great libraries, Boost.Beast and Boost.JSON and I seem to be having issues assigning a JSON string to the HTTP Response body.
I am on Boost 1.81.0, Ubuntu 16.04, g++ (GCC) 11.2.0
First the error message. Note that I simply replaced my actual problematic line of code with a simple std::string() to see if that would compile and that failed as well:
[ 50%] Built target fmt
Consolidate compiler generated dependencies of target ...HTTPServer
[ 66%] Building CXX object CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o
In file included from /...HTTPServer/HTTPServer.h:30,
                 from /...HTTPServer/HTTPServer.cpp:1:
/...HTTPServer/Protocol.h: In instantiation of ‘boost::beast::http::message_generator handle_request(boost::beast::http::request<Body, boost::beast::http::basic_fields<Allocator> >&&) [with Body = boost::beast::http::basic_string_body<char>; Allocator = std::allocator<char>; boost::beast::http::request<Body, boost::beast::http::basic_fields<Allocator> > = boost::beast::http::message<true, boost::beast::http::basic_string_body<char>, boost::beast::http::basic_fields<std::allocator<char> > >]’:
/...HTTPServer/HTTPServer.h:134:37:   required from here
/...HTTPServer/Protocol.h:522:32: error: no match for ‘operator=’ (operand types are ‘boost::beast::http::empty_body::value_type’ and ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’})
  522 |                     res.body() = std::string("Nuertey");
      |                     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/boost_1_81_0/boost/beast/http.hpp:21,
                 from /...HTTPServer/Protocol.h:30,
                 from /...HTTPServer/HTTPServer.h:30,
                 from ...HTTPServer/HTTPServer.cpp:1:
/usr/local/boost_1_81_0/boost/beast/http/empty_body.hpp:38:12: note: candidate: ‘constexpr boost::beast::http::empty_body::value_type& boost::beast::http::empty_body::value_type::operator=(const boost::beast::http::empty_body::value_type&)’
   38 |     struct value_type
      |            ^~~~~~~~~~
/usr/local/boost_1_81_0/boost/beast/http/empty_body.hpp:38:12: note:   no known conversion for argument 1 from ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘const boost::beast::http::empty_body::value_type&’
/usr/local/boost_1_81_0/boost/beast/http/empty_body.hpp:38:12: note: candidate: ‘constexpr boost::beast::http::empty_body::value_type& boost::beast::http::empty_body::value_type::operator=(boost::beast::http::empty_body::value_type&&)’
/usr/local/boost_1_81_0/boost/beast/http/empty_body.hpp:38:12: note:   no known conversion for argument 1 from ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘boost::beast::http::empty_body::value_type&&’
CMakeFiles/...HTTPServer.dir/build.make:75: recipe for target 'CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o' failed
make[2]: *** [CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o] Error 1
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/...HTTPServer.dir/all' failed
make[1]: *** [CMakeFiles/...HTTPServer.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

And then here are the relevant pieces of my code, a lot cribbed from your own notes:
    if (req.method() == http::verb::post)
    {
        // "Parsing
        //
        // JSON can be parsed into the value container in one step using
        // a free function. In the following snippet, a parse error is
        // indicated by a thrown exception:
        //
        // value jv = parse( "[1, 2, 3]" );
        // "
        //
        // https://www.boost.org/doc/libs/1_81_0/libs/json/doc/html/json/quick_look.html
        boost::json::value json_http_request_payload_value = parse(req.body());
        boost::json::object const& json_http_request_payload = json_http_request_payload_value.as_object();

        // Request:
        //
        // {
        //   "username": "johndoe",
        //   "password": "super-secret-password"
        // }
        auto theUsername = boost::json::value_to<std::string>(json_http_request_payload.at("username"));
        auto thePassword = boost::json::value_to<std::string>(json_http_request_payload.at("password"));

        // Request path/target must match the API document's "/user/authenticate":
        //
        // POST /user/authenticate
        //
        if (req.target() == "/user/authenticate")
        {
            if (IsUserKnown(theUsername))
            {
                // For this particular utility function, it makes sense to return the hash
                // as well if the password is valid, so that the user can use it later
                // (if they need to) instead of running the find command and comparison
                // again. More efficient this way.
                auto result = IsPasswordValid(theUsername, thePassword);
                if (result.first)
                {
                    // 200 Response:
                    //
                    // {
                    //   "token": "{short-lived-jwt-token}"
                    // }

                    //const auto now = jwt::date::clock::now();
                    const auto now = SystemClock_t::from_time_t(time(NULL));
                    const auto expiry = now + Seconds_t(JSON_WEB_TOKENS_DURATION_SECONDS);

                    // ...

                    //auto token = jwt::create()
                        //.set_algorithm("RS256")
                        //.set_type("JWT")
                        //.set_payload_claim("username", theUsername)
                        //.set_payload_claim("hashed_password", result.second)
                        //.set_payload_claim("user_role", "administrator")
                        //.set_issued_at(now)
                        //.set_expires_at(expiry)
                        //.sign(jwt::algorithm::rs256("", RSA_PRIVATE_KEY, "", ""));

                    auto token = jwt::create().set_issuer("auth0")
                                     .set_type("JWT")
                                     .set_id("rsa-create-example")
                                     .set_issued_at(std::chrono::system_clock::now())
                                     .set_expires_at(std::chrono::system_clock::now() + std::chrono::seconds{36000})
                                     .set_payload_claim("sample", jwt::claim(std::string{"test"}))
                                     .sign(jwt::algorithm::rs256("", RSA_PRIVATE_KEY, "", ""));

                    std::cout << "\nDebug: Generated token:\n\t" << token << "\n\n";

                    // In the Boost.JSON library the types array, object, and string
                    // hold JSON arrays, objects, and strings respectively while the
                    // type value is a special variant which can hold any JSON element.
                    //
                    // Therefore here we construct an empty JSON object representing
                    // the '200 Response' according to specs. and fill in/insert
                    // the relevant data that we have elaborately calculated above:
                    //jwt::traits::boost_json::object response_json; // construct an empty object
                    boost::json::object response_json; // construct an empty object

                    //response_json["token"] = token.c_str(); // insert a string
                    //response_json.insert(std::string("token"), token.c_str());
                    //response_json.insert(std::string("token"), token);
                    response_json.at(std::string("token")) = token;

                    // Per https://www.boost.org/doc/libs/1_81_0/libs/json/doc/html/json/dom/object.html
                    //
                    // "Formatted Output
                    //
                    // When an 'object' is formatted to a std::ostream, the result
                    // is a valid JSON. That is, the object will be output with
                    // curly braces and a comma separated list of key/value pairs,
                    // as per the JSON specification."
                    std::ostringstream oss;

                    oss << response_json;

                    std::cout << "\nDebug: response_json:\n\t" << oss.str() << "\n\n";

                    http::response<http::empty_body> res{http::status::ok, req.version()};
                    res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
                    res.set(http::field::content_type, "application/json");
                    //res.body() = oss.str(); // This line was the one originally not compiling.
                    res.body() = std::string("Nuertey"); // Neither does this line also compile.
                    res.content_length(oss.str().size());
                    res.keep_alive(req.keep_alive());
                    return res;
                }

It is probably something simple that I am messing up with with that assignment line of code, taking the string of composed JSON and emplacing it into the body of the HTTP POST Response. Probably, since I may have messed up something else in bringing both of your libraries together. And kindly, if there is a better way I should be using your libraries, do let me know that as well when you have time. Thanks:
                    //res.body() = oss.str(); // This line was the one originally not compiling.
                    res.body() = std::string("Nuertey"); // Neither does this line also compile.

Thanks for all the effort and for any insight you can give me.
Regards, and Happy New Year.
Nuertey

You're using empty_body when you should be using string_body:
http::response< http::string body > res( http::status::ok, req.version() );

Excellent @vinniefalco . Thank you. Made the change per your instruction and that helped me progress. My application can compile now; just have one little tiny problem with linking now: "... multiple definition of Boost.JSON artifacts... ". Perhaps I included way too much files from Boost.Asio, Boost.Beast or Boost.JSON. And to reemphasize, I am not using Boost.Asio natively even though that too is an excellent library; I am using Boost.Beast and Boost.JSON and the JWT library. So I think I messed up in including too many header files.
Here is a snippet of the new linking error message:
make
[ 50%] Built target fmt
Consolidate compiler generated dependencies of target ...HTTPServer
[ 66%] Building CXX object CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o
[ 83%] Building CXX object CMakeFiles/...HTTPServer.dir/main.cpp.o
[100%] Linking CXX executable ...HTTPServer
CMakeFiles/...HTTPServer.dir/main.cpp.o:(.data+0xa7b60): multiple definition of `boost::json::detail::default_resource::instance_'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:(.data+0x548a0): first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::system::error_condition::error_condition(boost::system::detail::generic_value_tag)':
/usr/local/boost_1_81_0/boost/json/impl/array.ipp:46: multiple definition of `boost::json::array::empty_'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/array.ipp:46: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::json::array::equal(boost::json::array const&) const':
/usr/local/boost_1_81_0/boost/json/impl/array.ipp:745: multiple definition of `boost::json::array::equal(boost::json::array const&) const'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/array.ipp:745: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `std::ios_base::width(long)':
/usr/local/boost_1_81_0/boost/json/impl/array.ipp:46: multiple definition of `boost::json::object::empty_'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/array.ipp:46: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::json::object::object(std::initializer_list<std::pair<boost::core::basic_string_view<char>, boost::json::value_ref> >, unsigned long, boost::json::storage_ptr)':
/usr/local/boost_1_81_0/boost/json/impl/object.ipp:368: multiple definition of `boost::json::object::object(std::initializer_list<std::pair<boost::core::basic_string_view<char>, boost::json::value_ref> >, unsigned long, boost::json::storage_ptr)'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/object.ipp:368: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::json::object::rehash(unsigned long)':
/usr/local/boost_1_81_0/boost/json/impl/object.ipp:730: multiple definition of `boost::json::object::rehash(unsigned long)'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/object.ipp:730: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::json::object::equal(boost::json::object const&) const':
/usr/local/boost_1_81_0/boost/json/impl/object.ipp:767: multiple definition of `boost::json::object::equal(boost::json::object const&) const'
CMakeFiles/...HTTPServer.dir/HTTPServer.cpp.o:/usr/local/boost_1_81_0/boost/json/impl/object.ipp:767: first defined here
CMakeFiles/...HTTPServer.dir/main.cpp.o: In function `boost::json::detail::string_impl::string_impl()':
/usr/local/boost_1_81_0/boost/json/detail/impl/string_impl.ipp:33: multiple definition of `boost::json::detail::string_impl::string_impl()'

...

And here is my code header inclusion segment pertaining to any Boost artifacts:
#pragma once

#include <boost/asio.hpp>
#include <boost/bind/bind.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/buffer.hpp>

#include <boost/beast/core.hpp>
#include <boost/beast/http.hpp>
#include <boost/beast/version.hpp>
#include <boost/asio/dispatch.hpp>
#include <boost/config.hpp>

#include <boost/json.hpp>
#include <boost/json/src.hpp>

//#include "jwt-cpp/traits/boost-json/traits.h"
#include "jwt-cpp/jwt.h"

namespace beast = boost::beast;         // from <boost/beast.hpp>
namespace http = beast::http;           // from <boost/beast/http.hpp>
namespace net = boost::asio;            // from <boost/asio.hpp>
using tcp = boost::asio::ip::tcp;       // from <boost/asio/ip/tcp.hpp>

using namespace boost::json;

And since the error message can be, and is quite long, below is the link to the entire thing if that might give any insight. I am very close per your help. I just have to include your headers properly, I think.
https://github.com/nuertey/RandomArtifacts/blob/master/boost_json_linkage_error_message.txt
Thanks
Nuertey

https://www.boost.org/doc/libs/1_81_0/libs/json/doc/html/json/overview.html#json.overview.requirements.header_only

Thanks @vinniefalco . I think I understand you. Exactly ONE of the sources has to include the below. Got ya!
#include <boost/json/src.hpp>

A minor question which is connected to this. How do I get at the 'Authorization Bearer Header' value? I tried in two different ways per the below, but obviously I got it incorrect since neither of these two compiled. Thanks.
I tried digging within your code to find out how, but since you used a lot of excellent 'template magic-stuff' :), I could not locate it.
        // Request path/target must match the API document's "/user/refresh-token".
        if (req.target() == "/user/refresh-token")
        {
            // Per the API document:
            //
            // "... The existing token would be validated through the
            // Authorization header."
            std::string authorizationHeader;
            //req.get(http::field::authorization, authorizationHeader);
            //if (authorizationHeader == g_CurrentlyGeneratedToken)
            if (req.authorization() == g_CurrentlyGeneratedToken)
            {
                // ...

Regards
Nuertey

For other folks that might be having similar issues with the HTTP header, I was able to solve it this way:
    std::string authorizationHeader;

    std::cout << "\nDebug: ALL HTTP Request Header Values:" << "\n\n";

    for (auto& h : req.base())
    {
        auto headerValue = std::string(h.value());
        std::cout << "Header: " << h.name() << ", Header Name: "
                  << h.name_string() << ", Value: " << headerValue << "\n\n";

        if (h.name() == http::field::authorization)
        {
            authorizationHeader = headerValue;
            std::cout << "\nDebug: Detected HTTP Request Authorization Header." << "\n\n";
        }
    }

Regards and enjoy.
Nuertey
P.S. @VinnieFalco you can close this issue. Thanks


core-js3 compat failure since swc 1.2.231 - 1.2.239 (current)

Describe the bug
stack backtrace:
0:     0x7ffc7efb90af - wasmer_vm_raise_trap
1:     0x7ffc7efd5d2a - wasmer_vm_raise_trap
2:     0x7ffc7efb2c99 - wasmer_vm_raise_trap
3:     0x7ffc7efbbb1b - wasmer_vm_raise_trap
4:     0x7ffc7efbb79b - wasmer_vm_raise_trap
5:     0x7ffc7efbc0c9 - wasmer_vm_raise_trap
6:     0x7ffc7efbbfcd - wasmer_vm_raise_trap
7:     0x7ffc7efb9ce7 - wasmer_vm_raise_trap
8:     0x7ffc7efbbca9 - wasmer_vm_raise_trap
9:     0x7ffc807d6ab5 - wasmer_vm_raise_trap
10:     0x7ffc807d6bc3 - wasmer_vm_raise_trap
11:     0x7ffc7edc3eb5 - wasmer_vm_raise_trap
12:     0x7ffc7f8eb7ed - wasmer_vm_raise_trap
13:     0x7ffc7efa1b2c - wasmer_vm_raise_trap
14:     0x7ffc808022f1 - wasmer_vm_raise_trap
15:     0x7ffc7f8d833c - wasmer_vm_raise_trap
16:     0x7ffc8021bb38 - wasmer_vm_raise_trap
17:     0x7ffc7f910362 - wasmer_vm_raise_trap
18:     0x7ffc8021ba2a - wasmer_vm_raise_trap
19:     0x7ffc7f90738f - wasmer_vm_raise_trap
20:     0x7ffc7f90841f - wasmer_vm_raise_trap
21:     0x7ffc7f905298 - wasmer_vm_raise_trap
22:     0x7ffc8021ba2a - wasmer_vm_raise_trap
23:     0x7ffc8021b8b4 - wasmer_vm_raise_trap
24:     0x7ffc8021ba2a - wasmer_vm_raise_trap
25:     0x7ffc7f90841f - wasmer_vm_raise_trap
26:     0x7ffc7f905298 - wasmer_vm_raise_trap
27:     0x7ffc8021ba2a - wasmer_vm_raise_trap
28:     0x7ffc8021b8b4 - wasmer_vm_raise_trap
29:     0x7ffc8021ba2a - wasmer_vm_raise_trap
30:     0x7ffc8021b8b4 - wasmer_vm_raise_trap
31:     0x7ffc8021ba2a - wasmer_vm_raise_trap
32:     0x7ffc8021bfa0 - wasmer_vm_raise_trap
33:     0x7ffc7f90778c - wasmer_vm_raise_trap
34:     0x7ffc7f90841f - wasmer_vm_raise_trap
35:     0x7ffc7f905298 - wasmer_vm_raise_trap
36:     0x7ffc8021ba2a - wasmer_vm_raise_trap
37:     0x7ffc8021b84f - wasmer_vm_raise_trap
38:     0x7ffc8021ba2a - wasmer_vm_raise_trap
39:     0x7ffc8021b8b4 - wasmer_vm_raise_trap
40:     0x7ffc8021ba2a - wasmer_vm_raise_trap
41:     0x7ffc7f91016f - wasmer_vm_raise_trap
42:     0x7ffc8021bb86 - wasmer_vm_raise_trap
43:     0x7ffc7edc46d1 - wasmer_vm_raise_trap
44:     0x7ffc7f59e444 - wasmer_vm_raise_trap
45:     0x7ffc7f624668 - wasmer_vm_raise_trap
46:     0x7ffc7ed23c0a - Ordinal0
47:     0x7ffc7ed17d6e - Ordinal0
48:     0x7ffc7eb5da56 - Ordinal0
49:     0x7ffc7eb5a736 - Ordinal0
50:     0x7ffc7ea53c86 - Ordinal0
51:     0x7ffc7eb1a0ef - Ordinal0
52:     0x7ffc7e9de579 - Ordinal0
53:     0x7ff61d58cc0e - uv_queue_work
54:     0x7ff61d578d0d - uv_poll_stop
55:     0x7ff61e38e760 - v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor
56:     0x7ffd2fa97034 - BaseThreadInitThunk
57:     0x7ffd2fc82651 - RtlUserThreadStart
[!] (plugin swc) Error: failed to handle: failed parse corejs3-compat data.json: Error("unknown field bun, expected one of chrome, and_chr, and_ff, op_mob, ie, edge, firefox, safari, node, ios, samsung, opera, android, electron, phantom, opera_mobile, rhino, deno", line: 4, column: 9)
Stack backtrace:
0: wasmer_vm_raise_trap
1: wasmer_vm_raise_trap
2: wasmer_vm_raise_trap
3: Ordinal0
4: Ordinal0
5: Ordinal0
6: Ordinal0
7: uv_queue_work
8: uv_poll_stop
9: v8::internal::compiler::RepresentationChanger::Uint32OverflowOperatorFor
10: BaseThreadInitThunk
11: RtlUserThreadStart
Input code
No response
Config
{
      "jsc": {
        "parser": {
          "syntax": "typescript",
          "dynamicImport": true,
          "decorators": false,
          "tsx": false
        },
        "target": "es5",
        "externalHelpers": true,
        "loose": false,
        "minify": {
          "compress": {
            "arguments": false,
            "arrows": true,
            "booleans": true,
            "booleans_as_integers": false,
            "collapse_vars": true,
            "comparisons": true,
            "computed_props": true,
            "conditionals": true,
            "dead_code": true,
            "directives": true,
            "drop_console": false,
            "drop_debugger": true,
            "evaluate": true,
            "expression": false,
            "hoist_funs": false,
            "hoist_props": true,
            "hoist_vars": false,
            "if_return": true,
            "join_vars": true,
            "keep_classnames": false,
            "keep_fargs": true,
            "keep_fnames": false,
            "keep_infinity": false,
            "loops": true,
            "negate_iife": true,
            "properties": true,
            "reduce_funcs": false,
            "reduce_vars": false,
            "side_effects": true,
            "switches": true,
            "typeofs": true,
            "unsafe": false,
            "unsafe_arrows": false,
            "unsafe_comps": false,
            "unsafe_Function": false,
            "unsafe_math": false,
            "unsafe_symbols": false,
            "unsafe_methods": false,
            "unsafe_proto": false,
            "unsafe_regexp": false,
            "unsafe_undefined": false,
            "unused": true,
            "const_to_let": true,
            "pristine_globals": true
          },
          "mangle": {
            "toplevel": false,
            "keep_classnames": false,
            "keep_fnames": false,
            "keep_private_props": false,
            "ie8": false,
            "safari10": false
          }
        }
      },
      "minify": true,
      "env": {
        "targets": {
          "node": "4.4.3"
        },
        "mode": "usage",
        "coreJs": "3.24"
      }
    }

Playground link
No response
Expected behavior
The code should compile and not fail because bun is unexpected, especially since I'm not targeting bun.
Actual behavior
No response
Version
1.2.231 - 1.2.239 (current)
Additional context
No response

This is already fixed and will be fixed by the next version


Angular2

Wow! It's an amazing amount of work. Thanks for that!
The code looks good, but I want to try it by myself following your documentation. I expect to do it today or tomorrow.

@imobach thanks for the review. I just made a commit solves these changes

LGTM. I could run the new setup in an AWS machine. I'll merge the changes in the new angular2.
Thanks!


CAN'T PARSE INFORMATION BETWEEN INTENTS

CAN'T USE THE EXTRAS TO PASS BETWEEN INTENTS BETWEEN THE MAIN ACTIVITY AND LOGIN PAGE.

The putExtra and getExtra methods seem to be working fine

Put and get extras are now working.


updated displaycal (<IP_ADDRESS>)

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Travis appears to be hanging on 'brew cask audit' step.  It appears this happens when executing manually also, but worked when executed from cask-repair.

I can restart Travis and see if it helps

@adidalal, already restarted it two times. Also tried locally, doesn't work either.

I suspect this isn't going to work.  It looks like brew cask audit is hanging at the appcast check.  A spot check of other casks shows that it works for most, but not with sourceforge appcasts that contain uri request parameters (?path=...)
A quick search gives me the following casks that seem to exhibit this behavior:
animated-gif-quicklook.rb
displaycal.rb
freesmug-chromium.rb
grandperspective.rb
grisbi.rb
klatexformula.rb
qbittorrent.rb
seashore.rb
squirrelsql.rb
supertuxkart.rb
It's odd because cask audit just sets up a curl request that works fine when executed manually.

Fixed by #23050

Thank you for the contribution. It was merged directly as 2a342b789d88bcf917760474f8c7e597e486bc0d to keep commit history cleaner. Your contribution is still credited to you.


Fetch cask --force flag fix

I think this has been forgotten on #9212 when adding --cask support to brew fetch, I don't actually know this is a legit solution.
When brew fetch --cask --force {cask} command is run, previously these errors occured;
ykursadkaya@YKKs-MacBook-Air: /usr/local/Homebrew% brew fetch --cask --force iterm2
Error: unknown keyword: force
Please report this issue:
  https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/cask/download.rb:17:in `initialize'
/usr/local/Homebrew/Library/Homebrew/cmd/fetch.rb:135:in `new'
/usr/local/Homebrew/Library/Homebrew/cmd/fetch.rb:135:in `block in fetch'
/usr/local/Homebrew/Library/Homebrew/cmd/fetch.rb:91:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/fetch.rb:91:in `fetch'
/usr/local/Homebrew/Library/Homebrew/brew.rb:119:in `<main>'

When this commit applied;
ykursadkaya@YKKs-MacBook-Air: /usr/local/Homebrew% brew fetch --cask --force iterm2
==> Downloading https://iterm2.com/downloads/stable/iTerm2-3_4_2.zip
######################################################################## 100.0%
Downloaded to: /Users/ykursadkaya/Library/Caches/Homebrew/downloads/f5094791d1eb183212991225b115cb162bb1d01b418965c5db68d37a59957475--iTerm2-3_4_2.zip
SHA256: 0ac49f8f5df0c28f8a3400952d3baf6e40233b62a1cec23ad9266f0019484e99

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally?
[x] Have you successfully run brew man locally and committed any changes?

Already fixed in #9379


Publish team style guide on GitHub

What
Take team style guide off Google Drive and publish it on GitHub.
Why
Design System's Drive includes a team style guide, which is full of good advice about writing comms.
However, it's had 4 viewers (of whom I'm 1) since March 2018. Maybe it would be easier to find if we published it on GitHub, just as we've published some internal content before. For example, 'Publishing a pre-release.'
Who needs to know about this
Content Designer, Developers, Senior Product Manager, Technical Writer
Done when

[ ] Team agrees that we should publish on GitHub
[ ] Team agrees on location of content - its own folder inside govuk-design-system/docs/?
[ ] Content Designer / Technical Writer confirms content is up to date and in house style
[ ] Team reviewers sign off on content
[ ] Get 2i on content, if needed
[ ] Publish content on GitHub

@kellylee-gds Should we take the triage label off this issue? If so, do we need to share this issue with a support person so they can prioritise it?

Leave it on for now. I want to give the team a few more days to comment on the proposal and then I'll do sweep of things that have been raised between the last triage session and day 1 of the new process

@kellylee-gds Should we relocate this issue to the design-system-team-docs-repo? That repo contains content on writing commit messages. So, that might make it a better location for internal docs on our writing conventions.

The writer of the style guide only ever intended it for their own use. Not only is it not comprehensive, but publishing it might confuse users who already use the official GOV.UK style guide.


Default position bottom

When I have implemented this plugin The view initialized as a full screen but I want that the view should be minimized by deafult If I drag then it should full screen. How can I achieve this?

Set
startUp={true}

To the BottomDrawer component.
You can also refer it:
ref={ref => this.drawer = ref}

And in componentDidMount, call it:
this.drawer.setDrawerState(0)

Hope it helps.


Debugging Documentation

This Pull Request Consists of Documentation for debugging the Eva code and its UDFs using a debugger in VsCode.

Two separate pull requests have been created, 1 for debugging and the other for the concat UDF.


Security concern

In the Android API for .setUserId(), one needs to create a BeamsTokenProvider before calling .setUserId().
val tokenProvider = BeamsTokenProvider(
    "<YOUR_BEAMS_AUTH_URL_HERE>",
    object: AuthDataGetter {
      override fun getAuthData(): AuthData {
        return AuthData(
            // Headers and URL query params your auth endpoint needs to
            // request a Beams Token for a given user
            headers = hashMapOf(
                // for example:
                // "Authorization" to sessionToken
            ),
            queryParams = hashMapOf()
        )
      }
    }
)

In doing that I am giving Pusher access to sensitive user authentication data (login credentials or tokens) for my app. It isn't clear what Pusher is doing with this data. Is it getting sent to Pusher servers? I don't think so, but since giving Pusher the user auth data isn't strictly necessary, I recommend an API change.
Let the client get the beams token from the server themself without Pusher API help. Then they can use the Pusher API to set the user id. Something like this would be preferable:

val beamsToken = myOwnServerRequestToGetTheBeamsToken();

PushNotifications.setUserId(
    "<USER_ID_GOES_HERE>",
    beamsToken,
    object : BeamsCallback<Void, PusherCallbackError> { ... }
)

In this way it shields sensitive user data and it keeps Pusher from being liable for it.

Hi, thanks for reaching out!
I'm afraid that simply passing in the token won't work because there are some conditions where the SDK is required to reauthenticate with Beams (so it needs to be able to request Beams Tokens on demand).
However, com.pusher.pushnotifications.auth.TokenProvider is actually an interface - the BeamsTokenProvider class is just our default implementation (which does not share any sensitive data with Pusher). However, you can also provide your own implementation if desired.
Let me know if that helps!

Thanks for your reply. That helps. I don't think I would implement my own now but it was useful to view the source code for TokenProvider and BeamsTokenProvider. I am glad to hear that the Pusher implementation doesn't share any sensitive data with the Pusher servers.
Could I know the conditions where the SDK is required to reauthenticate with Beams? (I suppose one would be when the token expires.) That would be helpful to understand since I am in the process of making a Pusher SDK for Flutter.


LayerSet

Codecov Report

Merging #17 (37618fb) into main (a7c6f6d) will decrease coverage by 0.27%.
The diff coverage is 93.33%.

@@            Coverage Diff             @@
##             main      #17      +/-   ##
==========================================
- Coverage   97.90%   97.63%   -0.28%
==========================================
  Files          23       25       +2
  Lines         621      676      +55
==========================================
+ Hits          608      660      +52
- Misses         13       16       +3

Impacted Files
Coverage Δ

zetta_utils/io/layers/shortcuts.py
44.44% <55.55%> (-1.02%)
:arrow_down:

zetta_utils/io/backends/__init__.py
100.00% <100.00%> (ø)

zetta_utils/io/backends/layer_set.py
100.00% <100.00%> (ø)

zetta_utils/io/indexes/__init__.py
100.00% <100.00%> (ø)

zetta_utils/io/indexes/set_selection.py
100.00% <100.00%> (ø)

zetta_utils/io/layers/__init__.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a7c6f6d...37618fb. Read the comment docs.


server

How can i run it on server without screen?

It should work fine without a screen. Are you seeing errors of some kind?

I guess it depends if you are trying to run the visualization stuff or just loading wavefront files.

Closing this as very little information is provided.


Loading PPI Dataset with PyTorch Geometric

Hello.
First off, I want to say that it is a sight for sore eyes seeing a repository as well documented as this. I am very impressed given the scope of it.
On another note, I did encounter an odd ModuleNotFoundError when trying to the train_ppi.py script locally in the provided "geometric" Conda environment:
:665: in _load_unlocked
???
../../../../../anaconda3/envs/geometric/lib/python3.6/site-packages/_pytest/assertion/rewrite.py:170: in exec_module
exec(co, module.dict)
train_ppi.py:11: in
import ppi_dataloader as dl
ppi_dataloader.py:15: in
import atom3d.torch.graph as gr
E   ModuleNotFoundError: No module named 'atom3d.torch'
It appears as though a directory (atom3d.torch) did not get added to version control and, as such, is not appearing remotely. Was this omission intentional?
Thank you for your time!

I think they refactored the directory structure and that has lead to many imports breaking. You can modify the above import to the following and it should work (it worked for me):
import atom3d.util.graph as gr

I think they refactored the directory structure and that has lead to many imports breaking. You can modify the above import to the following and it should work (it worked for me):
import atom3d.util.graph as gr

Thank you for the suggestion!

Thank you for the suggestion!

Hello to both of you!  Yes, we are still in the process of refactoring, though that is nearing its end and things should be pretty stable from here on out.   Meghana's suggestion is correct.

Hello to both of you!  Yes, we are still in the process of refactoring, though that is nearing its end and things should be pretty stable from here on out.   Meghana's suggestion is correct.


cli: General Availability of npm v7

Summary
npm v7 is the next major release of the npm cli. It includes a number of improvements including:

An improved algorithm for resolving peer-dependencies
Workspaces
A large refactor of internals

Intended Outcome
JavaScript Developers will be able to use npm v7 in production. npm 7 will be performant, fully tested, and well documented.
How will it work?
npm v7 will work much in the same way that npm v6 works today. JavaScript developers will get it when installing Node.js or alternatively will be able to upgrade their local version using npm install --global npm

Update: December 4th 2020
As we have gone through this quarter we have made excellent progress towards General Availability. With that said we are not quite at a place where we feel like we can comfortably mark the release as GA just yet.
We are pushing the GA into Q1 2021, expecting to have it out the door early in the quarter.

Shipped !!!
https://github.blog/2021-02-02-npm-7-is-now-generally-available/


Create Case study “test”

Automatically generated by Netlify CMS

Set up the structure of content such that it allows for embedding of youtube videos at appropriate places.
Currently, the case content type gives API error when loaded. Also not able to save a case type.


Various Corrections in the Science Use Case Design Patterns

Reference figures by number, not name
Reference the proper parts of the IRI patterns
Fixed typos
Some reformatting
Added subsections where needed

Working on fixing this.


v4.1.0

Description
Extend support for external storage and notifier config for all the operations.
v4.1.0

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

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

Checklist:

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

Signed off.


Timeline and weights update

Conflicts preventing merger.

Still shows a conflict.

@DavidAJohnston  I forgot to pull before push so probably because someone edited the file with status at the very top. Could you please resolve the conflict or should I make a new PR?


how do you show the "Copied!" tooltip

In the demos I see a "Copied!" tooltip flashing but no extra code that seems to do that.
In my implementation at least I don't get that tooltip.
my code (ReactJS with browserify) looks something like this:
var Clipboard = require('clipboard');
var MyComponent = React.createClass({
...
componentDidMount() {
        this.userIdClipboard = new Clipboard('#userIdBox');
    },
render() {
   return( ....

[{vid.performerId}]
);
  }
}

What am I missing or is a bit of extra code needed?

Tooltips are not included in the library. You can check the website's source code for some inspiration: https://github.com/zenorocha/clipboard.js/tree/gh-pages/assets/scripts

I just wrote an example using Bootstrap's tooltip: http://stackoverflow.com/questions/37381640/tooltips-highlight-animation-with-clipboard-js-click/37395225

@zenorocha you should really add this to the front page docs.  A lot of people use Bootstrap, and this took me over an hour to find!

Ultimately I would even just put this inside the library or provide an option to do so.

Finally - used the advices here.
I had to adjust to React and that was a bit tricky but it works 😄
Thanks