text:
{Linked:Bug11228198} [Adaptive Cards > Designer] - Screen Reader is not announcing the descriptive information while navigating to the 'Next or Previous' button.

Target Platforms
Other
SDK Version
1.6
Application Name
Adaptive Cards
Problem Description
Test Environment:
URL: https://adaptivecards.io/designer/
OS Version: 23H2 (OS Build 25992.1000)
Browser Version: Version 121.0.2220.3 (Official build) dev (64-bit)
Screen Reader: Narrator
Pre-Requisite:
Run the below attached JSON file under 'Copy Card Payload editor.'
Repro Steps:

Open the above URL on the EDGE Dev browser.
Run the Json file.
Navigate to the Preview mode and press enter key to activate it.
Press tab key and navigate to 'Next and Previous' button and observe the issue.

Actual Result:
While navigating to 'Next or Previous' button, screen reader is not announcing descriptive information for the same. It is announcing as 'Next button' or 'Previous' button.
Also, after activating next or previous button screen reader is not conveying the descriptive information about the changes. It is not announcing the information about the changed slide.
Expected Result:
Screen Reader should announce the descriptive information about the 'Next and Previous' button. After activating it, screen reader should convey the information as 'Slide 2 Next button'.
Also, it should announce the image name or slide infromation when user activates the next and previous button.
User Impact:
Users who are dependent on screen readers are getting misguided if Screen reader (Narrator) is narrating incorrect information on invoking the 'Previous (<)' and 'Next (>)' buttons present in the "Hi there! I'm Icebreaker" card.
WCAG Reference:
Understanding Success Criterion 1.3.1: Info and Relationships | WAI | W3C
"Have feedback to share on Bugs? Please help fill Trusted Tester Bug Feedback (office.com) “,
Screenshots
https://github.com/microsoft/AdaptiveCards/assets/95913748/b4900f7a-5c1b-43a9-a4b8-15e3a4829d71

Card JSON
{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2",
    "msTeams": {
        "width": "full"
    },
    "body": [
        {
            "type": "TextBlock",
            "text": "Hi there! I'm Icebreaker.",
            "wrap": true,
            "weight": "Bolder",
            "size": "Large"
        },
        {
            "type": "TextBlock",
            "text": "Hi IceBreaker A11y Team! Pranav . just added me to this team.",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "I'm Icebreaker, and I'll be helping you meet more people across your organization by randomly pairing you with someone new every week or month. You'll build rich connections, learn more about the people on this channel, and increase your social capital. Its a win-win-win situation!",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Want to learn more about this application? Take a quick tour.",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Great! Here are some of the things that Ice Breaker can help you with. Feel free to give it a try!",
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "verticalContentAlignment": "Center",
                    "width": "auto",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.ToggleVisibility",
                                    "iconUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAS1BMVEX///8zMzMfHx+GhoYcHByIiIiEhIR+fn4XFxcgICDLy8sqKiotLS37+/soKCgkJCRdXV1sbGy3t7cNDQ3z8/PS0tKnp6dUVFSOjo78B79mAAACA0lEQVR4nO3da27CMBBFYUIepEALfXf/K22rCkj4W1mWzz3fCjzy2DOOQd5sJEmSJEmSJEmSJEmSJEkF7Hfn55fagyjpaz4cD8P5sfY4ihmH7tdpV3sgpYzb7s/rW+2hlNFfAuyGfe2xFDFdA+zm99qDKWG8BdgNtQdTQr8IcP6oPZoClgEOfe3RFNAPtwC3Y+3RFDDSZ3BaBjjVHk0BqxQlzuAqRfFrEJmi9AAny0Tj8Cm6DHCLDxC/BokzyG/VlilK3EVt1VqHr4O2aq3Dp2jUiZ6/BpEpmhQgP0WJAUalKDNAW7XG8U/0Sa0askzYqrVuimrViJsMPkW9fGkdfg3yWzUvXxpnq9Y6L19ah09R/Ik+q1VDpmhSgMg1aKvWul1SgMgysZ/ha3AzPV0DPBF30Z8kPVwCPH7WHksZ/DlcrUNmiPi9NODzYUBPE/D5Yn22eOCHmJCozBDx32nuvrXxZxGaqAFFA39vkZeoASHyExX5cdjDFENCA0f/XVteXeTvqJ76WxVQNBIaOPovbPIaOOYs4v9/GFE0AkJMWIs2cABhDRy1aHhtAxBQNLy2IQgrGtRTv9c2AAFr0WsbgrS6CN1RbeAAAopGQgPntQ1AQNHw2oYA/3ZewPuHqx11QL5hGfAOacBbsgHvAQe86RzwLrckSZIkSZIkSZIkSZIk/d83X50PsD0H9F4AAAAASUVORK5CYII=",
                                    "tooltip": "Previous",
                                    "targetElements": [
                                        "imageToToggle1",
                                        "imageToToggle2",
                                        "textToToogle1",
                                        "textToToogle1-1",
                                        "textToToggleWelcomeFooter",
                                        "textToToogle2-1",
                                        "textToToggleMatchFooter",
                                        "textToToogle2"
                                    ]
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "auto",
                    "items": [
                        {
                            "type": "Image",
                            "url": "https://icebreaker123.blob.core.windows.net/images/teams2.png",
                            "id": "imageToToggle1",
                            "altText": "Expand your social circle"
                        },
                        {
                            "type": "Image",
                            "url": "https://icebreaker123.blob.core.windows.net/images/teams1.png",
                            "id": "imageToToggle2",
                            "isVisible": false,
                            "altText": "Setup a meeting with your new team mate"
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "auto",
                    "verticalContentAlignment": "Center",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.ToggleVisibility",
                                    "iconUrl": "https://icons.veryicon.com/png/o/miscellaneous/commonly-used-icon-1/angle-brackets.png",
                                    "tooltip": "Next",
                                    "targetElements": [
                                        "imageToToggle1",
                                        "imageToToggle2",
                                        "textToToogle1",
                                        "textToToogle1-1",
                                        "textToToggleWelcomeFooter",
                                        "textToToogle2-1",
                                        "textToToggleMatchFooter",
                                        "textToToogle2"
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "text": "Expand your social circle",
            "wrap": true,
            "size": "Large",
            "weight": "Bolder",
            "id": "textToToogle1"
        },
        {
            "type": "TextBlock",
            "text": "Every week or month, I'll pair you with someone new. If you have the inclination that week, you can meet up, grab a coffee or lunch, and connect!",
            "wrap": true,
            "id": "textToToogle1-1"
        },
        {
            "type": "TextBlock",
            "text": "Look out for another message in which I'll pair you with your first match.",
            "wrap": true,
            "id": "textToToggleWelcomeFooter"
        },
        {
            "type": "TextBlock",
            "text": "Setup a meeting with your new team mate!",
            "wrap": true,
            "size": "Large",
            "weight": "Bolder",
            "id": "textToToogle2",
            "isVisible": false
        },
        {
            "type": "TextBlock",
            "text": "After matched with a teammate, you will be given option to set up a meeting or chat with your co-worker!",
            "wrap": true,
            "id": "textToToogle2-1",
            "isVisible": false
        },
        {
            "type": "TextBlock",
            "text": "Pause matches whenever you need. Too busy that week? Out of the office? No problem. Just click the button at anytime. Don't forget to un-pause when you're back",
            "wrap": true,
            "id": "textToToggleMatchFooter",
            "isVisible": false
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.OpenUrl",
                                    "title": "Open App",
                                    "url": "${openAppURL}"
                                }
                            ]
                        }
                    ],
                    "width": "120px"
                },
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.OpenUrl",
                                    "title": "Configure",
                                    "url": "${configureUrl}"
                                }
                            ]
                        }
                    ],
                    "width": "150px"
                }
            ]
        }
    ]
}

Sample Code Language
No response
Sample Code
No response

Hi @vagpt,
This narrator behavior appears to be a card authoring issue. In schema 1.6, we introduced a Carousel element that properly handles this behavior. Action.ToggleVisibility should not be used for this scenario.
Let me know if you have any questions!

authors: anna-dingler vagpt


text:
[Main] Update Tests to support upcoming change in nevware21/tsutils dumpObj …

…to better support JSON stringify and handle PURE mcomments

@microsoft-github-policy-service agree

source: gharchive/pull-request

repo: microsoft/ApplicationInsights-JS

license: MIT

license_type: permissive

license_source: github-api


text:
No mongo activities tracked in app insights

package.json:
 "applicationinsights": "^2.3.6",
"mongoose": "^6.6.1",

I am connecting my cosmosdb for mongodb API throught the connection string mongodb://xxx-cosmosdb-beta:xxxx and after setting up the app insights client like:
 AppInsights.setup(connectionString)
        .setAutoDependencyCorrelation(true)
        .setAutoCollectRequests(true)
        .setAutoCollectPerformance(true, true)
        .setAutoCollectExceptions(true)
        .setAutoCollectDependencies(true)
        .setAutoCollectConsole(true)
        .setUseDiskRetryCaching(true)
        .setSendLiveMetrics(true)
        .start();

There is no mongo activities shows in my transaction request as dependencies
Can anyone help me on this?

@ALexander4295502 you can take a look at supported versions of MongoDB here, if you are using newer version of MongoDB you may consider to try out our latest SDK beta version, more info here

Thanks, @hectorhdzg the mongo server version of my cosmos db service is 4.2. I will try the beta SDK to see if the issue can be resolved.
btw, do you know when the preview version of the SDK can be GA with less limitations? Our team is

source: gharchive/issue


text:
kinfu crash when cover sensor

Using latest code on Azure-Kinect-Samples, with OpenCV 4.1.2. (Note that there is no issue tracker on that repo; it says to use this one.)
To reproduce:

start the opencv-kinfu sample
cover the sensor

The sample stops and prints the error:
[ERROR:0] global H:\OpenCV-4.1.2\sources\modules\core\src\ocl.cpp (3039)
cv::ocl::Kernel::set OpenCL: Kernel(fillPtsNrm)::set(arg_index=14, flags=260):
can't create cl_mem handle for passed UMat buffer (addr=0000004D17DAE480)

This is unexpected behavior. Covering the sensor to reset the tracking is an established action, as seen in demos of KinectFusion elsewhere.
(Bug may be in opencv code upstream but needs triage here to identify the cause.)

@timhutton hi tim, the sample code is simply using the opencv kinfu module, and the crash you mentioned is inside of opencv kinfu. You may better open this issue in opencv contrib github repo. https://github.com/opencv/opencv_contrib/issues

OK, thanks. Created: https://github.com/opencv/opencv_contrib/issues/2404

authors: rabbitdaxi timhutton

repo: microsoft/Azure-Kinect-Sensor-SDK

license: mit

license_source: bigquery


text:
Fail to get properties for one emulator blob

Storage Explorer Version: 1.21.0-dev
Build Number: 20210729.4
Branch: main
Platform/OS: Windows 10
Architecture: ia32
Azurite Version: 3.14.0
How Found: From running test cases
Regression From: Previous release (1.20.1)
Steps to Reproduce

Install and start Azurite 3.14.0.
Launch Storage Explorer -> Expand 'Local & Attached -> Storage Accounts -> (Emulator - Default Ports)(Key)'.
Right click the 'Blob Containers' node -> Create a blob container.
Upload one blob -> Right click the blob -> Click 'Properties...'.
Check whether succeed to get the properties.

Expected Experience
Succeed to get the properties.

Actual Experience
Fail to get the properties.

This is caused by upgrading to v12.6.0 Blob SDK.
https://github.com/Azure/Azurite/issues/977

@MRayermannMSFT
This issue doesn't reproduce when adding 'loose' flag.

authors: JasonYeMSFT v-xianya

repo: microsoft/AzureStorageExplorer


text:
There is no slash next to the URL/Path for one folder under file shares

Storage Explorer Version: 1.22.0-dev
Build Number: 20211106.4
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 18.04/MacOS Monterey 12.0.1
Architecture: ia32/x64
How Found: From running test cases
Regression From: Previous release (1.21.3)
Steps to Reproduce

Expand one storage account -> File Shares.
Create a file share -> Create a folder.
Right click the folder -> Click 'Copy Path' -> Paste the path to the clipboard
Check whether the path ends with a slash.

Expected Experience
The path ends with a slash.
Actual Experience
The path doesn't end with a slash.

Verified on the build main/20211109.2. Fixed.


text:
Latest version changes show an abnormal behaviour when using the Azure blob for PST ingestion in M365

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.28.0
Regression From
1.27.0
Architecture
x64
Storage Explorer Build Number
20230214.5
Platform
Windows
OS Version
Windows 11
Bug Description
Latest version changes show an abnormal behaviour when using the Azure blob for PST ingestion in M365, specifically connecting to the blob itself works but there is a warning showing with text The SAS used to connect to this blob container has expired which is actually misleading.
Steps to Reproduce

Go to your M365 tenant on https://compliance.microsoft.com/informationgovernance?viewid=import
Create a new Import job
Go through the steps and click on Show network upload SAS URL and copy that in the clipboard
Start Microsoft Azure Storage Explorer
Right click on storage accounts and Connect to Azure Storage -> Blob container
Shared Access Signature URL and paste the URL in the clipboard
The connection will be created and if there is data there it is shown, however the following warning shows The SAS used to connect to this blob container has expired. which is not true
Tested in previous version v1.27.0 and the warning was not there

Actual Experience
It is just a misleading warning which is also not true as the SAS is not expired

Example of SAS key:
https://ac63fc63205940f1bc91e59.blob.core.windows.net/ingestiondata?sv=2015-04-05&sr=c&si=IngestionSasForAzCopy**202302240723170845**&sig=XYZblablaabc&se=**2023-03-30**T14%3A41%3A49Z
Expected Experience
No response
Additional Context
No response

I am also seeing this same issue. Older versions do not report the blob has expired, but the latest version does. I know the blob definitely hasn't expired yet.

@anepu @intrepidis thanks for opening this issue. Looking at the example SAS, I'm wondering about the expiration portion.
**2023-03-30**T14%3A41%3A49Z
Do y'all know where the * characters came from? Are those actually in the SAS URL the compliance portal gave you?
Also, can y'all please check that the clocks on your computer are at the correct time?

Nevermind all those previous questions. We also found this bug a two weeks ago: https://github.com/microsoft/AzureStorageExplorer/issues/6586
We have a fix ready for 1.29. Do all SAS tokens that this compliance portal generate have this issue?

@MRayermannMSFT according to my testing, yes, all SAS tokens generated from https://compliance.microsoft.com/informationgovernance?viewid=import have this behaviour. I've tested with multiple generated SAS tokens on different days on my tenant and I get the same and I got the same in a different tenant. See below latest example with the signature obfuscated:
IngestionSasForAzCopy202302240723170845&sig=this_is_a_dummy_signature&se=2023-04-06T06%3A57%3A21Z

Im having the same issue - any SaaS token will say "The SAS used to connect to this blob container has expired" Im unable to import the PST's from the Blob storage to a mailbox.
| Error |   |   |   |   |   |   |
-- | -- | -- | -- | -- | -- | -- | -- | --
2 | The PST (Test.pst) could not   be found in the storage account |
3 | The PST (archive.pst) could not be   found in the storage account |
4 | The PST (archive1.pst) could not be   found in the storage account |
5 | The PST (archive2.pst) could not be   found in the storage account |

I'm having the same issue - any SaaS token will say "The SAS used to connect to this blob container has expired" Im unable to import the PST's from the Blob storage to a mailbox.

This issue would not cause any issues beyond the message wrongly being displayed. Please double check that you put your files in blob storage correctly.

@MRayermannMSFT according to my testing, yes, all SAS tokens generated...have this behavior

Thanks for confirming. We're going to hotfix our fix for this.

1.28.1 has been shipped. If you are running 1.28.0 you should already see an update notification. We'll release to other versions in a few days. As always, releases can be found here for manual download: https://github.com/microsoft/AzureStorageExplorer/releases

authors: MRayermannMSFT anepu intrepidis t00lxtz


text:
The current revision bf11a49 fails to build: Cannot find source file:      ../../../../include/bitnet-lut-kernels.h

CMake Error at 3rdparty/llama.cpp/ggml/src/CMakeLists.txt:1324 (add_library):
  Cannot find source file:

    ../../../../include/bitnet-lut-kernels.h

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
  .ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
  .f95 .f03 .hip .ispc

CMake Error at 3rdparty/llama.cpp/ggml/src/CMakeLists.txt:1324 (add_library):
  No SOURCES given to target: ggml

I ran into the same problem. I believe it is caused by a bad symbolic link in the llama.cpp fork, at https://github.com/Eddie-Wang1120/llama.cpp/tree/814d0ee5440495255a4e3a5a8abf001b27b539d4/spm-headers.
I'm not sure why this repo relies on a fork, but that fork is not over 400 commits behind the head of llama.cpp development efforts.

We had to roll a patch on top of the custom llama.cpp/ggml used as a submodule in this repo:
https://github.com/eugenehp/bitnet-cpp-rs/blob/main/bitnet-cpp-sys/patches/llama.cpp.patch#L11

This repository is broken as it is now.

The header file include/bitnet-lut-kernels.h is generated by utils/codegen_tl*.py and should be generated automatically if setup_env.py is executed correctly. Would it be possible to check if each step was executed successfully and look at the error logs in the logs/ folder?

Hi @potassiummmm ... I've setup the environment in a clean Docker container running on my Mac M1. Below is the full output of my terminal session that shows me following the steps from the README, as well as the failing cmake with the contents of the logs/compile.log file. Let me know if you need more ...
root@bitnet-rs-template:/app/bitnet.cpp# git clone --recursive https://github.com/microsoft/BitNet.git
Cloning into 'BitNet'...
remote: Enumerating objects: 124, done.
remote: Counting objects: 100% (121/121), done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 124 (delta 52), reused 85 (delta 36), pack-reused 3 (from 1)
Receiving objects: 100% (124/124), 1.88 MiB | 4.64 MiB/s, done.
Resolving deltas: 100% (52/52), done.
Submodule '3rdparty/llama.cpp' (https://github.com/Eddie-Wang1120/llama.cpp.git) registered for path '3rdparty/llama.cpp'
Cloning into '/app/bitnet.cpp/BitNet/3rdparty/llama.cpp'...
remote: Enumerating objects: 25578, done.
remote: Counting objects: 100% (5117/5117), done.
remote: Compressing objects: 100% (236/236), done.
remote: Total 25578 (delta 5017), reused 4881 (delta 4881), pack-reused 20461 (from 1)
Receiving objects: 100% (25578/25578), 54.32 MiB | 16.82 MiB/s, done.
Resolving deltas: 100% (18475/18475), done.
Submodule path '3rdparty/llama.cpp': checked out '814d0ee5440495255a4e3a5a8abf001b27b539d4'
Submodule 'kompute' (https://github.com/nomic-ai/kompute.git) registered for path '3rdparty/llama.cpp/ggml/src/kompute'
Cloning into '/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/kompute'...
remote: Enumerating objects: 9118, done.
remote: Counting objects: 100% (253/253), done.
remote: Compressing objects: 100% (148/148), done.
remote: Total 9118 (delta 119), reused 184 (delta 95), pack-reused 8865 (from 1)
Receiving objects: 100% (9118/9118), 17.59 MiB | 16.94 MiB/s, done.
Resolving deltas: 100% (5726/5726), done.
Submodule path '3rdparty/llama.cpp/ggml/src/kompute': checked out '4565194ed7c32d1d2efa32ceab4d3c6cae006306'
root@bitnet-rs-template:/app/bitnet.cpp# cd BitNet
root@bitnet-rs-template:/app/bitnet.cpp/BitNet# conda create -n bitnet-cpp python=3.9
Channels:
 - defaults
Platform: linux-aarch64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/conda/envs/bitnet-cpp

  added / updated specs:
    - python=3.9

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pip-24.2                   |   py39hd43f75c_0         2.2 MB
    python-3.9.20              |       h4bb2201_1        24.7 MB
    setuptools-75.1.0          |   py39hd43f75c_0         1.6 MB
    wheel-0.44.0               |   py39hd43f75c_0         111 KB
    ------------------------------------------------------------
                                           Total:        28.6 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-aarch64::_libgcc_mutex-0.1-main
  _openmp_mutex      pkgs/main/linux-aarch64::_openmp_mutex-5.1-51_gnu
  ca-certificates    pkgs/main/linux-aarch64::ca-certificates-2024.9.24-hd43f75c_0
  ld_impl_linux-aar~ pkgs/main/linux-aarch64::ld_impl_linux-aarch64-2.40-h48e3ba3_0
  libffi             pkgs/main/linux-aarch64::libffi-3.4.4-h419075a_1
  libgcc-ng          pkgs/main/linux-aarch64::libgcc-ng-11.2.0-h1234567_1
  libgomp            pkgs/main/linux-aarch64::libgomp-11.2.0-h1234567_1
  libstdcxx-ng       pkgs/main/linux-aarch64::libstdcxx-ng-11.2.0-h1234567_1
  ncurses            pkgs/main/linux-aarch64::ncurses-6.4-h419075a_0
  openssl            pkgs/main/linux-aarch64::openssl-3.0.15-h998d150_0
  pip                pkgs/main/linux-aarch64::pip-24.2-py39hd43f75c_0
  python             pkgs/main/linux-aarch64::python-3.9.20-h4bb2201_1
  readline           pkgs/main/linux-aarch64::readline-8.2-h998d150_0
  setuptools         pkgs/main/linux-aarch64::setuptools-75.1.0-py39hd43f75c_0
  sqlite             pkgs/main/linux-aarch64::sqlite-3.45.3-h998d150_0
  tk                 pkgs/main/linux-aarch64::tk-8.6.14-h987d8db_0
  tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
  wheel              pkgs/main/linux-aarch64::wheel-0.44.0-py39hd43f75c_0
  xz                 pkgs/main/linux-aarch64::xz-5.4.6-h998d150_1
  zlib               pkgs/main/linux-aarch64::zlib-1.2.13-h998d150_1

Proceed ([y]/n)? y

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate bitnet-cpp
#
# To deactivate an active environment, use
#
#     $ conda deactivate

root@bitnet-rs-template:/app/bitnet.cpp/BitNet# conda activate bitnet-cpp

CondaError: Run 'conda init' before 'conda activate'

root@bitnet-rs-template:/app/bitnet.cpp/BitNet# conda init
no change     /opt/conda/condabin/conda
no change     /opt/conda/bin/conda
no change     /opt/conda/bin/conda-env
no change     /opt/conda/bin/activate
no change     /opt/conda/bin/deactivate
no change     /opt/conda/etc/profile.d/conda.sh
no change     /opt/conda/etc/fish/conf.d/conda.fish
no change     /opt/conda/shell/condabin/Conda.psm1
no change     /opt/conda/shell/condabin/conda-hook.ps1
no change     /opt/conda/lib/python3.11/site-packages/xontrib/conda.xsh
no change     /opt/conda/etc/profile.d/conda.csh
modified      /root/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

root@bitnet-rs-template:/app/bitnet.cpp/BitNet# . "$(conda info --base)/etc/profile.d/conda.sh"
root@bitnet-rs-template:/app/bitnet.cpp/BitNet# conda activate bitnet-cpp
(bitnet-cpp) root@bitnet-rs-template:/app/bitnet.cpp/BitNet# pip install -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/cpu
Collecting numpy~=1.26.4 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 1))
  Downloading numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (62 kB)
Collecting sentencepiece~=0.2.0 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 2))
  Downloading sentencepiece-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.7 kB)
Collecting transformers<5.0.0,>=4.45.1 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading transformers-4.46.2-py3-none-any.whl.metadata (44 kB)
Collecting gguf>=0.1.0 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 4))
  Downloading gguf-0.10.0-py3-none-any.whl.metadata (3.5 kB)
Collecting protobuf<5.0.0,>=4.21.0 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 5))
  Downloading protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl.metadata (541 bytes)
Collecting torch~=2.2.1 (from -r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (86.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.6/86.6 MB 27.8 MB/s eta 0:00:00
Collecting filelock (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting huggingface-hub<1.0,>=0.23.2 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading huggingface_hub-0.26.2-py3-none-any.whl.metadata (13 kB)
Collecting packaging>=20.0 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pyyaml>=5.1 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.1 kB)
Collecting regex!=2019.12.17 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (40 kB)
Collecting requests (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting safetensors>=0.4.1 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading safetensors-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (3.8 kB)
Collecting tokenizers<0.21,>=0.20 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading tokenizers-0.20.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.7 kB)
Collecting tqdm>=4.27 (from transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading tqdm-4.67.0-py3-none-any.whl.metadata (57 kB)
Collecting typing-extensions>=4.8.0 (from torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting sympy (from torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading sympy-1.13.3-py3-none-any.whl.metadata (12 kB)
Collecting networkx (from torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading https://download.pytorch.org/whl/networkx-3.2.1-py3-none-any.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 26.0 MB/s eta 0:00:00
Collecting jinja2 (from torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fsspec (from torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading fsspec-2024.10.0-py3-none-any.whl.metadata (11 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (4.0 kB)
Collecting charset-normalizer<4,>=2 (from requests->transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests->transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests->transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading urllib3-2.2.3-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests->transformers<5.0.0,>=4.45.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_legacy_llama.txt (line 3))
  Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy->torch~=2.2.1->-r 3rdparty/llama.cpp/requirements/requirements-convert_hf_to_gguf.txt (line 3))
  Downloading https://download.pytorch.org/whl/mpmath-1.3.0-py3-none-any.whl (536 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 21.3 MB/s eta 0:00:00
Downloading numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 25.1 MB/s eta 0:00:00
Downloading sentencepiece-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 28.7 MB/s eta 0:00:00
Downloading transformers-4.46.2-py3-none-any.whl (10.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.0/10.0 MB 28.4 MB/s eta 0:00:00
Downloading gguf-0.10.0-py3-none-any.whl (71 kB)
Downloading protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl (293 kB)
Downloading huggingface_hub-0.26.2-py3-none-any.whl (447 kB)
Downloading fsspec-2024.10.0-py3-none-any.whl (179 kB)
Downloading packaging-24.2-py3-none-any.whl (65 kB)
Downloading PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (720 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 720.9/720.9 kB 24.7 MB/s eta 0:00:00
Downloading regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (782 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 782.0/782.0 kB 22.6 MB/s eta 0:00:00
Downloading safetensors-0.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442 kB)
Downloading tokenizers-0.20.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 23.6 MB/s eta 0:00:00
Downloading tqdm-4.67.0-py3-none-any.whl (78 kB)
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading filelock-3.16.1-py3-none-any.whl (16 kB)
Downloading jinja2-3.1.4-py3-none-any.whl (133 kB)
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading sympy-1.13.3-py3-none-any.whl (6.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 29.0 MB/s eta 0:00:00
Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
Downloading charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (140 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (21 kB)
Downloading urllib3-2.2.3-py3-none-any.whl (126 kB)
Installing collected packages: sentencepiece, mpmath, urllib3, typing-extensions, tqdm, sympy, safetensors, regex, pyyaml, protobuf, packaging, numpy, networkx, MarkupSafe, idna, fsspec, filelock, charset-normalizer, certifi, requests, jinja2, gguf, torch, huggingface-hub, tokenizers, transformers
Successfully installed MarkupSafe-3.0.2 certifi-2024.8.30 charset-normalizer-3.4.0 filelock-3.16.1 fsspec-2024.10.0 gguf-0.10.0 huggingface-hub-0.26.2 idna-3.10 jinja2-3.1.4 mpmath-1.3.0 networkx-3.2.1 numpy-1.26.4 packaging-24.2 protobuf-4.25.5 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.3 safetensors-0.4.5 sentencepiece-0.2.0 sympy-1.13.3 tokenizers-0.20.3 torch-2.2.2 tqdm-4.67.0 transformers-4.46.2 typing-extensions-4.12.2 urllib3-2.2.3
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
(bitnet-cpp) root@bitnet-rs-template:/app/bitnet.cpp/BitNet# python setup_env.py --hf-repo HF1BitLLM/Llama3-8B-1.58-100B-tokens -q i2_s
INFO:root:Compiling the code using CMake.
ERROR:root:Error occurred while running command: Command '['cmake', '--build', 'build', '--config', 'Release']' returned non-zero exit status 2., check details in logs/compile.log
(bitnet-cpp) root@bitnet-rs-template:/app/bitnet.cpp/BitNet# cat logs/compile.log
[  1%] Building C object 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/ggml.c.o
cc1: warning: command-line option ‘-fpermissive’ is valid for C++/ObjC++ but not for C
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12514:6: warning: no previous prototype for ‘float_act_quant’ [-Wmissing-prototypes]
12514 | void float_act_quant(const int K, float* B, int32_t* dst, float* act_scale) {
      |      ^~~~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12530:6: warning: no previous prototype for ‘weight_quant_f32’ [-Wmissing-prototypes]
12530 | void weight_quant_f32(const int M, const int K, float* A, int32_t* dst, float* i2_scale) {
      |      ^~~~~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c: In function ‘weight_quant_f32’:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12545:35: warning: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Wdouble-promotion]
12545 |             dst[i] = (double)A[i] * i2_scale[0] > 0 ? 1 : -1;
      |                                   ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c: At top level:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12550:6: warning: no previous prototype for ‘weight_quant_f16’ [-Wmissing-prototypes]
12550 | void weight_quant_f16(const int M, const int K, uint16_t* A, int32_t* dst, float* i2_scale) {
      |      ^~~~~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c: In function ‘weight_quant_f16’:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12566:37: warning: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Wdouble-promotion]
12566 |             dst[i] = (double)temp_A * i2_scale[0] > 0 ? 1 : -1;
      |                                     ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c: At top level:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12571:6: warning: no previous prototype for ‘matrixMultiply_int’ [-Wmissing-prototypes]
12571 | void matrixMultiply_int(const int M, const int N, const int K, const int32_t* A, const int32_t* B, int32_t* C) {
      |      ^~~~~~~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c: In function ‘ggml_compute_forward_mul_mat’:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12660:44: warning: initialization of ‘bitnet_float_type *’ {aka ‘float *’} from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types]
12660 |         bitnet_float_type * bitnet_f_ptr = wdata;
      |                                            ^~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12664:25: warning: pointer targets in initialization of ‘int8_t *’ {aka ‘signed char *’} from ‘char *’ differ in signedness [-Wpointer-sign]
12664 |         int8_t * qlut = cur_wdata;
      |                         ^~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12675:42: warning: passing argument 1 of ‘ggml_bitnet_transform_tensor’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
12675 |             ggml_bitnet_transform_tensor(src0);
      |                                          ^~~~
In file included from /app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:50:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/../../../../include/ggml-bitnet.h:35:65: note: expected ‘struct ggml_tensor *’ but argument is of type ‘const struct ggml_tensor *’
   35 | GGML_API void ggml_bitnet_transform_tensor(struct ggml_tensor * tensor);
      |                                            ~~~~~~~~~~~~~~~~~~~~~^~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12679:51: warning: passing argument 2 of ‘ggml_fp32_to_fp16_row’ from incompatible pointer type [-Wincompatible-pointer-types]
12679 |                 ggml_fp32_to_fp16_row(src1->data, bitnet_f_ptr, ne10 * ne11);
      |                                                   ^~~~~~~~~~~~
      |                                                   |
      |                                                   bitnet_float_type * {aka float *}
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:541:59: note: expected ‘ggml_fp16_t *’ {aka ‘short unsigned int *’} but argument is of type ‘bitnet_float_type *’ {aka ‘float *’}
  541 | void ggml_fp32_to_fp16_row(const float * x, ggml_fp16_t * y, int64_t n) {
      |                                             ~~~~~~~~~~~~~~^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12722:50: warning: passing argument 1 of ‘ggml_fp16_to_fp32_row’ from incompatible pointer type [-Wincompatible-pointer-types]
12722 |                 ggml_fp16_to_fp32_row(act_output + dst_offset, (float *) dst->data + dst_offset, ne01 / n_tile_num);
      |                                       ~~~~~~~~~~~^~~~~~~~~~~~
      |                                                  |
      |                                                  bitnet_float_type * {aka float *}
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:535:48: note: expected ‘const ggml_fp16_t *’ {aka ‘const short unsigned int *’} but argument is of type ‘bitnet_float_type *’ {aka ‘float *’}
  535 | void ggml_fp16_to_fp32_row(const ggml_fp16_t * x, float * y, int64_t n) {
      |                            ~~~~~~~~~~~~~~~~~~~~^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12712:23: warning: unused variable ‘qlut_offset’ [-Wunused-variable]
12712 |             const int qlut_offset       = 0;
      |                       ^~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12702:19: warning: unused variable ‘lut_tile_size’ [-Wunused-variable]
12702 |         const int lut_tile_size    = lut_size / n_tile_num;
      |                   ^~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12666:29: warning: unused variable ‘lut_biases’ [-Wunused-variable]
12666 |         bitnet_float_type * lut_biases = (bitnet_float_type *) (lut_scales + wt->lut_scales_size * ne11);
      |                             ^~~~~~~~~~
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/ggml.c:12653:19: warning: unused variable ‘bits’ [-Wunused-variable]
12653 |         const int bits = ggml_bitnet_get_type_bits(type);
      |                   ^~~~
[  2%] Building C object 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/ggml-alloc.c.o
cc1: warning: command-line option ‘-fpermissive’ is valid for C++/ObjC++ but not for C
[  3%] Building CXX object 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/ggml-backend.cpp.o
[  4%] Building C object 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/ggml-quants.c.o
cc1: warning: command-line option ‘-fpermissive’ is valid for C++/ObjC++ but not for C
[  5%] Building CXX object 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/__/__/__/__/src/ggml-bitnet-mad.cpp.o
In file included from /app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-quants.h:4,
                 from /app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:5:
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:154:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  154 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:175:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  175 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:196:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  196 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:261:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  261 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:288:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  288 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/3rdparty/llama.cpp/ggml/src/./ggml-common.h:305:16: warning: ISO C++ prohibits anonymous structs [-Wpedantic]
  305 |         struct {
      |                ^
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp: In function ‘size_t quantize_i2_s(const float*, void*, int64_t, int64_t, const float*)’:
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:46:100: warning: unused parameter ‘quant_weights’ [-Wunused-parameter]
   46 | size_t quantize_i2_s(const float * src, void * dst, int64_t nrow, int64_t n_per_row, const float * quant_weights) {
      |                                                                                ~~~~~~~~~~~~~~^~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp: In function ‘void ggml_vec_dot_i2_i8_s(int, float*, size_t, const void*, size_t, const void*, size_t, int)’:
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:95:28: warning: cast from type ‘const void*’ to type ‘uint8_t*’ {aka ‘unsigned char*’} casts away qualifiers [-Wcast-qual]
   95 |     const uint8_t *    x = (uint8_t *)vx;
      |                            ^~~~~~~~~~~~~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:96:28: warning: cast from type ‘const void*’ to type ‘int8_t*’ {aka ‘signed char*’} casts away qualifiers [-Wcast-qual]
   96 |     const int8_t  *    y = (int8_t *)vy;
      |                            ^~~~~~~~~~~~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:94:52: warning: unused parameter ‘bs’ [-Wunused-parameter]
   94 | void ggml_vec_dot_i2_i8_s(int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) {
      |                                             ~~~~~~~^~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:94:80: warning: unused parameter ‘bx’ [-Wunused-parameter]
   94 | void ggml_vec_dot_i2_i8_s(int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) {
      |                                                                         ~~~~~~~^~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:94:108: warning: unused parameter ‘by’ [-Wunused-parameter]
   94 | void ggml_vec_dot_i2_i8_s(int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) {
      |                                                                                ~~~~~~~^~
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:94:116: warning: unused parameter ‘nrc’ [-Wunused-parameter]
   94 | void ggml_vec_dot_i2_i8_s(int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) {
      |                                                                                ~~~~^~~
during GIMPLE pass: vect
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp: In function ‘size_t quantize_i2_s(const float*, void*, int64_t, int64_t, const float*)’:
/app/bitnet.cpp/BitNet/src/ggml-bitnet-mad.cpp:46:8: internal compiler error: in vect_transform_reduction, at tree-vect-loop.cc:7457
   46 | size_t quantize_i2_s(const float * src, void * dst, int64_t nrow, int64_t n_per_row, const float * quant_weights) {
      |        ^~~~~~~~~~~~~
0x18e9327 internal_error(char const*, ...)
        ???:0
0x6a6c8f fancy_abort(char const*, int, char const*)
        ???:0
0xf6c43b vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, gimple**, _slp_tree*)
        ???:0
0x18aedcf vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
        ???:0
0xf79bcf vect_transform_loop(_loop_vec_info*, gimple*)
        ???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
gmake[2]: *** [3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/build.make:132: 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/__/__/__/__/src/ggml-bitnet-mad.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:759: 3rdparty/llama.cpp/ggml/src/CMakeFiles/ggml.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
(bitnet-cpp) root@bitnet-rs-template:/app/bitnet.cpp/BitNet#

@potassiummmm ...  the output from generate_build_files.log seems like it might be relevant.
PS. Thanks for your help.
# cat generate_build_files.log
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found Git: /usr/bin/git (found version "2.39.5")
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- OpenMP found
-- Using llamafile
-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
-- CMAKE_SYSTEM_PROCESSOR: aarch64
-- ARM detected
-- Performing Test COMPILER_SUPPORTS_FP16_FORMAT_I3E
-- Performing Test COMPILER_SUPPORTS_FP16_FORMAT_I3E - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: /app/bitnet.cpp/BitNet/build

It seems to be a compiler bug, try upgrading gcc/g++ or changing compiler to clang/clang++.

It seems to be a compiler bug, try upgrading gcc/g++ or changing compiler to clang/clang++.

Duh ... I didn't notice that the install for clang didn't set it as the default CC and CXX. Thanks for catching that.
I'm up and running now and will leave it to the OP to decide if this can be closed. Thanks again!

authors: eugenehp noppej potassiummmm yurivict

repo: microsoft/BitNet


text:
invalid value for Date Prompt will cause infinite loop

Describe the bug
When I configure the default value as "30" for Date Prompt, it is a invalid value. But I this will cause an infinite loop when I chat with the bot.

Version

Browser

[x] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[x] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior

Screenshots

Additional context

@xhr0804, it is not related the value property, if you just type in 30 when it prompts, it will also let you to try again, because 30 is not recognized as a valued DateTime type, maybe you can try 30 mins or some other value string for DateTime.

@luhan2017 Yes, setting a valid value will be OK. It is just a minor problem. I just think if user types an invalid value, the dialog should either be able to collect the correct information during the conversation, or give an error message

repo: microsoft/BotFramework-Composer


text:
docs: Update download links to match latest version

Description
I'm proposing to change the download reference to the latest releases path on Github (URL: BotFramework-Composer/releases/latest).
Currently, the individual download links for Windows, Mac and Linux use an aka.ms reference which is still pointing to version 1.0.0. It would require continuous updating of the aka.ms links to always refer to the latest releases.
I believe pointing directly to the latest releases on Github would be more manageable in the long run, but feel free to let me know if updating the aka.ms links is still preferred for other reasons.
#minor

Coverage remained the same at 43.036% when pulling 0eb0f69a08b2962a6b6851d7b864c0d34e5b7cb7 on bartbilliet:patch-1 into 50bfc96d10f8b4e7d6cfee0e7b216ebe031fc870 on microsoft:master.

hey @bartbilliet can we keep the direct links and add a link to releases/latest? we will be better about updating those aka.ms links.

@cwhitten Just making sure I understand well, your proposal is to keep the different aka.ms links, but change their target URL so that they refer to a dynamic releases/latest path for every OS? I thought about that, but the distributable filenames include the version number, so I think the target path of the aka.ms link would somehow still need to get updated at every release?

Or did you try to say something else?
(e.g. Keep the aka.ms links as they are in the current docs, but add a line of text indicating something along the lines "Click here to learn about our most recent releases of Composer"..?)

@bartbilliet I'm saying we should keep the links as is (we'll be better updating them with as we release new stable version) and add a link to releases/latest in the docs

@cwhitten I committed an update based on your feedback. Feel free to make adjustments, or close the PR if you believe the link to releases/latest is better added on different docs.microsoft.com pages (The repo composer-docs-pr is private).

authors: bartbilliet coveralls cwhitten


text:
[MAS3.2.1] [Screen Reader-Live Chat] When the user selected the “Edit ngrok setting” keyboard focus is not lands on the Path to ngrok text field

Actual Result:
When the user selected the “Edit ngrok setting” keyboard focus is not lands on the Path to ngrok text field
When the user cancels the Emulator setting dialog focus is not lands on the type your message text field.
Expected Result:
When the user selected the “Edit ngrok setting” keyboard focus should be lands on the Path to ngrok text field.
When the user cancels the Emulator setting dialog focus should be lands on the type your message text field.
Note: When the user selects the edit ngrok setting, narrator focus is moves to hidden and reading as Document.
Repro Steps:

Open the Bot Framework V4 Emulator.
Welcome tab screen gets opened
Navigate to the Open a bot and select it
4.Open bot dialog gets opened and connect the bot
5.Live chat screen gets opened
6.Navigate to the “Edit ngrok setting control “using tab key
Observe the issue

User Impact:
Users who rely on keyboard navigation will be affected to navigate the control if keyboard focus is not lands on the expected control keyboard users will be affected.
Test Environment:
OS Build: Version 1903(OS Build 18362.239)
Browser: Edge
Application: Bot Framework V4 Emulator
MAS Reference Link:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={a4bbd37d-ee11-485e-b5c8-0539f0ac94b2}
MAS3.2.1_Ngrok.zip
MAS3.2.1_Ngrok cancel.zip
MAS3.2.1_Edit ngrok setting.zip

Verified in latest Bot emulator version -4.5.2-79718 .Issue got fixed hence we are closing this bug.

repo: microsoft/BotFramework-Emulator


text:
IE11 - intermittent gap at the bottom of the transcript above SendBox

As it turns out, this repros both for adaptive cards and markdown images. This is not isolated to
Repro steps:

Open Mock Bot in IE11
Type help
Press button: 'Show review using Adaptive Card'
Note the big gap on the transcript between the send box and the most recent message, the unordered list.

JSON causing this issue:
{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "Airports"
                        },
                        {
                            "type": "TextBlock",
                            "spacing": "None",
                            "size": "ExtraLarge",
                            "weight": "Bolder",
                            "text": "Sea-Tac"
                        },
                        {
                            "type": "TextBlock",
                            "spacing": "None",
                            "text": "3 ★★★☆☆ (856) · $$$$",
                            "isSubtle": true
                        },
                        {
                            "type": "TextBlock",
                            "size": "Small",
                            "text": "**Steve G. said** \"Another day, another airport.\"",
                            "wrap": true
                        }
                    ],
                    "width": 2
                },
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "Image",
                            "url": "https://upload.wikimedia.org/wikipedia/commons/2/23/Deltalax_%28cropped%29.jpg"
                        }
                    ],
                    "width": 1
                }
            ]
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "More Info",
            "url": "https://www.portseattle.org/sea-tac"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0",
    "speak": "three of five stars, 856 reviews, Extremely Expensive. Steve G said, \"Another day, another airport\""
}

Shortening the repro:

Type help to make sure the screen is filled with content
Type card review

The primary problem is AC set max-width to 100% on the ac-image, that's why the image on top-right is squashed.

If we set it to a non-percentage value, it will just works.
I am more convinced this is IE11 related layout issues in Adaptive Cards. Will try different previous versions and see if it produce same result.

This is related to the size of the image and the way AC render the image trigger a bug in IE11. IE11 calculate the height of the container box wrongly.
File an issue to Adaptive Card team, including few things:

Adaptive Card payload (JSON + image) with the problematic card
Repro of the issue outside of Web Chat (to clear our name)

You will need to show the "invisible height" of the container box

I have filed a bug with Adaptive Cards, and in the meantime I updated our Mock Bot with a smaller image so that this render error will not occur on Web Chat with Mock Bot. :)
https://github.com/compulim/BotFramework-MockBot/pull/16

I filed the issue with Adaptive Cards here: https://github.com/microsoft/AdaptiveCards/issues/3056

authors: compulim corinagum

repo: microsoft/BotFramework-WebChat


text:
tutorial dummies webchat starter

[Question]
I people, im so new on botframework, i am developer junior, I embebed the bot in the iframe default of web channel, i need embebed the bot andI need to pass information to validate the origin of whom I invoke the bot but i dont understand the the samples someone have a dummy tutorial
thans

Hi @joseali93, my recommendation is that you start with the first samples (01.a, 01.b, 02.a, etc), which are level 101 for implementing Web Chat. All you have to do is copy-paste the HTML and a little bit of JavaScript. The samples increase in difficulty as you increase the number, so starting at the beginning may be a good spot for you.
Otherwise, this repository is intended for users to file feature requests and bugs they find. We do not have the capacity right now to teach everyone who wants to learn Web Chat from the beginning. If you need support and have guided questions you want to ask, I recommend taking your questions to Stack Overflow. Please feel free to post other questions you have about developing your own features over there so the community at large may help out. If you need help with a Web Chat implementation, you can post a question to the Web Chat tag. Not that our team has Support Engineers that check Stack Overflow every day and can help with implementation questions. Thank you!


text:
fix qemu CVE-2020-15863

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[ ] The toolchain has been rebuilt successfully (or no changes were made to it)
[ ] The toolchain/worker package manifests are up-to-date
[ ] Any updated packages successfully build (or no packages were changed)
[ ] All package sources are available
[ ] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[ ] All source files have up-to-date hashes in the *.signatures.json files
[ ] sudo make go-tidy-all and sudo make go-test-coverage pass
[ ] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

What does the PR accomplish, why was it needed?
Change Log

Change
Change
Change

Does this affect the toolchain?

YES
NO
Associated issues

#xxxx

Links to CVEs

https://nvd.nist.gov/...

Test Methodology

Pipeline build id: xxxx

Hm, the bot should have applied the "Security" tag automatically. Let me see what's going on here.

@nicogbg: please fill in the summary, checkboxes, change log, etc. in the PRs description. We should be properly commenting each change we're doing.

authors: PawelWMS lpereira nicogbg

repo: microsoft/CBL-Mariner


text:
mouseData field of MOUSEINPUT structure is created as uint and does not allow specifying negative values.

Actual behavior
Type for mouseData field inside MOUSEINPUT structure is created as a uint.
Expected behavior
According to the documentation (https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members), we should be able to specify both positive and negative values to simulate forward or backward rotation of the wheel.
Repro steps

NativeMethods.txt content:

SendInput

Any of your own code that should be shared?
Below is the code generated for MOUSEINPUT structure in my project. Check the type for mouseData field

	namespace UI.Input.KeyboardAndMouse
	{
		/// Contains information about a simulated mouse event.
		/// <remarks>
		/// <para>If the mouse has moved, indicated by **MOUSEEVENTF_MOVE**, **dx** and **dy** specify information about that movement. The information is specified as absolute or relative integer values. If **MOUSEEVENTF_ABSOLUTE** value is specified, **dx** and **dy** contain normalized absolute coordinates between 0 and 65,535. The event procedure maps these coordinates onto the display surface. Coordinate (0,0) maps onto the upper-left corner of the display surface; coordinate (65535,65535) maps onto the lower-right corner. In a multimonitor system, the coordinates map to the primary monitor. If **MOUSEEVENTF_VIRTUALDESK** is specified, the coordinates map to the entire virtual desktop. If the **MOUSEEVENTF_ABSOLUTE** value is not specified, **dx**and **dy** specify movement relative to the previous mouse event (the last reported position). Positive values mean the mouse moved right (or down); negative values mean the mouse moved left (or up). Relative mouse motion is subject to the effects of the mouse speed and the two-mouse threshold values. A user sets these three values with the **Pointer Speed** slider of the Control Panel's **Mouse Properties** sheet. You can obtain and set these values using the [SystemParametersInfo](/windows/desktop/api/winuser/nf-winuser-systemparametersinfoa) function. The system applies two tests to the specified relative mouse movement. If the specified distance along either the x or y axis is greater than the first mouse threshold value, and the mouse speed is not zero, the system doubles the distance. If the specified distance along either the x or y axis is greater than the second mouse threshold value, and the mouse speed is equal to two, the system doubles the distance that resulted from applying the first threshold test. It is thus possible for the system to multiply specified relative mouse movement along the x or y axis by up to four times.</para>
		/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		internal partial struct MOUSEINPUT
		{
			///
			/// <para>Type: **LONG** The absolute position of the mouse, or the amount of motion since the last mouse event was generated, depending on the value of the **dwFlags** member. Absolute data is specified as the x coordinate of the mouse; relative data is specified as the number of pixels moved.</para>
			/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members">Read more on docs.microsoft.com</see>.</para>
			///
			internal int dx;
			///
			/// <para>Type: **LONG** The absolute position of the mouse, or the amount of motion since the last mouse event was generated, depending on the value of the **dwFlags** member. Absolute data is specified as the y coordinate of the mouse; relative data is specified as the number of pixels moved.</para>
			/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members">Read more on docs.microsoft.com</see>.</para>
			///
			internal int dy;
			///
			/// <para>Type: **DWORD** If **dwFlags** contains **MOUSEEVENTF_WHEEL**, then **mouseData** specifies the amount of wheel movement. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as **WHEEL_DELTA**, which is 120. **Windows Vista**: If *dwFlags* contains **MOUSEEVENTF_HWHEEL**, then *dwData* specifies the amount of wheel movement. A positive value indicates that the wheel was rotated to the right; a negative value indicates that the wheel was rotated to the left. One wheel click is defined as **WHEEL_DELTA**, which is 120. If **dwFlags** does not contain **MOUSEEVENTF_WHEEL**, **MOUSEEVENTF_XDOWN**, or **MOUSEEVENTF_XUP**, then **mouseData** should be zero. If **dwFlags** contains **MOUSEEVENTF_XDOWN** or **MOUSEEVENTF_XUP**, then **mouseData** specifies which X buttons were pressed or released. This value may be any combination of the following flags. | Value | Meaning | |-|-| | **XBUTTON1**
0x0001 | Set if the first X button is pressed or released. | | **XBUTTON2**
0x0002 | Set if the second X button is pressed or released. |</para>
			/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members">Read more on docs.microsoft.com</see>.</para>
			///
			internal uint mouseData;
			/// Type: **DWORD**
			internal winmdroot.UI.Input.KeyboardAndMouse.MOUSE_EVENT_FLAGS dwFlags;
			///
			/// <para>Type: **DWORD** The time stamp for the event, in milliseconds. If this parameter is 0, the system will provide its own time stamp.</para>
			/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members">Read more on docs.microsoft.com</see>.</para>
			///
			internal uint time;
			///
			/// <para>Type: **ULONG_PTR** An additional value associated with the mouse event. An application calls [GetMessageExtraInfo](/windows/desktop/api/winuser/nf-winuser-getmessageextrainfo) to obtain this extra information.</para>
			/// <para><see href="https://docs.microsoft.com/windows/win32/api//winuser/ns-winuser-mouseinput#members">Read more on docs.microsoft.com</see>.</para>
			///
			internal nuint dwExtraInfo;
		}
	}

Context

CsWin32 Nuget Package Version : [0.1.647-beta]
Target Framework: [ net6.0-windows]

I would like to add that, by explicitly casting the negative value to an uint, it does work as expected, so may not be a bug but a nice to have may be?

Ya, the use of DWORD in the header and the docs conflicts with the expectation of negative values, isn't it?
I think we can special case this in the metadata.

authors: AArnott skotekar


text:
No PInvoke for memcmp

Actual behavior
warning PInvoke001: Method, type or constant "memcmp" not found. Did you mean "u_memcmp" or "u_memcmpCodePointOrder"?
Is it expected that cswin32 can't generate a pinvoke for memcmp? Here's my workaround:
[DllImport("msvcrt.dll")]
private static extern int memcmp(IntPtr b1, IntPtr b2, long count);

Expected behavior
A clear and concise description of what you expected to happen.
Repro steps

NativeMethods.txt content:

memcmp

Context

CsWin32 version: 0.2.10-beta

CsWin32 generated interop APIs for Win32. Not the VC runtime.
Your workaround is fine. But you could do it without p/invoke too:
    public unsafe void memcpy(IntPtr src, IntPtr dest, int size) {
        new Span<byte>(src.ToPointer(), size).CopyTo(new Span<byte>(dest.ToPointer(), size);
    }

Ah, my mistake, thanks @AArnott! Regarding the workaround though, I'm calling memcmp not memcpy :)

authors: AArnott palenshus


text:
training.log[BUG]

Displayed in the training.log file
/Users/houhaoyu/Desktop/DeepSpeedExamples/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/single_gpu/run_1.3b.sh: line 18: deepspeed: command not found

Here are some steps to resolve this issue:

Check if DeepSpeed is installed: Run pip list or pip freeze in your terminal to see if DeepSpeed is installed in your current Python environment. If DeepSpeed is not listed, install it using pip install deepspeed.

Find the DeepSpeed executable: If DeepSpeed is installed, locate the DeepSpeed executable by running find $(dirname $(dirname $(which python)))/ -name deepspeed. This command will search for the DeepSpeed executable within the Python environment's directories.

Add the DeepSpeed executable to the PATH: Once you've found the DeepSpeed executable, add its parent directory to your system's PATH variable. You can do this by running export PATH=$PATH:/path/to/deepspeed/executable/parent/directory in your terminal. Replace /path/to/deepspeed/executable/parent/directory with the actual path to the directory containing the DeepSpeed executable. To make this change permanent, add the same export command to your shell's startup script (e.g., ~/.bashrc, ~/.zshrc, or ~/.bash_profile).

Verify the DeepSpeed command is available: After adding the DeepSpeed executable to your PATH, run which deepspeed in the terminal. This command should now return the path to the DeepSpeed executable. If it still says "command not found," ensure that you've correctly updated the PATH variable and that the DeepSpeed executable is present in the specified directory.

Run the script again: After confirming that the DeepSpeed command is available in your terminal, try running the run_1.3b.sh script again.

If the issue persists after following these steps, consider providing more information in the GitHub issue, such as details about your operating system, Python environment, and any other relevant context. This will help the DeepSpeed maintainers in identifying the root cause and providing a more specific solution.

find $(dirname $(dirname $(which python)))/ -name deepspeed
The command cannot find the executable

以下是解决此问题的一些步骤：

检查是否安装了 DeepSpeed：在您的终端中运行pip list或pip freeze查看您当前的 Python 环境中是否安装了 DeepSpeed。如果未列出 DeepSpeed，请使用pip install deepspeed。
查看DeepSpeed可执行文件：如果安装了DeepSpeed，请通过运行找到DeepSpeed可执行文件find $(dirname $(dirname $(which python)))/ -name deepspeed。此命令将在Python环境的目录中搜索DeepSpeed文件可执行文件。
将深速可可文件到添加路：找到深速可可执行，将执行文件，将将父父目录添加到中中。。您您可以您可以可以通过通过在在在在终端终端终端运行中运行运行来PATH来执行export PATH=$PATH:/path/to/deepspeed/executable/parent/directory来执行/path/to/deepspeed/executable/parent/directory。要使这个更持久有效，请将相同的命令添加到您的shell的启动脚本（例如，~/.bashrc、~/.zshrc或~/.bash_profile）。
验证深速命令：将深速可可可可文件的的后后后后后后后后后后后后后后的的的的后到您您的您的到到到您您的到终端终端终端终端终端在中终端终端终端终端终端运行终端中中运行运行运行运行运行运行运行中中中中运行运行运行运行运行运行运行运行运行运行运行运行您已经正确更新 PATH 变量并与 DeepSpeed 可执行文件存在于指定目录中。
再次运行脚：确认 DeepSpeed 命令在您的最终中可用后，尝试再次运行 run_1.3b.sh 脚。

在问题仍然仍然具体的解决方案。

find $(dirname $(dirname $(which python)))/ -name deepspeed
The command cannot find the executable

Here are some steps to resolve this issue:

Check if DeepSpeed is installed: Run pip list or pip freeze in your terminal to see if DeepSpeed is installed in your current Python environment. If DeepSpeed is not listed, install it using pip install deepspeed.
Find the DeepSpeed executable: If DeepSpeed is installed, locate the DeepSpeed executable by running find $(dirname $(dirname $(which python)))/ -name deepspeed. This command will search for the DeepSpeed executable within the Python environment's directories.
Add the DeepSpeed executable to the PATH: Once you've found the DeepSpeed executable, add its parent directory to your system's PATH variable. You can do this by running export PATH=$PATH:/path/to/deepspeed/executable/parent/directory in your terminal. Replace /path/to/deepspeed/executable/parent/directory with the actual path to the directory containing the DeepSpeed executable. To make this change permanent, add the same export command to your shell's startup script (e.g., ~/.bashrc, ~/.zshrc, or ~/.bash_profile).
Verify the DeepSpeed command is available: After adding the DeepSpeed executable to your PATH, run which deepspeed in the terminal. This command should now return the path to the DeepSpeed executable. If it still says "command not found," ensure that you've correctly updated the PATH variable and that the DeepSpeed executable is present in the specified directory.
Run the script again: After confirming that the DeepSpeed command is available in your terminal, try running the run_1.3b.sh script again.

If the issue persists after following these steps, consider providing more information in the GitHub issue, such as details about your operating system, Python environment, and any other relevant context. This will help the DeepSpeed maintainers in identifying the root cause and providing a more specific solution.

find $(dirname $(dirname $(which python)))/ -name deepspeed
The command cannot find the executable

Here are some steps to resolve this issue:

Check if DeepSpeed is installed: Run pip list or pip freeze in your terminal to see if DeepSpeed is installed in your current Python environment. If DeepSpeed is not listed, install it using pip install deepspeed.
Find the DeepSpeed executable: If DeepSpeed is installed, locate the DeepSpeed executable by running find $(dirname $(dirname $(which python)))/ -name deepspeed. This command will search for the DeepSpeed executable within the Python environment's directories.
Add the DeepSpeed executable to the PATH: Once you've found the DeepSpeed executable, add its parent directory to your system's PATH variable. You can do this by running export PATH=$PATH:/path/to/deepspeed/executable/parent/directory in your terminal. Replace /path/to/deepspeed/executable/parent/directory with the actual path to the directory containing the DeepSpeed executable. To make this change permanent, add the same export command to your shell's startup script (e.g., ~/.bashrc, ~/.zshrc, or ~/.bash_profile).
Verify the DeepSpeed command is available: After adding the DeepSpeed executable to your PATH, run which deepspeed in the terminal. This command should now return the path to the DeepSpeed executable. If it still says "command not found," ensure that you've correctly updated the PATH variable and that the DeepSpeed executable is present in the specified directory.
Run the script again: After confirming that the DeepSpeed command is available in your terminal, try running the run_1.3b.sh script again.

If the issue persists after following these steps, consider providing more information in the GitHub issue, such as details about your operating system, Python environment, and any other relevant context. This will help the DeepSpeed maintainers in identifying the root cause and providing a more specific solution.

find $(dirname $(dirname $(which python)))/ -name deepspeed
The command cannot find the executable

@haoyu-lab if you run which deepspeed, do you see any output? How did you install deepspeed? Is this in a virtual environment?

I got the same bug, pip list shows deepspeed but I cannot find the executable with
find (dirname $(which python)))/ -name deepspeed

Any tips for that?

For my case, it does not work for Python 3.8, but works for Python 3.10.

repo: microsoft/DeepSpeed


text:
Add safetensors support

In response to DeepSpeed-MII issue #272
Introduce compatibility for HF repositories containing solely .safetensors checkpoints. In case of coexistence, prioritize .safetensors checkpoints over .bin ones.

@microsoft-github-policy-service agree company="Gigabyte Technology"

This is great, thank you @jihnenglin! Can you also create a PR on the MII side to update https://github.com/microsoft/DeepSpeed-MII/blob/main/requirements/requirements.txt to add safetensors as a dependency?

This is great, thank you @jihnenglin! Can you also create a PR on the MII side to update https://github.com/microsoft/DeepSpeed-MII/blob/main/requirements/requirements.txt to add safetensors as a dependency?

Sure, will do!

I've made it automatically fetch *.safentensors checkpoints by default, and only fallback to download *.bin checkpoints if there are no *.safentensors.

I've made it automatically fetch *.safentensors checkpoints by default, and only fallback to download *.bin checkpoints if there are no *.safentensors.

Thanks @jihnenglin! I cleaned up your implementation a little bit so we could avoid some of the deeper nested if-else branching and make it a bit easier to read the code. LGTM

The only a6000 test failing is a known failure, so we could bypass this if we need.

authors: jeffra jihnenglin loadams mrwyattii


text:
[HOW-TO] Validate GridItem list contains a sub Grid Item list

public void TestViewForAccounts()
{
_xrmApp.Grid.SwitchView("All Accounts");
_driver.FindElement(By.Id("A_link")).Click();
        List<GridItem> lstAllAccount = _xrmApp.Grid.GetGridItems();

        _xrmApp.Grid.SwitchView("My Active Accounts");
        _driver.FindElement(By.Id("A_link")).Click();
        List<GridItem> lstMyAccount =_xrmApp.Grid.GetGridItems();
        Assert.IsTrue(lstAllAccount.Any(lstMyAccount.Contains));
    }

Above code failed at Assert, I am wondering why lstAllAccount does not contain lstMyAccount when from the ui I see the expected results. Could you help with the above code? Thanks!

@xuejunh can you explain what your requirements are?  What are you trying to achieve with your test?

I would like to validate the fields in the entity view list, eg. the Account Name, Account Type, etc in the My Active Account view.
I would like to validate the entities listed in the My Active Account view is a sublist of the entities listed in the Active Account. seems this is not possible since the getGriditem only return visible grid items.

repo: microsoft/EasyRepro


text:
Adding support to storing Container's package name for OdspDriverUrlResolver  to enable prefetching of Container's scripts

To enable prefetching of Container's scripts in parallel of loading fluid content, we would like to add a header containing the package name. For now, the plan is to start adding this support to OdspResolvedUrl and later discuss to extend it to FluidResolvedUrl (we see that this could be used by other storage drivers to improve perf).
The way I'm thinking to add this functionality is by adding a request header to and then adding it to the resolved url so we are able to access it, similar to what we do with create new filename.
Next steps:
After having the container's package name available for us, make the needed changes to the bohemia code loader to be able to leverage this information and make the network request before having completely loaded the fluid content (we can do this in parallel).
We need to take into consideration the use of cached scripts, right now we have this functionalitym but this change is going to enable us to be generic and rely on package name embedded in the link (as a header)

#3944

What i'm not seeing is how is this persisted, especially in the load case? where does the host issuing the request to load a container get this value to set it in the header? If the host already know it, then it seems they could just load the code, and it doesn't need to be in the resolved url?

Couple of thoughts:

In general, I'd like to have line of sight on how much logic around URL resolving lives in the FF driver vs our internal repo? Is there a plan for convergence? I believe we already do some trickery for the component URL in the internal repo
In terms of how we will use the information, we can probably take a staged approach, where office-web-host uses this information to manually call preload on the code loader in parallel to the loader call. Once we refine the APIs a bit, we can form an opinion on what the ICodeLoader preload API should look like and we could move the actual preload out of office-web-host and into FF driver/loader

What i'm not seeing is how is this persisted, especially in the load case? where does the host issuing the request to load a container get this value to set it in the header? If the host already know it, then it seems they could just load the code, and it doesn't need to be in the resolved url?

I have the same question, I think this has to end up in the URL. I don't have context on where the logic around encoding fluid info into the ODSP nav lives, my guess is that it is in office-web-host.

In addition to resolving urls the url reslover can also generate them via getAbsoluteUrl. I think if that function was encoding the container type in the url it would make sense, but then i don't think the load path would pass the container type as a header, as it would be expected to be encoded in the url itself.

Couple of thoughts:

In general, I'd like to have line of sight on how much logic around URL resolving lives in the FF driver vs our internal repo? Is there a plan for convergence? I believe we already do some trickery for the component URL in the internal repo
In terms of how we will use the information, we can probably take a staged approach, where office-web-host uses this information to manually call preload on the code loader in parallel to the loader call. Once we refine the APIs a bit, we can form an opinion on what the ICodeLoader preload API should look like and we could move the actual preload out of office-web-host and into FF driver/loader

So all the nav parameter encoding/sharing link generation used to live in FFX repo before 0.27. In 0.27, both the resolvers have been merged and ffx will start using the FF resolver(mostly entirely but maybe if they want to add anything on top of that then they can wrap FF resolver just like today).

I also second Tony's opinion that if the host already knows the package info(whether it adds it in url or in header), then it can do code loading stuff already. Why it needs to be added in the resolved url?

I also second Tony's opinion that if the host already knows the package info(whether it adds it in url or in header), then it can do code loading stuff already. Why it needs to be added in the resolved url?

I don't think the host will know what it is, it will need to be encoded in the URL in the nav parameter and extracted from there

Couple of thoughts:

In general, I'd like to have line of sight on how much logic around URL resolving lives in the FF driver vs our internal repo? Is there a plan for convergence? I believe we already do some trickery for the component URL in the internal repo
In terms of how we will use the information, we can probably take a staged approach, where office-web-host uses this information to manually call preload on the code loader in parallel to the loader call. Once we refine the APIs a bit, we can form an opinion on what the ICodeLoader preload API should look like and we could move the actual preload out of office-web-host and into FF driver/loader

I agree with #2, I think that is the approach we are going for.
I added the change to include the containerpackagename in the nav parameter but are we saying that headers don't work for this kind of work because we need to be able to store it in the url?

Given that the container package information is going to be stored in the real URL via the nav parameter, it feels like having it be a part of the URL rather than a header might be a better fit no?
Is the goal of the V2 URL resolver that we can just pass a share URL and it would automatically know how to decode code hint out of it?

FYI, i moved the implementation to use the URL instead of headers

The current change looks better, but i think there is still a bootstrapping problem. If the hint exists, it can add it to the url generated via getAbsoluteUrl, and those urls will also have the hint, which is good. But what about the case where there is no hint, like a storage generated url in something like an at mention email. Or is that not a case we are trying to solve here.

Before we approve any change I think we should understand and agree on the full life cycle of the hint

The current change looks better, but i think there is still a bootstrapping problem. If the hint exists, the resolver can add it to the url generated via getAbsoluteUrl, and those urls will also have the hint, which is good. But what about the case where there is no hint, like a storage generated url in something like an at mention email. In that case any link created here will also be missing the hint, and so on. Or is that not a case we are trying to solve here.

For now if there is no hint, we would not use the preloading functionality and fallback to the current behaviour. the plan was to add this and start making changes in the bohemia code loader. Right now Bohemia code loader works with the assumption that we always load office-fluid-container, with this change, we can extend the functionality to be generic and to rely on package name embedded in the link.  After that, we can discuss if we want to move the functionality to be in the FF side.

I just think we will lose the hint quickly. For instance, if someone creates a new document, creates no links, and then closes the document the hint will be lost, as it is not persisted.
We need to at least have a plan for subsequent re-openings, and how we will rehydrate the hint, as that could have implications in the hint design.

I just think we will lose the hint quickly. For instance, if someone creates a new document, creates no links, and then closes the document the hint will be lost, as it is not persisted.
We need to at least have a plan for subsequent re-openings, and how we will rehydrate the hint, as that could have implications in the hint design.

This is optimizing for the scenario where we are loading from a link, like Teams/OWA. Can you clarify what you are referring to here Tony? ODSP doc lib click or something? Do you have an alternate proposal in mind for the design here?

Any links created from a document without a hint won't have the hint, it is lost. So only links created at time of original create will have the hint. All subsequent opens from things like the doc link, mru, at mention emails, all other means of access will not have the hint, and links created there will not have it either.

Unless i'm missing something? Is there something in the PR that gets odsp to persist the container type an return it on all subsequent odsp generated links for that file?

My proposal would be to persist it a container create time and try to rehydrate if it exists. i don't know what specific mechanisms odsp has for this

My proposal would be to persist it at container create time and try to rehydrate if it exists. i don't know what specific mechanisms odsp has for this

Can you elaborate more on what this means? Adding a network roundtrip here is not an option we want to go with, what kind of mechanism are you looking for from ODSP here?
I would expect this PR to add the ability to persist this in the ODSP URLs generated from containers for copy/paste scenarios, I'm not familiar enough with the code to know where that should happen.

I thought that the change I made was doing that (persisting the container package in the ODSP url), is there something I'm missing?

You are just adding it to the resolved url which is always created afresh during create or load. It is not persisted anywhere. The most you can do currently is to just cache the resolved url but that is just for same host.
So yeah is will not persist the way you want.

You are just adding it to the resolved url which is always created afresh during create or load. It is not persisted anywhere. The most you can do currently is to just cache the resolved url but that is just for same host.
So yeah is will not persist the way you want.

were do we need to make the changes to be able to persist this?

My proposal would be to persist it at container create time and try to rehydrate if it exists. i don't know what specific mechanisms odsp has for this

Can you elaborate more on what this means? Adding a network roundtrip here is not an option we want to go with, what kind of mechanism are you looking for from ODSP here?
I would expect this PR to add the ability to persist this in the ODSP URLs generated from containers for copy/paste scenarios, I'm not familiar enough with the code to know where that should happen.

If you want to use it in copy/paste scenarios, then I think you need to add this ability in "appendDataStorePath" api. I think this is the api which is used by app resolver to generate url when copy/paste. You may need to add this hint in the url generated.

I think you will need to make another network round trip if there isn't a hint. At container create time the resolver should kick off a request to put the hint somewhere (odsp metadata?), probably doesn't need to block.
On url resolve you should make a request for that metadata. To avoid perf issue i wouldn't block the resolve on this request, eventually it will show up, and you will put it somewhere. You probably want to block getAbsoluteUrl on this request, so the hint can then be appended.

I was thinking about this a bit more, and there may be another path. We could potentially pass the containers code details to url resolver:
export interface IUrlResolver {
    resolve(request: IRequest): Promise<IResolvedUrl | undefined>;

    getAbsoluteUrl(
        resolvedUrl: IResolvedUrl,
        relativeUrl: string,

        // this param would be new and optional
        codeDetails?: IFluidCodeDetails,
    ): Promise<string>;
}

this method is called by Container, so has easy access to them. This should also get rid of the need to have the ResolvedUrl involved. I think i'm ok with this, as the codeDetails and the url resolver are already something the host needs to be aware of, so it doesn't feel like it's introducing new concepts, or crossing our layer boundaries. I don't love the mixing of code loading and drivers, but it does make it natural to encode package details into the url in a runtime agnostic way.
Curious what @ChumpChief , @vladsud , and @curtisman  think about this idea.

It sounds reasonable to me

Catching up here. Looks like there are 2 questions:

Adding the container hint to the URL (works for the scenario flow) - this is critical to our shipping scenarios in Dec.
How do we handle other cases where a sharing link is generated from other sources (like DocLIb etc.)?

We can work with the Sharing team to see how to add hints here in general. There might be prior art we can fallback on here.

this was fixed by #4001

authors: abrahamrq anthony-murphy christiango jatgarg ram-ramasubramanian vladsud

repo: microsoft/FluidFramework