fail to build in simple_knn , gaussian_rasterizer,  diff_gaussian_rasterization

Building wheel for simple_knn (setup.py): started
Building wheel for simple_knn (setup.py): finished with status 'error'
Running setup.py clean for simple_knn
Building wheel for gaussian_rasterizer (setup.py): started
Building wheel for gaussian_rasterizer (setup.py): finished with status 'error'
Running setup.py clean for gaussian_rasterizer
Building wheel for diff_gaussian_rasterization (setup.py): started
Building wheel for diff_gaussian_rasterization (setup.py): finished with status 'error'
Running setup.py clean for diff_gaussian_rasterization
Successfully built evaluate_3d_reconstruction
Failed to build simple_knn gaussian_rasterizer diff_gaussian_rasterization
Pip subprocess error:
Running command git clone --filter=blob:none --quiet https://github.com/eriksandstroem/evaluate_3d_rec
onstruction_lib.git /tmp/pip-req-build-12ulqv9i
Running command git rev-parse -q --verify 'sha^9b3cc08be5440db9c375cc21e3bd65bb4a337db7'
Running command git fetch -q https://github.com/eriksandstroem/evaluate_3d_reconstruction_lib.git 9b3c
c08be5440db9c375cc21e3bd65bb4a337db7
Running command git clone --filter=blob:none --quiet https://github.com/VladimirYugay/simple-knn.git /
tmp/pip-req-build-6hcn4vko
Running command git rev-parse -q --verify 'sha^c7e51a06a4cd84c25e769fee29ab391fe5d5ff8d'
Running command git fetch -q https://github.com/VladimirYugay/simple-knn.git c7e51a06a4cd84c25e769fee2
9ab391fe5d5ff8d
Running command git clone --filter=blob:none --quiet https://github.com/VladimirYugay/gaussian_rasteri
zer.git /tmp/pip-req-build-pnwv1oln
Running command git rev-parse -q --verify 'sha^9c40173fcc8d9b16778a1a8040295bc2f9ebf129'
Running command git fetch -q https://github.com/VladimirYugay/gaussian_rasterizer.git 9c40173fcc8d9b16
778a1a8040295bc2f9ebf129
Running command git clone --filter=blob:none --quiet https://github.com/rmurai0610/diff-gaussian-rasterization-w-pose.git /tmp/pip-req-build-o29ti5x6
Running command git rev-parse -q --verify 'sha^43e21bff91cd24986ee3dd52fe0bb06952e50ec7'
Running command git fetch -q https://github.com/rmurai0610/diff-gaussian-rasterization-w-pose.git 43e21bff91cd24986ee3dd52fe0bb06952e50ec7
Running command git submodule update --init --recursive -q
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [19 lines of output]
running bdist_wheel
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
running build
running build_ext
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:414: UserWarning: The detected CUDA version (12.4) has a minor version mismatch with the version that was used to compile PyTorch (12.1). Most likely this shouldn't be a problem.
warnings.warn(CUDA_MISMATCH_WARN.format(cuda_str_version, torch.version.cuda))
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:424: UserWarning: There are no /usr/bin/g++ version bounds defined for CUDA version 12.4
warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
building 'simple_knn.C' extension
creating build
creating build/temp.linux-x86_64-cpython-310
/usr/bin/g++ -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/jinwoo/anaconda3/envs/loop_splat/include -fPIC -O2 -isystem /home/jinwoo/anaconda3/envs/loop_splat/include -fPIC -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/TH -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/THC -I/home/jinwoo/anaconda3/envs/loop_splat/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/python3.10 -c ext.cpp -o build/temp.linux-x86_64-cpython-310/ext.o -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="gcc" -DPYBIND11_STDLIB="libstdcpp" -DPYBIND11_BUILD_ABI="cxxabi1011" -DTORCH_EXTENSION_NAME=C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17
/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/TH -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/THC -I/home/jinwoo/anaconda3/envs/loop_splat/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/python3.10 -c simple_knn.cu -o build/temp.linux-x86_64-cpython-310/simple_knn.o -D__CUDA_NO_HALF_OPERATORS -D__CUDA_NO_HALF_CONVERSIONS -D__CUDA_NO_BFLOAT16_CONVERSIONS_ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -ccbin /usr/bin/gcc -std=c++17
simple_knn.cu:17:10: fatal error: cub/cub.cuh: No such file or directory
17 | #include <cub/cub.cuh>
|          ^~~~~~~~~~~~~
compilation terminated.
error: command '/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for simple_knn
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
running bdist_wheel
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
running build
running build_py
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/gaussian_rasterizer
copying gaussian_rasterizer/init.py -> build/lib.linux-x86_64-cpython-310/gaussian_rasterizer
running build_ext
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:414: UserWarning: The detected CUDA version (12.4) has a minor version mismatch with the version that was used to compile PyTorch (12.1). Most likely this shouldn't be a problem.
warnings.warn(CUDA_MISMATCH_WARN.format(cuda_str_version, torch.version.cuda))
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:4
24: UserWarning: There are no /usr/bin/g++ version bounds defined for CUDA version 12.4
warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_v
ersion}')
building 'simple_knn.C' extension
creating build
creating build/temp.linux-x86_64-cpython-310
/usr/bin/g++ -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home
/jinwoo/anaconda3/envs/loop_splat/include -fPIC -O2 -isystem /home/jinwoo/anaconda3/envs/loop_splat/incl
ude -fPIC -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include -I/home/ji
nwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home
/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/TH -I/home/jinwoo/anaconda3
/envs/loop_splat/lib/python3.10/site-packages/torch/include/THC -I/home/jinwoo/anaconda3/envs/loop_splat
/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/python3.10 -c ext.cpp -o build/temp.linux-x86
64-cpython-310/ext.o -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="gcc" -DPYBIND11_STDLIB
="libstdcpp" -DPYBIND11_BUILD_ABI="cxxabi1011" -DTORCH_EXTENSION_NAME=C -D_GLIBCXX_USE_CXX11_ABI=
0 -std=c++17
/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc -I/home/jinwoo/anaconda3/envs/loop_splat/lib/pytho
n3.10/site-packages/torch/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/
torch/include/torch/csrc/api/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packag
es/torch/include/TH -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/
THC -I/home/jinwoo/anaconda3/envs/loop_splat/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/py
thon3.10 -c simple_knn.cu -o build/temp.linux-x86_64-cpython-310/simple_knn.o -D__CUDA_NO_HALF_OPERATORS
__ -D__CUDA_NO_HALF_CONVERSIONS -D__CUDA_NO_BFLOAT16_CONVERSIONS -D__CUDA_NO_HALF2_OPERATORS__ --exp
t-relaxed-constexpr --compiler-options '-fPIC' -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=
"_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -ccbin /usr/bin/gcc -std=c++17
simple_knn.cu:17:10: fatal error: cub/cub.cuh: No such file or directory
17 | #include <cub/cub.cuh>
|          ^~~~~~~~~~~~~
compilation terminated.
error: command '/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for simple_knn
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [24 lines of output]
running bdist_wheel
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
running build
running build_py
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/gaussian_rasterizer
copying gaussian_rasterizer/init.py -> build/lib.linux-x86_64-cpython-310/gaussian_rasterizer
running build_ext
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:414: UserWarning: The detected CUDA version (12.4) has a minor version mismatch with the version that was used to compile PyTorch (12.1). Most likely this shouldn't be a problem.
warnings.warn(CUDA_MISMATCH_WARN.format(cuda_str_version, torch.version.cuda))
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:424: UserWarning: There are no /usr/bin/g++ version bounds defined for CUDA version 12.4
warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
building 'gaussian_rasterizer.C' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/cuda_rasterizer
/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/TH -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/THC -I/home/jinwoo/anaconda3/envs/loop_splat/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/python3.10 -c cuda_rasterizer/backward.cu -o build/temp.linux-x86_64-cpython-310/cuda_rasterizer/backward.o -D__CUDA_NO_HALF_OPERATORS_ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -I/tmp/pip-req-build-pnwv1oln/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -ccbin /usr/bin/gcc -std=c++17
In file included from /home/jinwoo/anaconda3/envs/loop_splat/include/cooperative_groups.h:55,
from cuda_rasterizer/backward.cu:14:
/home/jinwoo/anaconda3/envs/loop_splat/include/cooperative_groups/details/info.h:166:12: fatal error: cuda/std/type_traits: No such file or directory
166 | #  include <cuda/std/type_traits>
|            ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for gaussian_rasterizer
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [25 lines of output]
running bdist_wheel
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/diff_gaussian_rasterization
copying diff_gaussian_rasterization/init.py -> build/lib.linux-x86_64-cpython-310/diff_gaussian_rasterization
running build_ext
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:414: UserWarning: The detected CUDA version (12.4) has a minor version mismatch with the version that was used to compile PyTorch (12.1). Most likely this shouldn't be a problem.
warnings.warn(CUDA_MISMATCH_WARN.format(cuda_str_version, torch.version.cuda))
/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/utils/cpp_extension.py:424: UserWarning: There are no /usr/bin/g++ version bounds defined for CUDA version 12.4
warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
building 'diff_gaussian_rasterization.C' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/cuda_rasterizer
/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/TH -I/home/jinwoo/anaconda3/envs/loop_splat/lib/python3.10/site-packages/torch/include/THC -I/home/jinwoo/anaconda3/envs/loop_splat/include -I/home/jinwoo/anaconda3/envs/loop_splat/include/python3.10 -c cuda_rasterizer/backward.cu -o build/temp.linux-x86_64-cpython-310/cuda_rasterizer/backward.o -D__CUDA_NO_HALF_OPERATORS_ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -I/tmp/pip-req-build-o29ti5x6/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -ccbin /usr/bin/gcc -std=c++17
In file included from /home/jinwoo/anaconda3/envs/loop_splat/include/cooperative_groups.h:55,
from cuda_rasterizer/backward.cu:15:
/home/jinwoo/anaconda3/envs/loop_splat/include/cooperative_groups/details/info.h:166:12: fatal error: cuda/std/type_traits: No such file or directory
166 | #  include <cuda/std/type_traits>
|            ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/home/jinwoo/anaconda3/envs/loop_splat/bin/nvcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for diff_gaussian_rasterization
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (simple_knn, gaussian_rasterizer, diff_gaussian_rasterization)
failed
CondaEnvException: Pip failed

Thank you for reporting the bug. It seemed that there was a cuda version mismatch in the installation guide. We have updated the installation accordingly. Feel free to git pull the code and follow the new instructions.

Thank you !
Your help has been a great assistance


Introduce tests for CSS-only zooming

In PR #18077 we found that we currently don't have any tests for the CSS-only zooming functionality in the viewer. We should ideally implement two (most likely integration) tests:

a first (basic) test that zooms in to the point where CSS-only zooming is activated and that asserts that the canvas is still rendered correctly;
a second test that serves as a regression test for #18077 (see https://github.com/mozilla/pdf.js/pull/18077#issuecomment-2110687533).

/cc @nicolo-ribaudo

I'm not 100% sure, but looking at https://github.com/mozilla/pdf.js/blob/9ee7c07b837d0a849ed75272d48947eb33812a45/web/pdf_page_view.js#L1014-L1023 I wonder if setting maxCanvasPixels to a low value might already suffice to trigger CSS-only zooming? I think it could follow the same pattern as you already introduced in #18129. I agree that we shouldn't depend on the environment the test is run in; ideally we can simply force the viewer to use CSS-only zooming after e.g. a certain zoom percentage (the current viewer should already do that; try zooming to 900% and notice that the canvas doesn't change in terms of width/height attribute anymore in the web console).


can-compile doesn't work

I used canjs 1.1.8 version to develop a web app, used ejs(embed javascript) to handle the views templates. now i want to build all files .ejs with can-compile, i read the documentation here http://daffl.github.io/can-compile/#command-line but i doesn't work.
this is the content of my ejs file to make a test :

Modify

Delete

i run all command line wrote in documentation but nothing.
in this case i run
can-compile submenuBookmark.ejs --can 1.1.8
Compiling bookmark/views/bookmark.ejs
i get this error message : There was an error: undefined

It seems to work fine for me. Are you using Windows?

i'm using a OSX YOSEMITE.

I did (with Node 0.10.36):
npm install can-compile -g
echo "

Modify

Delete
" > test.ejs
can-compile test.ejs --can 1.1.8

And got
Compiling test.ejs
Wrote compiled views to views.production.js

You could try changing https://github.com/daffl/can-compile/blob/master/bin/can-compile#L30 to console.error(err) to see what the actual error looks like. Or try using the Grunt or Gulp task to get a better error stacktrace.

i updated nodejs to version v0.12.0 and tried reinstall can-compile but i got this error
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":"~0.10"} (current:
{"node":"0.12.0","npm":"2.5.1"})
and then it remains in pending.

ok,  i installed node 0.10.36V, install can-compile
run :
sudo npm install can-compile -g
echo "

Modify
Delete" > test.ejs
can-compile test.ejs --can 1.1.8
and i get this error :
Compiling test.ejs
There was an error: undefined

Are you behind a proxy? Node needs to be able to have internet access (see #30). Since I can't reproduce the issue you will have to do some debugging yourself. You can clone the repository then npm install and try running bin/can-compile view.ejs --can 1.1.8.
The error gets reported in https://github.com/daffl/can-compile/blob/master/bin/can-compile#L28 so you can try logging what gets actually thrown (since err.message seems to be undefined).

i tried the same step on other mac osx maverick , and it work for me , but would like to understand why it doesn't work for me on yosemite OSX.
the environment is the same :
node -v : v0.10.29
<EMAIL_ADDRESS>thank a lot

Cesar, like I said before I need a little more information than the environment and the Node version (specifically what the error is) otherwise there is not much I can help with.

this is my file ejs

my terminal :

if you need anything else let me know. thank

Yes please. I need you to modify the can-compile code and console.log(err) in https://github.com/daffl/can-compile/blob/master/bin/can-compile#L34 instead of err.message so that we know what the actual error is.

ok i do it :

i got this error :

That error means that the client was not able to connect to the web (see http://stackoverflow.com/questions/17690803/node-js-getaddrinfo-enotfound). Try running a Node script like
var http = require("http");
http.get('http://canjs.com/release/latest/can.jquery.js', function (res) {
    var data = "";

    res.on("data", function (chunk) {
        data += chunk;
    });

    res.on("end", function () {
        console.log(data);
    });
});

And check if you are getting the same error.

ok i run the node script and it work, i run too the can-compile command in another place out of the office with another network too and it work, now i know the the problem is the node proxy setting into the office it doesn't work , but i don't know how to solve it , do you have an idea??
thank a lot for all the support.

I'm not sure this is going to work. I found a related issue that prevents JSDOM from loading scripts through a proxy at https://github.com/tmpvar/jsdom/issues/567. It seems to be using http_proxy environment variable though so try setting that.

you are right , i run the command in my work but it doesn't work.
i set node proxy in this mode :
npm config set proxy http://myproxy:8080
npm config set https-proxy http://myproxy:8080
npm config set http-proxy http://myproxy:8080
but nothing, i'm trying to solve the problem. thanks

We might be able to solve this issue by addressing #30 and make the tests work offline. I'm not entirely sure what the best solution for that would be though.

I think this one can also be solved via #36 by providing your own paths to jQuery can CanJS.


tools to gracefully decommission node

Coverage increased (+0.01%) to 52.794% when pulling 115d3c793183c1b19c637c0580ce76783668ed97 on zimiao/script_deco into a5f4eac3e92de04eb4b3d20a0ec75ca7e4d3d73b on master.

I remember you have a design doc. Can you include the design in the document?

@fanyangCS
That's a service design to automate maintaining process. Put it here seems too excessive.

ok. that is unnecessary. but better explain briefly what this tool does under the hood. this is a good example. https://github.com/Microsoft/pai/blob/pai-0.9.y/docs/alerting/README.md

In reply to: 463925013 [](ancestors = 463925013)

@fanyangCS I have update more details in doc


Update the sizes of sw_binding and salt in the identities and root keys document

We decided to use 256b for sw_binding and salt in #4256 (please see this comment).

i believe this is done!


Fix authentication token renewal handling

Signed-off-by: Argannor<EMAIL_ADDRESS>Fixes issue
Closes #189
Describe the change

IssuedAt date is set everytime a new token is aquired, not just the first time
If the Scope is already present (with == comparison), then the scope is not added another time

How to verify it
See the steps outlined in #189
Dependent on infrastructure, verified it with my GitLab instance.
Changelog text
Fix authentication token renewal handling
Please verify and check that the pull request fulfills the following requirements

[ n/a ] Tests have been added or not applicable
[ n/a ] Documentation has been added, updated, or not applicable
[ x ] Changes have been rebased to main
[ x ] Multiple commits to the same code have been squashed

Thanks for sending this over! I'm working on getting some test cases put together and should have this merged later this week.

Thank you!

Closing this in favor of #191, thanks again for sending this over!


Added support for AMD styled module definition

Added support for AMD styled module definition by checking and using the define method.
Not sure how this should/could be unit tested.

Thanks! I've included this in v1.4.0, as well as proper commonjs support.
Thanks for you patience :)


Build IOS errors

Using the master branch, I get the following errors on build/run.
I followed the readme, it is working fine on Android.
I guess something is not linked, google service ugraded?
Thanks
Xcode Error Messages
node_modules/react-native-firestack/ios/Firestack/FirestackCloudMessaging.m:102:3:
Use of undeclared identifier 'UNAuthorizationOptions'

node_modules/react-native-firestack/ios/Firestack/FirestackCloudMessaging.m:106:5:
Unknown receiver 'UNUserNotificationCenter'; did you mean 'NSNotificationCenter'?

React-Native Errors
CompileC ios/build/Build/Intermediates/Firestack.build/Debug-iphonesimulat/Firestack.build
/Objects-normal/x86_64/FirestackCloudMessaging.o
Firestack/FirestackCloudMessaging.m  normal x86_64 objective-c
com.apple.compilers.llvm.clang.1_0.compiler

Ok, could that be the ios emulator, it's probably not running on the emulator I can imagine.

Mmm the cloud messaging isn't fully implemented yet, so I am not quite sure yet on its implementation.
Have any experience with cloud messaging? I'm not convinced yet with its api. Have any interest in sketching a JS implementation together?

And yes, I upgraded all packages with the last push

I just had a quick look, it looks already good, this below was working fine on android. But that was the only thing I tested quickly.
this.props.FirebaseStack.cloudMessaging.getToken().then(function(token) {
    console.log(token);
})

I am happy to test it and see what I can do.
Regarding the built error in IOS, I couldn't get that running and focus right now more on android. Nothing in a hurry.
Cheers

I think this was fixed with #38

Yes, all good


csharp/src/Client/AdbcDataReader: ability to get multiple result sets while executing multi-statement

For example, while executing multi-statement: “DROP TABLE IF EXISTS TESTTABLE;CREATE TABLE TESTTABLE(intcol INT);INSERT INTO TESTTABLE VALUES (123);INSERT INTO TESTTABLE VALUES (456);SELECT * FROM TESTTABLE WHERE INTCOL=123;SELECT * FROM TESTTABLE WHERE INTCOL=456;SELECT * FROM TESTTABLE WHERE INTCOL=456;DROP TABLE TESTTABLE;”
We can get a result in AdbcDataReader like this:
“Multiple statements executed successfully.”
Meanwhile, ADO.NET driver or ODBC driver able to get 2 result sets from 2 SELECT queries, like this:
INTCOL
123
INTCOL
456
This capability should be achieved via reader.NextResult() and reader.Read(), sample code as below:
do
{
while (reader.Read())
{
//read data into result set
}
yield return resultSet;

} while (reader.NextResult());

Also see #1358


Default/Home page always rendered with SSR

Not sure if this is related to @stencil/router or @stencil/core.
The default/home page (that handles the / path) is always being rendered with server-side rendering. This happens even if I set exact to true.
Expected behaviour:
Router should render a single route that matches the URL.
Current behaviour:
Router is rendering the default route, as well as the route that matches the URL.
To reproduce this issue, you can clone any of these repos, build the app, then run node server.js:

https://github.com/ionic-team/stencil-starter-ssr
https://github.com/ihadeed/stencil-site/tree/ssr (ssr branch)

I think I am seeing this also. Took a few minutes of wondering why two routes appear, to figure out one comes from SSR. Incidentally, that one doesn't get its componentProps.

My guess: the home page always shows up because it's pre-rendered when running stencil build. The server-side renderer then takes that page and renders the router contents again.

@ihadeed can confirm that this is due to SSR. When replacing www/index.html with the one from src/ the duplicate components are gone.

Just upgraded all stencil-related dependencies to the most recent version (@next) and the issue is gone for me. Seems like something in @stencil/core fixed this issue.

It appears to be fixed for me also. I didn't do a standalone test, but I was able to remove a workaround from my example app:
https://github.com/kylecordes/stencil-todomvc/commit/43b7db45f1cd5b713fcaabd66da822f4ded4c443

Yes this was an issue in @stencil/core. It was fixed with ionic-team/stencil@9839cafa347077d9ab62bffa14663c4b4f7b9bdf


Add "prefix" and "important" options to config

This replaces #183 which was based on develop; we've decided to merge against master instead.
This could've been two separate PRs but it's really just the consolidation of #99 and #100 but moved into the config file instead of being made available as at-rules.
This PR adds support for a new options key in the config file, with two options so far:
{
    // ...
    options: {
        prefix: 'tw-', // Defaults to ''
        important: true, // Default to false
    }
}

Prefix
The prefix option causes all of Tailwind's utilities to be generated with the given prefix.
This is (shockingly) more complex than it sounds, so there's a few rules worth understanding.

The prefix is added to the beginning of the utility name, not the full class name.
This means that if you set a prefix of tw-, you'll get utilities that look like this:
.tw-text-blue { ... }
.hover:tw-text-blue { ... }
.sm:tw-text-blue { ... }
.md:tw-text-blue { ... }
.lg:tw-text-blue { ... }
.xl:tw-text-blue { ... }

...not like this:
.tw-text-blue { ... }
.tw-hover:text-blue { ... }
.tw-sm:text-blue { ... }
.tw-md:text-blue { ... }
.tw-lg:text-blue { ... }
.tw-xl:text-blue { ... }

This may seem counter-intuitive at first, keep reading.

Your own classes that Tailwind touches with features like @responsive do not adopt this prefix.
For example, this custom class wrapped in @responsive:
@responsive {
    .foo { color: blue }
}

...will generate this code:
.foo { color: blue }
@media (min-width: 576px) {
    .sm:foo { color: blue }
}
@media (min-width: 768px) {
    .md:foo { color: blue }
}
@media (min-width: 992px) {
    .lg:foo { color: blue }
}
@media (min-width: 1200px) {
    .xl:foo { color: blue }
}

...not this code:
.tw-foo { color: blue }
@media (min-width: 576px) {
    .sm:tw-foo { color: blue }
}
@media (min-width: 768px) {
    .md:tw-foo { color: blue }
}
@media (min-width: 992px) {
    .lg:tw-foo { color: blue }
}
@media (min-width: 1200px) {
    .xl:tw-foo { color: blue }
}

This is the reason for putting the prefix at the beginning of the utility name, not the class name.
If we put the prefix at the beginning of the full class, your own custom utilities would have no prefix, and the responsive prefixes would look different:
<div class="tw-text-blue custom-foo tw-md:text-red md:custom-bar">
    <!-- ... -->
</div>

This inconsistency was ugly enough that it felt like putting the prefix before just the utility portion was the right move, because the only other option was prefixing your own custom utilities too, and that didn't feel right either.

Important
Important is simpler; it just makes all of Tailwind's utilities !important.
It doesn't make any of your own custom utilities that use Tailwind features important though; if you want that behavior, simply mark them as !important yourself:
@responsive {
    .foo {
        color: blue !important;
    }
}

One important special case here is the .container class. Using the important option does not make the .container class important.
This is because that class isn't really a utility; it's more of a component. It already gets special treatment in the codebase in that it doesn't get responsive variations generated (.md:container, .lg:container, etc.).
Since it's more of a component, it makes sense that it's styles should be overridable if needed, even though I don't know why you'd ever do that.
The End.
If you have opinions about all the prefix positioning crap I am open to hearing them, we argued about it for a while and this seemed like the best solution.

This is great!


hello world: forbidden

Hi there.   I'm attempting to get to "hello world" via this serverless-IIIF project.   Thanks for your work on this; I'm super excited to see it in action, and perhaps to contribute in the future.
(This might not be the right channel for support requests like this, but I imagine since this is so close to initial configuration, it's possible this may be a documentation error?  It could also, of course, be an error on my part. :)  If this should go elsewhere, please let me know, and apologies.)
So, I'm following the "AWS Console" instructions pretty carefully, and everything seems green, but I'm getting an error.
I have an image hosted (in an S3 bucket):

https://bcw-images.s3-us-west-1.amazonaws.com/test/tree.JPG

I have followed the README instructions, and have a Lambda function serverlessrepo-serverless-iiif with a big green checkmark, "Your application has been deployed".  I see an "Endpoint" key with the value https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/, and the description "IIIF Endpoint URL".  (I also see an "ApiId" which I am ignoring so far.)  I pointed the stack at the correct bucket bcw-images; I believe I have opened the permissions in the bucket, and opened CORS.
Hitting https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/ gives an Auth error:
{"message":"Missing Authentication Token"}

Hitting https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/iiif/2/test/tree/info.json, as in the README, gives an Access error:
{"message":"Forbidden"}

Same for /iiif/2/test/tree/full/full/0/native.jpg, and if I encode the slashes in the URL: https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/iiif/2/test%2Ftree/info.json
Please let me know if anything obvious pops out at you.  I'd appreciate any input.

@mbklein any idea?  If you recall, I asked you about this at the last Code4Lib at NU; at that point I meant to run it with Express, but this solution seems more sweet.  My lack of experience with Lambda may be my undoing, however.

@allanberry Sorry for the delayed response. It's hard to say exactly where the Forbidden error is coming from, though if you add the correct deploy stage to the URL, you get Not Found instead: https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Ftree/info.json
Do your CloudFront logs for the lambda have any information in them that may be useful?

Hi, I was running into the same problem. But looking at the Lambda function and reading the documentation again, I noticed that the script is looking for a TIF file. But just like you I did a test with a JPG file and that's the reason you are seeing a NOT FOUND error.
Try uploading a TIF file and you will notice that it's working.
What I did was removing the file extension from the s3Object function. Here is the code:
  s3Object (id) {
    var s3 = new AWS.S3();
    console.log(this.sourceBucket);
    return s3.getObject({
      Bucket: this.sourceBucket,
      Key: `${id}.tif`
    }).createReadStream();
  }

Now you have to include the file extension in your URL and it should work.
https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Ftree.JPG/info.json

Thank you @websnacks! That did the trick.  So now these work:

https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Ftree.jpg/info.json
https://qc6j9iny34.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Ftree.jpg/full/full/0/default.jpg

Now I just have to figure out why it's so dang slooow.  But thanks again.

@allanberry I believe you might be running into the issue that was addressed in #13 (which was pending for a long time, and which I just merged). @tpendragon figured out that it wasn't the image processing that was slow; it was fetching the image dimensions. The new code looks for width and height attributes among the S3 object's metadata and uses those if present. If not, it falls back to loading the image header and retrieving the dimensions. It's resulted in a massive performance improvement on the Princeton and Northwestern IIIF servers. Try pulling the new code and redeploying (with the appropriate change to s3Object() so it can find your images), then add height and width to your images' S3 metadata and see if that helps.

Thanks @mbklein I'll check it out (probably not for a couple of weeks).  So you're saying that each time I upload an image file into my S3 space, I'll need to manually enter its dimensions as well?  Does that happen in a form somewhere in S3, or should this be embedded in the file (or a sidecar) somehow?
(Again, please pardon my ignorance of Amazon infrastructure products; this is my first experience using them directly.)

Ok, so I've done this; I tore down the original instance and recreated a new one (so I could use the deploy button in the README; I didn't have confidence in my AWS-fu to modify the source in place).  At any rate, PNG works now, and pretty speedy:

https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Fuic.png/info.json
https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Fuic.png/full/full/0/default.jpg

TIF too:

https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Fapollo.tif/info.json
https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Fapollo.tif/full/full/0/default.jpg

As PNG is my primary use case, I think I'm in the clear.  Regardless, @mbklein some JPGs still seem slow, despite adding width and height metadata (maybe I'm doing it wrong)... a difference in JPG encoding or something?

https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2Ftree.jpg/full/full/0/default.jpg

As a contrast, this one works nice and quick, despite manually adding no height/width metadata:

https://vim9ip3utf.execute-api.us-west-1.amazonaws.com/latest/iiif/2/test%2FIMG_1181.JPG/full/full/90/default.jpg

Curious.  Anyways, thanks again.


Fix unsafe uses of unsafe.Pointer

Per rule 4 of unsafe.Pointer usage, conversion of a unsafe.Pointer
to a uinptr to pass to the syscall.Syscall family should only be done in
the argument list. We had a couple spots where we were passing it in as
an argument to a small wrapper function until it reached the underlying
syscall.Syscall*.
https://pkg.go.dev/unsafe#Pointer

@kevpar @helsaawy


Adding tri-nucleotide change

Tri-necleotide change is very useful for study mutational signatures. It would be very useful if we can add the tri-nt change to our output. For example, in this API, add "trinucleotide_context" below "allele_string".

We can get the sequence from assemble, e.g. https://grch37.rest.ensembl.org/sequence/region/human/17:37880219..37880221:1?content-type=text/plain. It would be good to cache the data.

Looks like we have already implemented it: https://www.genomenexus.org/annotation/17:g.37880220T>C?fields=hotspots%2Cmutation_assessor%2Cmy_variant_info%2Cptms%2Cannotation_summary,nucleotide_context

Just need to add it here: https://github.com/genome-nexus/genome-nexus-annotation-pipeline


Strip commas from course fees

Be more flexible in what we accept from users.
A user has been struggling to input a number in the course fees box because our validations do not allow commas to be added. eg 9,000 is not accepted.
We need to loosen our validations to allow for this type of value to be entered.

 Loosen the validations around our fee numbers

I wonder if there should be test coverage for this to prevent it being regressed accidentally

Pushed some test coverage which I'm not happy with yet, and then realized it's the backend validating this and I think this whole PR should be on the backend. D'oh. Working on it...


leetcode.workspaceFolder dont support ${env:USER}

os: macos
vscode: 1.49
plugin:0.17
leetcode.workspaceFolder dont support ${env:USER}

it seems ${env:xxx} variables can not be used in settings.json

it seems ${env:xxx} variables can not be used in settings.json

then it's extension-based, and leetcode doesn't support these variables 😅


Removed dead SYM_DB_INSERT_FAILED const

I've made a git blame to try to find the origin of this but I could not
find anything since it was part of the original commit (7f90fa0) !
Nothing in the current base code checks its value.

Nice (random) find!

Indeed ;)


Changes inspired by #818

Since simply connected has been added recently we can now have a property that distinguishes S115 from S117 see https://github.com/pi-base/data/issues/829#issuecomment-2439857116. I used the freedom to proof that S115 is not simply connected in pi base directly since the proof is easy and not really worth a math.exchange question.
Secondly I add the Warsaw Circle requested here https://github.com/pi-base/data/issues/851#issuecomment-2453279528 and show that it's not contractible.
Lastly I add from #818

Weakly contractible ($\pi_n(X)$ is trivial for all $n$)
Being an Eilenberg-MacLane space (There is exactly one $n$ such that $\pi_n(X)$ is non trivial)
Aspherical ($\pi_n(X)$ is trivial for all $n\not=1$)
The exact definition of these properties might still change since they seem to vary depending on the literature.

Please do not add all these new properties in the same PR.  We like to make smaller changes at a time, which make things a lot easier to review and easier to merge. One gigantic PR does not help that.

Alright. I thought the last three properties were fitting but I can leave them out for the moment.

Also, when we reference a mathse or mo post, we use the syntax with double braces in the text, something like {{mathse:1004837}}, and add the mathse id and title as part of the refs: section of the metadata (at the top of the file).  You can see many examples by searching in the pi-base source.
(Are you using github.dev as editor?)

Aren't there more than once space called the "Warsaw circle"?
If you find more than one, can you list a few here in the comments so we can discuss which one would be the best one to pick.
Or maybe I am confused about that and there is essentially only one.

Should {S28|P66} be changed then?

Yeah, that one was done a while ago before we have the double braces syntax.  We'll do the change separately for it.  Thanks for noticing!

Aren't there more than once space called the "Warsaw circle"? If you find more than one, can you list a few here in the comments so we can discuss which one would be the best one to pick. Or maybe I am confused about that and there is essentially only one.

There are many definitions I found which are all homeomorphic.
+Wikipedia just draws a picture.
+This paper which was in the reference section on Wikipedia defines it the way I did.
+{{mathse:1004837}} defines it as (the closed sine curve)[https://topology.pi-base.org/spaces/S000114] + an arc
There are some others which we're also some variation of these, but I'm open to change the definition for some other when suggested

Procedure thing: Are you familiar with the Preview button from within github.dev?  It allows to see a preview of the text part of a file while in an editor window, and in particular to see that the latex (mathjax?) is properly formatted.  Always good to check before committing anything.

Procedure thing: Are you familiar with the Preview button from within github.dev? It allows to see a preview of a file while in an editor window, and in particular to see that the Latex is properly formatted. Always good to check before committing anything.

I wasn't. Until now I always commited so that I could see how it looks in pi base but this is much more useful.

One of the buttons at the top right of an editor window, in case you were wondering.

Note that https://topology.pi-base.org/dev/preview is another useful tool (it expands all the {tag}s).

A few other variants: At least it seems one always wants the space to be compact.
https://ncatlab.org/nlab/show/Warsaw+circle.  Not sure if that's the same as in Borsuk's "Theory of Shape" book.
(See also https://math.stackexchange.com/a/1480692)
https://mathoverflow.net/questions/280806/ has two pictures.  The one on the left is not homeomorphic to the other ones, I think.

Not sure if it's ready for review or not.  As explained before, for P199, since you are using a mathse reference, the mathse id and title of the post needs to be added to a refs: section at the top of the file.  Please compare with other files in pi-base.

And it is an important property that Warsaw circle is simply connected but not contractible, as a subset of R^2, I may suggest add "S205" (TBD) is P200 to be separated from S115.

Comments about "S115 is not simply connected":
I always find $A\cap B\times C$ to be ambiguous. Parentheses would help.  Or do you think there is a specific precedence of operators here?
What is the wedge operator?  If something is not obvious, we should have links to the concepts being used, to Wikipedia for example.  Also mention which theorem you are using, maybe from Hatcher for example or somewhere else.
Something does not seem quite right here.  As defined, $X_2$ is not homotopically equivalent to a circle.  So the later chain of  isomorphisms would not work.  And $X_1$ is just two dangling arcs, contractible.  I think you want something else.

What is the wedge operator? If something is not obvious, we should have links to the concepts being used, to Wikipedia for example. Also mention which theorem you are using, maybe from Hatcher for example or somewhere else.

In fact this is wedge sum but denoted as \vee instenad of \wedge. This is well-known and needn't to be commented.

What is the wedge operator? If something is not obvious, we should have links to the concepts being used, to Wikipedia for example. Also mention which theorem you are using, maybe from Hatcher for example or somewhere else.

In fact this is wedge sum but denoted as \vee instead of \wedge. This is well-known and needn't to be commented.

Ok.  That makes more sense with $\vee$.

@JoeF131  (Actually, there is enough discussion about S115 here that it would have been preferable to have it is a separate PR. The discussions about the two spaces will soon intertwine even more.  That's another reason why it's good to have smaller PRs, independent of each other, easier to review and quicker to merge.)

@JoeF131 (Actually, there is enough discussion about S115 here that it would have been preferable to have it is a separate PR. The discussions about the two spaces will soon intertwine even more. That's another reason why it's good to have smaller PRs, independent of each other, easier to review and quicker to merge.)

I will split this PR into two and as such move the Warsaw circle to the second one.
Furthermore I'll mention Seifert–Van Kampen theorem in the proof and correct it further.

I moved the Warsaw circle to #915.

Procedural thing: The last two commits show a red cross, indicating that the build has failed. Also at the bottom, there is an indication of the same thing.   In this case, need refs: for the reference section.

I've added an easier proof as a suggestion.  Also fixing the refs: problem.


seed: Remove old, non-working seed files

Code coverage: http://vaskemaskin.includeos.org:8080/coverage_includeos/hioa-cs-org-test/IncludeOS/PR-2074


Switch to golang.org/x/sys/windows

Describe the new feature or change suggestion
Firstly, thank you for this project!
Currently go.bug.st/serial has its own generated Windows syscalls in syscall_windows.go and zsyscall_windows.go. I recently opened a PR for golang.org/x/sys that adds the necessary calls: https://go-review.googlesource.com/c/sys/+/572295.
Once this is merged and released then go.bug.st/serial can switch to a more recent version of golang.org/x/sys and remove its generated code. I'm happy to open a PR to do this when the time comes.
Additional context
#149 makes a similar change. Can #149 be merged too?
Issue checklist

[X] I searched for previous requests in the issue tracker
[X] My request contains all necessary details

Closing due to inactivity.

@twpayne I'm sorry for the long delay in replying, unfortunately, I run this project in my free time, so issues may take very long to process.
I'll reopen this issue since it's a valid and valuable concern.


Ekuiper manager rule edit page bug

Environment:

eKuiper&manager version: 1.9.0

What happened and what you expected to happen:
The rule edit page displays the options tab normally
How to reproduce it :

Use the Post http://host:port/rules API to create a rule
The rule edit page doesn't display the options tab until a submission is made once

@QBH-insist  Could you please share with us your http post body ?

@QBH-insist Could you please share with us your http post body ?

{
  "id": "test-upload-rule",
  "sql": "SELECT * FROM test_stream",
  "actions": [{
    "rest": {
        "url": "http://ip/upload/event",
        "method": "POST",
        "insecureSkipVerify": true,
        "bodyType": "json",
        "headers": {
            "Content-Type": "application/json"
        },
        "sendSingle": true,
        "concurrency": 2,
        "cleanCacheAtStop": false
      }
  }]
}

Fixed in eKuiper manager 1.9.1


Make FontSystem not self-referencing, second try

Like #89, this makes the std implementation of FontSystem not self-referencing, which in turn allows defining a db_mut method for mutable access to the underlying fontdb::Database (requested in #75).
Unlike #89, this makes Font self-referencing. Fonts are cached like before, so the performance should stay the same. The only impact on performance should be that FaceInfo is cloned and stored inside the Font to remove the need to borrow from fontdb::Database.

Closing this in favor of #97. The latest changes of #97 don't require cloning FontFace anymore.


237 uncomment sha 256

Closing, as this was merged in https://github.com/NilFoundation/zkllvm-blueprint/pull/248.


ensure restricted prefixes cannot be used

Fixes #55

Pull Request Test Coverage Report for Build 276

21 of 22 (95.45%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.7%) to 37.232%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/plugins/load.go
21
22
95.45%

Totals

Change from base Build 274:
1.7%

Covered Lines:
452

Relevant Lines:
1214

💛  - Coveralls


Eported Project on macOS crashes when closing the App - only mono/c# InputMap.ActionAddEvent()

Godot version
v4.2.rc1.mono.official [ad72de508]
System information
macOS Sonoma 14.1.1
Issue description
After building the project and run it on macOS, close the window and you get a crash report.
I found out that it only happens on the built version, and not if i play it in the editor.
Error started to appear with 4.1 i think. In 4.0 i didn't had that issue.
It has something to do with InputMap.ActionAddEvent(...,...)
maybe some bindings???
Sorry for my bad english... :)
Steps to reproduce

Start Godot_mono
Create new Project
Add e.G. Node2D
Add a C# Script
Add this code in _Ready() function
InputEventKey inputEventKey = new InputEventKey();
inputEventKey.Keycode = Key.W;
InputMap.AddAction("move_up");
InputMap.ActionAddEvent("move_up", inputEventKey); // without this line there is no crash on closing the built app
build project (for macOS)
run the built project -> hit the close button

Minimal reproduction project
CrashTest.zip

I did some digging and found that the same error happend before.
See this "closed" issue.
https://github.com/godotengine/godot/issues/25621
The merged fix for that issue was:
https://github.com/godotengine/godot/pull/25721
So seems to be a regression.


Support PPMINOUTLN for CRTBNDRPG and CRTRPGPGM

This parameter determines the minimum line length for include files for the IFS during SQL pre-processing.  Without it, the default of 100 will be used.  If the main source files has lines longer than 100 that will be used.
This new parameter requires a PTF for. V7R3 to V7R5
If the PTFs are not present none of the following should happen

If the a private variable PPMINOUTLN is set for a target, that should take effect

ABC.PGM: abc.pgm.sqlrpgle
ABC.PGM: PPMINOUTLN = 400
2) If the PASE env var PPMINOUTLN is specified then it should be respected

makei -b -e PPMINOUTLN=200
3) If the command has had its default command overwritten for this parameter, that value should be used.
See issue x

4) If none of the above is true the default value of PPMINOUTN for BOB will be 256 which should handle most cases

Depends on https://github.com/IBM/ibmi-bob/issues/182 for step 3
Not that this is lower priority

This addresses https://github.com/IBM/ibmi-bob/issues/128

IBM believes that the solution for the Idea described is available with PTFs for 7.3, 7.4, and 7.5.
          The PTFs allow you to control the line length of the source file specified by the PPSRCFILE parameter for CRTBNDRPG or CRTRPGMOD when the RPG compiler is called in pre-processor mode. The most common reason for the RPG compiler to be called in pre-processor mode is when the CRTSQLRPGI command is specified with RPGPPOPT(*LVL1) or RPGPPOPT(*LVL2). In that case, the SQL precompiler calls the RPG compiler, specifying PPSRCFILE(QTEMP/QSQLPRE).

          The actual record length of the file is 12 bytes longer than the line length. For example, if the line length is the default of 100, the record length is 112.

          There are two separate enhancements:

          1. Support for compile-time environment variable QIBM_RPG_PPSRCFILE_LENGTH. When this environment variable is specified with a value between 100 and 32754, the file specified by the PPSRCFILE parameter is created with that line length, if the file does not already exist.

          2. Support for new command parameter PPMINOUTLN (Minimum output length for PPSRCFILE). You can specify a value between 100 and 32754. This parameter specifies the minimum line length for the file specified by the PPSRCFILE parameter. If the file does not exist, the RPG compiler creates the file with the maximum of the value specified by the PPMINOUTLN parameter and the longest line length in the file specified by the SRCFILE or SRCSTMF parameter, up to a length of 32754.

          Warning: If you apply the PTF for the command parameter, it will cause any changed command defaults to revert to the shipped defaults. If command default changes have been made for the CRTBNDRPG or CRTRPGMOD commands, the changes will have to be made
          again. If copies have been made of the QDEVTOOLS/CRTBNDRPG or QDEVTOOLS/CRTRPGMOD commands, these copies will not have the new
          PPMINOUTLN parameter. If this new parameter is desired, then new copies will have to be made of the commands.

          To obtain these enhancements, you need the following PTFs:

          7.3:
          1. PTF to support the environment variable: 5770WDS SI82184
          2. PTF to support the new commad parameter: 5770WDS SI82183

          7.4:
          1. PTF to support the environment variable: 5770WDS SI82178
          2. PTF to support the new commad parameter: 5770WDS SI82179

          7.5:
          1. PTF to support the environment variable: 5770WDS SI82185
          2. PTF to support the new commad parameter: 5770WDS SI82186

          For more information, see https://www.ibm.com/support/pages/node/6857461.

          - IBM Power Systems Development


Working with git

Running commands such as
$ git commit -m "test 123" --allow-empty
error: pathspec '123' did not match any file(s) known to git

Gives an error

#20 might fix this as the command is stored in an array like this:
_________________________________________________
| git | commit | -m | "test 123" | --allow-empty |
 ------------------------------------------------

it does!
itai@pinebookpro:~$ $ git commit -m "test 123" --allow-empty
fatal: not a git repository (or any of the parent directories): .git
itai@pinebookpro:~$

(with the fixes I'll push to the branch now)

I haven't seen the PR yet, however did you try it in a repo, only occurs when it is in a repo

I created a test repo (with `mkdir test; cd test; git init) and made a test commit and it works!
itai@pinebookpro:~/Desktop/test$ git commit -m "test 123" --allow-empty
[master (root-commit) ec5a102] test 123
itai@pinebookpro:~/Desktop/test$ git log
commit ec5a1022c72cb3dc3634fd1248946d10a3d4bcde (HEAD -> master)
Author: Itai Nelken<EMAIL_ADDRESS>Date:   Sun Jul 11 22:23:14 2021 +0300

    test 123
itai@pinebookpro:~/Desktop/test$

It doesn't work... I forgot the $ when testing...

I found the cause of the problem (using execvp()) (ignore the segfault):
itai@pinebookpro:~/Desktop/test$ $ git commit -m '1 2' --allow-empty
git
commit
-m
1
2
--allow-empty
Segmentation fault (core dumped)
itai@pinebookpro:~/Desktop/test$ $ git commit -m '1 2' --allow-empty
error: pathspec '2' did not match any file(s) known to git
itai@pinebookpro:~/Desktop/test$

the '1 2' is threated as 2 different arguments.

The problem is that what DollarSkip gets from this input: $ git commit -m "test 123" --allow-empty is git commit -m test 123 --allow-empty (note the missing double quotes). that is bash's fault, when using the shell I wrote that doesn't handle quotes and double quotes, DollarSkip gets the correct string (git commit -m "test 123" --allow-empty) and we can process it to make the characters between the double quotes be a single argument.
TL;DR the problem is that we need to modify the shell to fix this or - I don't know if it is possible - we need to change shell settings to leave quotes and double quotes alone when passing arguments to DollarSkip.

This might work: https://stackoverflow.com/questions/10835933/preserve-quotes-in-bash-arguments
We can use sprintf() to "print" the arguments into a variable.

Didn't work :(

I have now completed the go version after actually learning some basic concepts in go and getting a grip on it.
The current version can be seen here and I plan to merge it very soon.


[Bug] zenstack generate fails with<EMAIL_ADDRESS>

Description and expected behavior
Prisma just released a new version 5.16.0, and this probably came with some changes to their internal types that Zenstack relied upon. When running zenstack with<EMAIL_ADDRESS>I run into this bug:
> zenstack generate

⌛ ZenStack CLI v2.2.4, running plugins
✔ Generating Prisma schema
✔ Generating PrismaClient enhancer
Error compiling generated code:
node_modules/.pnpm/@zenstackhq+runtime@2.2.4_@prisma+client@5.16.0_prisma@5.16.0_/node_modules/.zenstack/enhance.ts:33:13 - error TS2314: Generic type 'DynamicClientExtensionThis' requires 4 type argument(s).

33     prisma: DynamicClientExtensionThis<TypeMap, TypeMapCb, ExtArgs>,
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/.pnpm/@zenstackhq+runtime@2.2.4_@prisma+client@5.16.0_prisma@5.16.0_/node_modules/.zenstack/enhance.ts:34:77 - error TS2314: Generic type 'DynamicClientExtensionThis' requires 4 type argument(s).

34     context?: EnhancementContext<auth.User>, options?: EnhancementOptions): DynamicClientExtensionThis<Prisma.TypeMap, Prisma.TypeMapCb, ExtArgs>;
                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

: Error compiling generated code
 ELIFECYCLE  Command failed with exit code 1.

Right now, the solution is just to stick to the previous version of Prisma (v5.15.1) which is completely fine. Just wanted to let the devs of this amazing library in-the-know that it's would break for anyone trying to spin up a new project with latest versions.
Environment (please complete the following information):

ZenStack version: 2.2.4
Prisma version: 5.16.0
Database type: postgresql

Thanks for filing this @AmruthPillai . I created a dup #1536 here. It'll be fixed in the upcoming 2.3.0 release!


FTDetect files not getting sourced

I am using my vim-slim plugin with vundle.
When I just use it with vundle, it ignores the ftdetect (It appears since the highlighting does not kick in) but when I manually run the commands out of the ftdetect file (IE :autocmd BufNewFile,BufRead *.slim set filetype=slim) and then open the slim files it loads the syntax highlighting.
Is there any reason that vundle would be ignoring the ftdetect directory?

This might help someone later...
If moving filetype plugin indent on to after vundle#end doesn't fix it for you, try moving syntax on also to after the call to vundle#end. All the vundle configuration doesn't have to be in one place if you move both filetype plugin indent on and syntax on below vundle#end.

+1 on sharat87 solution.
It is related to a lot on utliSnip issues.
Maybe the Readme.md should be updated to remove any doubt ?

+1 on sharat87 solution.

@elrrrrrrr please don't add +1 comments on issues unless you have new information that people should read. A lot of emails get sent every time someone makes a comment.


Implement type checking, orthogonally to everything else

It would be way cool if we could add type checking as basically an optional module on top of 007 core. It would be both a "battle test" of the macro primitives we provide (and provide clues as to whether they're powerful enough), and a prestigious thing to pull off.
I'd be totally fine with us faking much of it first, including macros, modules, and module imports/exports, as long as we were converging on having it be basically an add-on thing, expressible in 007 itself.
Syntax
The syntax extensions are the easy part. We'd want to extend:

my and constant declarations: my count: Int = 0;
Parameters (including to if and loop blocks): sub add(lhs: Int, rhs: Int) { ... } and -> s: Str { ... }
sub and macro declarations (return types): sub add(lhs, lhs): Int { ... }
the identifier in catch blocks (see #65)

Basically, all the places in the language where an identifier signifies the introduction of that identifier into some scope, we'd want to also introduce a : <type> parse.
I'm totally fine with cluing the core parser in to where those places are where we'd want to introduce a typing. From the list above, that looks like about five places. We just place a rule there or something that's empty in the standard 007 grammar. If that's not enough, then I guess we'll have to re-implement enough of Perl 6 grammars inside of 007 to make that possible.
By the way, it would always be optional to add a colon and a type, and leaving a type out would need to mean the same thing as before we introduced types. (If someone still wants to put something there, they can write : Any, which means "do no type checking on this thing".)
Array is a generic type, and just writing it like that would mean Array<Any>. But you can also write Array<Int> or even Array<Array<Array<None>>>.
Function types have a -> in them to separate the types of the parameters from the return type, like Int -> Str. If you have several parameters (or zero), you need to surround them with parentheses: (Int, Int, Int) -> Str. You cannot have several things on the right-hand side of the arrow, though. (By the way, TypeScript uses => for the arrow, but we're going with Python's proposal for type annotations, and it uses ->.)
For objects, the type looks like this: { name: Str, age: Int, greet: () -> Str }.
Semantics

The numeric operators, like infix:<+> et al, would only be allowed on Int literals and variables. (Any would work too; see above. This fact will be assumed from now on in this text.)
The string operators, like infix:<~> would only be allowed on Str things.
If the compiler can infer the type of a sub by just bubbling up information from its constituent parts, it will do so. Thus you might actually get your subroutine typed by the compiler. (If this clashes with a type annotation you made yourself, you get a compile-time error.)
Similarly, if you initialize a variable as you declare it, the compiler will deduce the type for you.
However, both variable declarations without assignments and parameters are typed as Any if no type is provided. No guessing is being done from later handling of the variable or parameter.
Assignment is only allowed if the types match.
When a call is made to something annotated with a return type, the call expression is assumed to have that return type.
Indexing is only allowed on Array. The type of the thing we get back is the generic type parameter T of Array[T].
Typed parameters in if, for and while pointy blocks are checked as early as possible against their expression. If something is obviously impossible, that's a failure at compile time. Some things will have to wait until run time, unfortunately. (For example, my a: Any = [...]; for a -> e: Str { ... }.)
Control flow within a sub is analyzed enough that we make sure we always return a type we declared we would.
We are quite likely to need/want to do type guards in practice.
TypeScript does something called contextual typing which we might also start caring about once we run out of simple things to do.

Other worthy ideas

Union types: Int | Str
Optional types: Maybe<Int>
Fixed array types: [Str, Str, Int]
Generics

We'd want to extend:

my and constant declarations: my count: Int = 0;
Parameters: sub add(lhs: Int, rhs: Int) { ... } and -> s: Str { ... }
sub and macro declarations: sub add(lhs, lhs): Int { ... }

I don't know whether to call it pure blind luck or language design brilliance, but neither #25 nor #32 introduces any new places to put type annotations, despite being fairly sizable additions to the syntax.

Object literal properties don't expect to be typed. Just as array literal elements don't. Which is lucky, because the colon is taken already for properties in the object literal DSL, separating as they do the key and the value.
Anything that can occur inside the class block is either a my or a sub, both of which were handled above.

Function types have a -> in them to separate the types of the parameters from the return type, like Int -> Str.

Following tradition, the -> separator is right-associative, so Int -> Int -> Int means the same as Int -> (Int -> Int). That is "this function takes and Int and returns a function that takes an Int and returns an Int".
Do note though that Int -> Int -> Int is distinct from (Int, Int) -> Int, and that functions in 007 are not curried by default, and something like sub add(x: Int, y: Int): Int { return x + y } would be of the latter type, not the former.

One great way to map this out would probably be to implement the whole type checker as an honest-to-blog 007 program which (magically) got the Qtree of the program-to-be-type-checked as input.

Hm, Which one of these makes more sense?
sub foo(x: Int): Int { return x }
sub foo(x: Int) -> Int { return x }

In all the above discussion, I went with the former, because:

It's consistent with everything else that's type annotated and uses a :
It's what TypeScript does

But, taking the other side:

It's more consistent with the way function types look, and it speaks "return type" more
In that vein, it doesn't do a mental "cheat" by mixing together the return type with the type of the sub itself (or of the signature)
I just noticed that Swift uses -> in that position
And I just remembered that Python's proposal does too (except with the => syntax)

I honestly don't know which one to go with. All I know so far is that I want to choose one of them, not allow both. And I want to make whatever choice I make for compelling reasons.

One strike against using -> is that this would be allowed:
sub foo(x: Int) -> Int -> Int {
    return sub(y: Int) -> Int {    # assumed: `sub` expressions
        return x + y
    }
}

The -> Int -> Int looks ugly to me. These are two quite different -> arrows (one introduces the return type annotation; the other is part of the function type syntax).
Of course, we could arbitrarily require parentheses:
sub foo(x: Int) -> (Int -> Int) {

But I have no sense of whether that's a better solution than "just get used to reading it the 'right' way!"
All in all, this counts as a strike against switching from the status quo to ->.

That last one sounds Haskell-ish :P.

It would be way cool if we could add type checking as basically an optional module on top of 007 core.

A good way to have this happen is to do all of the type-related development in a (public) branch. Then, when that branch is relatively feature-complete, find a way to integrate the whole thing into master as a pragma. Using #53's syntax, that'd be use types; or something.

Am I right that you're proposing an optional type system as proposed by Gilad Bracha et al? That is, these types can never affect the compilation of a program save to possibly make it fail to compile if the type checker is run. If it does compile, then not running the checker, or removing some or all optional types, makes absolutely no difference to whether it compiles and what the compiled code does. So these optional types are type constraints on variables not types of values. Is that about right?
So this precludes use of these types in multiple dispatch, for example, right?

Bracha's idea seems to me more about allowing one language to plug in many different type systems (or none at all). But yes, I would like to make the type system optional in some sense. First sentence of this issue:

It would be way cool if we could add type checking as basically an optional module on top of 007 core.

We're quite a far way from being able to do that; 007's grammar is still all in Perl 6, and we'd probably need a pure-007 parser to be able to hack type annotations into it. Beyond that it also feels like we're missing some theory/experience.
But yes, it's a goal.

In TypeScript (which much of the described type system is based on) you can't do this:
my x = 5;
x = "foo";

That is, you can't suddenly change the type of a variable after the type inference engine has decided what type it has.
It feels odd that we're being punished for changing the type of a variable, when that's a perfectly fine thing to do in the absence of a type inferencer. If type inference is opt-in, it shouldn't do anything here when we haven't opted in yet!
On the other hand, this is completely fair game:
my x: Int = 5;
x = "foo";    # type error: Str not assignable to Int

My guess is that TypeScript went the stricter way because (a) it's a lot easier to write a typechecker if it can make the assumption that the type inferred at declaration is in effect throughout the scope, and (b) because making that assumption is "good for you", the developer, anyway, in the sense that your code doesn't gain anything from you changing the type of a variable mid-flight.
Given both of those points, consider the wish in this comment a "strong opinion, loosely held". 😄

(b) because making that assumption is "good for you", the developer, anyway, in the sense that your code doesn't gain anything from you changing the type of a variable mid-flight.

Definitely siding with the "punish the user" camp myself.

I mean, I think I can live with that. It just means in practice that, if you only add a pragma use typechecker; at the top of your program (thinking you'll gradually introduce types), you might go from a program that compiles to one that doesn't.
It's not the end of the world, and again, that's what TypeScript gives you. (Although they also claim to be a "strict superset" of JavaScript, which I feel is less true because of behavior like this.)

you might go from a program that compiles to one that doesn't.

You mean, a program that is well-typed even though it has no type ascriptions? :P.

(Although they also claim to be a "strict superset" of JavaScript, which I feel is less true because of behavior like this.)

That's a low blow. You could say that for any program the TS typechecker rejects.

@vendethiel As an answer to both of your comments, I don't think I'm being unfair in this case.  I believe it's a post-rationalization to say "well, maybe you shouldn't code that way anyway" — I mean, there's certainly a sense in which TypeScript does lead one to better habits... but then one cannot also claim that it's just normal, unmodified JavaScript as we know it.


Build fails on MacOS (link error)

What version of gRPC and what language are you using?
1.22.0
What operating system (Linux, Windows,...) and version?
MacOS
What runtime / compiler are you using (e.g. python version or version of gcc)
clang 10.0.1
What did you do?
Tried to build grpc as a dependency using Bazel
What did you expect to see?
What did you see instead?
ld: illegal thread local variable reference to regular symbol __ZN9grpc_core7ExecCtx9exec_ctx_E for architecture x86_64

It seems to be the same issue with #13856 and it's supposed to be fixed. @vjpai can you take a look at this?

Loathe to add a “me too” but I subscribed to this a while back because I’m having the same issue. And I just got a notification and was excited but it was the stale bot so I thought I’d chime in!

Duplicate of #13856.


Listen 2.0 support

See discussion in https://github.com/rails/spring/pull/194. As a result, this project has been created and listen 2 support will be implemented here.

I should release master as 2.0.0 for now...

Released as v2.0.0, should work without issues on Listen 2.x and Listen 3.x (preferred over Listen 1.x)


Addition of examples for yapf -

and include cpp-tests in clang format  (requires >= clang6)

#253


Separate the image building and deployment documentation for Azure

Right now we have both the pod vm building documentation and deploying CAA on Azure documentation in same place. I think it should be divided into two.
The current place is the right place to host the pod vm image documentation. Find a new place that will host the deployment documentation.

With  ready-to-use community images available now, we should definitely re-arrange the doc which will will provide a quickstart kind of doc for users. For devs, we can have a separate doc with details on image building etc.

There are bunch of problems in the current documentation consider fixing them when doing this:

Can't deploy AKS cluster with the given command

The given command here fails with the following error:
$ az aks create \
  --resource-group "${AZURE_RESOURCE_GROUP}" \
  --node-resource-group "${AKS_RG}" \
  "${SUBNET_ID+--vnet-subnet-id $SUBNET_ID}" \
  --name "${CLUSTER_NAME}" \
  --enable-oidc-issuer \
  --enable-workload-identity \
  --location "${AZURE_REGION}" \
  --node-count 1 \
  --node-vm-size Standard_F4s_v2 \
  --ssh-key-value "${SSH_KEY}" \
  --admin-username "${AKS_WORKER_USER_NAME}" \
  --os-sku Ubuntu
unrecognized arguments:

Examples from AI knowledge base:
az aks create --resource-group MyResourceGroup --name MyManagedCluster
Create a kubernetes cluster with default kubernetes version, default SKU load balancer (Standard) and default vm set type (VirtualMachineScaleSets).

az aks create --resource-group MyResourceGroup --name MyManagedCluster --enable-managed-identity
Create a kubernetes cluster which enables managed identity.

az extension add --name anextension
Add extension by name

https://docs.microsoft.com/en-US/cli/azure/aks#az_aks_create
Read more about the command in reference docs

Virtual Machine Contributor is not enough to read the image available in the same RG

Right now we create a role assignment where we allow the user assigned identity only "Virtual Machine Contributor" to the default RG. This is not enough to read the image available in the same RG built in the "Build Pod VM Image" step. Due to this I see the following errors in the CAA logs:
...
2023/09/15 00:08:12 [adaptor/cloud] stored /run/peerpod/pods/2be6deeaa1fc02782dbff15a1bc608584ba1e4f896b922f59619aaa93e714408/daemon.json
2023/09/15 00:08:12 [adaptor/cloud] create a sandbox 2be6deeaa1fc02782dbff15a1bc608584ba1e4f896b922f59619aaa93e714408 for pod nginx-866fdb5bfb-mq2hq in namespace default (netns: /var/run/netns/cni-2bd93606-4226-5aa7-63ea-b430749c2131)
Using default instance type ("Standard_DC2as_v5")
2023/09/15 00:08:13 [adaptor/cloud/azure] CreateInstance: name: "podvm-nginx-866fdb5bfb-mq2hq-2be6deea"
2023/09/15 00:08:13 [adaptor/cloud/azure] deleted disk successfully: podvm-nginx-866fdb5bfb-mq2hq-2be6deea-disk
2023/09/15 00:08:13 [adaptor/cloud] creating an instance : Creating instance (<nil>): beginning VM creation or update: PUT https://management.azure.com/subscriptions/foobar/resourceGroups/suraj-stv/providers/Microsoft.Compute/virtualMachines/podvm-nginx-866fdb5bfb-mq2hq-2be6deea
--------------------------------------------------------------------------------
RESPONSE 403: 403 Forbidden
ERROR CODE: LinkedAuthorizationFailed
--------------------------------------------------------------------------------
{
  "error": {
    "code": "LinkedAuthorizationFailed",
    "message": "The client '11e73e5a-7818-465a-a49c-6723777328d8' with object id '11e73e5a-7818-465a-a49c-6723777328d8' has permission to perform action 'Microsoft.Compute/virtualMachines/write' on scope '/subscriptions/foobar/resourceGroups/suraj-stv/providers/Microsoft.Compute/virtualMachines/podvm-nginx-866fdb5bfb-mq2hq-2be6deea'; however, it does not have permission to perform action 'read' on the linked scope(s) '/subscriptions/foobar/resourceGroups/suraj-stv/providers/Microsoft.Compute/galleries/caaubntcvmsGallery/images/cc-image/versions/0.0.1' or the linked scope(s) are invalid."
  }
}
--------------------------------------------------------------------------------
2023/09/15 00:08:13 [adaptor/proxy] shutting down socket forwarder
2023/09/15 00:08:13 [adaptor/cloud/azure] finding VM name using regexp:[]
2023/09/15 00:08:13 [adaptor/cloud] Error deleting an instance : VM name not found
2023/09/15 00:08:13 [tunneler/vxlan] Delete tc redirect filters on eth0 and eth0 in the network namespace /var/run/netns/cni-2bd93606-4226-5aa7-63ea-b430749c2131
2023/09/15 00:08:13 [adaptor/cloud] tearing down netns /var/run/netns/cni-2bd93606-4226-5aa7-63ea-b430749c2131: failed to tear down tunnel "vxlan": failed to delete a tc redirect filter from vxlan1 to eth0: failed to get interface vxlan1: Link not found
2023/09/15 00:08:19 [adaptor/cloud/azure] successfully deleted nic (podvm-nginx-866fdb5bfb-mq2hq-2be6deea-net) in background


allow to  build without -test in some cases

@roman012285 please review. And approve if it looks good to you


updated table in jenkins 2017 doc

removed the reference to the ANT_HOME variable

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Q: Is there a way to control the strengths of webpack's uglifier/obfuscator (if there is one)?

I noticed, that the default settings for productive build are more or less producing clear source code, even though there is a little minification, but nearly no obfuscation in it. Is there a way to make the obfuscation stronger via configuration through react-native?

I think you are misunderstanding the main purpose of UglifyJS; it minifies your JavaScript so that it is smaller in size and thus requires less bandwidth and reduces loading time. It is not an obfuscator.
What are you trying to achieve by obfuscating your code?

@Herohtar Thanks for clarification. The idea was to make it a bit harder for sniffers to read. Right now it is not hard at all :)

fwiw we use terser not uglifier. i'm not sure what react-native has to do with any of this?

@sw-yx Sure, not an issue fo react-native, but since I'm using npm run build as means to create my SPA distributions, I thought, there would be a way to plugin such an obfuscator during the build. Was just looking for suggestions. Would you mind to share, how you combine terser and react-native?
TIA

Oops, sorry. Meant react-static

OK, I see: I would need to update to a react-static 6.3.x version. But with this and a similar package.json (as a sample project produces) I'm running into issues (yarn build)

ERROR in a_long_path_down_the_roadspa/artifacts/react-static-templates.js 1:669
Module parse failed: Unexpected token (1:669)
You may need an appropriate loader to handle this file type.
> import _path from"path";import _universalImport from"babel-plugin-universal-import/universalImport";import universal,{setHasBabelPlugin}from'a_long_path_down_the_roadspa/node_modules/react-universal-component/dist/index.js';setHasBabelPlugin();var universalOptions={loading:function loading(){return null;},error:function error(props){console.error(props.error);return React.createElement("div",null,"An error occurred loading this page's template. More information is available in the console.");}};var t_0=universal(_universalImport({id:"../node_modules/react-static/lib/browser/components/Default404",load:function load(){return Promise.all([import(/* webpackChunkName: 'node_modules-react-static-lib-browser-components-Default404' */'../node_modules/react-static/lib/browser/components/Default404')]).then(function(proms){return proms[0];});},path:function path(){return _path.join(__dirname,'../node_modules/react-static/lib/browser/components/Default404');},resolve:function resolve(){return require.resolveWeak('../node_modules/react-static/lib/browser/components/Default404');},chunkName:function chunkName(){return"node_modules-react-static-lib-browser-components-Default404";}}),universalOptions);// Template Map
| export default{'../node_modules/react-static/lib/browser/components/Default404':t_0};export var notFoundTemplate="../node_modules/react-static/lib/browser/components/Default404";
 @ ../lib/bootstrapTemplates.js 4:15-63 15:20-68
 @ multi ../lib/bootstrapPlugins.js ../lib/bootstrapTemplates.js ../lib/bootstrapApp.js
Child extract-css-chunks-webpack-plugin ../../css-loader/dist/cjs.js??ref--4-oneOf-2-1!../../postcss-loader/src/index.js??postcss!../../../src/app.css


Hierarchical Group Problems

[ ] http://www.concrete5.org/community/forums/5-7-discussion/in-a-group-but-not-really/
[ ] user::inGroup needs to respect group path as well.

@aembler can you clarify something here...
If you have the path
/Organization 1/Division 1
/Organization 1/Division 2
And you search for users in Organization 1, you expect to get users who are a part of both Division 1 and Division 2 Correct?
Also how does this affect page permissions? Can I have a Deny Access for Organization 1, and an allow access for Division 1 or how is that intended to work?

Yes, that's how it's supposed to work.
In general deny always takes precedence after allow, so in this case deny
would deny Organization 1 after Division 1 had access, leading to the user
being effectively denied.

Also how does this affect page permissions? Can I have a Deny Access for Organization 1, and an allow access for Division 1 or how is that intended to work?

FWIW (coming from someone who's not familiar with the inner workings of the C5 permission system), it would intuitively seem (to me at least) that any permissions explicitly associated with a group should take precedence, thereby overriding any permissions further up the group hierarchy.
So for instance, Organization 1 might be denied access to a particular portion of a site, but Division 2 of that organization might be granted access to it because it pertains exclusively to their division. IOW, any subgroup of Organization 1 would automatically inherit Organization 1's permissions unless the subgroup was assigned permissions of its own.
I don't know if that behavior is possible or feasible with C5's permission system, but it's the most desirable from my perspective.
-Steve

Yup I kind of agree with @Shotster on this one.
As an example where this would be useful:
If you wanted to deny everyone in Organization 1 access, except for one specific Division within that organization. It seems like things further down the tree would take precedence. I asked the question because I think it's far more complicated to do, but it seemed like an intuitive thing to expect for me.

I think you are overthinking this. You can do what you're describing with
what's there already, without deny exclusions. If you have a part of the
site that you don't want to give Organization 1 access to, just don't give
them access! Then, give that one division read access.

If you have a part of the
site that you don't want to give Organization 1 access to, just don't give
them access!

There's obviously something I don't understand or am overlooking. Can you expound on how how you "just don't give them access" without attaching "deny" permissions?
-Steve

@aembler you're right. I'm not sure why I was thinking you had to either allow or deny when implicitly no permissions set means no access.

implicitly no permissions set means no access

There's obviously a gaping hole in my understanding of permissions. I guess I'll have to tinker a bit.
:-/
Anyway, it's good to know the described scenario can be accommodated.
-Steve

There's obviously a gaping hole in my understanding of permissions.

Oh wait, I guess you're just saying not to publish the page and then grant access to the appropriate users or groups. (Duh.)
:-/
-Steve

Hah no biggie – there are a lot of ways to configure them and they are very
powerful and very complex.
In general there are two ways to "deny" someone access to something. 99% of
the time you do this by just not granting them the permission in the first
place. The deny permission section of the permissions are for when you
really want to explicitly grant an entire group, group set or group
combination access to a resource, but then there's one user or sub-group
within that you don't want to have access. (e.g. Fred is an administrator,
and he's great for most administrator things, but I'm gonna deny access to
Fred even though the Administrators group gets access on the "Delete Users"
permission because Fred gets drunk and deletes users thoughtlessly.)
On Wed, Nov 4, 2015 at 1:50 PM, Shotster<EMAIL_ADDRESS>wrote:

There's obviously a gaping hole in my understanding of permissions.
Oh wait, I guess you're just saying not to publish the page and then grant
access to the appropriate users or groups. (Duh.)
:-/
-Steve
—
Reply to this email directly or view it on GitHub
https://github.com/concrete5/concrete5/issues/3092#issuecomment-153878045
.

@aembler Hey Andrew, any idea if this bug will be fixed soon? if not could you point me in de general direction of where the fix could be located, i need this function for a application im working on.

@xb385 It's not something that we're personally committing to at the moment, but like the GitHub label says we'd love to have community attention on it. The inGroup() method is just located in Concrete\Core\User\User, and the first checkbox at the top is likely a modification of the Concrete\Core\User\UserList class (filterByGroup)

@aembler groups is a pretty complex feature by the looks of it, im afraid i won't be able to pick this one up


proposal: Predeclared identifier for ordered types

This proposal is to add a predeclared identifier for ordered types, analogous to the comparable identifier for comparable types.
With generics, the comparable identifier allows us to use map keys, ==, and != for values of comparable type parameters.
Similarly, an identifier for ordered types would allow us to use <, >, <=, and >= for values of ordered type parameters, and to create genericized data structures that use order, e.g. sorted sets and maps. The language spec already specifies ordered types. This proposal is to give a name to the ordered type specification so that it can be used directly and conveniently.
The spelling of the ordered identifier is not a primary concern, but the language spec uses the words comparable and ordered.

Go 1.21 will add: https://pkg.go.dev/cmp@master#Ordered

@jimmyfrasche Thanks for the info. However, I see an incongruity between comparable as a predeclared and Ordered as an interface. Is this intentional? There may be a reason that I'm not seeing.

comparable cannot be written as an interface but Ordered can be.

Is this because comparable must be evaluated dynamically, e.g. for map keys? If so, you can close this proposal if you feel the predeclared approach was considered fully.

Also, will operators <, >, <=, >= work with interface Ordered? That feels like a language dependency on library.

Composites like structs that contain only comparable types are themselves comparable, which makes it impossible to write down as ordinary code, so it needs to be somewhat magic so it has to be predeclared. This is not the case with ordered types so there are only finitely many cases that can be written in ordinary code.
< etc will work for type parameters that use Ordered as a type constraint as every listed type has those operators, by the usual rules for generics.

Got it, thanks.