watch onInvalidate callback is triggered many times

Version
3.2.26
Reproduction link
sfc.vuejs.org/
Steps to reproduce

Click on button multiple times
Watch the console output

What is expected?
Callback that we pass to onInvalidate calls only once. In reproduction repo I expect that abort would be called the same times as fetch
const count = ref(0);

watch(count, (value, oldValue, onInvalidate) => {
  if (value > 2) {
    return;
  }

  const controller = new AbortController();

  // fetch would be called only 2 times
  console.log('fetch!');
  fetch('/test', { signal: controller.signal });

  onInvalidate(() => {
    // but onInvalidate would be calld every time watch triggers
    console.log('aborted!');
    controller.abort();
  });
});

What is actually happening?
Callback that we pass to onInvalidate is called multiple times
In the screenshot fetch was called 2 times, but abort was called 18 times

There is enchancement issue that would fix this behaviour, I think.
https://github.com/vuejs/vue-next/issues/3341

This is a tricky one, feels like a definition gap. If we change the behavior now, we risk breaking existing code. We might still want to if we decide the proposed behavior was the originally intended one anyway.
For now, one could work around this like so:
const count = ref(0);

watch(count, (value, oldValue, onInvalidate) => {
  if (value > 2) {
    return;
  }

  const controller = new AbortController();

  // fetch would be called only 2 times
  console.log('fetch!');
  fetch('/test', { signal: controller.signal });

  let invalidated = false
  onInvalidate(() => {
    if (invalidated) return
    invalidated = true
    console.log('aborted!');
    controller.abort();
  });
});

Thanks for work around and answer!
For me "onInvalidate" means callback that fired when "valid" state changes to "invalid". Right now this callback may be called even when "state" has already "invalid". This cause some weirdness.
But yeah, the existing code matters here...

Another work around
BTW, this behavior is werid. I'm using vue 3, and thought onCleanup(disposer) is equal to React's return disposer, and even should accept multiple disposers, see https://github.com/vuejs/core/issues/3341
const count = ref(0);

watch(count, (value, oldValue, onInvalidate) => {
  // ------ Add this line ------
  onInvalidate(()=>{})
  // ---------------------------
  if (value > 2) {
    return;
  }

  const controller = new AbortController();

  // fetch would be called only 2 times
  console.log('fetch!');
  fetch('/test', { signal: controller.signal });

  onInvalidate(() => {
    // but onInvalidate would be calld every time watch triggers
    console.log('aborted!');
    controller.abort();
  });
});

preview](https://deploy-preview-8655--vue-sfc-playground.netlify.app/#eNp9U01v2zAM/SucLnbQIBnaW5YE64oessM2bMNOujg27aqVJUOikxSB//so2c5HUfRgQ+J7JN+jpKO4b5rZrkWxEEufO9UQeKS2WUuj6sY6giM4LKewzyh/gg5KZ2tIOCORRprcGk+Q29YQrAIx/Tz5EoBITyMwhXSX6RanYHXxb1iZjeGgKjLCCazWcJQGYD6HEkObvW11AVuEPNMaC6brV7gFUjX6QFTlUBPWcDvpk4HbU+sMtwfowi98o0BDznIpxyoN7uF+y9YeTtE0iD4nWI0zbas0iWo+JT0aN2kyJ/SUTHkuXlUm04uL6rM+BF0/BLjymaZnp9HrtqUrwrXtAnCH7jWaHqZPTlVVP4E3QrPgB4tRakRHTREbHEZh3USa5bw/bT5n3hDWjWYFYUdL1kXWwNdcq/xlJUU8xZsbKdYbkzus0dBy3pPWkkKti3wxFeS5e6mq2bO3hi9WdBzK1I1iQT8bUqxdisU4CynYr91/jzFyfEHGeP6E+cs78Wd/CDEpfjn06HYoxQmjzFVIPfz45wceeH0Ca1u0mtkfgL+R59oGjT3tW2sKln3Bi2o38XkoU/31jwdC40dTQWicdeRLwW/l4QPrZ7l3s7vh7nai+w/gNjS/)


Cannot bind argument to parameter 'Resource' because it is an empty string.

In function 'Set-NinjaOneOrganisationPolicies', $Resource is not set, thus is null when the API call parameters are built later in the function, resulting in the error being thrown.
$Resource = ("v2/organization/{0}/policies" -f $organisationId)
Path from: https://app.ninjarmm.com/apidocs-beta/core-resources/operations/updateNodeRolePolicyAssignmentForOrganization

Thanks for that :rofl: it got removed during refactoring for v2. Knuckleheaded mistake.

Should go out in 2.0.0-RC5 which is due to release soon.


Fix tangram-in-tangram

The definition provided in #279 should correctly build Tangram-in-Tangram. The build currently fails to compile, with subsequent runs failing on different subcrates. Here is an example error:
   Compiling http-body v1.0.1
error: failed to run custom build command for `httparse v1.9.5`

Caused by:
  process didn't exit successfully: `/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/build/httparse-b008e274c08ecfa2/build-script-build` (signal: 6, SIGABRT: process abort signal)
  --- stderr
  dyld[63064]: terminating because inserted dylib '/Users/benlovy/.tangram/artifacts/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' could not be loaded: tried: '/Users/benlovy/.tangram/artifacts/dir_0
1s3sv3tm5ntjq5fdst2zc28zy23wq0t20m2hyhnkaqvtdkhwqa2tg/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/artifacts/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv9
6psvt81fjg' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e')), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/deps/fil_014tgkv4rb2hm3kc464q2hz6q62b
kbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/dir_01gym1dst1wmxas3ff02evn1p1c2rejh53rwfkgd71d6bk84cxchyg/lib/rustlib/aarch64-apple-darwin/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6b3n53mdmc/Users/tangram/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/local/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file, not in dyld cache), '/Users/benlovy/.tangram/artifacts/dir_01s3sv3tm5ntjq5fdst2zc28zy23wq0t20m2hyhnkaqvtdkhwqa2tg/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e')), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/deps/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/
.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/dir_01gym1dst1wmxas3ff02evn1p1c2rejh53rw
fkgd71d6bk84cxchyg/lib/rustlib/aarch64-apple-darwin/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6b3n53mdmc/Users/tangram/lib/fil_014
tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/local/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file, not in dyld cache)
  dyld[63064]: tried: '/Users/benlovy/.tangram/artifacts/dir_01s3sv3tm5ntjq5fdst2zc28zy23wq0t20m2hyhnkaqvtdkhwqa2tg/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/artifacts/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e')), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9m
y4/output/target/release/deps/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/fil_014tgkv4rb2hm3kc464q2hz6q
62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/dir_01gym1dst1wmxas3ff02evn1p1c2rejh53rwfkgd71d6bk84cxchyg/lib/rustlib/aarch64-apple-darwin/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf
9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6b3n53mdmc/Users/tangram/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/local/lib/fil_01
4tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file, not in dyld cache), '/Users/benlovy/.tangram/artifacts/dir
_01s3sv3tm5ntjq5fdst2zc28zy23wq0t20m2hyhnkaqvtdkhwqa2tg/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxq
v96psvt81fjg' (fat file, but missing compatible architecture (have 'x86_64,arm64', need 'arm64e')), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/deps/fil_014tgkv4rb2hm3kc464q2hz6q6
2bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/tmp/06993258hhzr56yd6c0bsk9my4/output/target/release/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.tangram/checkouts/dir_01gym1dst1wmxas3ff02evn1p1c2rejh53rwfkgd71d6bk84cxchyg/lib/rustlib/aarch64-apple-darwin/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/Users/benlovy/.ta
ngram/tmp/06993258hhzr56yd6b3n53mdmc/Users/tangram/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file), '/usr/local/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no su
ch file), '/usr/lib/fil_014tgkv4rb2hm3kc464q2hz6q62bkbf9m1zqkm1vxqv96psvt81fjg' (no such file, not in dyld cache)
warning: build failed, waiting for other jobs to finish...
-> the process did not exit successfully
   internal:packages/server/src/runtime/darwin.rs:476:15 tangram_server::runtime::darwin::Runtime::build::{{closure}}

Another flavor of failure:
     Running `/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/release/build/typenum-5c1762979595e15e/build-script-main`
     Running `rustc --crate-name typenum --edition=2018 /Users/benlovy/.tangram/artifacts/dir_0115xgjb20dcckpkp10gt7tb0cvkzm8h0gzzk3eq2p34e41aeg9qn0/typenum-1.17.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("const-generics", "force_unix_path_separator", "i128", "no_std", "scale-info", "scale_info", "strict"))' -C metadata=bcf84b14fa7625ff -C extra-filename=-bcf84b14fa7625ff --out-dir /Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps --target aarch64-apple-darwin -C linker=cc -C strip=debuginfo -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/release/deps --cap-lints allow -v --cfg 'feature="folded_multiply"'`
   Compiling subtle v2.6.1
     Running `rustc --crate-name subtle --edition=2018 /Users/benlovy/.tangram/artifacts/dir_0115xgjb20dcckpkp10gt7tb0cvkzm8h0gzzk3eq2p34e41aeg9qn0/subtle-2.6.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("const-generics", "core_hint_black_box", "default", "i128", "nightly", "std"))' -C metadata=4ede02e8e6667127 -C extra-filename=-4ede02e8e6667127 --out-dir /Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps --target aarch64-apple-darwin -C linker=cc -C strip=debuginfo -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/release/deps --cap-lints allow -v`
error: couldn't read /Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/build/typenum-5ef8f1658b4a1e84/out/op.rs: No such file or directory (os error 2)
  --> /Users/benlovy/.tangram/artifacts/dir_0115xgjb20dcckpkp10gt7tb0cvkzm8h0gzzk3eq2p34e41aeg9qn0/typenum-1.17.0/src/lib.rs:72:5
   |
72 |     include!(concat!(env!("OUT_DIR"), "/op.rs"));
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `typenum` (lib) due to 1 previous error

Caused by:
  process didn't exit successfully: `rustc --crate-name typenum --edition=2018 /Users/benlovy/.tangram/artifacts/dir_0115xgjb20dcckpkp10gt7tb0cvkzm8h0gzzk3eq2p34e41aeg9qn0/typenum-1.17.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("const-generics", "force_unix_path_separator", "i128", "no_std", "scale-info", "scale_info", "strict"))' -C metadata=bcf84b14fa7625ff -C extra-filename=-bcf84b14fa7625ff --out-dir /Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps --target aarch64-apple-darwin -C linker=cc -C strip=debuginfo -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/aarch64-apple-darwin/release/deps -L dependency=/Users/benlovy/.tangram/tmp/069a08ekfnwz133796hwvmzv58/output/target/release/deps --cap-lints allow -v --cfg 'feature="folded_multiply"'` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
-> the process did not exit successfully

Building without parallel jobs and using an "unsafe" checksum to allow the build script to access network:
  error: Unexpected installing nth-check (copying files from cache to destination)
  error: FileNotFound installing @vscode/vsce (opening cache/package/version dir)
  error: Unexpected installing yallist (copying files from cache to destination)
  error: Unexpected installing tmp (copying files from cache to destination)
  error: FileNotFound installing @esbuild/darwin-arm64 (opening cache/package/version dir)
  error: Unexpected installing asynckit (copying files from cache to destination)
  error: Unexpected installing supports-color (copying files from cache to destination)
  error: Unexpected installing jwa (copying files from cache to destination)
  error: Unexpected installing combined-stream (copying files from cache to destination)
  error: Unexpected installing htmlparser2 (copying files from cache to destination)
  error: Unexpected installing domhandler (copying files from cache to destination)
  error: Unexpected installing xml2js (copying files from cache to destination)
  error: Unexpected installing semver (copying files from cache to destination)
  AccessDenied: Failed to open node_modules folder for minimatch in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/vscode-languageclient/node_modules
  AccessDenied: Failed to open node_modules folder for @types/node in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/bun-types/node_modules
  AccessDenied: Failed to open node_modules folder for minimatch in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/glob/node_modules
  AccessDenied: Failed to open node_modules folder for semver in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/parse-semver/node_modules
  AccessDenied: Failed to open node_modules folder for brace-expansion in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/vscode-languageclient/node_modules/minimatch/node_modules
  AccessDenied: Failed to open node_modules folder for @types/node in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@types/ws/node_modules
  AccessDenied: Failed to open node_modules folder for undici-types in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/bun-types/node_modules/@types/node/node_modules
  AccessDenied: Failed to open node_modules folder for @azure/abort-controller in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@azure/core-auth/node_modules
  AccessDenied: Failed to open node_modules folder for @azure/abort-controller in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@azure/core-client/node_modules
  AccessDenied: Failed to open node_modules folder for @azure/core-rest-pipeline in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@azure/core-client/node_modules
  AccessDenied: Failed to open node_modules folder for @azure/abort-controller in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@azure/core-rest-pipeline/node_modules
  AccessDenied: Failed to open node_modules folder for @azure/abort-controller in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@azure/core-util/node_modules
  AccessDenied: Failed to open node_modules folder for brace-expansion in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/glob/node_modules/minimatch/node_modules
  AccessDenied: Failed to open node_modules folder for lru-cache in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/path-scurry/node_modules
  AccessDenied: Failed to open node_modules folder for undici-types in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/@types/ws/node_modules/@types/node/node_modules
  AccessDenied: Failed to open node_modules folder for jws in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/jsonwebtoken/node_modules
  AccessDenied: Failed to open node_modules folder for ms in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/debug/node_modules
  AccessDenied: Failed to open node_modules folder for jwa in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/jsonwebtoken/node_modules/jws/node_modules
  AccessDenied: Failed to open node_modules folder for emoji-regex in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/string-width-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for strip-ansi in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/string-width-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for ansi-regex in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/strip-ansi-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for ansi-styles in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi/node_modules
  AccessDenied: Failed to open node_modules folder for ansi-styles in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for string-width in error: Failed to link @biomejs/biome: EPERM

  error: Failed to link typescript: EPERM
  /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for strip-ansi in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules
  AccessDenied: Failed to open node_modules folder for ansi-regex in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/string-width-cjs/node_modules/strip-ansi/node_modules
  AccessDenied: Failed to open node_modules folder for color-convert in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/node_modules
  AccessDenied: Failed to open node_modules folder for emoji-regex in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules
  AccessDenied: Failed to open node_modules folder for ansi-regex in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules
  AccessDenied: Failed to open node_modules folder for color-name in /Users/benlovy/.tangram/artifacts/dir_016mr59p9neh8k89hqscr3y20hrrd7k8nx91xpm1cq30vg1a43nsg0/node_modules/wrap-ansi-cjs/node_modules/ansi-styles/node_modules/color-convert/node_modules
  error: FileNotFound installing @vscode/vsce-sign-darwin-arm64 (opening cache/package/version dir)
  thread 'main' panicked at packages/server/build.rs:103:10:
  called `Option::unwrap()` on a `None` value
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
-> the process did not exit successfully

No crate issues, but permission issues at the end. Also, the build should not require network permissions to run, we should have acquired everything we need before this process begins.

NixOS has been trying to create a bun module to generate node_modules, and they are running into similar issues.
https://github.com/NixOS/nixpkgs/issues/255890#issuecomment-2308881422

Both astro/vite use cache directories inside node_modules (specifically node_modules/.astro and node_modules/.vite) during the build, which means that the node_modules directory needs to be writeable as well.


crossreferences for beam-pipelined tables panic with null SourceNode

After using write_tables on some random entries, then using the kythe tools xref command, the server throws a null panic. It seems cr.SourceNode below is null (there's a check above in some case to see if it is non-null).
The hack below makes the error go away and references to appear, however I have no idea what am I doing.
diff --git a/kythe/go/serving/xrefs/xrefs.go b/kythe/go/serving/xrefs/xrefs.go
index 5b656651..aa8fe18f 100644
--- a/kythe/go/serving/xrefs/xrefs.go
+++ b/kythe/go/serving/xrefs/xrefs.go
@@ -550,9 +550,13 @@ func (t *Table) CrossReferences(ctx context.Context, req *xpb.CrossReferencesReq
                }

                // Read the set of indirection edge kinds for the given node kind.
-               nodeKind := nodeKind(cr.SourceNode)
-               indirections := experimentalCrossReferenceIndirectionKinds[nodeKind].
-                       Union(experimentalCrossReferenceIndirectionKinds["*"])
+
+               var indirections stringset.Set
+               if cr.SourceNode != nil {
+                       nodeKind := nodeKind(cr.SourceNode)
+                       indirections = experimentalCrossReferenceIndirectionKinds[nodeKind].
+                               Union(experimentalCrossReferenceIndirectionKinds["*"])
+               }

                for _, grp := range cr.Group {

/cc @schroederc for related recent changes.

I have encountered this exact same problem with a JVM extraction I created by following the "End-to-End Java Example" (with my own code) from the README in the distribution.
@schroederc @shahms, any insights here?  Does this indicate a problem with my data or with kythe itself?

As noted with #4248, the problem seems to go away if the data are accessed using http to a server started with the tables instead of directly reading the tables.
(Something has changed with how tables are generated between v0.0.30 and v0.0.31 (see https://github.com/TreeTide/underhood/issues/12), but I've verified the crash with both v0.0.30 and v0.0.37.

I think Cody will have a better idea on this one, but is current on vacation (and I'm oncall so don't have time to take a look at the moment).

@robinp's patch worked for me, thanks for that.  My problems were persisting even when done through the HTTP server.  The patch to me honestly looks like the correct "real" fix, though I have zero context on any of this.

Does this situation ("data is missing") indicate that the indexer didn't output something that it should have? If so, is there a way of validating the data to find such errors?

The data being missing is another case of the post-processing pipeline not being as thorough as our internal version.

There was missing data from the indexer but the post-processor didn't detect it?
Or: the post-processor didn't process something properly?
In either case, is there a way to figure out what's missing or incorrectly processed?

@schroederc - I didn't understand your response. Are you saying that there's some data missing in the server because the post-processor dropped some of the indexer output and didn't put it to the server tables?
Also: Is there an easy way to figure out what's missing? E.g., is there a suitable log message that could be added after cr, err := t.crossReferences(ctx, ticket)? (If I read the code correctly, it silently keeps going - but I'm guessing that in some circumstances it should complain.)


Update expand commands no not contain graphs

Changed

Updated BaseTaskNodeExpandCommand to have any context.
Updated CreateInstanceTaskGraphEngine to initialize root graph with no node.
Renamed BaseTaskNodeExpandCommand based types to not to reference a graph

Codecov Report

Merging #195 (2e63195) into master (893a4fb) will increase coverage by 3.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #195      +/-   ##
==========================================
+ Coverage   95.78%   98.93%   +3.14%
==========================================
  Files         112       22      -90
  Lines        1708      468    -1240
  Branches      233       75     -158
==========================================
- Hits         1636      463    -1173
+ Misses         70        5      -65
+ Partials        2        0       -2

Flag
Coverage Δ

cuaktask
99.17% <ø> (ø)

iocuak
?

porygon
?

porygon-typeorm
98.67% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...s/iocuak/src/container/modules/api/ContainerApi.ts

...eTask/models/cuaktask/TaskNodeExpandCommandType.ts

...reateCachedScopedInstanceTaskNodeCommandHandler.ts

...modules/cuaktask/BaseCreateInstanceTaskLazyNode.ts

...task/CreateCreateInstanceTaskNodeCommandHandler.ts

...teTransientScopedInstanceTaskNodeCommandHandler.ts

...CreateTypeBindingInstanceTaskNodeCommandHandler.ts

.../modules/cuaktask/CreateInstanceTaskGraphEngine.ts

...ask/modules/cuaktask/CreateInstanceTaskLazyNode.ts

...task/CreateInstanceTaskNodeExpandCommandHandler.ts

... and 77 more

Continue to review full report at Codecov.

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


"Some studio files are missing/corrupted" error

I am getting this error the majority of the times I try launching RobloxStudioModManager. This is probably a ModManager issue, as when I open regular Roblox Studio, everything works fine. RobloxStudioModManager's "Force Reinstallation" does not fix this issue.
I don't know if this is related to the fact that RobloxStudioModManager has been getting a bunch of crash messages upon launching studio with it. It used to be "Studio.App.RobloxApplication.AbnormalTerminateMessage", now it's this.

Have you tried using older versions?

Make sure you're on the latest release.
If it's still occurring, try forcing a reinstall of everything so that it has a clean slate.

I have the same problem I tried what @MaximumADHD said but didint work.

I have the same problem I tried what @MaximumADHD said but didint work. I was previously affected by #133 now affected the same at the post

Okay @DionBlox1, I want you to carefully and thoroughly make sure you follow all of these instructions because I don't like having to repeat myself:

Did you download the newest release of the mod manager?
Are you using the LIVE channel option?
Did you press Launch Studio with Force Reinstallation checked?
Did you let that installation complete fully?

If you have done all of the above, you should not have this issue anymore. Otherwise I need more information, screenshots, just anything that can help me reproduce this problem on my end.
Let me know if this works for you as well @Rawblocky!

Forgot to add that a few days ago I downloaded the newest release and this issue no longer happens. I just used it for a few days before posting this because this error pops up randomly, but the newest release stopped this issue.


Use of recaptcha.net instead of google.com

Google allows this and it would be a good toggle for privacy-conscious websites or for use in places where google.com may not be available.
More info: https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally

This would require quite a bit of adjustments. Right now we are using the package https://github.com/albertcht/invisible-recaptcha to bring recaptcha in.


Stone of Jordan - maximum Fury

Stone of Jordan (ancient and normal) has 7-8 max. fury, not 10-12.
Noticed it when checking the perfection% of mine and it "said" -150%.

Ok yeah, 10-12 is definitely wrong, but the correct value seems to be 8-10, not 7-8 (at level 70), according to datamine:
https://www.d3planner.com/game/items#Unique_Ring_019_x1

i have both ingame. https://imgur.com/a/UiRQs

Okay did some more research and it appears SoJ always uses level 60 values for max resource.


download n-tvnow

youtube-dl 'http://www.n-tvnow.de/deluxe-alles-was-spass-macht/thema-ua-luxushotel-fuer-vierbeiner.php?container_id=153819&player=1&season=0' --verbose
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['http://www.n-tvnow.de/deluxe-alles-was-spass-macht/thema-ua-luxushotel-fuer-vierbeiner.php?container_id=153819&player=1&season=0', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2014.10.13
[debug] Python version 2.7.5 - Darwin-13.4.0-x86_64-i386-64bit
[debug] Proxy map: {}
[RTLnow] 153819: Downloading webpage
WARNING: unable to extract upload date; please report this issue on http://yt-dl.org/bug
ERROR: Unable to extract playerdata_url; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 524, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 193, in extract
return self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/rtlnow.py", line 120, in _real_extract
r"'playerdata': '(?P<playerdata_url>[^']+)'", webpage, 'playerdata_url')
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 428, in _html_search_regex
res = self._search_regex(pattern, string, name, default, fatal, flags)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 418, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract playerdata_url; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

Closing since n-tv is now served by nowtv.de.


Multi dimensional slice returning wrong shaped array

Example code:
import numpy as np
from quantities import Hz
from neo import AnalogSignal as AnalogSignal

n = np.array([[0.1, 0.1, 0.1, 0.1],
    [-2.0, -2.0, -2.0, -4.0],
    [0.1, 0.1, 0.1, 0.1],
    [-0.1, -0.1, -0.1, -0.1],
    [-0.1, -0.1, -0.1, -0.1],
    [-3.0, -3.0, -3.0, -3.0],
    [0.1, 0.1, 0.1, 0.1],
    [0.1, 0.1, 0.1, 0.1]])

a = AnalogSignal(n, sampling_rate=1000*Hz, units='V')

print n
print n[1, 3]
print n.shape
print n[:, 0]

print a
print a[1, 3]
print a.shape
print a[:, 0]

The slice [:, 0] on the numpy array returns
[ 0.1 -2.   0.1 -0.1 -0.1 -3.   0.1  0.1]
While the AnalogSignal returns
[[ 0.1]
 [-2. ]
 [ 0.1]
 [-0.1]
 [-0.1]
 [-3. ]
 [ 0.1]
 [ 0.1]] V

===
neo 0.5.2
quantities 0.12.1
numpy 1.13.1

This is the correct behaviour. AnalogSignal objects always have two dimensions.

This is extremly confusing to everyone and BREAKS the claim that AnalongSignal Arrays behave like NUMPY!

Please add a warning to http://neo.readthedocs.io/en/0.5.2/api_reference.html#neo.core.AnalogSignal that the slicing of an AnlogSignal Array returns different arrays to the slice of the similar shaped numpy array.

The decision to make slicing work this way was not taken lightly. With the NumPy behaviour, all downstream code would have to treat signals with a single channel as a special case. Set against that is the consideration you raise that many people are already familiar with the NumPy behaviour (note that a signal can be converted into a real NumPy array very easily with signal.magnitude).
It was a tough call, but on balance we thought that ensuring signals are always 2D would produce the least confusion and require the least book-keeping code to be written by users.
I agree that this should be better documented, and I am happy to consider re-opening this discussion in a new ticket.

Thank you I can conform that print a.magnitude[:, 0] does produce the expected behavior.
Will open a seperate ticket on the documentation as this behavior is confusing and DIFFERENT to how neo 4.0 works for the exact same code.

Also who would you get the quantities object from a single channeled AnalogSignal?

Neo 0.4 --> 0.5 was indeed a big change. This is why we had such a long alpha phase (Neo 0.5.0alpha1 was released in September 2016), and why the PyNN version was bumped from 0.8 to 0.9.
a.as_quantity() gives a 2D quantity array. Perhaps we should change the behaviour to match that of magnitude


stream doesn't update realtime

Bug report
Describe the bug
using stream will my UI just update when i add new value but when i delete value, it will not update

I have the same issue. when insert, new row is insert but the stream is not update
The code I using:
import 'package:flutter/material.dart';
import 'package:supabase_flutter/supabase_flutter.dart';

class ChatScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: StreamBuilder(
        stream: Supabase.instance.client
            .from('chat')
            .stream()
            .order('id')
            .limit(30)
            .execute(),
        builder: (ctx, snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return Center(
              child: CircularProgressIndicator(),
            );
          }
          final data = snapshot.data! as List;
          print(data);
          return ListView.builder(
            itemCount: data.length,
            itemBuilder: (ctx, index) => Container(
              padding: EdgeInsets.all(8),
              child: Text('${data[index]['id']} ${data[index]['message']}'),
            ),
          );
        },
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () async {
          final insertResponse =
              await Supabase.instance.client.from('chat').insert([
            {'message': 'new message'}
          ]).execute();
          if (insertResponse.error == null) {
            print('insertResponse.data: ${insertResponse.data}');
          }
        },
      ),
    );
  }
}

already allow realtime for that table
begin;
  -- remove the realtime publication
  drop publication if exists supabase_realtime;

  -- re-create the publication but don't enable it for any tables
  create publication supabase_realtime;
commit;

-- add a table to the publication
alter publication supabase_realtime add table chat;

Thanks @akram-95 for opening this issue and @StevePhuc for also adding more context!
Could you confirm that you have update and delete realtime events turned on in the Supabase console?
https://app.supabase.io/project/[YOUR_PROJECT_ID]/database/replication

Hello @dshukertjr  , yeah o confirm that I enabled all real time functions

@akram-95
Thanks for confirming. Did you enable realtime via Supabase console or though running your own SQL?
If you used your own SQL, could you ensure if full replication is enabled?
alter table "your_table" replica identity full;

Also, would it be possible for you to share the scheme of the table you are using? With it, I might be able to reproduce it on my end!

@akram-95
Sorry, please ignore the previous message that you received in your email inbox.
Could you share the scheme of the table at which you are trying to listen to as stream?

after update sql with alter table chat replica identity full; it work now. Thanks @dshukertjr
begin;
  -- remove the realtime publication
  drop publication if exists supabase_realtime;

  -- re-create the publication but don't enable it for any tables
  create publication supabase_realtime;
commit;

-- add a table to the publication
alter publication supabase_realtime add table chat;

alter table chat replica identity full;

@StevePhuc
I'm glad you were able to fix it. I took down my previous post, because I thought that might not have been the issue, but I guess it was!

@StevePhuc
Weird is thing is that I actually do not have identity set to full, and yet am able to receive updates and deletes.
  Could you maybe try to run the above SQL command to see what you get for tables that you haven't set to full yet?

Could you maybe try to run the above SQL command to see what you get for tables that you haven't set to full yet?

@dshukertjr
Did you mean that ?
![Uploading 129698218...]
![Uploading 129698233...]

@dshukertjr
Did you mean that ?

@StevePhuc
I'm glad you were able to fix it. I took down my previous post, because I thought that might not have been the issue, but I guess it was!
@akram-95 Could you also try running?

alter table your_table_name replica identity full;

When I did run it , I did get no rows gets

@StevePhuc
How did you solve the problem?

@akram-95
Sorry, for not being clear. Could you show me your table definition?
If you created your table with SQL, then the SQL code would be better, but if you have created from Supabase's console, then a screenshot is okay. Also if you could let me know which column is the primary key, that would be great.

@StevePhuc
I was further investigating this issue, and it seems like there is a bug where stream() should not work when replica identity is set to full. If it's possible, could you share the SQL you used to create your chat table?
For me, it's working when replica identity is set to default.

@akram-95
Sorry, for not being clear. Could you show me your table definition?
If you created your table with SQL, then the SQL code would be better, but if you have created from Supabase's console, then a screenshot is okay. Also if you could let me know which column is the primary key, that would be great.

@StevePhuc
Thank you so much for sharing your result!
I was further investigating this issue, and it seems like there is a bug where stream() should not work when replica identity is set to full. If it's possible, could you share the SQL you used to create your chat table?
For me, it's working when replica identity is set to default.

I did create my table from the console
And here the table definition

@akram-95
I can see that you have an id property, but couldn't really tell the rest. You can take a screenshot by pressing command + Shift + 4 on mac!
Anyway, let me start over. I did create a brand new Supabase project, and was able to receive all Insert, Update, and Delete events with the following steps. Please follow these steps and let me know if they work. It's simple. No need to tweek the replication identity settings or anything.

Go to Database>Replication and check everything .

Click the button inside the red square

Check that the table at which you want to listen to realtime events are turned on. If not, turn it on.

Listen to the data using a simple StreamBuilder

StreamBuilder<List<Map<String, dynamic>>>(
  stream: supabase.from('chats').stream().order('id').limit(30).execute(),
  builder: (context, snapshot) {
    if (snapshot.hasError) {
      return Center(child: Text(snapshot.error.toString()));
    }
    if (snapshot.connectionState == ConnectionState.active) {
      final dataList = snapshot.data!;
      return ListView.builder(
        itemCount: dataList.length,
        itemBuilder: (context, index) {
          final data = dataList[index];
          return ListTile(
            title: Text(data['text']),
          );
        },
      );
    } else {
      return Container();
    }
  },
)

@dshukertjr I did make it exactly how you told me
It doesn't update the ui
Here is a video of that https://user-images.githubusercontent.com/55693316/129722286-0e1e3581-f460-4d2d-ad8f-11921457178e.MOV

@akram-95
Thanks for sharing a video.
Okay, in that case, could you make sure that you have primary key for your table? When you create a table, you need to have this check box checked.

Also, do you have a public repo that I can take a look at where your working code is stored?

@dshukertjr
It works now , I could know how to solve it
When we create a table and than enable the real-time , it doesn't work perfectly
I needed to delete it and enable real-time and than create the table and it works now perfect
I wanted to share that with you , maybe it can help you to understand the behaviour better
Now I have another issue , I get this error when I use nested Streambuilder

@akram-95
So glad to hear that it is working now. Thanks for sharing the steps you took to make it work. We will work on improving the documentation on how to get started with it.
Thanks for reporting the issue with nested StreamBuilder. Could you actually open another issue for that one?


AHRS Cycles on and off

RY835AI is soldered to the pi. When enabled, the AHRS cycles on and off in the stratux interface. No data seems to make it to Foreflight. GPS works fine. Suggestions?

Foreflight does not want to play in the Stratux sandbox anymore ...
quote "The simultaneous feeding of data to both our operational use and flight simulator use ports was undesirable (unexpected, untested, and not a priority for us to debug, harden, and ultimately support at this time), as was the injection of Stratux AHRS data for operational use. We know what we get at this point with the Stratus 2 and FlightStream AHRS - both Appareo and Garmin have years of experience building certified inertial systems. Lots of time and testing is invested in getting that performance really dialed in, and other priorities are at the top of the stack currently"

Same behavior in WingX, and the AHRS cycle is reflected in the Stratux UI.

The on-off cycling is a sign that the AHRS chip and pressure sensor aren't talking to the RPi. How are you connected? At a minimum, you'll need the following pins connected for AHRS:
VDD --> GPIO Pin 2 (+5V)
GND --> GPIO Pin 6 (Ground)
SDA1 --> GPIO Pin 3
SCL1 --> GPIO Pin 5

I had that same issue a while back, my issue was the SCL1 to pin 5 was not seated fully in the Pi side. As @AvSquirrel  says, check your pin mapping and that all connections are good.

Thanks @AvSquirrel that fixed the issue. got my wires crossed. Appreciate it!


Don't allow arming during a transition

We recently had a problem with our VTOL vehicle that on arming the throttle was set to 50% immediately. On log analysis this was found to be due to the pilot switching from FW to MC just before arming, this meant the vehicle was still in a back transition state and set to MC power as such. Example of this; https://review.px4.io/plot_app?log=fc8d6fab-469b-441b-a0ce-3d149654cff5
To solve this I have added an extra check before arming that ensures if the vehicle is currently in a transition state arming will be rejected.
This was tested on a bench VTOL. I tried arming when not in a transition state and when in a transition state to ensure it was rejecting the arming at the correct times. Log; https://review.px4.io/plot_app?log=29579dcc-8666-4326-a36c-ef7fe991d9b2

Thanks for raising the problem and making this PR @DavidMackie !
I've tested it also on a bench, could reproduce your problem and can confirm that your fix prevents arming while in transition state.
Currently it takes the whole duration of VT_B_TRANS_DUR to finish the transition, also on the ground and disarmed:

I've made a PR to maybe change that (https://github.com/PX4/Firmware/pull/13704) Never the less, I think this prearm check PR makes sense as well to bring in.

Thanks David

@dagar good to merge?


Swift compiler warning

This is super minor, but I thought it'd be worth noting.

% xcrun swift -version
swift-driver version: 1.26.21 Apple Swift version 5.5.2 (swiftlang-13<IP_ADDRESS> clang-13<IP_ADDRESS>)
Target: x86_64-apple-macosx11.0

I believe #47 (opened 4 months ago) addresses this.

Fixed in https://github.com/hotwired/turbo-ios/pull/47


moduleContent should be updated to modulesContent in deployment.template.json

moduleContent should be updated to modulesContent in deployment.template.json and  deployment.test-amd64.template.json

Thanks for spotting this. Fixed with Commit 98dd9521f76322fbe2fc63ddb517d7639b0b6937


Fix false failing test

When the Cluster Lab starts up it often show the following error
[FAIL]   Consul is able to talk to Docker-Engine on port 7946 (Serf)

while actually everything is working.
So we need to give it more time or to make the test otherwise more reliable.

@firecyberice Any progress here? We need this for Trier.

solved by PR #47


Add DSN env variable to Initialize script

What does this PR change?
This include:

Added DSN variable in initialize script.
Fixes a dbDSN mistake in main.go file. And set default value to
dbDSN variable.

Does the PR depend on any other PRs or Issues? If yes, please list them.
None
Checklist
I confirm, that I have...

[X] Read and followed the contributing guide in CONTRIBUTING.md
[ ] Added tests for this PR
[X] Formatted the code using go fmt (if applicable)
[ ] Updated documentation on the Paralus docs site (if applicable)
[ ] Updated CHANGELOG.md

Should we do something similar with the provider_sync?

provider_sync is already looking for DSN variable. Anything missing there?

That should be fine, I was wondering if we should switch out the code to use viper but we can do that in a separate PR.


Templates: Keyboard Nav Karma tests

Context

Keyboard navigation karma test for page templates has been flakey, and failing unexpectedly.
Summary

To be honest I couldn't get this to fail regularly. When it did fail, it was because all the templates were still present when we were expecting them to have been filtered already.
Relevant Technical Choices

Added a  sleep to give it some time before for moving on and evaluating how many times a 'cover' template was still present after filtering.
To-do

User-facing changes

Testing Instructions

[x] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

Reviews
Does this PR have a security-related impact?
no

Does this PR change what data or activity we track or use?
no

Does this PR have a legal-related impact?
no

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This code is covered by automated tests (unit, integration, and/or e2e) to verify it works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #9912

FYI just converted to a draft again since it seems to be in WIP, just so we don't unnecessarily create Percy snapshots and the like :-)

looks good but let's wait for a solution to the karma fixture timeout before merging so we can make sure it's actually fixing remote.

For sure.


Repository name with dots in elm-package.json causes runtime exception in generated js

Context:
Github allows dots in repository names so something like product.dufus is valid.
However if you specify https://github.com/user/project.dufus.git in the repository field of elm-package.json you will get a runtime error from the generated js.
Steps to reproduce
mkdir project.dufus && cd project.dufus && elm-package install --yes && sed -ie s/project.git/project.dufus.git/g elm-package.json && echo import Html\\nmain=Html.text \"Hello world\" > Main.elm && elm-make Main.elm && open index.html

Workarounds
Don't use dot's in repository names in elm-package.json
Discussion
For packages it's probably not a great idea to have dots in the name, but for end-user projects I don't see why this shouldn't be supported. If the decision is not support, an error message at an earlier stage would be nice.

Isn't this just a duplicate of https://github.com/elm-lang/elm-make/issues/106 ?

This is disallowed in the upcoming version of things.
https://github.com/elm-lang/elm-compiler/blob/dev/src/Elm/Package.hs#L128-L129


Improve confirmation email formatting on mobile

The confirmation email doesn't render well on mobile (the table gets too narrow to fit all the content without excessive wrapping).

We're going to change the formatting for this email but it might be worth looking into better html email templates in the future.


[SPARK-5986][MLLib] Add save/load for k-means

This PR adds save/load for K-means as described in SPARK-5986. Python version will be added in another PR.

Test build #28393 has started for   PR 4951 at commit dce7055.

This patch merges cleanly.

Test build #28394 has started for   PR 4951 at commit b144216.

This patch merges cleanly.

Test build #28393 has finished for   PR 4951 at commit dce7055.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class KMeansModel (val clusterCenters: Array[Vector]) extends Saveable with Serializable

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28393/
Test PASSed.

Test build #28394 has finished for   PR 4951 at commit b144216.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class KMeansModel (val clusterCenters: Array[Vector]) extends Saveable with Serializable

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28394/
Test PASSed.

Test build #28408 has started for   PR 4951 at commit cd390fd.

This patch merges cleanly.

Test build #28408 has finished for   PR 4951 at commit cd390fd.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class KMeansModel (val clusterCenters: Array[Vector]) extends Saveable with Serializable
  case class IndexedPoint(id: Int, point: Vector)

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28408/
Test PASSed.

Test build #28453 has started for   PR 4951 at commit 6dd74a0.

This patch merges cleanly.

Test build #28453 has finished for   PR 4951 at commit 6dd74a0.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class KMeansModel (val clusterCenters: Array[Vector]) extends Saveable with Serializable

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28453/
Test PASSed.

LGTM. Merged into master. Thanks!


Support missing fields if they can represent empty containers

I have two cases that myself and some others have use for in several projects. Best to illustrate with an example:
1)
case class Person (id:Option[Long], name:String)
import argonaut._,Argonaut._,Shapeless._
val dec = """{"id":null,"name":"My Name"}""".decode[Person]

That id:null in the json to be parsed is very annoying. Some frameworks, like Ember, don't produce it by default. Unfortunately the following doesn't work:
val dec = """{"name":"My Name"}""".decode[Person]

Let's take another example:
case class Person (name:String, adressRefs:List[Long])
import argonaut.,Argonaut.,Shapeless._
val dec = """{"name":"My Name","addressRefs":[]}""".decode[Person]
That addressRefs:[] in the json to be parsed seems uneccessary; it's an empty list, should be possible to understand that the user means the same when parsing this json:
val dec = """{"name":"My Name"}""".decode[Person]
Regarding 1), this is functionality you get "for free" when using argonaut.CodecJson.derive[Person].
Regarding 2), I didn't find any support for it in Argonaut and ended up wrapping lists in options, which feels wrong in most cases.
Otherwise thanks for a great library!

@eirirlar What version of argonaut-shapeless are you using?
Using argonaut-shapeless 1.0.0-M1, val dec = """{"name":"My Name"}""".decode[Person] works for me.
Also, if you don't want the null to appear in the output JSON, you can either tweak the pretty-printing of argonaut, like
@ argonaut.PrettyParams.spaces2.copy(dropNullKeys = true).pretty(
    Person(None, "My Name").asJson
  )
res3: String = """
{
  "name" : "My Name"
}
"""

or use default values, like
case class Person(id: Option[Long] = None, name: String)

(default values aren't put in the output JSON).

Default values also allow to address 2) :-), like
case class Person(name: String, adressRefs: List[Long] = Nil)

which allows to decoding be fine with no addressRefs in the output, and won't print it if it's empty, as the empty list is the default value.

I use the following maven dependency:

com.github.alexarchambault
argonaut-shapeless_2.11
6.1

That's an old one :-) You should use the one advertised in the README, that is "com.github.alexarchambault" %% "argonaut-shapeless_6.1" % "1.0.0-M1".

Alright, trying that now :)

That worked! Awesome, thanks :)

So, for Maven users, it will be
http://mvnrepository.com/artifact/com.github.alexarchambault/argonaut-shapeless_6.1_2.11
and not
http://mvnrepository.com/artifact/com.github.alexarchambault/argonaut-shapeless_2.11/6.1


misc: Freeze all objects from Settings

Description of the PR
TypeScript's hints weren't enough, so let's get the readonly into the real world.
Changes Proposed in this Pull Request (List new items in CHANGELOG.MD)

Freeze absolutely all objects cached from SG.

Semver Classification

[ ] This PR only includes documentation or non-code changes.
[ ] This PR fixes a bug and does not change the (intended) framework interface.
[ ] This PR adds methods or properties to the framework interface.
[ ] This PR removes or renames methods or properties in the framework interface.

I think this is overall a very good change 👍
How much of a performance impact does freezing everything in the cache have? It would be nice to have an option to turn this off, for experienced users.

How much of a performance impact does freezing everything in the cache have? It would be nice to have an option to turn this off, for experienced users.

In a large bot, how long does it take for V8 to do object.#flags |= FROZEN | SEALED; (with obviously all the other spec stuff)?
I don't know, you can benchmark it, but I doubt it's that heavy, in my bot, only a small portion of the settings are different from defaults, and those are the ones that get individually frozen.
Initialization uses SettingsFolder#init, which doesn't use Object.freeze, since defaults are frozen with this change.

I did some research on this and it appears that Object.freeze is really performance heavy. There is a 67% drop in performance. https://jsperf.com/performance-frozen-object/74
I think Ao touched on this point once in Discord that its the developers own responsibility not to edit their own cached settings. Normal/proper use of Klasa SG would never need this change. This could add a heavy overload to performance to every bot for something that is fixed simply with the readonly. If someone breaks their settings even after the readonly then it’s really their own mistake. Every bot should not have to suffer heavily in terms of performance to prevent this behavior.
If this is added, there should be an option to opt in or opt out.

I did some research on this and it appears that Object.freeze is really performance heavy. There is a 67% drop in performance. https://jsperf.com/performance-frozen-object/74

Thank you for doing the research.

I think Ao touched on this point once in Discord that its the developers own responsibility not to edit their own cached settings. Normal/proper use of Klasa SG would never need this change.

If we're going to take that angle, then we really need to hammer the point home in the docs and everywhere. I think we should just avoid having this footgun, however.

This could add a heavy overload to performance to every bot for something that is fixed simply with the readonly. If someone breaks their settings even after the readonly then it’s really their own mistake. Every bot should not have to suffer heavily in terms of performance to prevent this behavior.

That only works in TypeScript bots. This is a JavaScript library; TS support is a bonus.

If this is added, there should be an option to opt in or opt out.

I wouldn't have a problem with this. I really think the default should be freezing, however.

I did some research on this and it appears that Object.freeze is really performance heavy. There is a 67% drop in performance. jsperf.com/performance-frozen-object/74

The test you linked ran Object.freeze on every iteration, which, of course, slowed it down a LOT. If you freeze the object beforehand, THEN run the test, as done here: https://jsperf.com/frozen-vs-non-frozen-for-of-and-for-in
You'll get the following results

The difference is negligible. The cost for freezing happens only once, at constructing the object, thereby in the end, performance should be the same

I did some research on this and it appears that Object.freeze is really performance heavy. There is a 67% drop in performance. https://jsperf.com/performance-frozen-object/74

Can run 34M times a second, that's fine, considering almost nobody uses the any type or arrays in user schemas, and a properly-made but also large bot would store ~10-20 keys with that type, I don't think I'll see a second of slowdown, and this is really helpful to tell you not to touch your cache accidentally, thus preventing a lot of bugs.
What is frozen? The default values from all SchemaPieces, and any non-primitive value that is patched (modified values that are stored from the db), in my bot for example, deepFreeze would only run about ~3500 times at startup, for 715 guilds and 356k users (counting the recursion too). And I can run it 1000 times more.

If this is added, there should be an option to opt in or opt out.
I wouldn't have a problem with this. I really think the default should be freezing, however.

I agree here - while this is a really good idea for people who don't quite understand the workings of SettingsGateway, or just generally as a hint to not modify the cache directly, this does have a performance impact compared to not deepFreezing - sure, it may be pretty small, but I can bet for some very big bots who are constantly updating/changing settings, that performance does matter.

but I can bet for some very big bots who are constantly updating/changing settings, that performance does matter.

We're talking about a decrease of performance in the factor of a dozen nanoseconds for large updates, and the scenario of an array/any value being updated all time is extremely unlikely.

This won't be needed with #752.


Add project metadata json

Generated with https://gist.github.com/arfon/478b2ed49e11f984d6fb
and manually adjusted.
Fix #5

What is with other emails? Should be ask the coauthors if they want to include their email addresses?

The emails in the codemeta file are optional. Of course, everyone who wants to can add their address there. Won't hurt to let them know.

In that case I will write another email to our group of authors and will ask, if someone want his/her email added to the meta file

Coverage remained the same at 75.425% when pulling eb43734c5c2f3a6fd81318ded35b18c019f2bf9e on codemeta into d9163d5a06809bfa7f90ef8c128f86bfd0f85ee4 on develop.

Coverage remained the same at 75.425% when pulling 0e65c8de8b58951e163a258bc4fb29eb10555928 on codemeta into d9163d5a06809bfa7f90ef8c128f86bfd0f85ee4 on develop.

Coverage remained the same at 75.425% when pulling 0e65c8de8b58951e163a258bc4fb29eb10555928 on codemeta into d9163d5a06809bfa7f90ef8c128f86bfd0f85ee4 on develop.

Coverage remained the same at 75.425% when pulling 17aa8b8e9e50b5111da2cf538bbee524ae8a58e9 on codemeta into d9163d5a06809bfa7f90ef8c128f86bfd0f85ee4 on develop.

Coverage remained the same at 72.392% when pulling a22b8af61aead224b936cabff7c9cb9799b6ccd4 on codemeta into f34103d047570bb904d055d0a427ae0de20ff62e on develop.


attempt to fix error reports on non-object spread elements

Description:
More context
prev:
function f26(x: {}, y: unknown, z: any, d: unknown) {
  let o2 = { a: 42, ...y, ...d, ...x }; // unknown
                      __
  // only y gets an error
}

after:
function f26(x: {}, y: unknown, z: any, d: unknown) {
  let o2 = { a: 42, ...y, ...d, ...x }; // unknown
                     __   __
  // both y and d get the error
}

I also noticed that using ret.is_unknown() was probably problematic. If we changed the order of parameters like this:
// move x to last parameter
function f26(y: unknown, z: any, d: unknown, x: {}) {
  let o2 = { a: 42, ...y, ...d, ...x }; // unknown
}

ret.is_unknown() would be true for x. Which is why I ended up using self.type_of_raw_var. I didn't know if I should open an issue or open a PR so please feel free to reject the PR is this solution isn't good enough
Edit: Now that I think about it, self.type_of_raw_var gets called once already (based on the debug logs) so this solution is probably a bit wasteful (makes it get called twice)

Do you mean the type of the object is already unknown when adding x?

Do you mean the type of the object is already unknown when adding x?

If you replace the for loop in the PR with this:
``rs
for prop in node.props.iter() {
ret = a.append_prop_or_spread_to_type(&mut known_keys, ret, prop, type_ann.as_deref())?;
            if ret.is_unknown() {
                if let RPropOrSpread::Spread(element) = prop {
                    a.storage.report(
                        ErrorKind::NonObjectInSpread {
                            span: Span {
                                lo: element.dot3_token.span().lo,
                                hi: element.span().hi,
                                ctxt: SyntaxContext::empty(),
                            },
                            ty: Box::new(Type::Keyword(KeywordType {
                                kind: TsKeywordTypeKind::TsUnknownKeyword,
                                span: element.span(),
                                metadata: Default::default(),
                                tracker: Default::default(),
                            })),
                        }
                        .into(),
                    );
                }
            }
        }

and have as input
```ts
function f26(x: {}, y: unknown, z: any, d: unknown) {
  let o2 = { a: 42, ...y, ...d, ...x }; // unknown
}

you will get
  × NonObjectInSpread {
  │     span: Span {
  │         lo: BytePos(
  │             3756,
  │         ),
  │         hi: BytePos(
  │             3760,
  │         ),
  │         ctxt: #0,
  │     },
  │     ty: unknown,
  │ }
     ╭─[./a.ts:143:1]
 143 │ function f26(x: {}, y: unknown, z: any, d: unknown) {
 144 │   let o2 = { a: 42, ...y, ...d, ...x }; // unknown
     ·                                 ────
 145 │ }

which is why I tried something different :P .

Can't we return two values from append_prop_or_spread_to_type?
The first return value is type of object, and the second return value is Option<Type> which is Some if prop is a spread.

Or alternatively we can report the errors from append_prop_or_spread_to_type

Or alternatively we can report the errors from append_prop_or_spread_to_type

Ohhh I think we can, I had already tried that but I was using the to variable. It should work with prop_ty. Let me get back to you in a bit

Seems like there's no change in stats?

Can you add some test cases in tsc?

Seems like there's no change in stats?

There shouldn't be (at least for unknownType1.ts). The conformance test case only covers one unknown
function f26(x: {}, y: unknown, z: any) {
    let o1 = { a: 42, ...x };  // { a: number }
    let o2 = { a: 42, ...x, ...y };  // unknown
    let o3 = { a: 42, ...x, ...y, ...z };  // any
    let o4 = { a: 42, ...z }; // any
}

The issue with the 2 unknowns was something I discovered while trying to make report_all work

Can you add some test cases in tsc?

Yes sure, but that'll be in at least a couple days.

No worries, I can add them. :)
I'll add them and merge PR


bump libssh2 version

closes #258

This is downgrade, not upgrade...
Currently on master it is pointing to latest 1.10.0 release commit
You downgraded it to 1.9.0 release commit

As noted by @WSSDude420, this is a downgrade. Additionally, there is a PR already submitted to update libssh2 (#253).
Closing in favor of #253.


Compatiblity with Firefox 55+

You need a WebExtension version for Firefox 55 and above. Currently not available in the AOM.

Hi, I don't have time to deal with this, but if you'd like to give it a shot, that would be great. my understanding is that webextensions work very similar to chrome extensions, so it shouldn't be difficult, but firefox isn't on my critical path personally.


Drop toggle-files-button feature

LINKED ISSUES:
Closes #3580

TEST URLS:
Repository page

SCREENSHOT:
Before

After

GIF

Should also go into Previously part of Refined GitHub with this as the link

@yakov116 Thank you for reviewing my PR. I added the new item to Previously part of Refined GitHub.

Thanks for the PR @roottool, unfortunately we're probably not doing to drop the feature after all, because

I agree, the reason we wanted to drop the feature was due to the Readme link already existing. However even that, only exists on the root of the repository.

https://github.com/sindresorhus/refined-github/issues/3588#issuecomment-696695805


operator [R] kubernetes-imagepuller-operator (1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5)

Thanks for submitting your Operator. Please check the below list before you create your Pull Request.
Updates to existing Operators

[x] Did you create a ci.yaml file according to the update instructions?
[x] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description of the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/merge possible


[8.x] Do not remove null query parameters

As outlined in issue #42794 , Arr:query() removes parameters set to null as a side effect of using http_build_query internally.
For example:
$query = ['foo' => 1, 'bar' => 'hello world', 'nullable' => null, 'empty' => ''];

Removes the nullable => null parameter, while keeping empty => '', which might be confusing.
One particular scenario where this issue can occur is with GET routes which expect query parameters to get back to a filtered state.
With the current implementation, if this particular route expects a parameter just to be present, for example as a boolean parameter, the UrlGenerator would remove these null parameters when, for example generating redirects, or links in a mailable, among other scenarios.
This parameters could come from a view with a link "share report by email", as ConvertEmptyStringsToNull middleware convert all empty strings to null, the request would generate unexpected links in the sent mail.
This PR:

Converts all empty string to null before calling http_build_query in Arr@query()
Fixes test cases, and test helpers to account for nullable query parameters.

Maybe it is a breaking change

This is a huge breaking change, for sure. This should target 10.x.

Sorry, as noted - this could be a breaking change?

Sure, it looks like so. I will send to 10.x then.


C Data Interface Specification

I'm putting this here so that people can start thinking and commenting on a WIP specification, rather than the sketch I posted on the mailing-list. @xhochy @wesm
@bkietz The "movability" section may interest you. I'd also be interested in your feedback on the topic (can you find some pitfalls?).

Open question: is a reference cycle through private_data possible?
For example let's say C++ gives a ArrowArray struct to Julia, Julia gives the ArrowArray struct to another C++ API, which creates a new ArrayData with it.
This will probably deserve testing once we start implementing this.

I don't think that a reference cycle is possible through private_data. That would require casting private data to something which provides access to the reference count. The C++ consumer would not know that the array was ultimately produced in C++, so that cast would simply be an error.
If I understand correctly, producing one of these in c++ might look like:
ArrowArray MakeArrowArray(const std::shared_ptr<ArrayData>& data) {
  ArrowArray ret = {
    // Type description
    .format = data->type->name().c_str(),
    .metadata = "",

    // Data description
    .length = data->length,
    .null_count = data->null_count,
    .offset = data->offset,
    .n_buffers = data->buffers.size(),
    .n_children = data->child_data.size(),
    .buffers = new const void*[data->buffers.size()],
    .children = new ArrowArray*[data->child_data.size()],
    .dictionary = data->dictionary
      ? new ArrowArray(MakeArrowArray(data->dictionary))
      : nullptr,

    // increment data's reference count
    .private_data = new std::shared_ptr<ArrayData>(data);
  };

  auto buffer = ret.buffers;
  for (const auto& b : data->buffers) {
    *buffer++ = b->data();
  }

  auto child = ret.buffers;
  for (const auto& c : data->child_data) {
    *child++ = new ArrowArray(MakeArrowArray(c));
  }

  ret.release = [](ArrowArray* a) {
    delete[] a->buffers;
    delete[] a->children;
    // decrement data's reference count
    delete static_cast<std::shared_ptr<ArrayData>*>(a->private_data);
  };

  return ret;
}

If I understand correctly, producing one of these in c++ might look like:

Roughly, yes.

Codecov Report

Merging #5442 into master will decrease coverage by 22.4%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master    #5442       +/-   ##
===========================================
- Coverage   88.62%   66.21%   -22.41%
===========================================
  Files         958      505      -453
  Lines      127399    69771    -57628
  Branches     1495        0     -1495
===========================================
- Hits       112902    46201    -66701
- Misses      14132    23570     +9438
+ Partials      365        0      -365

Impacted Files
Coverage Δ

cpp/src/arrow/util/memory.h
0% <0%> (-100%)
:arrow_down:

cpp/src/gandiva/date_utils.h
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/util/memory.cc
0% <0%> (-100%)
:arrow_down:

cpp/src/gandiva/decimal_type_util.h
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/compute/logical_type.h
0% <0%> (-100%)
:arrow_down:

cpp/src/parquet/hasher.h
0% <0%> (-100%)
:arrow_down:

cpp/src/gandiva/basic_decimal_scalar.h
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/compute/kernels/boolean.cc
0% <0%> (-100%)
:arrow_down:

cpp/src/gandiva/random_generator_holder.cc
0% <0%> (-100%)
:arrow_down:

cpp/src/arrow/compute/operation.h
0% <0%> (-100%)
:arrow_down:

... and 699 more

Continue to review full report at Codecov.

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

This might be better discussed on the mailing list thread.  But I just wanted to clarify how we expect this to be used.  My understanding, is while this won't be part of the core library per se, users would expose there own API relative to this structure.  So for instance if we wanted to expose an summation  in C++ to another language we could define a function like: int sum(struct ArrowArray* data) that wraps a computational kernel and let Rust for instance all it with there own translation.  Similarly for projects like ducks DB they might allow taking a function pointer as a callback for any results returned via a query void (*process_rows)(struct ArrowArray*).
Am I understanding this correctly?

My understanding, is while this won't be part of the core library per se, users would expose there own API relative to this structure

I expect the C++ core library to have a copy of this definition and allow exporting/importing data using the C protocol. Hopefully other implementations (Java, C# etc.) expose similar operations too.

So for instance if we wanted to expose an summation in C++ to another language we could define a function like: int sum(struct ArrowArray* data) that wraps a computational kernel and let Rust for instance all it with there own translation. Similarly for projects like ducks DB they might allow taking a function pointer as a callback for any results returned via a query void (process_array)(struct ArrowArray).

Yes, your understanding is reasonable. But it might be as simple for DuckDB to take a struct ArrowArray* out-parameter and fill in the struct passed by the caller. Since DuckDB probably wants to return multiple columns, a possible convention is to return a struct array of the columns. And struct ArrowArray allows for top-level metadata (unlike the C++ StructType), which makes it entirely compatible with carrying a schema.
(which begs the question for later: do we want to expose a RecordBatch-like C struct or is it entirely unnecessary? A ChunkedArray-like or Table-like struct may still be desired)

(which begs the question for later: do we want to expose a RecordBatch-like C struct or is it entirely unnecessary? A ChunkedArray-like or Table-like struct may still be desired)

We can see this seems like a pretty good start.
Do you think this is in good enough state to share, I wonder if we could (re)open an issue with DucksDb or another potential consumer to get their thoughts?

We should perhaps wait for feedback from the Arrow community so that the draft spec stabilizes (also I should probably add some rationale, design goals...) but, yes, perhaps in a week or so we can ping DuckDb on this. @fsaintjacques

I added some prose and the specification of format strings. Also made some adjustements (added optional name and flags fields).

@andygrove @eerhardt @sbinet @liyafan82 @trxcllnt Would welcome validation from non-C++ implementations. Ideally this spec will be supported by all official Arrow implementations. C FFI layers should make it reasonably easy (this is just a struct with pointers and a callback), but I don't know for sure :-)

@wesm @nealrichardson Also would welcome feedback on the wording of the "rationale" section, to make sure we're sending the right message :-)

One question we may discuss on the mailing list is whether it makes sense to try to utilize our Flatbuffers types for metadata serialization, rather than inventing a new way to serialize metadata.
I will plan to review the protocol and give some feedback next week.

That's a fair question. My intuition is that JSON and base64 are much more ubiquitous than Flatbuffers (also, they don't require their own compiler), but perhaps I have a high-level language bias (Python) :-) It's probably also less easy to shoot yourself in the foot, as mainstream JSON parsers are generally error-proof, while Flatbuffers is a low-level optimized-for-speed format.

I've added C producer examples, see https://github.com/apache/arrow/blob/1cca0c6ad68e8705692ba44385a435fe5540348d/docs/source/format/CProtocol.rst#c-producer-examples

Any update on this proposal? Our project (TFX) now has a binary dependency on pyarrow (libarrow.so) and our package has to require a specific pyarrow minor version (e.g. >=0.14, <0.15) and that has led to tricky coordination of releases between our project and Apache Beam (which recently has also narrowed its arrow requirements -- Beam 2.17 will require pyarrow>=0.15,<1). IIUC this proposal will allow our library to build with Arrow source while still be able to talk with pyarrow through [1], which will lead to a much relaxed pyarrow requirement.
I'm also willing to help, if any is needed.
[1] https://github.com/apache/arrow/pull/5608

@brills Thanks for your interest :-) We plan to put up a vote soon for this proposal to be accepted. Then the implementation will be relatively quickly integrated, I think.

I realize this is missing a way to communicate the keysSorted flag for map types. I will probably add a ARROW_FLAG_KEYS_SORTED flag value.

I'm reviewing this then will start a vote on the ML

I'm really struggling with this specification. I know I pulled back my previous concerns but they continue to bother me. There are two separate ways people use Arrow: single tenant non-pipelined behaviors and multi-tenant pipelined behaviors. In many ways, the C++ code has been developed more focused on the former whereas the Java code the latter.
I actually think a key strength of the community is that data science and database people are collaborating (which rarely happens). The reason that this has worked this far is that the specification was built in a collaborative way where both use cases were well supported.
I don't believe that this specification effectively supports the multi-tenant pipelined use case. This means it is implicitly turning that into a second-class use case. I think this hurts our ability to keep a cohesive direction for the community.
My originally expressed concerns were assuaged in part by the suggestion that this was a narrow specification that would only be used for a small set of scenarios. However, I no longer believe that is true. This has been suggested for use in several places as a core part of the specification and thus I think we need to address the gaps associated with the multi-tenant pipelined use case before formalizing this.
The good news is that I think that is not a super-complex or invasive change. The reason that the pipelined use case is not well supported is the coupling of schema and data. This doesn't make sense for pipelined use cases since (1) it requires pipelines to have re-parse schema data and (2) it requires pipelines to potentially reconfigure themselves midstream due to changes in schema. Remember, some people (for example my use) never allow batches/chunks of more than ~4000 records due to multiple very good design reasons. By compounding these two items, you basically guarantee that I will never be able to use this. If we can de-couple these concepts in this specification and introduce the concept of a chunk iterator, I think you'll see both communities satisfied with little additional complexity.
These changes don't require someone to have multiple chunks but they make sure that those that do still can use this interface. (For example, I'm actually doing some experiments right now around JNI interactions and I would use this as the way to do that work if these issues were addressed.)

Closing in favour of PR #6040.


KeyError: "File 'some/dir/models.py' could not be found in 'C:\Users\Asus\gptengineer\crm\projects\example'"

Expected Behvior
To work normally as it was working normally before.
Current Behavior
it always gives this or similiar error I dont understand these paths are not exist , ıdk where it came u with these.... KeyError: "File 'some/dir/models.py' could not be found in 'C:\Users\Asus\gptengineer\crm\projects\example'"
Failure Information
KeyError: "File 'some/dir/models.py' could not be found in 'C:\Users\Asus\gptengineer\crm\projects\example'" - used conda , used normal terminal
Steps to Reproduce
If possible, provide detailed steps for reproducing the issue.
well , I was just running normally on my project folder , for some time later it started to give me these errors thats all,
Failure Logs

updated

  File "<frozen runpy>", line 198, in _run_module_as_main

  File "<frozen runpy>", line 88, in _run_code

  File "C:\ProgramData\miniconda3\envs\myenv\Scripts\gpt-engineer.exe\__main__.py", line 7, in <module>
    sys.exit(app())
             ^^^^^

  File "C:\ProgramData\miniconda3\envs\myenv\Lib\site-packages\gpt_engineer\cli\main.py", line 169, in main
    messages = step(ai, dbs)
               ^^^^^^^^^^^^^

  File "C:\ProgramData\miniconda3\envs\myenv\Lib\site-packages\gpt_engineer\core\steps.py", line 588, in improve_existing_code
    overwrite_files_with_edits(messages[-1].content.strip(), dbs)

  File "C:\ProgramData\miniconda3\envs\myenv\Lib\site-packages\gpt_engineer\core\chat_to_files.py", line 220, in overwrite_files_with_edits
    apply_edits(edits, dbs.workspace)

  File "C:\ProgramData\miniconda3\envs\myenv\Lib\site-packages\gpt_engineer\core\chat_to_files.py", line 281, in apply_edits
    if workspace[filename].count(edit.before) > 1:
       ~~~~~~~~~^^^^^^^^^^

  File "C:\ProgramData\miniconda3\envs\myenv\Lib\site-packages\gpt_engineer\core\db.py", line 126, in __getitem__
    raise KeyError(f"File '{key}' could not be found in '{self.path}'")

KeyError: "File 'some/dir/models.py' could not be found in 'C:\\Users\\Asus\\gptengineer\\crm\\projects\\example'"

(myenv) C:\Users\Asus\gptengineer\gpt-engineer>

i am getting the same in improve mode, what was the fix?


Address all outstanding linter errors

It came to my attention that golangci-lint was enabled in 'new' mode, which ignores all existing linter errors present in the codebase. This PR addresses that issue.
Also allowed exported consts without docstrings, as well as dynamic errors. Sentinels are really not required everywhere.

EKS tests unable to run due to provisioning failures, so this is probably good to go. Marking as ready.

@ti-mo Can't we then remove this from the golangci-lint config then?
issues:
  new: true

@ti-mo Can't we then remove this from the golangci-lint config then?
issues:
  new: true

Sure, it's the default anyway, but didn't want to touch it. Not sure why it was added to begin with.


Add /video/liveStream endpoint

This PR enables a MJPEG stream on /video/liveStream, allowing for easier debugging of the DUT.
This also removes the border crop from the video, as it's unnecessary with USB capture devices.
Change-type: minor
Signed-off-by: Pedro Henrique Kopper<EMAIL_ADDRESS>

@phckopper this is awesome and I can't wait to try it out

Will be a part of https://github.com/balena-io-hardware/autokit-worker-sw according to #40 and #41


Acknowledgment of Login Message

Hi guys,
is there a way of acknowledge the login message with the restful api? It is the ok button when you open the OneView before you login
BR

Hi @herrryan are you talking about the one time EULA before any login is done? If not, could you provide a screenshot of the message?

Yes, it is that. And I got the following error message when I tried to log in with the oneviewclient. Any hints?

Ok, I found a setting in the security section to disable this acknowledgement.