sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: rust
Issue: Trait aliases make it possible to sidestep various syntactic trait bound checks
Labels: T-compiler,C-bug,F-trait_alias,requires-nightly,T-types

Similar to how type aliases allow you to circumvent some syntactic/syntax-driven[^1] checks made by AST lowering (#132212), you can utilize trait aliases to bypass certain restrictions applying to trait bounds.

```rs
#![feature(trait_alias)]

trait SuperMaybeNeg: ?Sized {} // 🔴 REJECTED: `?Trait` is not permitted in supertraits
trait SuperMaybePos: MaybeSized {} // 🟢 Workaround: ACCEPTED

type DynMaybeNeg = dyn std::io::Write + ?Sized; // 🔴 REJECTED: `?Trait` is not permitted in trait object types
type DynMaybePos = dyn std::io::Write + MaybeSized; // 🟢 Workaround: ACCEPTED

fn noop_maybe_neg() where i32: ?Sized {} // 🔴 REJECTED: `?Trait` bounds are only permitted at the point where a type parameter is declared
fn noop_maybe_pos() where i32: MaybeSized {} // 🟢 Workaround: ACCEPTED


trait MaybeSized = ?Sized;
```

```rs
#![feature(trait_alias, const_trait_impl)]

const fn incompat_modifs_neg<T: const ?Trait>() {} // 🔴 REJECTED: const` trait not allowed with `?` trait polarity modifier
const fn incompat_modifs_pos<T: ?ConstTrait>() {} // 🟢 Workaround: ACCEPTED


trait ConstTrait = const Trait; // alternatively, `async Fn()` under feat `async_trait_bounds`
#[const_trait] trait Trait {}
```

```rs
#![feature(trait_alias)]

type DupeAssocNeg = dyn std::ops::Deref<Target = String, Target = i32>; // 🔴 REJECTED: the value of the associated type `Target` in trait `Deref` is already specified
type DupeAssocPos = dyn AssocFixed<Target = i32>; // 🟢 Workaround: ACCEPTED
//^ This bypasses a HIR ty lowering check, not an AST validation one.

type DynAtbNeg = dyn std::ops::Deref<Target: Copy>; // 🔴 REJECTED: associated type bounds are not allowed in `dyn` types
type DynAtbPosIsh<T> = dyn AssocBounded<Target = T>; // 🟢 Workaround-ish: ACCEPTED


trait AssocFixed = std::ops::Deref<Target = String>;
trait AssocBounded = std::ops::Deref<Target: Copy>;
```

```rs
#![feature(trait_alias, return_type_notation)]

struct DynRtnNeg(dyn Trait<method(..): Copy>); // 🔴 REJECTED: associated type bounds are not allowed in `dyn` types
                                               //              return type notation is not allowed to use type equality
struct DynRtnPos(dyn Rtn); // 🟢 Workaround: ACCEPTED

trait Trait { fn method(&self) -> impl Sized where Self: Sized; }
trait Rtn = Trait<method(..): Copy>;
```

This either calls into question the very existence of these restrictions or it demonstrates that all of these checks ought to run "later" (i.e., after trait alias expansion).

[^1]: I.e., checks on the AST or HIR without any sort of prior substitution/expansion/normalization/...
Repository: PowerToys
Issue: Move mouse point to default button on dialog/message boxes
Labels: Needs-Triage

### Description of the new feature / enhancement

It would be very handy to have the option to move the mouse pointer to the default button on dialog and message boxes, either automatically when they appear or with a hotkey. I used to use a product called Actual Windows Manager that offered this feature (automatic but not "on demand") and it saves a lot of mouse movement. 

### Scenario when this would be used?

Whenever you have to move the pointer to click a default button it slows you down. 

### Supporting information

_No response_
Repository: vscode
Issue: The terminal is glitching when it's split in groups
Labels: info-needed,terminal-rendering


Type: <b>Bug</b>

This bug happens when you open two or more terminals and split them together.
Text gets "doubled" and wrong sized in one of the terminals and you can't fix it unless you close all the terminals.

VS Code version: Code - Insiders 1.97.0-insider (f80816ab8e21c65ed7f1f7e08ccdbffae63610c6, 2025-01-10T09:53:30.658Z)
OS version: Windows_NT x64 10.0.22631
Modes:

<details>
<summary>System Info</summary>

|Item|Value|
|---|---|
|CPUs|AMD Ryzen 7 7800X3D 8-Core Processor            (16 x 4192)|
|GPU Status|2d_canvas: enabled<br>canvas_oop_rasterization: enabled_on<br>direct_rendering_display_compositor: disabled_off_ok<br>gpu_compositing: enabled<br>multiple_raster_threads: enabled_on<br>opengl: enabled_on<br>rasterization: enabled<br>raw_draw: disabled_off_ok<br>skia_graphite: disabled_off<br>video_decode: enabled<br>video_encode: enabled<br>vulkan: disabled_off<br>webgl: enabled<br>webgl2: enabled<br>webgpu: enabled<br>webnn: disabled_off|
|Load (avg)|undefined|
|Memory (System)|31.62GB (17.49GB free)|
|Process Argv||
|Screen Reader|no|
|VM|0%|
</details><details><summary>Extensions (13)</summary>

Extension|Author (truncated)|Version
---|---|---
vscode-eslint|dba|3.0.10
javascript-ejs-support|Dig|1.3.3
prettier-vscode|esb|11.0.0
vscode-language-pack-it|MS-|1.97.2025010809
remote-ssh|ms-|0.116.1
remote-ssh-edit|ms-|0.87.0
remote-wsl|ms-|0.88.5
remote-explorer|ms-|0.4.3
material-icon-theme|PKi|5.17.0
prisma|Pri|6.2.1
open-in-browser|tec|2.0.0
intellicode-api-usage-examples|Vis|0.2.9
vscodeintellicode|Vis|1.3.2


</details>
<!-- generated by issue reporter -->
Repository: PowerToys
Issue: Quick Accent - En dash disappeared from hyphen options
Labels: Issue-Bug,Needs-Repro,Needs-Triage,Needs-Team-Response

### Microsoft PowerToys version

0.87.1

### Installation method

Microsoft Store

### Running as admin

Yes

### Area(s) with issue?

Quick Accent

### Steps to reproduce

Hold hyphen key then activation key (space, for me) to pull up the hyphen's Quick Accent options.

### ✔️ Expected Behavior

En dash (–) should appear as one of the options presented in the hyphen key's Quick Accent menu. 

### ❌ Actual Behavior

The en dash (–) is no longer available.

### Other Software

_No response_
Repository: tauri
Issue: [feat] Add way to check if Tauri's initialization scripts have run
Labels: type: feature request

### Describe the problem

Tauri's initialization scripts may not have executed when the webview starts executing user scripts. This can cause Tauri API calls to fail unexpectedly. For example calling `await listen(...)` at a top level will fail if the `__TAURI_INTERNALS__` object has not yet been populated.

### Describe the solution you'd like

I would like to be able to check if Tauri has finished initializing and wait if it has not. I would suggest a new variable like `window.__TAURI_READY__` or `window.__TAURI_INTERNALS__.ready` which would be set to true after all initialization scripts have finished executing. That could be wrapped in an function in the core library like:

```js
function isReady(): bool {
  return window.__TAURI_INTERNALS__?.ready ?? false;
}
```

Additionally, it would be nice to dispatch an event after the ready flag is set like `window.dispatchEvent("tauriReady", new Event())` so that a script can wait for the ready condition without having to poll.

### Alternatives considered

_No response_

### Additional context

See https://discord.com/channels/616186924390023171/1327342177608794113 for discussion.
Repository: tauri
Issue: [bug] titleBarStyle: "Transparent" Uses Opposite Hex Color for Background on macOS
Labels: type: bug,status: needs triage

### Describe the bug

When setting "titleBarStyle": "Transparent" and specifying a backgroundColor in a Tauri app on macOS, the expected behavior is for the title bar to match the provided background color. However, instead of using the exact hex color, Tauri applies what seems to be the opposite color, or black.

### Reproduction

Set the titleBarStyle to "Transparent" and specify a backgroundColor in tauri.conf.json:
```
{
  "tauri": {
    "windows": [
      {
        "titleBarStyle": "Transparent",
        "backgroundColor": "#00FF00"
      }
    ]
  }
}
```

### Expected behavior

Observe that the title bar does not match the given background color.

Example: Setting a green background (#00FF00) results in a black title bar.

A temporary fix is to manually use the opposite hex value to get the intended background color.

### Full `tauri info` output

```text
[✔] Environment
    - OS: Mac OS 15.1.1 arm64 (X64)
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.83.0 (90b35a623 2024-11-26)
    ✔ cargo: 1.83.0 (5ffbef321 2024-10-29)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 20.18.0
    - npm: 10.9.2

[-] Packages
    - tauri 🦀: 2.1.1
    - tauri-build 🦀: 2.0.3
    - wry 🦀: 0.47.2
    - tao 🦀: 0.30.8
    - @tauri-apps/api : 2.1.1 (outdated, latest: 2.2.0)
    - @tauri-apps/cli : 2.1.0 (outdated, latest: 2.2.3)

[-] Plugins
    - tauri-plugin-shell 🦀: 2.2.0
    - @tauri-apps/plugin-shell : not installed!
    - tauri-plugin-sql 🦀: 2.2.0
    - @tauri-apps/plugin-sql : 2.2.0

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: React
    - bundler: Vite
```


### Stack trace

_No response_

### Additional context

_No response_
Repository: pytorch
Issue: `torch._foreach_mul` does not support autograd
Labels: module: autograd,triaged,actionable,module: mta

### 📚 The doc issue

This is just a note for the eventual foreach docs. If someone has the same error, they can arrive here through search.

```
  File "/usr/local/lib/python3.10/dist-packages/torch/autograd/__init__.py", line 347, in backward
    _engine_run_backward(
  File "/usr/local/lib/python3.10/dist-packages/torch/autograd/graph.py", line 825, in _engine_run_backward
    return Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: inconsistent range for TensorList output
```

I don't expect foreach ops to support autograd.

(Or maybe I'm wrong and my code has an issue, and foreach is intended to support autograd?)

### Suggest a potential alternative/fix

Nothing to fix for now.

cc @ezyang @albanD @gqchen @pearu @nikitaved @soulitzer @Varal7 @xmfan @crcrpar @mcarilli @janeyx99
Repository: puppeteer
Issue: [Bug]: Install fails to 24.0.0: Error: ERROR: Failed to set up chrome v131.0.6778.264! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
Labels: bug,unconfirmed,not-reproducible

### Minimal, reproducible example

```TypeScript
upgrading puppeteer in node.js project from 23.11.1 to 24.0.0 and now get the following error:

npm ERR! code 1
npm ERR! path /XXX/node_modules/puppeteer
npm ERR! command failed
npm ERR! command sh -c -- node install.mjs
npm ERR! **INFO** Skipping Firefox download as instructed.
npm ERR! chrome-headless-shell (131.0.6778.264) downloaded to /XXX/.cache/puppeteer/chrome-headless-shell/mac-131.0.6778.264
npm ERR! Error: ERROR: Failed to set up chrome v131.0.6778.264! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
npm ERR!     at downloadBrowser (file:///XXX/node_modules/@squadle/squadle-lib-nodejs/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:26:15)
npm ERR!     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async downloadBrowsers (file:///XXX/node_modules/@squadle/squadle-lib-nodejs/node_modules/puppeteer/lib/esm/puppeteer/node/install.js:84:9) {
npm ERR!   [cause]: [Error: EEXIST: file already exists, symlink 'Versions/Current/Resources' -> '/XXX/backend-management/.cache/puppeteer/chrome/mac-131.0.6778.264/chrome-mac-x64/Google Chrome for Testing.app/Contents/Frameworks/Google Chrome for Testing Framework.framework/Resources'] {
npm ERR!     errno: -17,
npm ERR!     code: 'EEXIST',
npm ERR!     syscall: 'symlink',
npm ERR!     path: 'Versions/Current/Resources',
npm ERR!     dest: '/XXX/.cache/puppeteer/chrome/mac-131.0.6778.264/chrome-mac-x64/Google Chrome for Testing.app/Contents/Frameworks/Google Chrome for Testing Framework.framework/Resources'
npm ERR!   }
npm ERR! }
```


### Background

_No response_

### Expectation

To just install 24.0.0 without issue

### Reality

Fails to install

### Puppeteer configuration file (if used)

```TypeScript
const {join} = require('path');

/**
 * @type {import("puppeteer").Configuration}
 */
module.exports = {
  // Changes the cache location for Puppeteer.
  cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
};
```


### Puppeteer version

24.0.0

### Node version

v18.17.0

### Package manager

npm

### Package manager version

8.19.2

### Operating system

macOS
Repository: neovim
Issue: `vim.hl.range` inconsistent behavior of `start` and `finish` parameters
Labels: documentation,lua

### Problem

As mentioned in the docs `start` and `finish` parameters accepts a tuple of (line, column) or a string accepted by `getpos()` but it behaves accordingly if you build the tuple using `getpos()`.

### Steps to reproduce

- nvim --clean
- insert two lines of text
- go back to normal mode and keep the cursor on the first line
- run: `lua vim.hl.range(0, 1, 'Search', { vim.fn.getpos('.')[2], vim.fn.getpos('.')[3] }, { vim.fn.getpos('.')[2], vim.fn.getpos('.')[3] }, { regtype = 'V' })`
- The second line is highlighted, but if you run: `lua vim.hl.range(0, 1, 'Search', '.', '.', { regtype = 'V' })` the first line is highlighted

### Expected behavior

Using the (line, column) tuple should behave exactly like passing the `getpos()` string expression.

### Nvim version (nvim -v)

NVIM v0.11.0-dev-1417+g487c48ec86

### Vim (not Nvim) behaves the same?

no, not applicable

### Operating system/version

Windows 11

### Terminal name/version

Windows Terminal

### $TERM environment variable

nil

### Installation

chocolatey (--pre)
Repository: kubernetes
Issue: Virtual Service Description Rendering of Maps
Labels: kind/bug,needs-sig,needs-triage

### What happened?

When executing the following command:  **kubectl describe vs my-vs-virtualservice** ,
the istio http header set is not rendered correctly.  The virtual service functions as expected and get the virtual service in yaml format also works as expected.
The issue is only with the describe command. Here's how the out looks like:
...
API Version:  networking.istio.io/v1beta1
Kind:         VirtualService
...
Metadata:
  Creation Timestamp:  2025-01-02T23:01:50Z
  Generation:          1
Spec:
  Http:
    Headers:
      Request:
        Remove:
          x-my-private-header
        Set:
          **X - My - Public - Header:  aValue**

The Remove header which is a list is rendered properly but the Set which is a map is not rendered correctly.

And if I execute the following command: **kubectl get vs my-vs-virtualservice -o yaml**, the output looks like this:

  http:
  - headers:
      request:
        remove:
        - x-my-private-header
        set:
          x-my-public-header: "aValue"

### What did you expect to happen?

Expected output:
...
API Version:  networking.istio.io/v1beta1
Kind:         VirtualService
...
Metadata:
  Creation Timestamp:  2025-01-02T23:01:50Z
  Generation:          1
Spec:
  Http:
    Headers:
      Request:
        Remove:
          x-my-private-header
        Set:
          **x-my-public-header:  aValue**

### How can we reproduce it (as minimally and precisely as possible)?

Create a basic istio virtual service which sets some headers, deploy it and do a describe of the virtual service.

### Anything else we need to know?

_No response_

### Kubernetes version

<details>

```console
$ kubectl version
$ kubectl version
Client Version: v1.31.3
Kustomize Version: v5.4.2
Server Version: v1.29.1
```

</details>


### Cloud provider

<details>
Tested on a private cloud environment and on Azure.
</details>


### OS version

<details>

```console
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
```

</details>


### Install tools

<details>

</details>


### Container runtime (CRI) and version (if applicable)

<details>

</details>


### Related plugins (CNI, CSI, ...) and versions (if applicable)

<details>

</details>
Repository: stable-diffusion-webui
Issue: [Bug]: Dreambooth installed but tab is not viewed on UI
Labels: bug-report

### Checklist

- [X] The issue exists after disabling all extensions
- [X] The issue exists on a clean installation of webui
- [X] The issue is caused by an extension, but I believe it is caused by a bug in the webui
- [X] The issue exists in the current version of the webui
- [X] The issue has not been reported before recently
- [X] The issue has been reported before but has not been fixed yet

### What happened?

No Dreambooth Tab

### Steps to reproduce the problem

just install the extension and fully restart UI

### What should have happened?

it should show the tab

### What browsers do you use to access the UI ?

Microsoft Edge

### Sysinfo

I do know how to do it


### Console logs

```Shell
https://pastebin.com/acPkiMTZ
```


### Additional information

nothing
Repository: deno
Issue: Deno installs unused npm dependencies despite --entrypoint flag usage
Labels: install

Given this simple project:

main.ts:
```ts
import "@std/assert";
import "express";

console.log("oioioi");
```

deno.json:
```json
{
  "tasks": {
    "dev": "deno run --watch main.ts"
  },
  "imports": {
    "@std/assert": "jsr:@std/assert@1",
    "dbmate": "npm:dbmate@2.24.2",
    "express": "npm:express@4.21.2"
  }
}
```

Running:
```cmd
deno clean && deno install --entrypoint main.ts && du -h --max-depth=0 ~/.cache/deno/
```
I get the following output:
```
Removed /home/main/.cache/deno (1004 files, 4.63MB)
38M     /home/main/.cache/deno/
```

If now i edit the `main.ts` to comment out the `import "express"` line, and rerun the above command:
```cmd
deno clean && deno install --entrypoint main.ts && du -h --max-depth=0 ~/.cache/deno/
```
i get:
```
Removed ~/.cache/deno (241 files, 2MB)
2,7M    ~/.cache/deno/
```

Checking into the files, it appears that both `dbmate` and `express` are being installed even tho i do not use `dbmate` directly, and since i am running the install command with `--entrypoint` i would expect deno to only install `express`.

Is my assumption correct? i would expect deno to be smart about which deps are being used and only install does.
Repository: godot
Issue: Calling add_child() during NOTIFICATION_WM_ABOUT always gives "Parent busy setting up children" error
Labels: bug,platform:macos,topic:gui

### Tested versions

Reproduced in 4.3

### System information

Godot v4.3-stable - macOS 15.2.0 - Vulkan (Forward+) - integrated Apple M3 - Apple M3 (8 Threads)

### Issue description

Seems like a pretty trivial use case to add an AboutMenu kind of node for NOTIFICATION_WM_ABOUT. But no matter what node I add it to, I get the same error, "Parent busy setting up children, `add_child()` failed. Consider using `add_child.call_deferred(child)` instead". So this is easy to workaround, but also seems like it shouldn't happen.

### Steps to reproduce

See the MRP.

```gdscript
func _notification(what: int) -> void:
	if what == NOTIFICATION_WM_ABOUT:
		var texture_rect := TextureRect.new()
		texture_rect.texture = load("res://icon.svg")
		add_child(texture_rect)
		#add_child.call_deferred(texture_rect)
```

### Minimal reproduction project (MRP)

[MacOSbug.zip](https://github.com/user-attachments/files/18382968/MacOSbug.zip)
Repository: bitcoin
Issue: cmake -P $buildDir/Coverage.cmake: Test execution for coverage fails.  Wrapper resource "cov_tool_wrapper.sh.in" missing from build cache folder.
Labels: Build system

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current behaviour

 When following Compiling for Test Coverage instructions:
[doc/developer-notes-CompilingForTestCoverage](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#compiling-for-test-coverage)

I encounter error:
```
CMake Error: File /home/alicebob/wkspc1/presets/bitcoin/cmake/cov_tool_wrapper.sh.in does not exist.
CMake Error at /home/alicebob/wkspc1/build/bitcoin/CoverageInclude.cmake:14 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  /home/alicebob/wkspc1/build/bitcoin/Coverage.cmake:5 (include)
```



### Expected behaviour

Driver for functional tests should run, generating instrumentation report HTML.

### Steps to reproduce

1) Compile for coverage. Following are sample cmake cache variables for the CLang tool chain:
```
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_CXX_FLAGS": "-fprofile-arcs -ftest-coverage",
"CMAKE_BUILD_TYPE": "Coverage",
```
2)  Follow instructions in developer notes to compile for coverage:
[doc/developer-notes-CompilingForTestCoverage](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#compiling-for-test-coverage)


### Relevant log output

    CMake Error: File /home/alicebob/wkspc1/presets/bitcoin/cmake/cov_tool_wrapper.sh.in does not exist.
    CMake Error at /home/alicebob/wkspc1/build/bitcoin/CoverageInclude.cmake:14 (configure_file):
      configure_file Problem configuring file
    Call Stack (most recent call first):
      /home/alicebob/wkspc1/build/bitcoin/Coverage.cmake:5 (include)



### How did you obtain Bitcoin Core

Compiled from source

### What version of Bitcoin Core are you using?

v28.99.0-37e49c2c7ca5

### Operating system and version

Ubuntu 24.04.1 LTS

### Machine specifications

Unix/Intel
Repository: next.js
Issue: `next lint` uses yarn even though project uses npm because no package-lock.json because using turborepo
Labels: Linting

### Link to the code that reproduces this issue

https://github.com/astriaorg/flame-apps

### To Reproduce

1. create turborepo next app
2. cd to apps/web
3. `npm run lint`

### Current vs. Expected behavior

Next will try to use yarn to install eslint because no package-lock.json is found. 

### Provide environment information

```bash
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 23.6.0: Mon Jul 29 21:14:30 PDT 2024; root:xnu-10063.141.2~1/RELEASE_ARM64_T6000
  Available memory (MB): 65536
  Available CPU cores: 10
Binaries:
  Node: 18.19.0
  npm: 10.2.3
  Yarn: 4.1.1
  pnpm: 8.10.2
Relevant Packages:
  next: 14.2.23 // An outdated version detected (latest is 15.1.4), upgrade is highly recommended!
  eslint-config-next: 14.2.23
  react: 18.3.1
  react-dom: 18.3.1
  typescript: 5.5.4
Next.js Config:
  output: N/A
 ⚠ An outdated version detected (latest is 15.1.4), upgrade is highly recommended!
   Please try the latest canary version (`npm install next@canary`) to confirm the issue still exists before creating a new issue.
   Read more - https://nextjs.org/docs/messages/opening-an-issue
```


### Which area(s) are affected? (Select all that apply)

Linting

### Which stage(s) are affected? (Select all that apply)

Other (Deployed)

### Additional context

I was able to get around the issue by touching a package-lock.json and rerunning the command.
<img width="1397" alt="Screenshot 2025-01-10 at 3 59 49 PM" src="https://github.com/user-attachments/assets/25f1aa71-f79f-4d45-b7ce-4908e02efd11" />

The fix here doesn't work because this is a monorepo with turborepo and there is no package-lock.json in the directory.
https://github.com/vercel/next.js/issues/31755
Repository: flutter
Issue: Bad instructions for installing android command line tools
Labels: tool,t: flutter doctor,P2,team-tool,triaged-tool

![Screenshot 2025-01-10 at 3 07 57 PM](https://github.com/user-attachments/assets/7f1e4e8a-2d11-4517-8b6d-a3ced9e8accf)

The instructions say: 
```
cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"
```

If you do not have command line tools installed, then you don't have the sdkmanager tool available to use; sdkmanager is part of command line tools: https://developer.android.com/tools