Convert more CI jobs to be package-based

Test workflows (for integration and e2e tests as well as benchmarks) should be consuming packages, not source build directories. Build workflows could run unit tests.
For example, the test_all workflow currently downloads a nearly 10GB build archive here: https://github.com/openxla/iree/blob/79b6129e2333ae26e7e13b68c27566102dcece6e/.github/workflows/ci.yml#L290-L294
The PkgCI workflows show how this could be set up.
This may involve restructuring some parts of the project (like tests/e2e/) to be primarily based on packages and not the full CMake project.
In ci.yml, these are the jobs that currently depend on the build archive produced by build_all:

[ ] test_all
[ ] test_gpu
[ ] test_a100
[ ] test_tf_integrations
[ ] test_tf_integrations_gpu
[x] build_benchmark_tools
[x] build_e2e_test_artifacts
[x] cross_compile_and_test
[x] build_and_test_android
[x] test_benchmark_suites

Related discussions:

Discord discussion on 2024-01-24

We could separate "unit tests" from "integration/e2e tests" in the CMake project. Unit tests should be able to run right after the build step, while integration tests should use a release/dist package for compiler tools and a [cross-compiled] runtime build for test binaries.
I'm considering a nested CMake project for integration tests, replacing the iree-test-deps utility target, but that might not be needed.

Take these test_gpu logs as an example.
That is running this command:
        run: |
          ./build_tools/github_actions/docker_run.sh \
              --env IREE_NVIDIA_SM80_TESTS_DISABLE \
              --env IREE_MULTI_DEVICE_TESTS_DISABLE \
              --env IREE_CTEST_LABEL_REGEX \
              --env IREE_VULKAN_DISABLE=0 \
              --env IREE_VULKAN_F16_DISABLE=0 \
              --env IREE_CUDA_DISABLE=0 \
              --env IREE_NVIDIA_GPU_TESTS_DISABLE=0 \
              --env CTEST_PARALLEL_LEVEL=2 \
              --env NVIDIA_DRIVER_CAPABILITIES=all \
              --gpus all \
              gcr.io/iree-oss/nvidia@sha256:892fefbdf90c93b407303adadfa87f22c0f1e84b7e819e69643c78fc5927c2ba \
              bash -euo pipefail -c \
                "./build_tools/scripts/check_cuda.sh
                ./build_tools/scripts/check_vulkan.sh
                ./build_tools/cmake/ctest_all.sh ${BUILD_DIR}"

with all of those filters set, these are the only test source directories included:
iree/hal/drivers/cuda2/cts                          =  83.08 sec*proc (24 tests)
iree/hal/drivers/vulkan                             =   0.33 sec*proc (1 test)
iree/hal/drivers/vulkan/cts                         =  44.97 sec*proc (12 tests)
iree/modules/check/test                             =   5.95 sec*proc (2 tests)
iree/samples/custom_dispatch/vulkan/shaders         =   2.19 sec*proc (2 tests)
iree/samples/simple_embedding                       =   0.65 sec*proc (1 test)
iree/tests/e2e/linalg                               =   8.50 sec*proc (7 tests)
iree/tests/e2e/linalg_ext_ops                       =  32.42 sec*proc (11 tests)
iree/tests/e2e/matmul                               =   8.48 sec*proc (5 tests)
iree/tests/e2e/regression                           =  47.80 sec*proc (41 tests)
iree/tests/e2e/stablehlo_models/mnist_train_test    =  29.41 sec*proc (2 tests)
iree/tests/e2e/stablehlo_ops                        = 410.55 sec*proc (302 tests)
iree/tests/e2e/tensor_ops                           =   9.71 sec*proc (6 tests)
iree/tests/e2e/tosa_ops                             = 142.57 sec*proc (120 tests)
iree/tests/e2e/vulkan_specific                      =   5.20 sec*proc (5 tests)
iree/tests/transform_dialect/cuda                   =   0.20 sec*proc (1 test)

iree/hal/drivers (except cts) is pure runtime code
iree/hal/drivers/*/cts can use compiler tools
iree/tests/ is mostly comprised of "check" tests. A few tests use lit (using iree-compile, iree-opt, iree-run-mlir, FileCheck, iree-run-module, etc.)

+1 - I've been meaning to do something like that.
The line between unit and integration tests can sometimes be blurred a bit but a unit test can never require special hardware. That belongs in something that can be independently executed with tools provided out of band

I'm deciding which of these job sequences to aim for:

build_dist_package --> compile_test_deps --> test_gpu
build_dist_package --> test_gpu

Portable targets like Android require running the compiler on a host machine, but other jobs like test_gpu that run on Linux/Windows can run the compiler if they want. The current tests/e2e/ folder after building iree-test-deps is ~34MB with ~1500 files and large CPU runners take around 30 seconds to generate all of those .vmfb files. All of those stats will likely grow over time. We don't really want to be spending CPU time on GPU machines, but keeping that flexibility for e2e Python tests could be useful.

Got some good data from my test PR https://github.com/openxla/iree/pull/16216 (on the first try too, woohoo!)

Here's a sample run using just the "install" dir from a prior job: https://github.com/openxla/iree/actions/runs/7659217597/job/20874202528?pr=16216.

Stage
Time taken
Notes

Checkout
1m16s
Could use the smaller 'runtime' checkout?

Download install/ dir
5s
2.97GB file, could be trimmed - see notes below

Extract install/ dir
30s

Build runtime
1m

Build test deps
2m04s
Currently generating all test .vmfb files, even those for CPU

Test all
6m20s

TOTAL
11m47s

The install dir has two copies of the 3.6GB libIREECompiler.so that don't appear to be symlinks:

install/lib/libIREECompiler.so
install/python_packages/iree_compiler/iree/compiler/_mlir_libs/libIREECompiler.so

If this was using an "iree-dist" package instead of the full "install/" directory, that would just be the bin/ and lib/ folders, instead of also including python_packages/.

Compared to a baseline run using the full "build" dir from a prior job: https://github.com/openxla/iree/actions/runs/7647953292/job/20840561210

Stage
Time taken
Notes

Checkout
46s

Download build/ dir
9s
5.94 GB (was 8.5GB)

Extract install/ dir
1m01s

Test all
6m20s

TOTAL
8m46s

It doesn't seem too unreasonable to keep the test artifact generation on the same job (on a GPU machine), at least with the current number of test cases. It would be nice to share workflow configurations between "desktop Linux GPU" and "Android GPU" though.

oof at double libIREECompiler.so
may need some more samples - 46s -> 1m16s for the same checkout makes me wonder if the timescales match

oof at double libIREECompiler.so

Stella has been suggesting using a package distribution like iree-dist (without that problem), but I was just starting with the install/ directory from a regular source build.

may need some more samples - 46s -> 1m16s for the same checkout makes me wonder if the timescales match

That variance looks about right for Linux (just clicking through asan, tsan, build_all, test_all, etc. jobs on a run like https://github.com/openxla/iree/actions/runs/7647953292 and looking at the checkout step in each.
The smaller "runtime only" checkout is more like 5s (no submodules) + 6s (runtime submodules): https://github.com/openxla/iree/actions/runs/7647953292/job/20839868561.
Having these tests jobs use the main project makes drawing solid lines around components like "compiler" and "runtime" hard though. I don't really want to accidently exclude certain tests by forcing "integration test" jobs to use the big -DIREE_BUILD_COMPILER=OFF hammer. If tests were in a separate CMake project (nested in a subdir of the repo) then it would be easier to say to test authors/maintainers (oh... that's me) "these have to use installed artifacts, work with that".

I think I'll try converting tests/ (and later possibly samples/) into a standalone CMake project, possibly with the ability to still include it from the root project for developer source builds.
The test_gpu job would still build the runtime (for CUDA, Vulkan, etc. unit tests that run on a GPU), but it will also build the "tests" subproject using iree-dist (or install/). That may pull in FileCheck, llvm-lit.py, and other tools from LLVM that are needed to run the tests, but it will not build the compiler binaries from source.

Found a few things to fix first / as part of this.
Most of the tests in tests/e2e/stablehlo_models/ have been skipped, I think following https://github.com/openxla/iree/pull/15837 with this change:
ctest_all.sh
+if (( IREE_METAL_DISABLE == 1 )); then
+  label_exclude_args+=("^driver=metal$")
+fi

The combination of these different filtering mechanisms is excluding tests since no CI configuration has both Vulkan and Metal:
https://github.com/openxla/iree/blob/f3b008c6db310f787ad76f151c21a30f72b14794/tests/e2e/stablehlo_models/CMakeLists.txt#L32-L35 https://github.com/openxla/iree/blob/f3b008c6db310f787ad76f151c21a30f72b14794/tests/e2e/stablehlo_models/edge_detection.mlir#L2-L4
I don't think we should use RUN: [[ $IREE_*_DISABLE == 1 ]] any longer. These tests should have separate targets for each HAL driver ('check' test suites do this automatically).

I was considering disallowing "lit" integration tests in tests/ altogether, but many are legitimate uses:

So we should have the 'lit' / FileCheck tooling still available on host platforms that run those tests I think.

Yeah, we can fix that double compiler binary thing with the proper flow.
Looks like the main variance in timing is coming from build test deps. Is that mostly coming down to CMake configure or something? Other than that, it is the same work done in a different place.

Looks like the main variance in timing is coming from build test deps. Is that mostly coming down to CMake configure or something? Other than that, it is the same work done in a different place.

Here is the timing on the GPU machine:

Step
Timing

Configure
20s

Build runtime
60s

Build test deps (all)
2m04s

Run ctest (GPU only)
6m20s

The "build test deps" step is running the compiler to generate .vmfb files for iree-check-module:
[1/[14](https://github.com/openxla/iree/actions/runs/7659217597/job/20874202528?pr=16216#step:9:15)[21](https://github.com/openxla/iree/actions/runs/7659217597/job/20874202528?pr=16216#step:9:22)] Generating check_vulkan-spirv_vulkan_conv2d.mlir_module.vmfb from conv2d.mlir
[2/1421] Generating check_winograd_vulkan-spirv_vulkan_conv2d.mlir_module.vmfb from conv2d.mlir
[3/1421] Generating check_large_linalg_matmul_cuda_f32_to_i4.mlir_module.vmfb from f32_to_i4.mlir
[4/1421] Generating check_large_linalg_matmul_cuda_conv2d.mlir_module.vmfb from conv2d.mlir
[5/1421] Generating check_vmvx_local-task_conv2d.mlir_module.vmfb from conv2d.mlir
[6/1421] Generating check_large_linalg_matmul_cuda_i4_to_f32.mlir_module.vmfb from i4_to_f32.mlir
[7/1421] Generating check_vulkan-spirv_vulkan_i4_to_f32.mlir_module.vmfb from i4_to_f32.mlir
[8/1421] Generating check_winograd_llvm-cpu_local-task_conv2d.mlir_module.vmfb from conv2d.mlir
[9/1421] Generating check_llvm-cpu_local-task_sort.mlir_module.vmfb from sort.mlir

If "build test deps" was taking 5+ minutes, I'd be more inclined to move it to a CPU machine and pass the test files to the GPU runner, as we have the Android / RISC-V cross-compilation test jobs currently configured. We might still end up with that sort of setup eventually, but I don't think it is needed for a "v0" of package-based CI.

Yeah, and I'd rather make the compiler faster than build exotic infra unless if it becomes needed...

Made some pretty good progress on prerequisite tasks this week.

The latest thing I'm trying to enable is the use of iree_lit_test without needing to build the full compiler. That would let us run various tests under samples/ and tests/ that are using lit instead of check (some for good reasons, others just by convention) with a iree-dist package*.
I have a WIP commit here that gets close: https://github.com/ScottTodd/iree/commit/47bb19ab3ef761118627c87a1a455ad2eb4ee2eb
* another way to enable that is to allow test jobs to set IREE_BUILD_COMPILER and then be very careful about which targets those jobs choose to build before running tests (ctest for now, but also pytest in the future?). Some tests require building googletest binaries like hal/drivers/vulkan/cts/vulkan_driver_test.exe, so I've been leaning on just building the all target, but we could instead have more utility targets like iree-test-deps. Actually, something like that may be a more robust idea... @stellaraccident have any suggestions? Something like iree-run-tests from https://github.com/openxla/iree/pull/12156 ?

would really like to not overload IREE_BUILD_COMPILER - KISS - if we can't make iree_lit_test use FileCheck from the package for some reason then we should convert all those tests to something else (check tests, cmake tests, etc)

Simple is what I'm aiming for... just figuring out how to get there still.
I want test jobs to run any tests that either use special hardware (GPUs) or use both the compiler and the runtime.
I'd like them to follow this pattern:
cmake -B ../iree-build-tests/ . -DIREE_HOST_BIN_DIR={PATH_TO_IREE_DIST} {CONFIGURE_OPTIONS}
cmake --build ../iree-build-tests/ {--target SOME_TARGET?}
ctest --test-dir ../iree-build-tests/

If {CONFIGURE_OPTIONS} can be empty or at least leave off -DIREE_BUILD_COMPILER=OFF then great
If the build step can build the default all, great. Otherwise, I can build iree-test-deps or some similar utility target

would really like to not overload IREE_BUILD_COMPILER - KISS - if we can't make iree_lit_test use FileCheck from the package for some reason then we should convert all those tests to something else (check tests, cmake tests, etc)

What Ben says. I've been down the path of mixing this stuff up and don't want to see anyone else fall in and then have to dig out of the pit.
We can package some of the test utilities. No big deal.

I think enough of the tests are segmented now (or will be once I land a few PRs).
Next I was planning on

switching a few existing jobs from using the "build" archive to using the "install" archive in-place. That will let us closely check for coverage gaps
switching from "install" to "iree-dist", try using github artifacts instead of GCS
taking a closer look at which build jobs are actually needed and how they are configured... I have a feeling that we don't need asan/tsan/tracing/debug/etc. as currently implemented (we still want that coverage... but the current jobs are unwieldy)

switching a few existing jobs from using the "build" archive to using the "install" archive in-place

Or I could just fork the jobs over the pkgci... that might be better. 🤔 (would want iree-dist over there, and maybe a few extra tools included like lit.py)

Okay, I have a script that "tests a package": https://github.com/ScottTodd/iree/commit/43b3922191e6df895752ef5ac472169329802a50 . Going to try wiring that up to GitHub Actions, first pointed at the iree-dist-*.tar.xz files from a nightly release like https://github.com/openxla/iree/releases/tag/candidate-20240131.787.
The script is basically:
cmake -B build-tests/ -DIREE_BUILD_COMPILER=OFF -DIREE_HOST_BIN_DIR={PACKAGE_DIR}/bin
cmake --build build-tests/
cmake --build build-tests/ --target iree-test-deps
ctest --test-dir build-tests

with all the filtering goo from https://github.com/openxla/iree/blob/main/build_tools/cmake/ctest_all.sh (now that I say that I realize I could also call that script... but might be worth keeping this self contained before it gets too entangled again)
The GitHub Action will need to

Clone the repo, with submodules

I'd like to limit it to only runtime submodules, need at least lit.py installed for that

Download the release and unzip the iree-dist files (OR pull them from another action, like pkgci_build_packages.yml)
Run the script (under Docker?)

We should then be able to use that for "test_cpu", "test_gpu_nvidia_a100", "test_gpu_nvidia_t4" and "test_gpu_amd_???" jobs (all Linux, but Windows/macOS could also work)
Could then include Python packages in the tests too and fold the "test_tf_integrations_gpu" job and other Python tests in as well.
The remaining jobs will need something else - probably just a different pile of GitHub Actions yaml...
build_benchmark_tools
build_e2e_test_artifacts
cross_compile_and_test
build_and_test_android
test_benchmark_suites

Nice, that test script is working with iree-dist from a release.
Here's the workflow file: https://github.com/ScottTodd/iree/blob/infra-test-pkg/.github/workflows/test_package.yml, and a sample run on a standard GitHub Actions Linux runner (CPU tests only): https://github.com/ScottTodd/iree/actions/runs/7733994097/job/21087164304 (100% tests passed, 0 tests failed out of 647)
Next I'll give that a coat of paint (organize the steps, prefetch Docker, trim the build, make the input package source configurable, etc.).

On the topic of CI optimization, I've been wondering what to do with the CI jobs that are required to build from source:

Job name
Approx timing
Details

build_all
7m20s

build_test_all_bazel
2m30s

build_test_all_arm64
6m50s
(postsubmit)

build_test_all_windows
14m30s
(postsubmit)

build_test_all_macos_arm64
6m50s
(postsubmit)

build_test_all_macos_x86_64
28m60s
(postsubmit)

build_test_runtime
1m30s

build_test_runtime_arm64
1m50s

build_test_runtime_windows
2m50s

python_release_packages
17m40s

asan
19m00s
(two configs)

tsan
14m00s
(two configs)

small_runtime
1m10s

gcc
4m50s

tracing
2m10s

debug
15m20s

byo_llvm
6m40s

We should be able to organize the build_ jobs into a matrix
The various configs (asan/gcc/debug/byo_llvm) are pretty slow to build, even with 99% cache hit rates. Sanitizers are really useful, but I want the critical path for most PRs to be much lighter :/

(would also love to fix the names at some point)

Sanitizers are really useful, but I want the critical path for most PRs to be much lighter :/

Here's an idea... what if we moved a chunk of those jobs to postsubmit (as a trial?) and watched for how often they fail or developers ask for them on presubmit? 🤔

True, the asan job is the only one running the tests in https://github.com/openxla/iree/tree/main/llvm-external-projects/iree-dialects 😛 (that directory will eventually be folded into the main tree though)

I think I have line of sight to completing this, or at least getting it close to the finish line.
Already done:

Structured CMake tests such that integration tests can be run using a runtime build (-DIREE_BUILD_COMPILER=OFF) and a release package (install dir, or iree-dist)
Proof of concept workflows for running integration tests with packages
Migrated benchmark and cross-compile jobs to using install-dir instead of build-dir

Ideas for next steps:

Migrate test_all, test_gpu, and test_a100 to use install-dir
Build iree-dist in pkgci.yml at the head of the pipeline
Land workflow for running tests given a package path (either release url or previous run artifact)
Move test_all, test_gpu, and test_a100 from ci.yml to pkgci.yml (with new names, using different Dockerfiles, etc.)
Optimize hal/cts/ build time so runtime builds with tests enabled are faster on machines without many CPU cores
Move test_tf_integrations and test_tf_integrations_gpu into pkgci.yml using Python releases (or fold into pkgci_regression_test_*.yml?)
Figure out what to do with the assorted jobs remaining in ci.yml

Made more progress today. After a few more PRs land I can remove the build-dir archive/upload steps.
After that I want to try

using workflow artifacts instead of GCS for the install dir. https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
switching some jobs to using GitHub-hosted runners (lower disk space on those, so need to be careful - see https://github.com/openxla/iree/pull/16200)

Leaving myself some notes before I context switch for a bit...
I want to move the "integration test" jobs from ci.yml to pkgci.yml. That will require switching them from using the "install dir" that is currently passed via GCS (gcloud storage ...) to using "iree-dist" (or the Python packages) passed via either GCS or GitHub Workflow Artifacts.
I have (very early) progress on my infra-pkgci-fork, infra-pkgci-venv, and infra-linux-dist branches. Ideas:

Add a build_linux_dist.sh script next to build_tools/pkgci/build_linux_packages.sh. That can build iree-install-dist-stripped by default, or iree-install-tools-runtime for faster iteration on standard runners in forks
Make workflows like .github/workflows/pkgci_regression_test_cpu.yml able to run from either artifacts from a prior job OR artifacts from a github release in a given repo. That would let me iterate on workflows from a fork by pointing at the artifacts from a nightly release in the main repo
Make build_tools/pkgci/setup_venv.py portable to Windows / using windows_AMD64 instead of linux_x86_64 from a release so I can iterate on Python workflows locally

For GCS for workflow artifacts, I want to check how large the install/dist directories are, if we can make them smaller, what limits GitHub imposes, and how fast upload/downloading is. We can also set shorter artifact retention policies if storage starts incurring costs.

https://github.blog/2024-02-12-get-started-with-v4-of-github-actions-artifacts/ looks very promising for switching from GCS storage to using workflow artifacts. Uploads and downloads for large files used be pretty slow, but they seem to be much faster now.

Passing around the "install" directory instead of release packages is still a bottleneck for GPU test jobs. Would be nice to complete this refactoring.

This recent test_amd_mi250 run took 1m30s to download the 3.2GB install dir then another 41s to extract it: https://github.com/iree-org/iree/actions/runs/9910771644/job/27389176075#step:4:1
This other Regression Test / test_onnx :: nvidiagpu_cuda run took 4s to download the 72MB release (no debug symbols though): https://github.com/iree-org/iree/actions/runs/9911468532/job/27390310065#step:5:22

Regarding debug symbols, I've noticed that newer ubuntus integrate symbol server so that they dynamically fetch debug symbols on crash or gdb. While probably a bit of a lift to get that integrated and working right, would be great if that also helped these kind of CI cases (lazy fetch debug info if needed). Would solve a big pain point in the field too.
I don't know how any of that machinery is setup, but I've worked with private implementations that do it and know the basics...

I have reasonable line of sight to removing ci.yml entirely:

[ ] Move "platforms" jobs to standalone ci_[os]_[arch]_[compiler]_[config].yml files, e.g. ci_linux_x64_clang.yml

https://github.com/iree-org/iree/pull/17979
https://github.com/iree-org/iree/pull/17981
https://github.com/iree-org/iree/pull/17990

[ ] Configure each of those new jobs to run on whatever combination of triggers makes sense given available runners: pull_request (based on specific paths), push (based on specific paths), schedule (e.g. nightly), workflow_dispatch
[ ] https://github.com/iree-org/iree/issues/17955
[ ] Migrate GPU test jobs to pkgci, swapping the 'install' directory for compiler tools available in python packages
[ ] Figure out a story for cross compilation jobs (maybe same as GPU test jobs)
[ ] Find a place for the remaining jobs: build_test_all_bazel, sanitizers, small_runtime, tracing, build_test_runtime

Could keep the Linux runtime jobs grouped, but should separate any that need special runners

We can package some of the test utilities. No big deal.

Opinions on including each of these tools in the iree-compiler / iree-runtime python packages?

generate_embed_data
iree-flatcc-cli
FileCheck
not
iree-opt
iree-run-mlir

That gets us coverage for most tests using just packages and no "install" directory. Other tools that might be useful but I think we can avoid them are clang and llvm-link.

While I ponder including more tools in the packages, I found a lightweight way to exclude all lit tests from a test run. May be able to trust the full compiler build job to cover lit tests, then require that package CI tests use other test facilities (pytest, native test, etc.)

Well, generate_embed_data and iree-flatcc-cli are pretty much mandatory for building the runtime, tests, and samples. Right now we only build those if IREE_HOST_BIN_DIR is not set, expecting them to come from that folder if it is. On host platforms we can build those tools cheapy and easily, but when cross compiling they should really come from the host, not the target build.
So I'm thinking about including those in the iree-runtime package. Probably first renaming generate_embed_data to iree-c-embed-data, matching the CMake function name.

I'd like for jobs consuming/testing the packages produced by pkgci to be easy to disable or change the triggers for. Ideally this would be possible with small code changes to individual workflow files or with changes via a web interface:

GitHub doesn't make this easy. Buildkite or other CI providers might be a better fit for this usage, but I want to keep using GitHub Actions if possible.
I ran two experiments so far:

workflow_run (docs here): This triggers a workflow after another workflow completes. Looks great: we'd run pkgci_build_packages.yml then a pkgci_test_packages_nvidia.yml would watch for that and start on its own. Unfortunately, the triggered workflow does not run in the pull request context or appear in 'checks' on pull requests, so results wouldn't be easily visible and they can't be marked as 'required' before merging is allowed.
Reusable workflows (docs here): these include other workflows via uses: . I was hoping if I disabled the reusable workflow in the UI then it wouldn't trigger. Unfortunately, the uses: acts like an inlined string substitution and just pulls the callee workflow file in to the caller workflow, so it ignores if the callee is enabled.

Next I want to try https://github.com/lewagon/wait-on-check-action . Test workflows would have a "wait" job running on standard GitHub-hosted runners that would poll for the build_packages check completing. When the check completes they would start jobs using self-hosted runners that test the packages. Those test workflows could then be disabled independently from the core package workflow(s). Polling on a runner for ~20 minutes is less than ideal though, especially since GitHub sets a limit on the number of concurrent GitHub-hosted runners (20 on the free GitHub plan: docs here). Maybe we could run some very small self-hosted runners (like 10 runners per CPU core) whose only job was to poll.

Polling on a runner for ~20 minutes is less than ideal though, especially since GitHub sets a limit on the number of concurrent GitHub-hosted runners (20 on the free GitHub plan: docs here).

For opt-in jobs on PRs polling might not be so bad:

Add label to PR
Trigger action runs on  pull_request_target:
    types:
      - labeled

Trigger action (or another action it runs) polls until the build_package check finishes

This will spin for 10-20 minutes if started immediately after PR creation
This will run with no delay if build_package already completed (dev or reviewer: "unit tests passed, let's now also check benchmarks on system foo and system bar")

If the build_package check was not successful, skip/fail
Opt-in jobs use the artifacts from build_package to run their tests/benchmarks

Because polling would also occur on a limited subset of PRs, we wouldn't (hopefully) use too many concurrent runners for it. That would then let us get the benefits of decoupled workflows that can be independently triggered and enabled/disabled.

End of week updates:

With https://github.com/iree-org/iree/pull/18007 I've finished migrating most workflows to pkgci.

build_and_test_android is the main holdout, but otherwise build_all can be deleted in favor of ci_linux_x64_clang.yml. Then we'll no longer be uploading the 3GB "install" archive on every CI run.
The remaining jobs in that workflow can either stay there or move into new files: build_test_all_bazel, build_test_runtime, small_runtime, tracing.

I'll be updating the build status badge(s) in our root README.md file. Might be able to combine multiple workflows into a single status, or we can split by platform. Not sure if I want all builds listed or just a few:

I'll be adding a new page to our developer docs with a full set of workflow status badges, information about each workflow, debugging/maintenance tips, explanations about github-hosted vs self-hosted runners, and instructions for contributors to add/propose new runners and workflows:

Taking a look at the Android and other cross-compilation jobs now, since build_and_test_android is the last (enabled) job in ci.yml that is using build_all. Once that is migrated (or disabled/removed) we can switch to using ci_linux_x64_clang.yml as our primary job that builds the compiler and runs lit tests.
I can iterate on at least the cross_compile job in https://github.com/iree-org/iree/blob/main/.github/workflows/build_and_test_android.yml. The test job may be harder since it uses self-hosted Android runners, some of which are limited to only run on postsubmit.
Rough plan:

See if android.Dockerfile can be replaced with installing clang/ninja and then getting the Android NDK from something like https://github.com/nttld/setup-ndk
Update build_tools/cmake/build_android.sh as needed to be compatible with packages instead of the install dir

Getting closer to migrating the Android job to pkgci, and then could also look at the other cross compilation workflows.
work stack since yesterday:
remove `build_all` job from `ci.yml`
└── move `build_and_test_android` job from `ci.yml` to `pkgci.yml`
    └── (DONE) make Android `cross_compile` job install deps instead of using Docker
    └── make Android `cross_compile` job compatible with python packages
        └── (DONE) actually use clang instead of gcc in various builds
            └── (DONE) update iree-template-runtime-cmake to use clang
                └── (DONE) update iree-template-runtime-cmake to latest release
        └── (DONE) use ccache in various runtime builds
    └── make Android `test` job compatible with GitHub artifacts

This is finished, for the CI jobs that are currently enabled.
Items to follow-up on:

The Android job is building (cross-compiling with the Android NDK) but it is not testing. That will need some workflow changes and either physical or emulated devices.
The cross_compile_and_test job matrix in ci.yml that covered [riscv_64 linux, riscv_32 linux, riscv_32 generic, emscripten wasm32] has been disabled for some time. Can port those to pkgci.yml by following how the Android job was refactored.
Many jobs could be faster with changes to how runtime HAL CTS tests are built/linked


Project should not be analyzed

Need to ensure project is not analyzed too. Analyzing lower cases the string and I don't think that's what we want for this field.

As an alternative, you can create the mappings through configuration. You need to change the Dockerfile to make it copy the entire config directory instead of only the elasticsearch.yml:
# Mount elasticsearch config
ADD config/ /elasticsearch/config/

Then you can add mapping configurations in config /mappings/_default/ (or more tightly scoped, if you want). Here's a sample config I'm using in a different project (I haven't made that public yet):
{
  "date_detection": false,
  "dynamic_templates": [
    {
      "dates": {
        "match": "Data.*",
        "match_pattern": "regex",
        "mapping": {
          "type": "date",
          "format": "yyyy-MM-dd HH:mm:ss.SSS"
        }
      }
    },
    {
      "numeric_values": {
        "match": "^Valoare.*",
        "match_pattern": "regex",
        "mapping": {
          "type": "integer"
        }
      }
    },
    {
      "text_fields": {
        "match": "*",
        "match_mapping_type": "string",
        "mapping" : {
          "type" : "string",
          "analyzer" : "romanian"
        }
      }
    }
  ]
}

There's nothing wrong with your approach, just putting this out there. This way you separate elasticsearch configuration from application logic.

Alex!
This looks great. It'll probably be much easier to specify like this. I'll move to this approach as I continue to hack away at this.

Hey guys. Found some time this weekend and hacked in support for basic queries. Just searches everything. I also add some validation around the document structure that gets persisted to disk.


Refactor crud templates to use full react/redux

Background
Hi guys, the main goal about this PR is to reflect how to use full react/redux without a combination of React states and redux actions. Now, there are generic actions (with their own reducers) that notify when an alert or modal must to be shown. However, those changes meant to re write all react componentes and also actions/reducers. Every component call a particular action wrapped into an inner method or directly assigned to a prop. In case, a component need to declare several inner methods they are autobinded at constructor level.
Changes

Add react-autobind module.

Re write all components to use redux actions

Re write all redux actions/reducers

Add generic actions (with their reducers) to handle alerts and modals

Evidence

Regarding my previous question:

This pattern seems to approach the pub-sub design a little bit more than the nested component approach. I think it is acceptable, but I have a concern for a network of messages (dispatches) being sent around the application and making it a decoupled spaghetti.
Is is possible to keep it at bay? Would it be used only on particular circumstances? If so, how to tell which ones are fine and which ones are not?

@pablomigliasso and I discussed over Slack -- the approach he proposes is to keep these kind of actions that receive the dispatch to NOT dispatch on further actions. As such, the responsibilities of these actions is totally decoupled from the rest of the applications while the components that invoke them should only know what particular action they need executed,
Yes, it is a little bit similar to the pub-sub pattern, but we won't allow it to proliferate because it only be used for the case of generic kinds of interactions that are only cross-section and require less effort to be done in this way than passing and composing components.
Thanks @pablomigliasso for the great explanation!

https://media1.giphy.com/media/l0HlNzJUVZ5zrHikE/giphy.gif


GUI3: improve Qt Widget - Tab1 layout #120

Ticket solved. Kudos to you!

Ticket solved. Kudos to you!


Store Text TODOs

Add text / respond to comments in store section of paper.

[ ] Codeneuro TODO
[ ] Read through ingest and blaze
[ ] Update ingest section
[ ] Update propagate section

@jovo I did all the TODO's in the store.tex section. I should summarize the ndblaze section better because it seems quite a bit. Let's talk tomorrow on this and I will do it immediately after that.

[ ] Summarize ndblaze section

@willgray Can you please wrap up your TODO in this section. I am still confused which is the correct location.

@kunallillaney i moved @willgray 's task to his issue.
of note, store.tex wasn't compiling, i fixed it.
you got the content in for ndblaze, so i'm closing this issue, we can make a new one for revising text!


Implement actual statistics

This PR implement actual statistics for the GET /jobs/<job_id> endpoint

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Style calendar for custom date selector consistent with the rest of the UI

It currently uses the stock styling from the package and doesn't support darkmode.

hello,
would like to solve this issue can provide any image or video for a better understanding of the issue

Hey! Thanks for your interest in contributing to SN :)
If you go to https://stacker.news/search?q=test&when=custom and click into the date range, you should see the calendar that was added in #567 for custom date selection:

As you can see, the calendar currently uses the stock styling from the package and doesn't support darkmode.
So this ticket is about changing that.


SharedModel tests fail in CI

11 of the shared models fail intermittently in CI. Issue seems to be the assumption of the timezone on the machine running the tests.

Merged.


[master] Bump Mesos to nightly master 0bf3646

High-level description
This is a routine bump to the latest Mesos and mesos-modules.
Related JIRA Issues
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Changelog:
https://github.com/apache/mesos/compare/2a1c5d518b43be21673b2cfdf72fc2e60658a826...0bf3646174e02062abc5170e5f0c68376f1ced96
https://github.com/dcos/dcos-mesos-modules/compare/c5cf5bd36307c6461e74fc5a4743c27b94c00e75...2043f7ead0f1f928554f869a0c16a0e4cf40afe4

[ ] Test Results: [link to CI job test results for component]

[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review

I see plenty of
[14:52:23]	[Step 6/11]
[14:52:23]	[Step 6/11] Error: Error running plan: 9 error(s) occurred:
[14:52:23]	[Step 6/11]
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-bootstrap-instance.module.dcos-bootstrap-instance.output.private_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'private_ip' for variable 'aws_spot_instance_request.instance.*.private_ip'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-master-instances.module.dcos-master-instances.output.private_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'private_ip' for variable 'aws_spot_instance_request.instance.*.private_ip'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-publicagent-instances.module.dcos-public-agent-instances.output.public_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'public_ip' for variable 'aws_spot_instance_request.instance.*.public_ip'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-master-instances.module.dcos-master-instances.output.public_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'public_ip' for variable 'aws_spot_instance_request.instance.*.public_ip'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-publicagent-instances.module.dcos-public-agent-instances.output.instances: Resource 'aws_spot_instance_request.instance' does not have attribute 'spot_instance_id' for variable 'aws_spot_instance_request.instance.*.spot_instance_id'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-master-instances.module.dcos-master-instances.output.instances: Resource 'aws_spot_instance_request.instance' does not have attribute 'spot_instance_id' for variable 'aws_spot_instance_request.instance.*.spot_instance_id'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-publicagent-instances.module.dcos-public-agent-instances.output.private_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'private_ip' for variable 'aws_spot_instance_request.instance.*.private_ip'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-bootstrap-instance.module.dcos-bootstrap-instance.output.instances: Resource 'aws_spot_instance_request.instance' does not have attribute 'spot_instance_id' for variable 'aws_spot_instance_request.instance.*.spot_instance_id'
[14:52:23]	[Step 6/11] * module.dcos.module.dcos-infrastructure.module.dcos-bootstrap-instance.module.dcos-bootstrap-instance.output.public_ips: Resource 'aws_spot_instance_request.instance' does not have attribute 'public_ip' for variable 'aws_spot_instance_request.instance.*.public_ip'
[14:52:23]	[Step 6/11]
[14:52:23]	[Step 6/11]
[14:52:23]	[Step 6/11]  terraform apply second run return code is: 1
[14:52:23]	[Step 6/11]  Check the console output and terraform.log for the error!
[14:52:23]	[Step 6/11] Process exited with code 1

Are we running out of spot instances @cgawron1 ?


make style, make fix-copies, docs updates

What does this PR do?
Hey @maxin-cn! I'm from the HuggingFace Diffusers team and wanted to help bring Latte to a state where we can merge #8404.
There are a few blockers without which the quality tests for Latte will not pass. You report in the original PR that make style and make fix-copies did not cause any changes. That might be because of different ruff versions or environment setup. These changes will be necessary to be able to pass the quality tests. I've also made minor updates to the docs. Please verify and merge at your convenience.

Hi @a-r-r-o-w , I have merged these. Thanks for your help.


Fixed Issue #10024

Issue Reference
#10024

Checked and Found that the issue has been fixed and working fine. Check the video for reference.
Video
https://github.com/user-attachments/assets/b717f810-4fda-4028-bb9f-7b7357c98137


About Ellipse Model

I know the ellipse is created by makerjs from many small circles and when I export it to a dxf file, it consists of many lines connected together. Is there any way for me to convert it into a single line like a circle? Thanks for reading.

Hello, looks like ellipse is supported in DXF - but in Maker.js there would need to be a process which analyzes the drawing to make sure a model is an ellipse and is "unbroken" and unmodified before outputting as DXF. It might be a non-trivial amount of code for this special case.


🐛 bug: command 'extension.showGitmoji' not found on version 1.2.0

Using the vscode extension on version v1.1.2 works as expects, however upgrading to the latest version 1.2.0 introduces a bug as I click the show gitmoji button on the Version Control Tab in UI.
Sending video on imgur to help with debugging: https://imgur.com/a/cpcdvLl
VSCode about

Hi @thlmenezes
Please update to v1.2.2 and try again. In addition, you need to update VSCode to the latest version.

Tested the update on the newest vscode insiders version and works like a charm, closing issue.

Thanks for the quick reply


Commit message description not hidden in commit reference links

Gitea version (or commit ref): 1.7.0

Description
When referencing an issue from a commit, the commit message that is rendered in the issue should only show the title (first line) by default, same as in other places, like e.g. the PR commit list.
Screenshots
Issue view
Description is added directly after title, and unformatted:

PR commit index
The correct rendering:

Since Comment conveniently includes the commit hash in the CommitSHA field, what do you think of reusing RenderCommitMessage and optionally RenderCommitBody similar to the following? https://github.com/go-gitea/gitea/blob/756eafaaf68b3cadb3f33f37554a6aa2d83921ef/templates/repo/commits_table.tmpl#L66-L73 (The Content field would contain the empty string instead of the current prerendered message.)

@petercolberg could you send a PR to fix that?

Duplicate of https://github.com/go-gitea/gitea/issues/3626


readlink: Behaviour differs from GNU Coreutils when path exists but cannot be read

Running as a non-root user that does not have permission to read /proc/1/exe (since the init process is started as root):
Expected:
$ readlink -f /proc/1/exe /etc/hosts
/etc/hosts

Actual:
$ readlink -f /proc/1/exe /etc/hosts
/proc/1/exe
/etc/hosts

We do see the error raised correctly when Uutils doesn't canonicalize the path:
$ readlink -v /proc/1/exe /etc/hosts
readlink: /proc/1/exe: Permission denied

But it's returning early instead of processing the rest of the files:
GNU Coreutils
$ readlink -v -e /proc/1/exe /etc/hosts
readlink: /proc/1/exe: Permission denied
/etc/hosts

Running

I wonder whether GNU readlink -f /proc/1/exe /etc/hosts displaying only /etc/hosts is right. The description for -f on https://www.gnu.org/software/coreutils/manual/html_node/readlink-invocation.html#readlink-invocation is:

Activate canonicalize mode. If any component of the file name except the last one is missing or unavailable, readlink produces no output and exits with a nonzero exit code. A trailing slash is ignored.

Aren't all the components of the file name /proc/1/exe except the last one present and available?

Aren't all the components of the file name /proc/1/exe except the last one present and available?

@samueltardieu  Yes, I tried to show /proc and proc/1 on my machine, both permission of /proc and /proc/1 are 555.
$ ls -ld /proc
dr-xr-xr-x 200 root root 0 Nov 24 13:40 /proc
$ ls -ld /proc/1
dr-xr-xr-x 9 root root 0 Nov 24 13:40 /proc/1

Even though I tried to read a non-exist file along with /etc/hosts, GNU readlink also only displaying /etc/hosts.
$ readlink -f /tmp/not_exist/file /etc/hostname
/etc/hostname

I think that GNU won't exit immediately when it encounter an error when processing the filename. Instead, it will try to process the next filename. Finally, GNU may exit with nonzero code if any of the previous processing is failed


[Astra DB] Explicit projection when reading from Astra DB

In view of upcoming changes in the Astra DB Data API, this PR explicitly sets a projection every time a find command is executed, in order to ensure all necessary fields of the document are returned by the API.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@erichare FYI

Hello @hemidactylus and thank you for opening this pull request! 🙂Could you please share some more context regarding upcoming changes in the Astra DB Data API? Any links to documentation or release notes? And could you share how you tested the changes? Thank you!

Thank you @hemidactylus and @masci !


weird page load slow down in 2.2.4 but not 2.1.9 (Safari)

noticed that the page load is really slow, it hangs for about 10 seconds consistently in 2.2.4 but when i reverted to 2.1.9 it went away, this is in Safari...

example?

I have the same issue using 2.2.5. Worse still Firefox will hang completely, however Chrome and IE are fine - I haven't tested other browsers yet.
Example here http://test.uat.honestideas.co.uk/


[lib/domain] Add 3il Rodez school

Website page : http://www.3il-ingenieurs.fr/3il-rodez/

@Es0x Please provide us with an URL of a page or another proof (.pdf or a screenshot are OK) showing that the university recognizes the domain formation-cci12.fr which you are submitting as an official email domain for the students at the school.

@Es0x You might miss my previous comment. Please reply.

@Es0x I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the abovementioned issue. Thank you for the understanding!


Feature/simplify api backends collection

Closes #1091
Closes #1379
Changes

Rename ApiBackends collection to Apis

rename file to index.js for clean imports

Remove API Umbrella fields from Apis schema
Create Add API form
Remove Add API Wizard
Remove Initial Setup Wizard
Edit basic settings/branding check to display modal dialogue to admin
Cleanup unused packages
Cleanup/rename/reorganize files along the way
fix bugs related to user profile and user menu

@apinf/core please review

@frenchbread Have you started on the review yet? @brylie is waiting for your feedback and other tasks are blocked by or at least not progressing because of this

Assigned to @jykae since he is available for review

Reviewing

@Alapan please be aware that we are deprecating the initial setup wizard as part of this pull request. We decided the initial setup wizard was no longer necessary, since API Umbrella settings are no longer necessary when starting the project.
The overall goal of this pull request is to decouple from API Umbrella, so we have removed a lot of code in the process.

@brylie Modal about missing Branding & Settings is jumping whatever page I go when testing with fresh db. I think that none of Branding or Settings are actually needed. Could it be shown only once when admin first signs up if we are serious to remove setup wizard? I would keep the setup wizard though as it is useful guide through for setting Branding & Settings fields.
Also after setting Branding, modal is not jumping but noticed this:

I seem to have admin permissions, but on the right side it looks like I am not logged in and don't have links. On front page that shows correctly that I am logged in as admin.

Pushed fix for user menu not showing.

One more note: as we discussed, instead of naming file for Apis collection with the same name as its parent folder, its better to name file as index.js so that the path to it would be import { Apis } from '/apis/collection'.

While testing got an error:
Exception while invoking method 'getApiStatus' TypeError: Cannot read property 'statusCode' of undefined

and probably because of that dashboard is not loading any data.

While testing got an error:
Exception while invoking method 'getApiStatus' TypeError: Cannot read property 'statusCode' of undefined
and probably because of that dashboard is not loading any data.

Make sure you reset your Meteor database. I made a change to the field name/function, and any previously saved API Backend may have the old baseUrl field, as opposed to the new url field.

Hey @brylie @frenchbread
I made yesterday subset of this PR, that has only Apis schema & add api form changes, and necessary Apis collection bindings to keep existing features functional.
Imho it would be easier first step than trying whole bunch of cleanups, restructuring etc. in one PR. Let's put work in pieces so that PRs won't grow too large to follow, it makes debugging harder.

I have made the suggested changes

use ES6 / ES2015 syntax for methods
use index.js for collection filename
refactor import statements using /apis/collection or relative imports
fix user menu
fix user profile

@apinf/core please review.

🆒 I checkout asap 👍

Kiitos. I will resolve conflicts.

Quite well done. But one undefined,
Exception in template helper: TypeError: Cannot read property 'apiLogoFileId' of undefined
    at Object.uploadedApiLogoLink (http://localhost:3000/app/app.js?hash=96e4a056f39075ebf957bfa580142e6cfa6444fb:3916:69)
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:2994:16
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:1653:16
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3046:66
    at Function.Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3687:12)
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3045:27
    at Spacebars.call (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:172:18)
    at Spacebars.mustacheImpl (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:106:25)
    at Object.Spacebars.mustache (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:110:39)
    at src (http://localhost:3000/app/app.js?hash=96e4a056f39075ebf957bfa580142e6cfa6444fb:3880:26)

That appears to come from "apis/logo/view/client/view.js" line 16

On frontpage, missing username only underscore visible:

After these and conflict fixes I am fine with this for merging.
If there are plans to remove frontpage or change layout completely you can skip this frontpage bug.

I would like to leave the hometemplate alone in this PR. This is because I am switching to using the master layout for the home page, in a separate PR, and want to avoid conflicts with that work.

Temporarily restoring the branch, so I can replicate changes.


Move Navigation Demo Region to GameBackboneExe

We should clean up what actually is in the Dll vs what's in the Exe. This is the start of a great revolution.

This should be done after everything else in this Milestone has been merged into dev in order to avoid conflicts within the vsproj files.

i70-MoveDemoRegiontoExe:
-Moved NavigationDemoRegion.h from GameBackboneDll\header\Demo to GameBackboneExe\header
-Moved NavigationDemoRegion.cpp from GameBackboneDll\source\Demo to GameBackboneExe\source.
-Chagned relevant #include statements to reflect these movements.

Issue has been reviewed and accepted.


Improve error handling and other small improvements

Nitpick, but in several places when printing an error message (e.g., in an exception handler) it might perhaps be better to send it to stderr: print(…, file=sys.stderr).

@benjamineskola I think I've addressed all your comments, do you mind having another look?


No Output

{
  "expected_update_period_in_days": "2",
  "url": "https://www.youtube.com/feed/subscriptions",
  "type": "html",
  "mode": "on_change",
  "extract": {
    "title": {
      "xpath": "//*[@id=\"video-title\"]"
    },
    "description": {
      "xpath": "//*[@id=\"description-text\"]"
    },
    "url": {
      "xpath": "//*[@id=\"video-title\"]",
      "value": "@href"
    }
  },
  "headers": {
    "Cookie": "VISITOR_INFO1_LIVE=8njYBykFxsY; YSC=GqjzPac_Eno; LOGIN_INFO=AFmmF2swRQIhAPp2qikjJDOzSUvl*************************************************************************************************************************************************************************************sr67ecMYown1ynAsIw_vxLJqUi-8lNKQ.; HSID=An**aTsQ3_AbcnVdk; SSID=AaG0pwNyRNv**xkI; APISID=ylLxrSt9dI_j3cST/A**Mtb-sCxIXMAU49; SAPISID=Whfp**alN2EgOWlK/Ac4Gek3nYBmWXzJzR; PREF=al=zh-CN&f6=1&fms1=10000&fms2=10000&f1=50000000&f5=30&f4=4000000"
  }
}

That website is using a lot of Javascript to render you can use fulldom-server or https://phantomjscloud.com/ to do extraction based on the final page that has been generated by the javascript. Another option would the the Youtube API.

@dsander
thanks！i tried iphone mobile page, but faild. Please help me
{   "expected_update_period_in_days": "2",   "url": "https://www.youtube.com/feed/subscriptions",   "type": "xml",   "mode": "on_change",   "extract": {     "title": {       "xpath": "//*[@id=\"koya_child_21\"]/div/div/div[1]/a"     }   },   "headers": {     "Cookie": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",     "host": "m.youtube.com",     "user-agent": "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"   } }
ERROR：
Error when fetching url: too many redirects; last one to: https://www.youtube.com/feed/subscriptions?app=desktop
/app/vendor/bundle/ruby/2.5.0/gems/faraday_middleware-0.12.2/lib/faraday_middleware/response/follow_redirects.rb:82:in `block in perform_with_redirection

Error when fetching url: too many redirects; last one to: https://www.youtube.com/feed/subscriptions?app=desktop

Google is redirecting your request to the normal version of the website. You might need to send more headers, Google chrome has a mobile simulator, maybe you can get those headers from the requests it is sending when the mobile emulation is enabled.

The problem is solved. thanks


Loading Community Packs

This is a continuation of #73 which added /packs install
The feature was split into two PRs because the first PR was getting too big
/packs install wasn't enabled in #73 but will be allowed once this PRs merged

This is the first feature we're adding under a feature flag so we can disable it quickly if it causes anything major to break.

enable /packs install
added /packs remove
implemented the installed community packs into search and gacha

IT'S ALVIE


[Bug] Unable to Edit 'About' if Character Theme Song Returns NIL Value

Game Version: Classic SoD
Addon Version: Classic Era 2.6.2*
*Addon Saved Variable Version: Classic Wrath 2.6.2
I copied the TRP3 Saved Variable LUA from Classic Wrath to Classic SoD. Issue is the song I have is from Wrath's sound file. This is totally on me. But it does highlight a fail point. I figured what would happen is if the song didn't exist it would just be blank and I could edit it to be one that is present in the game files.
I would recommend that if 'Character Theme' returns a NIL value then a default song track is used that is present in all iterations of WoW.
EDIT: For anyone having the same issue. Edit the variable called "MU" in the Saved Variable file. I used 53455, which is 'enchantedforest_03' and should be present in Vanilla onward.

Will have it fixed for next version.

be solanya
mark as fixed
forget to close ticket


Clean up jenkins source/build directory before checkout

retest

retest

Not necessary anymore (and wasn't in fact before either, Jenkins was set to clean up the directory by itself already).


Add a config option to disable telemetry

Description of the new feature/enhancement
Going by the source code located at https://github.com/microsoft/terminal/blob/master/src/terminal/parser/telemetry.cpp it seems like maybe the terminal is logging all sorts of data as part of its telemetry system and then sending it back to Microsoft.
Like VSCode, it would be nice to be able to opt out of this by disabling telemetry in the settings.
Proposed technical implementation details (optional)
Expose an option in the config to allow disabling it.
Going by https://github.com/microsoft/terminal/blob/master/doc/cascadia/SettingsSchema.md there doesn't seem to be an option for this.
It would also be nice if someone can reply back here with more details on what exactly is tracked and how it's sent to Microsoft as of today and if that'll change in v1.0's release.

Couple points:

We aren’t hiding anything, and you can find details about everything that’s going into a trace logging stream in our source code. The keyword you’ll want to look for is TraceLoggingWrite.
The event stream you’ve identified is local-only. Using the .wprp file in our source folder (it’s just XML, you can also crack it open if you want) coupled with the Windows Performance Analyzer, you can capture and evaluate these tracing events. They’re only active when WPR/WPA is listening, which is by explicit user action, and none of the information generated leaves your machine.

We call this system ETL, and I have to admit I’m not sure what it stands for. Its primary use is local opt-in diagnostics, and any diagnostic data generated using it doesn’t leave the machine.
In the Terminal source subtree (src/cascadia), you’ll find some trace loggers that are annotated with additional flags (something something MEASURES). Those are also for local diagnostics, but they can be sampled if, and only if, your Windows diagnostic information configuration allows it.
To date, we’ve used those to determine...

what level of padding to apply by default (8)
that we should bind Ctrl+c/v by default
that Terminal is able to start up CMD in less than a tenth of a second
nothing else.

Hope that gives you a bit more information. Since these are either entirely local event streams or configured by your global Windows opt-out, I’m gonna close this one out as Question/Answered.

(Let me know if I can shine any more light for you!)

Thanks for the speed reply.
So for clarity, in any case, there is never a single byte of information that is sent back to Microsoft when it comes to opening the terminal and either typing into it or opening files?
Also, what is the "global Windows opt-out" feature you mentioned? I was under the impression it's not possible to opt out of basic telemetry -- at least not on the home / pro versions of Windows.

@DHowett please re-open and give us a configuration setting (in our Terminal profiles) that allows us to individually consent/remove consent to providing telemetry.

If somebody were to contribute this, we'd evaluate it for inclusion. I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't.

I'm not certain why the Windows global collection setting is insufficient

Can you go into more detail on how this works? I asked a follow up question on this in a previous reply but I'm still not clear on how that can be modified to not collect or send out anything as a regular person using the Pro version of Windows.
VSCode has an explicit telemetry option, which is also a Microsoft product so it seems reasonable that this terminal could at least think about adding the feature too.
I can't speak for the whole community but I know my line of thinking was "VSCode has an option to disable this but the Terminal doesn't while having code related to telemetry, so it must be collecting and sending a bunch of potentially identifiable stats to Microsoft". Most folks don't have the knowledge to crawl through the entire code base line by line to see what the telemetry bits really do and then remember to repeat this step every time the code base changes.
I'm with @kilasuit here. If you're open to accepting pull requests on this, should this be re-opened? Someone who is fishing through issues to contribute to the project may never see your request for maybe including it if it's closed.

I'm not certain why the Windows global collection setting is insufficient, but I trust the community has a reason for believing that it isn't.

It's just because sometimes you just don't want any telemetry being shared at all, something that PowerShell and dotnet have accepted and have options for fully disabling telemetry in their products

I'm not arguing that part -- it's just that PowerShell and dotnet don't use the system tracelogging edifice that's controlled by the OS. Because this is an OS-derived project, it does. That's why I'm confused... is it something we could make clearer in our docs?
(@nickjj - I owe you a more detailed response, but I'm working on the shorter easier ones first 😕)

So, there's a handful of TraceLogging providers in our code that are badged with MICROSOFT_KEYWORD_MEASURES.
On a small percentage of machines with non-Basic telemetry enabled, those are aggregated by the Windows event tracing service (since they're using the TraceLogging API family). If "Basic" telemetry is selected, those events don't even fire and they are not collected.
This project uses the Windows TraceLogging system because it is derived from (and contributes back to) the inbox console host, conhost.exe. As such, any data produced herein is likewise controlled by the global data sharing settings.
(Code built directly out of this repository does not include an operable definition of ...MEASURES and as such doesn't generate data that can be accumulated anywhere.)

Thanks. Does that mean all of these properties never get stored locally or sent to Microsoft if you have basic level telemetry at the Windows level?

@nickjj: Yes, that's correct. I decided, though, to collect my own diagnostics before I sent this message:

I just checked the Diagnostic Data Viewer, and it looks like nothing is coming out of the console host (OR TERMINAL) when Basic is set.
Here's what I get in DDV when I close my console host in default "Enhanced" mode:

Telemetry, Enhanced - 3 events
{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337642Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId":<PHONE_NUMBER>1784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165733
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "AddConsoleAlias": 0,
        "AllocConsole": 1,
        "AttachConsole": 1,
        "CreateConsoleScreenBuffer": 0,
        "GenerateConsoleCtrlEvent": 0,
        "FillConsoleOutputAttribute": 0,
        "FillConsoleOutputCharacter": 0,
        "FlushConsoleInputBuffer": 0,
        "FreeConsole": 0,
        "GetConsoleAlias": 0,
        "GetConsoleAliases": 0,
        "GetConsoleAliasExesLength": 0,
        "GetConsoleAliasesLength": 0,
        "GetConsoleAliasExes": 0,
        "GetConsoleCP": 0,
        "GetConsoleCursorInfo": 0,
        "GetConsoleDisplayMode": 0,
        "GetConsoleFontSize": 0,
        "GetConsoleHistoryInfo": 0,
        "GetConsoleLangId": 1,
        "GetConsoleMode": 19,
        "GetConsoleOriginalTitle": 0,
        "GetConsoleOutputCP": 3,
        "GetConsoleProcessList": 0,
        "GetConsoleScreenBufferInfoEx": 3,
        "GetConsoleSelectionInfo": 0,
        "GetConsoleTitle": 1,
        "GetConsoleWindow": 0,
        "GetCurrentConsoleFontEx": 0,
        "GetLargestConsoleWindowSize": 0,
        "GetNumberOfConsoleInputEvents": 0,
        "GetNumberOfConsoleMouseButtons": 0,
        "PeekConsoleInput": 0,
        "ReadConsole": 1,
        "ReadConsoleInput": 0,
        "ReadConsoleOutput": 0,
        "ReadConsoleOutputAttribute": 0,
        "ReadConsoleOutputCharacter": 0,
        "ScrollConsoleScreenBuffer": 0,
        "SetConsoleActiveScreenBuffer": 0,
        "SetConsoleCP": 0,
        "SetConsoleCursorInfo": 0,
        "SetConsoleCursorPosition": 0,
        "SetConsoleDisplayMode": 0,
        "SetConsoleHistoryInfo": 0,
        "SetConsoleMode": 3,
        "SetConsoleOutputCP": 0,
        "SetConsoleScreenBufferInfoEx": 0,
        "SetConsoleScreenBufferSize": 0,
        "SetConsoleTextAttribute": 0,
        "SetConsoleTitle": 0,
        "SetConsoleWindowInfo": 0,
        "SetCurrentConsoleFontEx": 0,
        "WriteConsole": 6,
        "WriteConsoleInput": 0,
        "WriteConsoleOutput": 0,
        "WriteConsoleOutputAttribute": 0,
        "WriteConsoleOutputCharacter": 0
    }
}

{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337628Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId":<PHONE_NUMBER>1784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165732
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "AutoPosition": true,
        "HistoryNoDuplicates": false,
        "InsertMode": true,
        "LineSelection": true,
        "QuickEdit": true,
        "WindowAlpha": 255,
        "WrapText": true,
        "ColorTable": [
            0,
            12451840,
            48640,
            12500480,
            190,
            12452030,
            48830,
            12500670,
            4342338,
            16711680,
            65280,
            16776960,
            255,
            16711935,
            65535,
            16777215
        ],
        "CodePageInput": 437,
        "CodePageOutput": 437,
        "FontSizeX": 0,
        "FontSizeY": 16,
        "HotKey": 0,
        "ScreenBufferSizeX": 120,
        "ScreenBufferSizeY": 9001,
        "StartupFlags": 1025,
        "VirtualTerminalLevel": 1,
        "WindowSizeX": 120,
        "WindowSizeY": 40,
        "WindowOriginX": 0,
        "WindowOriginY": 0,
        "FontName": "Cascadia WinMetrics",
        "AllowAltF4Close": true,
        "ControlKeyShortcutsDisabled": false,
        "EnabledColorSelection": true,
        "FilterOnPaste": true,
        "TrimLeadingZeros": false,
        "LaunchFontName": "Cascadia WinMetrics",
        "CommandHistoriesNumber": 1,
        "CodePage": 437,
        "CursorSize": 25,
        "FontFamily": 54,
        "FontWeight": 400,
        "HistoryBufferSize": 50,
        "HistoryBuffersNumber": 4,
        "ScrollScale": 1,
        "FillAttribute": 7,
        "PopupFillAttribute": 245,
        "ShowWindow": 1
    }
}

{
    "ver": "4.0",
    "name": "Microsoft.Windows.Console.Host.ApiUsed",
    "time": "2020-05-21T23:10:01.9337607Z",
    "ext": {
        "utc": {
            "aId": "20F1D9D6-2EE5-0005-A8B2-F520E52ED601",
            "shellId":<PHONE_NUMBER>1784195,
            "eventFlags": 257,
            "pgName": "WIN",
            "flags": 138414340,
            "providerGuid": "FE1FF234-1F09-50A8-D38D-C44FAB43E818",
            "loggingBinary": "conhost.exe",
            "epoch": "4107162",
            "seq": 165731
        },
        "os": {
            "bootId": 39,
            "name": "Windows",
            "ver": "10.0.19041.264.amd64fre.vb_release.191206-1406"
        },
        "app": {
            "id": "W:0000f519feec486de87ed73cb92d3cac802400000000!00004dfb1635860281c736b6bd5fe949217a7b55a0d4!conhost.exe",
            "ver": "2020/04/14:22:24:44!E16B7!conhost.exe",
            "asId": 6165
        },
        "protocol": {
            "devMake": "Microsoft Corporation",
            "devModel": "Surface Laptop 3",
            "msp": 2
        }
    },
    "data": {
        "BashUsed": false,
        "CtrlPgUpPgDnUsed": false,
        "KeyboardTextEditingUsed": false,
        "KeyboardTextSelectionUsed": false,
        "CtrlShiftCProcUsed": 0,
        "CtrlShiftCRawUsed": 0,
        "CtrlShiftVProcUsed": 0,
        "CtrlShiftVRawUsed": 0,
        "QuickEditCopyProcUsed": 0,
        "QuickEditCopyRawUsed": 0,
        "QuickEditPasteProcUsed": 0,
        "QuickEditPasteRawUsed": 0,
        "LaunchedFromShortcut": true,
        "ProcessesConnected": [
            "cmd.exe"
        ],
        "ProcessesConnectedCount": [
            1
        ],
        "ProcessesConnectedCodesCount": [
            0
        ],
        "ProcessesConnectedFailedCodesCount": [
            0
        ],
        "ProcessesConnectedFailedOutsideCount": [
            0
        ],
        "StartedUsingAtSeconds":<PHONE_NUMBER>,
        "EndedUsingAtSeconds":<PHONE_NUMBER>,
        "ColorSelectionUsed": 0
    }
}

Three events:

Telemetry, Basic - 0 events

Terminal is more chatty -- it includes "i rendered my first byte! it took 100ms" and "i spawned a connection, there are 3 tabs open". I'm happy to send you these traces.
These are also suppressed when I change the diagnostic data setting to Basic.

(And: I filed #6103 to remove this bit:
        "ProcessesConnected": [
            "cmd.exe"
        ],

)

Thanks for the detailed response. It totally slipped my mind that the gathered data is available to browse at any time at the Windows level.
Maybe this is really a matter of a documentation then? If that information were put forward it would likely put a lot of folks at ease.
Something like this dropped into the README  "If you're using basic Windows telemetry, nothing is ever collected or sent to Microsoft from the Terminal app, and if you're using more in depth Windows telemetry settings you can see what's collects by going to your Windows privacy settings".

That's excellent. Filed #6118. Thanks :smile:


fix(ci): use kamelets tag

Release Note
NONE

Check failed for other reason, will be cleared on merging.


jit obscures unbound axis errors

Evaluating a parallel primitive without parallel context—that is, with an unbound axis variable—typically raises a legible error. However, the error is obscured under jit:
from jax import lax, jit
import jax.numpy as np

(lambda x: lax.psum(x, 'i'))(np.ones(2))     # NameError: unbound axis name: i

jit(lambda x: lax.psum(x, 'i'))(np.ones(2))  # ValueError: max() arg is an empty sequence

We fixed this at some point!


Make optimize_config_options pass 10x faster

This is currently the 2nd slowest pass when compiling Soleil on my local machine (behind actual LLVM compilation):
compile 72.692785
inline_tasks 0.624195
optimize_divergence 1.045345
normalize after type check 1.723449
optimize_mapping 6.727169
skip_empty_tasks 2.743174
vectorize_loops 0.154155
parallelize_tasks 49.717688
codegen 13.026204
optimize_index_launches 6.307519
normalize after specialize 1.132306
optimize_traces 4.432626
type check 7.364484
specialize 1.237845
optimize_futures 1.045139
optimize_config_options 63.565161
check annotations 15.551507
With this patch, the running time of this pass drops almost 10x (and even parallelize_tasks seems to speed up by ~40%, although that might be a fluke):
compile 71.073906
inline_tasks 0.614681
optimize_divergence 1.047141
normalize after type check 1.701131
optimize_mapping 6.579061
skip_empty_tasks 2.818497
vectorize_loops 0.136539
parallelize_tasks 28.291654
codegen 12.216086
optimize_index_launches 6.1847
normalize after specialize 1.092664
optimize_traces 4.326427
type check 7.297603
specialize 1.1884
optimize_futures 1.08264
optimize_config_options 6.633898
check annotations 14.641641

Merged. Will eventually sync with Github.


New version: Google.Chrome.Beta.EXE version 128.0.6613.7

Created by 🥟 Dumplings in workflow run #6835.

Log
Updated: 127.0.6533.57 → 128.0.6613.7
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

It appears that this Canary version became promoted to Beta.


Small improvements

Removed unneeded IDE files
Removed allowBackup attribute from lib manifest (can cause errors if app which uses lib also defines allowBackup)
Made inner classes static, so that they can be subclassed

Looks good to me. This is my first android lib, so best way to learn best practices is by learning from others. Thanks!


Copyright link missing accessible name

Also a contrast issue here.


[Bug]: Date settings property visible under the Image column type table widget

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When a column type is changed to image then, date settings are visible that are present in the date column type.

Steps To Reproduce

Change the column type to Image in table widget
Observe that the date settings is visible.

Public Sample App
No response
Issue video log
No response
Version
Cloud

Issue is already in the release, we need to prioritze this and verify the fix cc @kamakshibhat-appsmith @laveena-en
cc @souma-ghosh


Unable to run backend testing suite

Bug Summary:
When attempting to run the tests on doto-backend, the testing suite immediately throws an error upon failing to connect to <IP_ADDRESS>:27017.

Steps To Reproduce

cd doto-backend
npm test

Expected behaviour
The testing suite should run, evaluating each test in turn and producing messages in console regarding the pass/fail behaviour.
Observed Behaviour
The testing suite fails to start, throwing an error message.
Screenshots

Environment

Version: 57196ec
Operating System: Arch Linux
Browser (if any):

Additional Information:
Stack Traces
❯ npm test

><EMAIL_ADDRESS>test /home/matteas/Documents/University/SE701/Doto/doto-backend
> mocha

  Task Model Tests
(node:2132) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
MongoNetworkError: failed to connect to server [<IP_ADDRESS>:27017] on first connect [Error: connect ECONNREFUSED <IP_ADDRESS>:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
  name: 'MongoNetworkError',
  [Symbol(mongoErrorContextSymbol)]: {}
}]
    at Pool.<anonymous> (/home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/topologies/server.js:438:11)
    at Pool.emit (events.js:315:20)
    at /home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/connection/pool.js:561:14
    at /home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/connection/pool.js:994:11
    at /home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/connection/connect.js:31:7
    at callback (/home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/connection/connect.js:264:5)
    at Socket.<anonymous> (/home/matteas/Documents/University/SE701/Doto/doto-backend/node_modules/mongodb/lib/core/connection/connect.js:294:7)
    at Object.onceWrapper (events.js:422:26)
    at Socket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:84:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  name: 'MongoNetworkError',
  [Symbol(mongoErrorContextSymbol)]: {}
}
npm ERR! Test failed.  See above for more details.

Test Cases
Code Examples
Error Reports
Other

Hi @Matteas-Eden , I fixed this same issue by installing and running MongoDB. I've found that the tests run successfully with npm test only if the mongod process is alive on my machine.
Hopefully this works for you!

The wiki page Testing (Backend) has been updated with the above information which resolves this bug.


182 Fix ProblemJson Rule

Closes #182

Codecov Report

Merging #248 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #248   +/-   ##
=======================================
  Coverage   57.87%   57.87%
=======================================
  Files          24       24
  Lines         273      273
  Branches        9        9
=======================================
  Hits          158      158
  Misses        115      115

Flag
Coverage Δ

#webui
57.87% <ø> (ø)
:arrow_up:

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 4332880...07aa087. Read the comment docs.

👍

@fmueller , I've addressed your comments in  6d7cc5c...d7b7cb7

@mkulak , many thanks for your valuable comments, I've learned something and addressed them in aa7d6bd

:+1:


Example 2 description incorrect

[Enter feedback here]
Example 2
The following example returns 0 since the input JSON string contains the specified SQL/JSON path.
Shouldn't that read "... since the input JSON string does not contain the specified SQL/JSON path"?

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

ID: dd30f6a4-5cc7-e614-c58d-623191ceaa7a
Version Independent ID: dd30f6a4-5cc7-e614-c58d-623191ceaa7a
Content: JSON_PATH_EXISTS (Transact-SQL) - SQL Server
Content Source: docs/t-sql/functions/json-path-exists-transact-sql.md
Product: sql
Technology: t-sql
GitHub Login: @uc-msft
Microsoft Alias: umajay

@chargerback-ron Thanks for the feedback. You're absolutely right. I'll get this sorted.
#assign:@rwestMSFT

@chargerback-ron Thanks to some fortuitous timing, the refreshed article will be published some time tomorrow. Thanks again for your feedback.


Should axes_reset with DummyBackend fail silently?

Should axes_reset with DummyBackend fail silently? I think so, as DummyBackend is going to be used for testing ... I don't care if it's not implemented - the implementation should be a null method.

Hey @aidanlister! You have a good viewpoint. I assume you are talking of the AxesDummyHandler.
The current behaviour of ”loud failure” with an exception was opted for because django-axes is a security oriented project and some people think that implicit failure is a bad practice in a security context.
You can implement a custom handler and use it in your own project. The API for handlers can be considered stable and you can just specialize the AxesBaseHandler per your liking.

Could you include a AxesTestHandler then, for a sane configuration for testing?

@aidanlister sure, we could include that. Would you like to open a PR for the handler?

Done

Released in 5.2.0.


Update sbt, scripted-plugin to 1.5.5

Updates

org.scala-sbt:sbt
org.scala-sbt:scripted-plugin

from 1.4.9 to 1.5.5.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt" } ]

labels: library-update, semver-minor

Superseded by #310.


Docs are offline

The link to the docs 404s now

I'm not sure, it looks a bit more flexible at least. I only stumbled upon this because cargo-edit uses it :)

huh! I had no idea. I need to generate the docs later today (did an ansi-term release) so will put this one back. thanks for bringing it to my attention!


Support for Roborock S6 MaxV?

Device type is currently unknown:
$ miio discover
 INFO  Discovering devices. Press Ctrl+C to stop.

Device ID: ---MY-ID---
Model info: Unknown
Address: xxx.xxx.xxx.xxx
Token: ???
Support: Unknown

... therefore clean cmd does not work:
code:
const device = await miio.device({address, token});
const isVac = device.matches('type:vacuum');
console.log('is vac:', isVac);
await device.clean();

output:
is vac: false
TypeError: device.clean is not a function

Is there any way to hint the device type to miio and use the clean function?

The problem is the missing device mapping in miio/lib/models.js:
...
'roborock.vacuum.a10': Vacuum,
...

Seems like the maintainer of this repo is no longer maintaining it. Most active development is now found in: https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum
Also includes support for S6 MaxV...

New lib can also clean rooms. Usage is not documented, as miio fork is only used in homebridge plugin:
const address = '...your vac lan ip here';
const token = '...your token here';
const device = await miio.device({address, token});
const roomMap = await device.getRoomMap();
const roomIds = roomMap.map(c => c[0]);
const firstRoomId = roomIds.shift();
await device.cleanRooms([firstRoomId]);
await device.destroy();

BTW: Device token can be obtained by using com.xiaomi.smarthome-5.4.49.apk. Token is found in Log file under "SmartHome/logs/plug_DeviceManager/*.txt" on your android device...


Dockerization of the app does not work on port 8085

Repro steps

Install Docker, set up Linux containers
Follow deployment instructions, run release.cmd

Expected behavior
Code gets published to Docker hub.
Actual behavior
docker: Error response from daemon: driver failed programming external connectivity on endpoint test (e627eb4c8999a1aace70407d7619d88700a06e051cc1934ec8106b05951b18bc): Error starting userland proxy: Bind for <IP_ADDRESS>:8085 failed: port is already allocated.
Running build failed.
Error:
System.Exception: Docker run failed
at FSI_0005.Build.clo@290-21.Invoke(Unit _arg7)
at Fake.TargetHelper.runSingleTarget(TargetTemplate`1 target) in D:\code\fake\src\app\FakeLib\TargetHelper.fs:line 626
Known workarounds
Open build.fsx, and change 8085 to 8086 in this magical line of code:
info.Arguments <- sprintf "run -d -p <IP_ADDRESS>:8085:8085 --rm --name %s -it %s/%s" testImageName dockerUser dockerImageName) TimeSpan.MaxValue
I do not know exactly why this works however I believe it may be connected to the fact that some Giraffe is running on port 8085.
Related info
I am running this on Windows 10 x64.

this sounds as you have already something running on that port

@forki,
I have now tried the same thing gazing at Resource Monitor.
In the beginning nothing runs on 8085.
Then at the point when the log says Now listening on: http://localhost:8085, Resource Manager inserts dotnet at port 8085 (pretty logical, yep).
And then it stays there. After the release script fails, that line gets grayed out. In some time it disappears.

weird.

this line should actually kill the giraffe process after testing is done.

or I can actually repro. Fixing it now!
Thanks for reporting

ok fixed. thanks

Yep, working now. Thanks for quick fix!


Infinite refresh after setting High Contrast while logged in and offline

From Peli: "It’s stuck forever reload, hapened after going to high contrast mode while offline (which did not work)"
https://user-images.githubusercontent.com/6453828/104490079-40235200-5585-11eb-8e4b-57f9b3bbb1f5.MP4

Yes 2722 is repro'ing consistently, but this infinite refresh hasn't yet repro'ed for me.

Yes 2722 is repro'ing consistently, but this infinite refresh hasn't yet repro'ed for me.


20 patterns added Alphabetic and Numeric

Fixes Issues #427 #428 #429 #430 #431 #432 #433 #434 #435 #436
AND
#777 #778 #779 #780 #788 #789 #790 #800 #834 #835

@aryashah2k 20 patterns added


Update to PureScript <IP_ADDRESS>

I also updated Pulp.

This exposed a bunch of new warnings:

https://github.com/purescript/purescript-arrows/pull/10
https://github.com/purescript/purescript-catenable-lists/pull/9
https://github.com/purescript/purescript-datetime/pull/23
https://github.com/purescript/purescript-exceptions/pull/9
https://github.com/purescript/purescript-foreign/pull/35
https://github.com/purescript-contrib/purescript-lens/pull/28
https://github.com/purescript/purescript-random/pull/13
https://github.com/purescript/purescript-sets/pull/25
https://github.com/purescript/purescript-strings/pull/47
https://github.com/purescript-contrib/purescript-these/pull/11


Fix eslint configuration.

Currently running npm run lint results in many semicolon and trailing comma warnings.
Adding options for eslint prettier plugin solves this.

Thanks @mxl ! But this is due to a blocking issue by https://github.com/prettier/eslint-plugin-prettier/issues/46, so I'll wait until it is resolved.
Is there any reason you must get this merged? Or I'll just close for now.
Thanks again

@tomchentw I see. After your comment support for prettier support files was published in<EMAIL_ADDRESS>Now it's ok. 👍

@mxl thanks for letting me know! That's great news!


Adds MediaFormat type to more easily extract codecs from a MediaDescription

Description
Adds types RTCPFeedback and MediaFormat to more easily obtain codec information
from a MediaDescription. These changes were added to allow the webtrc/examples/echo
program to obtain the codecs from an offer. These codecs were then preloaded into the media
engine used by echo to ensure that the answer SDP matched the offer.
This (and a test), both in pion/webrtc, currently are the only users of these changes. It is conceivable that these should not appear in this module and instead be moved into the echo program itself. This pull request is filed under the assumption that these types may be useful in other cases as well.

@Sean-Der pointed me to sdp/util.go which had code I could already use, so I am going to close this as it is unneeded.


chore: change build process to use local and server the same

This enables that local builds use the same process as GH Actions

[x] Refactor CI

[x] Build Caching

[ ] Developer docs @livio-a @adlerhurst please review the README.md

We need to merge this beacuase of https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

:tada: This PR is included in version 0.104.0 :tada:
The release is available on:

GitHub release
v0.104.0

Your semantic-release bot :package::rocket:


Hi, it looks like gradient explosion, did you load pretrained model? did you prepare your data according to https://github.com/ultralytics/yolov3/wiki/Train-Custom-Data ?could you show the command you used to train?

this is my train command ,python train.py --cfg cfg/yolov3-1cls.cfg --data data/voc.data --weights darknet53.conv.74

you may try to lower the lr and use yolov3.weights as pretrained model

@shenghsiaowong
Are you using focal loss?
If you are using it,you may try removing the focal loss.
A few days ago,i used focal loss and found  an error(obj_loss is nan,other loss,other losses are occasionally nan) .
Accoarding to issue842, i have tried many ways:lower the lr,remove the tiny object ,lower the weight of
losses in the hyp and so on,but the error still exists.
Finally I removed focal loss on the obj_loss and the nan error didn't appear anymore.
So you may try removing the focal loss.For example,if your obj_loss is nan,just remove the focal loss on obj_loss).

you may try to lower the lr and use yolov3.weights as pretrained model
Hello, what if you change the network slightly and cannot use the pre-trained network? How can I start training a model from scratch? thank you for your reply!


Remove react-art from doc & examples

as react-art is no longer used or supported by react-native-web ref:

https://github.com/necolas/react-native-web/commit/3d3ea9aeed7d18ea9daf505e70bb14cfc966da23
https://github.com/necolas/react-native-web/pull/1251

I hope to contribute this fix soon (no promises at this point).

Hey @lelandrichardson, are you still working on this repo?
If I make a PR will I get it merge?
I'm willing to work on this repo with frequent commits. If it's abandoned, I would make my own fork.


Update Links For Readme

Description
I want to update the internal links of sorting algorithm in Readme For Better understanding
Domain
README
Type of Contribution
Enhancement
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign


Unable to reach Netbox pod/app gui deployed in Kubernetes cluster

Can anyone help with this?
My team and I got our pod running fine but we are unable to reach the app gui. Below is the output of the curl command.
NOTE - we had to set the readiness probe to false to allow the deployment to run through.. Had a prior issue with readiness probe  "connection was refused" error we could not resolve. Afterwards, the curl begins but does not follow through to completion.
curl -l https//“domain name”.com -vvL

Trying <IP_ADDRESS>:443...
Connected to “domain name”.com (<IP_ADDRESS>) port 443 (#0)
ALPN: offers h2
ALPN: offers http/1.1
CAfile: /etc/ssl/cert.pem
CApath: none
(304) (OUT), TLS handshake, Client hello (1):
(304) (IN), TLS handshake, Server hello (2):
TLSv1.2 (IN), TLS handshake, Certificate (11):
TLSv1.2 (IN), TLS handshake, Server key exchange (12):
TLSv1.2 (IN), TLS handshake, Server finished (14):
TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
TLSv1.2 (OUT), TLS handshake, Finished (20):
TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
TLSv1.2 (IN), TLS handshake, Finished (20):
SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
ALPN: server did not agree on a protocol. Uses default.
Server certificate:
subject: CN=* “domain name”.com
start date: Nov  2 00:00:00 2022 GMT
expire date: Dec  2 23:59:59 2023 GMT
subjectAltName: host ”domain name”.com" matched cert's "*. “domain name"
issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
SSL certificate verify ok.

GET / HTTP/1.1
Host: “domain name”.com
User-Agent: curl/7.85.0
Accept: /

What do the logs in your netbox pod(s) say?

🧬 loaded config '/etc/netbox/config/configuration.py'
26
🧬 loaded config '/etc/netbox/config/extra.py'
25
🧬 loaded config '/etc/netbox/config/logging.py'
24
🧬 loaded config '/etc/netbox/config/plugins.py'
23
💡 Superuser Username: admin, E-Mail<EMAIL_ADDRESS>22
↩ Skipping startup scripts
21
✅ Initialisation is done.
20
⏳ Waiting for control socket to be created... (1/10)
19
2023/01/12 22:16:17 [warn] 7#7 Unit is running unprivileged, then it cannot use arbitrary user and group.
18
2023/01/12 22:16:17 [info] 7#7 unit 1.27.0 started
17
2023/01/12 22:16:17 [info] 16#16 discovery started
16
2023/01/12 22:16:17 [notice] 16#16 module: python 3.10.4 "/usr/lib/unit/modules/python3.10.unit.so"
15
2023/01/12 22:16:17 [info] 7#7 controller started
14
2023/01/12 22:16:17 [notice] 7#7 process 16 exited with code 0
13
2023/01/12 22:16:17 [info] 18#18 router started
12
2023/01/12 22:16:17 [info] 18#18 OpenSSL 3.0.2 15 Mar 2022, 30000020
11
⚙ Applying configuration from /etc/unit/nginx-unit.json
10
2023/01/12 22:16:18 [info] 22#22 "netbox" prototype started
9
2023/01/12 22:16:18 [info] 23#23 "netbox" application started
8
✅ Unit configuration loaded successfully
7
2023/01/12 22:16:20 [notice] 7#7 process 14 exited with code 0
6
2023/01/12 22:16:20 [info] 60#60 "netbox" application started
5
<IP_ADDRESS> - - [12/Jan/2023:22:16:20 +0000] "GET / HTTP/1.1" 302 0 "-" "curl/7.79.1"
4
2023/01/12 22:16:32 [info] 61#61 "netbox" application started
3
<IP_ADDRESS> - - [12/Jan/2023:22:16:32 +0000] "GET / HTTP/1.1" 302 0 "-" "curl/7.85.0"
2
2023/01/12 22:18:43 [info] 62#62 "netbox" application started
1
<IP_ADDRESS> - - [12/Jan/2023:22:18:43 +0000] "GET / HTTP/1.1" 302 0 "-" "curl/7.85.0"

See logs above, obtained from ArgoCD

Well it looks like it started fine there. I suspect the issue will be with your Ingress controller or Ingress configuration. Could you include your values.yaml or your changes to the chart values that you used, please?

I've attached what we're using for values.yaml. We re-deployed everything including the RDS database and Elasticache for redis and did confirm that the postgresql DB is being queried successfully on first start to setup schema, etc.
values.clean.txt
We're using an external secret and used bin/bash inside the pod to confirm that all the values were being passed in correctly. These 3 values are empty strings, which from our understanding of the README is ok, since we do not need the features at this time:

napalm_password
ldap_bind_password
email_password

@dmaclaury is this the same instance of NetBox as the issue reported by @Eoj47? Just checking before this issue veers off, talking about a potentially different problem altogether.

Yes, it is the same instance as @Eoj47.

@bootc we figured this out. Our Elasticache Redis DB had SSL enabled, and we missed enabling that on our chart.
Thank you for looking this over.

Ah that explains it, glad you got it sorted.